Browse Source

Need more truth-checks

Signed-off-by: Sara Damiano <sdamiano@stroudcenter.org>
v_master
Sara Damiano 5 years ago
parent
commit
62516d26a3
9 changed files with 22 additions and 18 deletions
  1. +3
    -2
      src/TinyGsmClientMC60.h
  2. +2
    -2
      src/TinyGsmClientSIM5360.h
  3. +2
    -2
      src/TinyGsmClientSIM7000.h
  4. +2
    -2
      src/TinyGsmClientSIM7600.h
  5. +2
    -2
      src/TinyGsmClientSIM800.h
  6. +3
    -2
      src/TinyGsmClientSaraR4.h
  7. +3
    -2
      src/TinyGsmClientUBLOX.h
  8. +4
    -3
      src/TinyGsmModem.tpp
  9. +1
    -1
      src/TinyGsmTCP.tpp

+ 3
- 2
src/TinyGsmClientMC60.h View File

@ -519,7 +519,7 @@ class TinyGsmMC60 : public TinyGsmModem<TinyGsmMC60>,
index = 6;
goto finish;
} else if (data.endsWith(
GF(GSM_NL "+QIRD:"))) { // TODO(?): QIRD? or QIRDI?
GF(GSM_NL "+QIRDI:"))) { // TODO(?): QIRD? or QIRDI?
// +QIRDI: <id>,<sc>,<sid>,<num>,<len>,< tlen>
streamSkipUntil(','); // Skip the context
streamSkipUntil(','); // Skip the role
@ -529,7 +529,8 @@ class TinyGsmMC60 : public TinyGsmModem<TinyGsmMC60>,
int8_t num_packets = streamGetIntBefore(',');
// read the length of the current packet
int16_t len_packet = streamGetIntBefore('\n');
if (mux >= 0 && mux < TINY_GSM_MUX_COUNT && sockets[mux]) {
if (mux >= 0 && mux < TINY_GSM_MUX_COUNT && sockets[mux] &&
num_packets >= 0 && len_packet >= 0) {
sockets[mux]->sock_available = len_packet * num_packets;
}
data = "";


+ 2
- 2
src/TinyGsmClientSIM5360.h View File

@ -645,8 +645,8 @@ class TinyGsmSim5360 : public TinyGsmModem<TinyGsmSim5360>,
int8_t mux = streamGetIntBefore(',');
int16_t len = streamGetIntBefore('\n');
if (mux >= 0 && mux < TINY_GSM_MUX_COUNT && sockets[mux]) {
sockets[mux]->got_data = true;
sockets[mux]->sock_available = len;
sockets[mux]->got_data = true;
if (len >= 0 && len <= 1024) { sockets[mux]->sock_available = len; }
}
data = "";
// DBG("### Got Data:", len, "on", mux);


+ 2
- 2
src/TinyGsmClientSIM7000.h View File

@ -676,8 +676,8 @@ class TinyGsmSim7000 : public TinyGsmModem<TinyGsmSim7000>,
int8_t mux = streamGetIntBefore(',');
int16_t len = streamGetIntBefore('\n');
if (mux >= 0 && mux < TINY_GSM_MUX_COUNT && sockets[mux]) {
sockets[mux]->got_data = true;
sockets[mux]->sock_available = len;
sockets[mux]->got_data = true;
if (len >= 0 && len <= 1024) { sockets[mux]->sock_available = len; }
}
data = "";
// DBG("### Got Data:", len, "on", mux);


+ 2
- 2
src/TinyGsmClientSIM7600.h View File

@ -735,8 +735,8 @@ class TinyGsmSim7600 : public TinyGsmModem<TinyGsmSim7600>,
int8_t mux = streamGetIntBefore(',');
int16_t len = streamGetIntBefore('\n');
if (mux >= 0 && mux < TINY_GSM_MUX_COUNT && sockets[mux]) {
sockets[mux]->got_data = true;
sockets[mux]->sock_available = len;
sockets[mux]->got_data = true;
if (len >= 0 && len <= 1024) { sockets[mux]->sock_available = len; }
}
data = "";
// DBG("### Got Data:", len, "on", mux);


+ 2
- 2
src/TinyGsmClientSIM800.h View File

@ -651,8 +651,8 @@ class TinyGsmSim800 : public TinyGsmModem<TinyGsmSim800>,
int8_t mux = streamGetIntBefore(',');
int16_t len = streamGetIntBefore('\n');
if (mux >= 0 && mux < TINY_GSM_MUX_COUNT && sockets[mux]) {
sockets[mux]->got_data = true;
sockets[mux]->sock_available = len;
sockets[mux]->got_data = true;
if (len >= 0 && len <= 1024) { sockets[mux]->sock_available = len; }
}
data = "";
// DBG("### Got Data:", len, "on", mux);


+ 3
- 2
src/TinyGsmClientSaraR4.h View File

@ -827,8 +827,9 @@ class TinyGsmSaraR4 : public TinyGsmModem<TinyGsmSaraR4>,
int8_t mux = streamGetIntBefore(',');
int16_t len = streamGetIntBefore('\n');
if (mux >= 0 && mux < TINY_GSM_MUX_COUNT && sockets[mux]) {
sockets[mux]->got_data = true;
sockets[mux]->sock_available = len;
sockets[mux]->got_data = true;
// max size is 1024
if (len >= 0 && len <= 1024) { sockets[mux]->sock_available = len; }
}
data = "";
DBG("### URC Data Received:", len, "on", mux);


+ 3
- 2
src/TinyGsmClientUBLOX.h View File

@ -759,8 +759,9 @@ class TinyGsmUBLOX : public TinyGsmModem<TinyGsmUBLOX>,
int8_t mux = streamGetIntBefore(',');
int16_t len = streamGetIntBefore('\n');
if (mux >= 0 && mux < TINY_GSM_MUX_COUNT && sockets[mux]) {
sockets[mux]->got_data = true;
sockets[mux]->sock_available = len;
sockets[mux]->got_data = true;
// max size is 1024
if (len >= 0 && len <= 1024) { sockets[mux]->sock_available = len; }
}
data = "";
DBG("### URC Data Received:", len, "on", mux);


+ 4
- 3
src/TinyGsmModem.tpp View File

@ -268,10 +268,11 @@ class TinyGsmModem {
}
inline int16_t streamGetIntBefore(char lastChar) {
char buf[6];
char buf[7];
size_t bytesRead = thisModem().stream.readBytesUntil(
lastChar, buf, static_cast<size_t>(6));
if (bytesRead) {
lastChar, buf, static_cast<size_t>(7));
// if we read 7 or more bytes, it's an overflow
if (bytesRead && bytesRead < 7) {
buf[bytesRead] = '\0';
int16_t res = atoi(buf);
return res;


+ 1
- 1
src/TinyGsmTCP.tpp View File

@ -270,7 +270,7 @@ class TinyGsmTCP {
inline void dumpModemBuffer(uint32_t maxWaitMs) {
#if defined TINY_GSM_BUFFER_READ_AND_CHECK_SIZE || \
defined TINY_GSM_BUFFER_READ_NO_CHECK
TINY_GSM_YIELD();
TINY_GSM_YIELD();
uint32_t startMillis = millis();
while (sock_available > 0 && (millis() - startMillis < maxWaitMs)) {
rx.clear();


Loading…
Cancel
Save