Merge branch 'master' into v_master
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "TinyGSM",
|
"name": "TinyGSM",
|
||||||
"version": "0.7.7",
|
"version": "0.7.9",
|
||||||
"description": "A small Arduino library for GPRS modules, that just works. Includes examples for Blynk, MQTT, File Download, and Web Client. Supports many GSM, LTE, and WiFi modules with AT command interfaces.",
|
"description": "A small Arduino library for GPRS modules, that just works. Includes examples for Blynk, MQTT, File Download, and Web Client. Supports many GSM, LTE, and WiFi modules with AT command interfaces.",
|
||||||
"keywords": "GSM, AT commands, AT, SIM800, SIM900, A6, A7, M590, ESP8266, SIM7000, SIM800A, SIM800C, SIM800L, SIM800H, SIM808, SIM868, SIM900A, SIM900D, SIM908, SIM968, M95, MC60, MC60E, BG96, ublox, Quectel, SIMCOM, AI Thinker, LTE, LTE-M",
|
"keywords": "GSM, AT commands, AT, SIM800, SIM900, A6, A7, M590, ESP8266, SIM7000, SIM800A, SIM800C, SIM800L, SIM800H, SIM808, SIM868, SIM900A, SIM900D, SIM908, SIM968, M95, MC60, MC60E, BG96, ublox, Quectel, SIMCOM, AI Thinker, LTE, LTE-M",
|
||||||
"authors":
|
"authors":
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
name=TinyGSM
|
name=TinyGSM
|
||||||
version=0.7.7
|
version=0.7.9
|
||||||
author=Volodymyr Shymanskyy
|
author=Volodymyr Shymanskyy
|
||||||
maintainer=Volodymyr Shymanskyy
|
maintainer=Volodymyr Shymanskyy
|
||||||
sentence=A small Arduino library for GPRS modules, that just works.
|
sentence=A small Arduino library for GPRS modules, that just works.
|
||||||
|
|||||||
@@ -552,6 +552,7 @@ protected:
|
|||||||
}
|
}
|
||||||
waitResponse();
|
waitResponse();
|
||||||
DBG("### READ:", len, "from", mux);
|
DBG("### READ:", len, "from", mux);
|
||||||
|
sockets[mux]->sock_available = modemGetAvailable(mux);
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -621,8 +621,6 @@ protected:
|
|||||||
streamSkipUntil(','); // skip port
|
streamSkipUntil(','); // skip port
|
||||||
streamSkipUntil(','); // skip connection type (TCP/UDP)
|
streamSkipUntil(','); // skip connection type (TCP/UDP)
|
||||||
size_t len = stream.readStringUntil('\n').toInt(); // read length
|
size_t len = stream.readStringUntil('\n').toInt(); // read length
|
||||||
sockets[mux]->sock_available = len;
|
|
||||||
|
|
||||||
for (size_t i=0; i<len; i++) {
|
for (size_t i=0; i<len; i++) {
|
||||||
TINY_GSM_MODEM_STREAM_TO_MUX_FIFO_WITH_DOUBLE_TIMEOUT
|
TINY_GSM_MODEM_STREAM_TO_MUX_FIFO_WITH_DOUBLE_TIMEOUT
|
||||||
sockets[mux]->sock_available--;
|
sockets[mux]->sock_available--;
|
||||||
|
|||||||
@@ -628,8 +628,6 @@ protected:
|
|||||||
streamSkipUntil(','); // skip port
|
streamSkipUntil(','); // skip port
|
||||||
streamSkipUntil(','); // skip connection type (TCP/UDP)
|
streamSkipUntil(','); // skip connection type (TCP/UDP)
|
||||||
size_t len = stream.readStringUntil('\n').toInt(); // read length
|
size_t len = stream.readStringUntil('\n').toInt(); // read length
|
||||||
sockets[mux]->sock_available = len;
|
|
||||||
|
|
||||||
for (size_t i=0; i<len; i++) {
|
for (size_t i=0; i<len; i++) {
|
||||||
TINY_GSM_MODEM_STREAM_TO_MUX_FIFO_WITH_DOUBLE_TIMEOUT
|
TINY_GSM_MODEM_STREAM_TO_MUX_FIFO_WITH_DOUBLE_TIMEOUT
|
||||||
sockets[mux]->sock_available--;
|
sockets[mux]->sock_available--;
|
||||||
|
|||||||
@@ -181,7 +181,20 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
String getModemName() {
|
String getModemName() {
|
||||||
return "SIMCom SIM7000";
|
String name = "SIMCom SIM7000";
|
||||||
|
|
||||||
|
sendAT(GF("+GMM"));
|
||||||
|
String res2;
|
||||||
|
if (waitResponse(1000L, res2) != 1) {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
res2.replace(GSM_NL "OK" GSM_NL, "");
|
||||||
|
res2.replace("_", " ");
|
||||||
|
res2.trim();
|
||||||
|
|
||||||
|
name = res2;
|
||||||
|
DBG("### Modem:", name);
|
||||||
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
TINY_GSM_MODEM_SET_BAUD_IPR()
|
TINY_GSM_MODEM_SET_BAUD_IPR()
|
||||||
|
|||||||
@@ -184,16 +184,29 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
String getModemName() {
|
String getModemName() {
|
||||||
|
String name = "";
|
||||||
#if defined(TINY_GSM_MODEM_SIM800)
|
#if defined(TINY_GSM_MODEM_SIM800)
|
||||||
return "SIMCom SIM800";
|
name = "SIMCom SIM800";
|
||||||
#elif defined(TINY_GSM_MODEM_SIM808)
|
#elif defined(TINY_GSM_MODEM_SIM808)
|
||||||
return "SIMCom SIM808";
|
name = "SIMCom SIM808";
|
||||||
#elif defined(TINY_GSM_MODEM_SIM868)
|
#elif defined(TINY_GSM_MODEM_SIM868)
|
||||||
return "SIMCom SIM868";
|
name = "SIMCom SIM868";
|
||||||
#elif defined(TINY_GSM_MODEM_SIM900)
|
#elif defined(TINY_GSM_MODEM_SIM900)
|
||||||
return "SIMCom SIM900";
|
name = "SIMCom SIM900";
|
||||||
#endif
|
#endif
|
||||||
return "SIMCom SIM800";
|
|
||||||
|
sendAT(GF("+GMM"));
|
||||||
|
String res2;
|
||||||
|
if (waitResponse(1000L, res2) != 1) {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
res2.replace(GSM_NL "OK" GSM_NL, "");
|
||||||
|
res2.replace("_", " ");
|
||||||
|
res2.trim();
|
||||||
|
|
||||||
|
name = res2;
|
||||||
|
DBG("### Modem:", name);
|
||||||
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
TINY_GSM_MODEM_SET_BAUD_IPR()
|
TINY_GSM_MODEM_SET_BAUD_IPR()
|
||||||
@@ -269,7 +282,7 @@ TINY_GSM_MODEM_GET_INFO_ATI()
|
|||||||
|
|
||||||
bool poweroff() {
|
bool poweroff() {
|
||||||
sendAT(GF("+CPOWD=1"));
|
sendAT(GF("+CPOWD=1"));
|
||||||
return waitResponse(GF("NORMAL POWER DOWN")) == 1;
|
return waitResponse(10000L, GF("NORMAL POWER DOWN")) == 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool radioOff() {
|
bool radioOff() {
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ TINY_GSM_CLIENT_CONNECT_OVERLOADS()
|
|||||||
// that it wants from the socket even if it was closed externally.
|
// that it wants from the socket even if it was closed externally.
|
||||||
rx.clear();
|
rx.clear();
|
||||||
at->maintain();
|
at->maintain();
|
||||||
while (sock_available > 0) {
|
while (sock_connected && sock_available > 0) {
|
||||||
at->modemRead(TinyGsmMin((uint16_t)rx.free(), sock_available), mux);
|
at->modemRead(TinyGsmMin((uint16_t)rx.free(), sock_available), mux);
|
||||||
rx.clear();
|
rx.clear();
|
||||||
at->maintain();
|
at->maintain();
|
||||||
@@ -613,6 +613,7 @@ protected:
|
|||||||
streamSkipUntil('\"');
|
streamSkipUntil('\"');
|
||||||
waitResponse();
|
waitResponse();
|
||||||
DBG("### READ:", len, "from", mux);
|
DBG("### READ:", len, "from", mux);
|
||||||
|
sockets[mux]->sock_available = modemGetAvailable(mux);
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -628,8 +629,10 @@ protected:
|
|||||||
result = stream.readStringUntil('\n').toInt();
|
result = stream.readStringUntil('\n').toInt();
|
||||||
// if (result) DBG("### DATA AVAILABLE:", result, "on", mux);
|
// if (result) DBG("### DATA AVAILABLE:", result, "on", mux);
|
||||||
waitResponse();
|
waitResponse();
|
||||||
|
} else if (res == 3) {
|
||||||
|
streamSkipUntil('\n'); // Skip the error text
|
||||||
}
|
}
|
||||||
if (!result && res != 2 && res != 3) { // Don't check modemGetConnected after an error
|
if (!result) {
|
||||||
sockets[mux]->sock_connected = modemGetConnected(mux);
|
sockets[mux]->sock_connected = modemGetConnected(mux);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
|
|||||||
@@ -624,7 +624,7 @@ protected:
|
|||||||
}
|
}
|
||||||
DBG("### Read:", len, "from", mux);
|
DBG("### Read:", len, "from", mux);
|
||||||
waitResponse();
|
waitResponse();
|
||||||
// sockets[mux % TINY_GSM_MUX_COUNT]->sock_available = modemGetAvailable(mux);
|
sockets[mux % TINY_GSM_MUX_COUNT]->sock_available = modemGetAvailable(mux);
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ TINY_GSM_CLIENT_CONNECT_OVERLOADS()
|
|||||||
// that it wants from the socket even if it was closed externally.
|
// that it wants from the socket even if it was closed externally.
|
||||||
rx.clear();
|
rx.clear();
|
||||||
at->maintain();
|
at->maintain();
|
||||||
while (sock_available > 0) {
|
while (sock_connected && sock_available > 0) {
|
||||||
at->modemRead(TinyGsmMin((uint16_t)rx.free(), sock_available), mux);
|
at->modemRead(TinyGsmMin((uint16_t)rx.free(), sock_available), mux);
|
||||||
rx.clear();
|
rx.clear();
|
||||||
at->maintain();
|
at->maintain();
|
||||||
@@ -501,8 +501,10 @@ TINY_GSM_MODEM_GET_GPRS_IP_CONNECTED()
|
|||||||
}
|
}
|
||||||
|
|
||||||
int res = stream.readStringUntil(',').toInt();
|
int res = stream.readStringUntil(',').toInt();
|
||||||
|
int8_t percent = res*20; // return is 0-5
|
||||||
|
// Wait for final OK
|
||||||
waitResponse();
|
waitResponse();
|
||||||
return res;
|
return percent;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t getBattChargeState() TINY_GSM_ATTR_NOT_AVAILABLE;
|
uint8_t getBattChargeState() TINY_GSM_ATTR_NOT_AVAILABLE;
|
||||||
@@ -601,6 +603,7 @@ protected:
|
|||||||
streamSkipUntil('\"');
|
streamSkipUntil('\"');
|
||||||
waitResponse();
|
waitResponse();
|
||||||
DBG("### READ:", len, "from", mux);
|
DBG("### READ:", len, "from", mux);
|
||||||
|
sockets[mux]->sock_available = modemGetAvailable(mux);
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -616,8 +619,10 @@ protected:
|
|||||||
result = stream.readStringUntil('\n').toInt();
|
result = stream.readStringUntil('\n').toInt();
|
||||||
// if (result) DBG("### DATA AVAILABLE:", result, "on", mux);
|
// if (result) DBG("### DATA AVAILABLE:", result, "on", mux);
|
||||||
waitResponse();
|
waitResponse();
|
||||||
|
} else if (res == 3) {
|
||||||
|
streamSkipUntil('\n'); // Skip the error text
|
||||||
}
|
}
|
||||||
if (!result && res != 2 && res != 3) { // Don't check modemGetConnected after an error
|
if (!result) {
|
||||||
sockets[mux]->sock_connected = modemGetConnected(mux);
|
sockets[mux]->sock_connected = modemGetConnected(mux);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
#define TinyGsmCommon_h
|
#define TinyGsmCommon_h
|
||||||
|
|
||||||
// The current library version number
|
// The current library version number
|
||||||
#define TINYGSM_VERSION "0.7.7"
|
#define TINYGSM_VERSION "0.7.9"
|
||||||
|
|
||||||
#if defined(SPARK) || defined(PARTICLE)
|
#if defined(SPARK) || defined(PARTICLE)
|
||||||
#include "Particle.h"
|
#include "Particle.h"
|
||||||
|
|||||||
Reference in New Issue
Block a user