Version bump
This commit is contained in:
2
.github/ISSUE_TEMPLATE.md
vendored
2
.github/ISSUE_TEMPLATE.md
vendored
@@ -25,7 +25,7 @@ with your board before submitting any issues.
|
|||||||
|
|
||||||
Modem: <!-- Brand, model, variant, firmware version, ie Quectel BG96 Revision: BG96MAR02A07M1G -->
|
Modem: <!-- Brand, model, variant, firmware version, ie Quectel BG96 Revision: BG96MAR02A07M1G -->
|
||||||
Main processor board: <!-- Uno, Zero, ESP32, Particle, etc -->
|
Main processor board: <!-- Uno, Zero, ESP32, Particle, etc -->
|
||||||
TinyGSM version: <!-- always try to use the latest (0.10.8) -->
|
TinyGSM version: <!-- always try to use the latest (0.10.9) -->
|
||||||
Code: <!-- Example name or paste in your code -->
|
Code: <!-- Example name or paste in your code -->
|
||||||
|
|
||||||
### Scenario, steps to reproduce
|
### Scenario, steps to reproduce
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "TinyGSM",
|
"name": "TinyGSM",
|
||||||
"version": "0.10.8",
|
"version": "0.10.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.10.8
|
version=0.10.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.
|
||||||
|
@@ -191,7 +191,8 @@ class TinyGsmA6 : public TinyGsmModem<TinyGsmA6>,
|
|||||||
|
|
||||||
bool sleepEnableImpl(bool enable = true) TINY_GSM_ATTR_NOT_AVAILABLE;
|
bool sleepEnableImpl(bool enable = true) TINY_GSM_ATTR_NOT_AVAILABLE;
|
||||||
|
|
||||||
bool setPhoneFunctionalityImpl(uint8_t fun, bool reset = false) TINY_GSM_ATTR_NOT_IMPLEMENTED;
|
bool setPhoneFunctionalityImpl(uint8_t fun, bool reset = false)
|
||||||
|
TINY_GSM_ATTR_NOT_IMPLEMENTED;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Generic network functions
|
* Generic network functions
|
||||||
@@ -475,7 +476,7 @@ class TinyGsmA6 : public TinyGsmModem<TinyGsmA6>,
|
|||||||
String r5s(r5); r5s.trim();
|
String r5s(r5); r5s.trim();
|
||||||
DBG("### ..:", r1s, ",", r2s, ",", r3s, ",", r4s, ",", r5s);*/
|
DBG("### ..:", r1s, ",", r2s, ",", r3s, ",", r4s, ",", r5s);*/
|
||||||
data.reserve(64);
|
data.reserve(64);
|
||||||
uint8_t index = 0;
|
uint8_t index = 0;
|
||||||
uint32_t startMillis = millis();
|
uint32_t startMillis = millis();
|
||||||
do {
|
do {
|
||||||
TINY_GSM_YIELD();
|
TINY_GSM_YIELD();
|
||||||
@@ -505,8 +506,8 @@ class TinyGsmA6 : public TinyGsmModem<TinyGsmA6>,
|
|||||||
index = 5;
|
index = 5;
|
||||||
goto finish;
|
goto finish;
|
||||||
} else if (data.endsWith(GF("+CIPRCV:"))) {
|
} else if (data.endsWith(GF("+CIPRCV:"))) {
|
||||||
int8_t mux = streamGetIntBefore(',');
|
int8_t mux = streamGetIntBefore(',');
|
||||||
int16_t len = streamGetIntBefore(',');
|
int16_t len = streamGetIntBefore(',');
|
||||||
int16_t len_orig = len;
|
int16_t len_orig = len;
|
||||||
if (mux >= 0 && mux < TINY_GSM_MUX_COUNT && sockets[mux]) {
|
if (mux >= 0 && mux < TINY_GSM_MUX_COUNT && sockets[mux]) {
|
||||||
if (len > sockets[mux]->rx.free()) {
|
if (len > sockets[mux]->rx.free()) {
|
||||||
@@ -514,9 +515,7 @@ class TinyGsmA6 : public TinyGsmModem<TinyGsmA6>,
|
|||||||
} else {
|
} else {
|
||||||
DBG("### Got: ", len, "->", sockets[mux]->rx.free());
|
DBG("### Got: ", len, "->", sockets[mux]->rx.free());
|
||||||
}
|
}
|
||||||
while (len--) {
|
while (len--) { moveCharFromStreamToFifo(mux); }
|
||||||
moveCharFromStreamToFifo(mux);
|
|
||||||
}
|
|
||||||
// TODO(?) Deal with missing characters
|
// TODO(?) Deal with missing characters
|
||||||
if (len_orig > sockets[mux]->available()) {
|
if (len_orig > sockets[mux]->available()) {
|
||||||
DBG("### Fewer characters received than expected: ",
|
DBG("### Fewer characters received than expected: ",
|
||||||
@@ -537,9 +536,7 @@ class TinyGsmA6 : public TinyGsmModem<TinyGsmA6>,
|
|||||||
finish:
|
finish:
|
||||||
if (!index) {
|
if (!index) {
|
||||||
data.trim();
|
data.trim();
|
||||||
if (data.length()) {
|
if (data.length()) { DBG("### Unhandled:", data); }
|
||||||
DBG("### Unhandled:", data);
|
|
||||||
}
|
|
||||||
data = "";
|
data = "";
|
||||||
}
|
}
|
||||||
// data.replace(GSM_NL, "/");
|
// data.replace(GSM_NL, "/");
|
||||||
@@ -577,7 +574,7 @@ class TinyGsmA6 : public TinyGsmModem<TinyGsmA6>,
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
GsmClientA6* sockets[TINY_GSM_MUX_COUNT];
|
GsmClientA6* sockets[TINY_GSM_MUX_COUNT];
|
||||||
const char* gsmNL = GSM_NL;
|
const char* gsmNL = GSM_NL;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // SRC_TINYGSMCLIENTA6_H_
|
#endif // SRC_TINYGSMCLIENTA6_H_
|
||||||
|
@@ -684,7 +684,7 @@ class TinyGsmBG96 : public TinyGsmModem<TinyGsmBG96>,
|
|||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Stream& stream;
|
Stream& stream;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
GsmClientBG96* sockets[TINY_GSM_MUX_COUNT];
|
GsmClientBG96* sockets[TINY_GSM_MUX_COUNT];
|
||||||
|
@@ -200,7 +200,8 @@ class TinyGsmESP8266 : public TinyGsmModem<TinyGsmESP8266>,
|
|||||||
|
|
||||||
bool sleepEnableImpl(bool enable = true) TINY_GSM_ATTR_NOT_AVAILABLE;
|
bool sleepEnableImpl(bool enable = true) TINY_GSM_ATTR_NOT_AVAILABLE;
|
||||||
|
|
||||||
bool setPhoneFunctionalityImpl(uint8_t fun, bool reset = false) TINY_GSM_ATTR_NOT_IMPLEMENTED;
|
bool setPhoneFunctionalityImpl(uint8_t fun, bool reset = false)
|
||||||
|
TINY_GSM_ATTR_NOT_IMPLEMENTED;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Generic network functions
|
* Generic network functions
|
||||||
@@ -317,9 +318,7 @@ class TinyGsmESP8266 : public TinyGsmModem<TinyGsmESP8266>,
|
|||||||
// if the status is anything but 3, there are no connections open
|
// if the status is anything but 3, there are no connections open
|
||||||
waitResponse(); // Returns an OK after the status
|
waitResponse(); // Returns an OK after the status
|
||||||
for (int muxNo = 0; muxNo < TINY_GSM_MUX_COUNT; muxNo++) {
|
for (int muxNo = 0; muxNo < TINY_GSM_MUX_COUNT; muxNo++) {
|
||||||
if (sockets[muxNo]) {
|
if (sockets[muxNo]) { sockets[muxNo]->sock_connected = false; }
|
||||||
sockets[muxNo]->sock_connected = false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -398,9 +397,7 @@ class TinyGsmESP8266 : public TinyGsmModem<TinyGsmESP8266>,
|
|||||||
} else {
|
} else {
|
||||||
// DBG("### Got Data: ", len, "on", mux);
|
// DBG("### Got Data: ", len, "on", mux);
|
||||||
}
|
}
|
||||||
while (len--) {
|
while (len--) { moveCharFromStreamToFifo(mux); }
|
||||||
moveCharFromStreamToFifo(mux);
|
|
||||||
}
|
|
||||||
// TODO(SRGDamia1): deal with buffer overflow/missed characters
|
// TODO(SRGDamia1): deal with buffer overflow/missed characters
|
||||||
if (len_orig > sockets[mux]->available()) {
|
if (len_orig > sockets[mux]->available()) {
|
||||||
DBG("### Fewer characters received than expected: ",
|
DBG("### Fewer characters received than expected: ",
|
||||||
@@ -446,7 +443,7 @@ class TinyGsmESP8266 : public TinyGsmModem<TinyGsmESP8266>,
|
|||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Stream& stream;
|
Stream& stream;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
GsmClientESP8266* sockets[TINY_GSM_MUX_COUNT];
|
GsmClientESP8266* sockets[TINY_GSM_MUX_COUNT];
|
||||||
|
@@ -407,9 +407,7 @@ class TinyGsmM590 : public TinyGsmModem<TinyGsmM590>,
|
|||||||
} else {
|
} else {
|
||||||
DBG("### Got: ", len, "->", sockets[mux]->rx.free());
|
DBG("### Got: ", len, "->", sockets[mux]->rx.free());
|
||||||
}
|
}
|
||||||
while (len--) {
|
while (len--) { moveCharFromStreamToFifo(mux); }
|
||||||
moveCharFromStreamToFifo(mux);
|
|
||||||
}
|
|
||||||
// TODO(?): Handle lost characters
|
// TODO(?): Handle lost characters
|
||||||
if (len_orig > sockets[mux]->available()) {
|
if (len_orig > sockets[mux]->available()) {
|
||||||
DBG("### Fewer characters received than expected: ",
|
DBG("### Fewer characters received than expected: ",
|
||||||
@@ -465,7 +463,7 @@ class TinyGsmM590 : public TinyGsmModem<TinyGsmM590>,
|
|||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Stream& stream;
|
Stream& stream;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
GsmClientM590* sockets[TINY_GSM_MUX_COUNT];
|
GsmClientM590* sockets[TINY_GSM_MUX_COUNT];
|
||||||
|
@@ -227,7 +227,8 @@ class TinyGsmM95 : public TinyGsmModem<TinyGsmM95>,
|
|||||||
return waitResponse() == 1;
|
return waitResponse() == 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool setPhoneFunctionalityImpl(uint8_t fun, bool reset = false) TINY_GSM_ATTR_NOT_IMPLEMENTED;
|
bool setPhoneFunctionalityImpl(uint8_t fun, bool reset = false)
|
||||||
|
TINY_GSM_ATTR_NOT_IMPLEMENTED;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Generic network functions
|
* Generic network functions
|
||||||
@@ -625,7 +626,7 @@ class TinyGsmM95 : public TinyGsmModem<TinyGsmM95>,
|
|||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Stream& stream;
|
Stream& stream;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
GsmClientM95* sockets[TINY_GSM_MUX_COUNT];
|
GsmClientM95* sockets[TINY_GSM_MUX_COUNT];
|
||||||
|
@@ -222,9 +222,7 @@ class TinyGsmSim5360 : public TinyGsmModem<TinyGsmSim5360>,
|
|||||||
if (waitResponse(10000L) != 1) { return false; }
|
if (waitResponse(10000L) != 1) { return false; }
|
||||||
// After booting, modem sends out messages as each of its
|
// After booting, modem sends out messages as each of its
|
||||||
// internal modules loads. The final message is "PB DONE".
|
// internal modules loads. The final message is "PB DONE".
|
||||||
if (waitResponse(40000L, GF(GSM_NL "PB DONE")) != 1) {
|
if (waitResponse(40000L, GF(GSM_NL "PB DONE")) != 1) { return false; }
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return init();
|
return init();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -234,7 +232,7 @@ class TinyGsmSim5360 : public TinyGsmModem<TinyGsmSim5360>,
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool radioOffImpl() {
|
bool radioOffImpl() {
|
||||||
if (!setPhoneFunctionality(4)) { return false; }
|
if (!setPhoneFunctionality(4)) { return false; }
|
||||||
delay(3000);
|
delay(3000);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -587,9 +585,7 @@ class TinyGsmSim5360 : public TinyGsmModem<TinyGsmSim5360>,
|
|||||||
for (int muxNo = 0; muxNo < TINY_GSM_MUX_COUNT; muxNo++) {
|
for (int muxNo = 0; muxNo < TINY_GSM_MUX_COUNT; muxNo++) {
|
||||||
// +CIPCLOSE:<link0_state>,<link1_state>,...,<link9_state>
|
// +CIPCLOSE:<link0_state>,<link1_state>,...,<link9_state>
|
||||||
bool muxState = stream.parseInt();
|
bool muxState = stream.parseInt();
|
||||||
if (sockets[muxNo]) {
|
if (sockets[muxNo]) { sockets[muxNo]->sock_connected = muxState; }
|
||||||
sockets[muxNo]->sock_connected = muxState;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
waitResponse(); // Should be an OK at the end
|
waitResponse(); // Should be an OK at the end
|
||||||
if (!sockets[mux]) return false;
|
if (!sockets[mux]) return false;
|
||||||
@@ -722,7 +718,7 @@ class TinyGsmSim5360 : public TinyGsmModem<TinyGsmSim5360>,
|
|||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Stream& stream;
|
Stream& stream;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
GsmClientSim5360* sockets[TINY_GSM_MUX_COUNT];
|
GsmClientSim5360* sockets[TINY_GSM_MUX_COUNT];
|
||||||
|
@@ -764,7 +764,7 @@ class TinyGsmSim7000 : public TinyGsmModem<TinyGsmSim7000>,
|
|||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Stream& stream;
|
Stream& stream;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
GsmClientSim7000* sockets[TINY_GSM_MUX_COUNT];
|
GsmClientSim7000* sockets[TINY_GSM_MUX_COUNT];
|
||||||
|
@@ -254,7 +254,7 @@ class TinyGsmSim800 : public TinyGsmModem<TinyGsmSim800>,
|
|||||||
if (!testAT()) { return false; }
|
if (!testAT()) { return false; }
|
||||||
sendAT(GF("&W"));
|
sendAT(GF("&W"));
|
||||||
waitResponse();
|
waitResponse();
|
||||||
if (!setPhoneFunctionality(0)) { return false; }
|
if (!setPhoneFunctionality(0)) { return false; }
|
||||||
if (!setPhoneFunctionality(1, true)) { return false; }
|
if (!setPhoneFunctionality(1, true)) { return false; }
|
||||||
delay(3000);
|
delay(3000);
|
||||||
return init();
|
return init();
|
||||||
|
@@ -888,7 +888,7 @@ class TinyGsmSaraR4 : public TinyGsmModem<TinyGsmSaraR4>,
|
|||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Stream& stream;
|
Stream& stream;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
GsmClientSaraR4* sockets[TINY_GSM_MUX_COUNT];
|
GsmClientSaraR4* sockets[TINY_GSM_MUX_COUNT];
|
||||||
|
@@ -316,7 +316,8 @@ class TinyGsmSequansMonarch
|
|||||||
return waitResponse() == 1;
|
return waitResponse() == 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool setPhoneFunctionality(uint8_t fun, bool reset = false) TINY_GSM_ATTR_NOT_IMPLEMENTED;
|
bool setPhoneFunctionality(uint8_t fun,
|
||||||
|
bool reset = false) TINY_GSM_ATTR_NOT_IMPLEMENTED;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Generic network functions
|
* Generic network functions
|
||||||
|
@@ -236,7 +236,7 @@ class TinyGsmUBLOX : public TinyGsmModem<TinyGsmUBLOX>,
|
|||||||
bool factoryDefaultImpl() {
|
bool factoryDefaultImpl() {
|
||||||
sendAT(GF("+UFACTORY=0,1")); // No factory restore, erase NVM
|
sendAT(GF("+UFACTORY=0,1")); // No factory restore, erase NVM
|
||||||
waitResponse();
|
waitResponse();
|
||||||
return setPhoneFunctionality(16); // Reset
|
return setPhoneFunctionality(16); // Reset
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -820,7 +820,7 @@ class TinyGsmUBLOX : public TinyGsmModem<TinyGsmUBLOX>,
|
|||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Stream& stream;
|
Stream& stream;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
GsmClientUBLOX* sockets[TINY_GSM_MUX_COUNT];
|
GsmClientUBLOX* sockets[TINY_GSM_MUX_COUNT];
|
||||||
|
@@ -572,7 +572,8 @@ class TinyGsmXBee : public TinyGsmModem<TinyGsmXBee>,
|
|||||||
|
|
||||||
bool sleepEnableImpl(bool enable = true) TINY_GSM_ATTR_NOT_IMPLEMENTED;
|
bool sleepEnableImpl(bool enable = true) TINY_GSM_ATTR_NOT_IMPLEMENTED;
|
||||||
|
|
||||||
bool setPhoneFunctionalityImpl(uint8_t fun, bool reset = false) TINY_GSM_ATTR_NOT_IMPLEMENTED;
|
bool setPhoneFunctionalityImpl(uint8_t fun, bool reset = false)
|
||||||
|
TINY_GSM_ATTR_NOT_IMPLEMENTED;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Generic network functions
|
* Generic network functions
|
||||||
@@ -1443,7 +1444,8 @@ class TinyGsmXBee : public TinyGsmModem<TinyGsmXBee>,
|
|||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Stream& stream;
|
Stream& stream;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
GsmClientXBee* sockets[TINY_GSM_MUX_COUNT];
|
GsmClientXBee* sockets[TINY_GSM_MUX_COUNT];
|
||||||
const char* gsmNL = GSM_NL;
|
const char* gsmNL = GSM_NL;
|
||||||
|
@@ -10,7 +10,7 @@
|
|||||||
#define SRC_TINYGSMCOMMON_H_
|
#define SRC_TINYGSMCOMMON_H_
|
||||||
|
|
||||||
// The current library version number
|
// The current library version number
|
||||||
#define TINYGSM_VERSION "0.10.8"
|
#define TINYGSM_VERSION "0.10.9"
|
||||||
|
|
||||||
#if defined(SPARK) || defined(PARTICLE)
|
#if defined(SPARK) || defined(PARTICLE)
|
||||||
#include "Particle.h"
|
#include "Particle.h"
|
||||||
|
@@ -43,13 +43,11 @@ class TinyGsmGPS {
|
|||||||
hour, minute, second);
|
hour, minute, second);
|
||||||
}
|
}
|
||||||
|
|
||||||
String setGNSSMode(uint8_t mode,bool dpo)
|
String setGNSSMode(uint8_t mode, bool dpo) {
|
||||||
{
|
return thisModem().setGNSSModeImpl(mode, dpo);
|
||||||
return thisModem().setGNSSModeImpl(mode,dpo);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t getGNSSMode()
|
uint8_t getGNSSMode() {
|
||||||
{
|
|
||||||
return thisModem().getGNSSModeImpl();
|
return thisModem().getGNSSModeImpl();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -68,15 +66,15 @@ class TinyGsmGPS {
|
|||||||
* GPS/GNSS/GLONASS location functions
|
* GPS/GNSS/GLONASS location functions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
bool enableGPSImpl() TINY_GSM_ATTR_NOT_IMPLEMENTED;
|
bool enableGPSImpl() TINY_GSM_ATTR_NOT_IMPLEMENTED;
|
||||||
bool disableGPSImpl() TINY_GSM_ATTR_NOT_IMPLEMENTED;
|
bool disableGPSImpl() TINY_GSM_ATTR_NOT_IMPLEMENTED;
|
||||||
String getGPSrawImpl() TINY_GSM_ATTR_NOT_IMPLEMENTED;
|
String getGPSrawImpl() TINY_GSM_ATTR_NOT_IMPLEMENTED;
|
||||||
bool getGPSImpl(float* lat, float* lon, float* speed = 0, float* alt = 0,
|
bool getGPSImpl(float* lat, float* lon, float* speed = 0, float* alt = 0,
|
||||||
int* vsat = 0, int* usat = 0, float* accuracy = 0,
|
int* vsat = 0, int* usat = 0, float* accuracy = 0,
|
||||||
int* year = 0, int* month = 0, int* day = 0, int* hour = 0,
|
int* year = 0, int* month = 0, int* day = 0, int* hour = 0,
|
||||||
int* minute = 0,
|
int* minute = 0,
|
||||||
int* second = 0) TINY_GSM_ATTR_NOT_IMPLEMENTED;
|
int* second = 0) TINY_GSM_ATTR_NOT_IMPLEMENTED;
|
||||||
String setGNSSModeImpl(uint8_t mode,bool dpo) TINY_GSM_ATTR_NOT_IMPLEMENTED;
|
String setGNSSModeImpl(uint8_t mode, bool dpo) TINY_GSM_ATTR_NOT_IMPLEMENTED;
|
||||||
uint8_t getGNSSModeImpl() TINY_GSM_ATTR_NOT_IMPLEMENTED;
|
uint8_t getGNSSModeImpl() TINY_GSM_ATTR_NOT_IMPLEMENTED;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -174,7 +174,8 @@ class TinyGsmModem {
|
|||||||
|
|
||||||
bool sleepEnableImpl(bool enable = true) TINY_GSM_ATTR_NOT_IMPLEMENTED;
|
bool sleepEnableImpl(bool enable = true) TINY_GSM_ATTR_NOT_IMPLEMENTED;
|
||||||
|
|
||||||
bool setPhoneFunctionalityImpl(uint8_t fun, bool reset = false) TINY_GSM_ATTR_NOT_IMPLEMENTED;
|
bool setPhoneFunctionalityImpl(uint8_t fun, bool reset = false)
|
||||||
|
TINY_GSM_ATTR_NOT_IMPLEMENTED;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Generic network functions
|
* Generic network functions
|
||||||
@@ -266,15 +267,15 @@ class TinyGsmModem {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
inline bool streamGetLength(char* buf, int8_t numChars, const uint32_t timeout_ms = 1000L) {
|
inline bool streamGetLength(char* buf, int8_t numChars,
|
||||||
if (!buf) {
|
const uint32_t timeout_ms = 1000L) {
|
||||||
return false;
|
if (!buf) { return false; }
|
||||||
}
|
|
||||||
|
|
||||||
int8_t numCharsReady = -1;
|
int8_t numCharsReady = -1;
|
||||||
uint32_t startMillis = millis();
|
uint32_t startMillis = millis();
|
||||||
while (millis() - startMillis < timeout_ms && (numCharsReady = thisModem().stream.available()) < numChars) {
|
while (millis() - startMillis < timeout_ms &&
|
||||||
TINY_GSM_YIELD();
|
(numCharsReady = thisModem().stream.available()) < numChars) {
|
||||||
|
TINY_GSM_YIELD();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (numCharsReady >= numChars) {
|
if (numCharsReady >= numChars) {
|
||||||
@@ -285,8 +286,9 @@ class TinyGsmModem {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline int16_t streamGetIntLength(int8_t numChars, const uint32_t timeout_ms = 1000L) {
|
inline int16_t streamGetIntLength(int8_t numChars,
|
||||||
char buf[numChars + 1];
|
const uint32_t timeout_ms = 1000L) {
|
||||||
|
char buf[numChars + 1];
|
||||||
if (streamGetLength(buf, numChars, timeout_ms)) {
|
if (streamGetLength(buf, numChars, timeout_ms)) {
|
||||||
buf[numChars] = '\0';
|
buf[numChars] = '\0';
|
||||||
return atoi(buf);
|
return atoi(buf);
|
||||||
@@ -309,13 +311,14 @@ class TinyGsmModem {
|
|||||||
return -9999;
|
return -9999;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline float streamGetFloatLength(int8_t numChars, const uint32_t timeout_ms = 1000L) {
|
inline float streamGetFloatLength(int8_t numChars,
|
||||||
char buf[numChars + 1];
|
const uint32_t timeout_ms = 1000L) {
|
||||||
|
char buf[numChars + 1];
|
||||||
if (streamGetLength(buf, numChars, timeout_ms)) {
|
if (streamGetLength(buf, numChars, timeout_ms)) {
|
||||||
buf[numChars] = '\0';
|
buf[numChars] = '\0';
|
||||||
return atof(buf);
|
return atof(buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
return -9999.0F;
|
return -9999.0F;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -328,8 +331,8 @@ class TinyGsmModem {
|
|||||||
buf[bytesRead] = '\0';
|
buf[bytesRead] = '\0';
|
||||||
float res = atof(buf);
|
float res = atof(buf);
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
return -9999.0F;
|
return -9999.0F;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user