modemRead MUST end with sock_available correct
This commit is contained in:
@@ -552,6 +552,7 @@ protected:
|
||||
}
|
||||
waitResponse();
|
||||
DBG("### READ:", len, "from", mux);
|
||||
sockets[mux]->sock_available = modemGetAvailable();
|
||||
return len;
|
||||
}
|
||||
|
||||
|
@@ -621,8 +621,6 @@ protected:
|
||||
streamSkipUntil(','); // skip port
|
||||
streamSkipUntil(','); // skip connection type (TCP/UDP)
|
||||
size_t len = stream.readStringUntil('\n').toInt(); // read length
|
||||
sockets[mux]->sock_available = len;
|
||||
|
||||
for (size_t i=0; i<len; i++) {
|
||||
TINY_GSM_MODEM_STREAM_TO_MUX_FIFO_WITH_DOUBLE_TIMEOUT
|
||||
sockets[mux]->sock_available--;
|
||||
|
@@ -628,8 +628,6 @@ protected:
|
||||
streamSkipUntil(','); // skip port
|
||||
streamSkipUntil(','); // skip connection type (TCP/UDP)
|
||||
size_t len = stream.readStringUntil('\n').toInt(); // read length
|
||||
sockets[mux]->sock_available = len;
|
||||
|
||||
for (size_t i=0; i<len; i++) {
|
||||
TINY_GSM_MODEM_STREAM_TO_MUX_FIFO_WITH_DOUBLE_TIMEOUT
|
||||
sockets[mux]->sock_available--;
|
||||
|
@@ -183,23 +183,16 @@ public:
|
||||
String getModemName() {
|
||||
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"));
|
||||
String res2;
|
||||
if (waitResponse(1000L, res2) != 1) {
|
||||
return name;
|
||||
}
|
||||
res2.replace(GSM_NL "OK" GSM_NL, "");
|
||||
res2.replace("_", " ");
|
||||
res2.trim();
|
||||
|
||||
name = res1 + String(' ') + res2;
|
||||
name = res2;
|
||||
DBG("### Modem:", name);
|
||||
return name;
|
||||
}
|
||||
|
@@ -195,23 +195,16 @@ public:
|
||||
name = "SIMCom SIM900";
|
||||
#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"));
|
||||
String res2;
|
||||
if (waitResponse(1000L, res2) != 1) {
|
||||
return name;
|
||||
}
|
||||
res2.replace(GSM_NL "OK" GSM_NL, "");
|
||||
res2.replace("_", " ");
|
||||
res2.trim();
|
||||
|
||||
name = res1 + String(' ') + res2;
|
||||
name = res2;
|
||||
DBG("### Modem:", name);
|
||||
return name;
|
||||
}
|
||||
|
@@ -100,7 +100,7 @@ TINY_GSM_CLIENT_CONNECT_OVERLOADS()
|
||||
// that it wants from the socket even if it was closed externally.
|
||||
rx.clear();
|
||||
at->maintain();
|
||||
while (sock_available > 0) {
|
||||
while (sock_connected && sock_available > 0) {
|
||||
at->modemRead(TinyGsmMin((uint16_t)rx.free(), sock_available), mux);
|
||||
rx.clear();
|
||||
at->maintain();
|
||||
@@ -613,6 +613,7 @@ protected:
|
||||
streamSkipUntil('\"');
|
||||
waitResponse();
|
||||
DBG("### READ:", len, "from", mux);
|
||||
sockets[mux]->sock_available = modemGetAvailable();
|
||||
return len;
|
||||
}
|
||||
|
||||
@@ -628,8 +629,10 @@ protected:
|
||||
result = stream.readStringUntil('\n').toInt();
|
||||
// if (result) DBG("### DATA AVAILABLE:", result, "on", mux);
|
||||
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);
|
||||
}
|
||||
return result;
|
||||
|
@@ -624,7 +624,7 @@ protected:
|
||||
}
|
||||
DBG("### Read:", len, "from", mux);
|
||||
waitResponse();
|
||||
// sockets[mux % TINY_GSM_MUX_COUNT]->sock_available = modemGetAvailable(mux);
|
||||
sockets[mux % TINY_GSM_MUX_COUNT]->sock_available = modemGetAvailable(mux);
|
||||
return len;
|
||||
}
|
||||
|
||||
|
@@ -100,7 +100,7 @@ TINY_GSM_CLIENT_CONNECT_OVERLOADS()
|
||||
// that it wants from the socket even if it was closed externally.
|
||||
rx.clear();
|
||||
at->maintain();
|
||||
while (sock_available > 0) {
|
||||
while (sock_connected && sock_available > 0) {
|
||||
at->modemRead(TinyGsmMin((uint16_t)rx.free(), sock_available), mux);
|
||||
rx.clear();
|
||||
at->maintain();
|
||||
@@ -601,6 +601,7 @@ protected:
|
||||
streamSkipUntil('\"');
|
||||
waitResponse();
|
||||
DBG("### READ:", len, "from", mux);
|
||||
sockets[mux]->sock_available = modemGetAvailable();
|
||||
return len;
|
||||
}
|
||||
|
||||
@@ -616,8 +617,10 @@ protected:
|
||||
result = stream.readStringUntil('\n').toInt();
|
||||
// if (result) DBG("### DATA AVAILABLE:", result, "on", mux);
|
||||
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);
|
||||
}
|
||||
return result;
|
||||
|
Reference in New Issue
Block a user