Browse Source

modemRead MUST end with sock_available correct

v_master
Sara Damiano 5 years ago
parent
commit
3d78292261
8 changed files with 16 additions and 27 deletions
  1. +1
    -0
      src/TinyGsmClientBG96.h
  2. +0
    -2
      src/TinyGsmClientM95.h
  3. +0
    -2
      src/TinyGsmClientMC60.h
  4. +2
    -9
      src/TinyGsmClientSIM7000.h
  5. +2
    -9
      src/TinyGsmClientSIM800.h
  6. +5
    -2
      src/TinyGsmClientSaraR4.h
  7. +1
    -1
      src/TinyGsmClientSequansMonarch.h
  8. +5
    -2
      src/TinyGsmClientUBLOX.h

+ 1
- 0
src/TinyGsmClientBG96.h View File

@ -552,6 +552,7 @@ protected:
} }
waitResponse(); waitResponse();
DBG("### READ:", len, "from", mux); DBG("### READ:", len, "from", mux);
sockets[mux]->sock_available = modemGetAvailable();
return len; return len;
} }


+ 0
- 2
src/TinyGsmClientM95.h View File

@ -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--;


+ 0
- 2
src/TinyGsmClientMC60.h View File

@ -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--;


+ 2
- 9
src/TinyGsmClientSIM7000.h View File

@ -183,23 +183,16 @@ public:
String getModemName() { String getModemName() {
String name = "SIMCom SIM7000"; String name = "SIMCom SIM7000";
sendAT(GF("+CGMI"));
String res1;
if (waitResponse(1000L, res1) != 1) {
return name;
}
res1.replace(GSM_NL "OK" GSM_NL, "");
res1.trim();
sendAT(GF("+GMM")); sendAT(GF("+GMM"));
String res2; String res2;
if (waitResponse(1000L, res2) != 1) { if (waitResponse(1000L, res2) != 1) {
return name; return name;
} }
res2.replace(GSM_NL "OK" GSM_NL, ""); res2.replace(GSM_NL "OK" GSM_NL, "");
res2.replace("_", " ");
res2.trim(); res2.trim();
name = res1 + String(' ') + res2;
name = res2;
DBG("### Modem:", name); DBG("### Modem:", name);
return name; return name;
} }


+ 2
- 9
src/TinyGsmClientSIM800.h View File

@ -195,23 +195,16 @@ public:
name = "SIMCom SIM900"; name = "SIMCom SIM900";
#endif #endif
sendAT(GF("+CGMI"));
String res1;
if (waitResponse(1000L, res1) != 1) {
return name;
}
res1.replace(GSM_NL "OK" GSM_NL, "");
res1.trim();
sendAT(GF("+GMM")); sendAT(GF("+GMM"));
String res2; String res2;
if (waitResponse(1000L, res2) != 1) { if (waitResponse(1000L, res2) != 1) {
return name; return name;
} }
res2.replace(GSM_NL "OK" GSM_NL, ""); res2.replace(GSM_NL "OK" GSM_NL, "");
res2.replace("_", " ");
res2.trim(); res2.trim();
name = res1 + String(' ') + res2;
name = res2;
DBG("### Modem:", name); DBG("### Modem:", name);
return name; return name;
} }


+ 5
- 2
src/TinyGsmClientSaraR4.h View File

@ -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();
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;


+ 1
- 1
src/TinyGsmClientSequansMonarch.h View File

@ -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;
} }


+ 5
- 2
src/TinyGsmClientUBLOX.h View File

@ -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();
@ -601,6 +601,7 @@ protected:
streamSkipUntil('\"'); streamSkipUntil('\"');
waitResponse(); waitResponse();
DBG("### READ:", len, "from", mux); DBG("### READ:", len, "from", mux);
sockets[mux]->sock_available = modemGetAvailable();
return len; return len;
} }
@ -616,8 +617,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;


Loading…
Cancel
Save