De-increment sock available as we read out of sock
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -14,6 +14,8 @@
|
||||
.cproject
|
||||
.project
|
||||
.settings
|
||||
.pioenvs
|
||||
.piolibdeps
|
||||
.pio/*
|
||||
.clang_complete
|
||||
.gcc-flags.json
|
||||
|
@@ -548,6 +548,8 @@ protected:
|
||||
|
||||
for (size_t i=0; i<len; i++) {
|
||||
TINY_GSM_MODEM_STREAM_TO_MUX_FIFO_WITH_DOUBLE_TIMEOUT
|
||||
sockets[mux]->sock_available--;
|
||||
// ^^ One less character available after moving from modem's FIFO to our FIFO
|
||||
}
|
||||
waitResponse();
|
||||
DBG("### READ:", len, "from", mux);
|
||||
|
@@ -615,6 +615,8 @@ protected:
|
||||
|
||||
for (size_t i=0; i<len; i++) {
|
||||
TINY_GSM_MODEM_STREAM_TO_MUX_FIFO_WITH_DOUBLE_TIMEOUT
|
||||
sockets[mux]->sock_available--;
|
||||
// ^^ One less character available after moving from modem's FIFO to our FIFO
|
||||
}
|
||||
waitResponse();
|
||||
DBG("### READ:", len, "from", mux);
|
||||
|
@@ -622,6 +622,8 @@ protected:
|
||||
|
||||
for (size_t i=0; i<len; i++) {
|
||||
TINY_GSM_MODEM_STREAM_TO_MUX_FIFO_WITH_DOUBLE_TIMEOUT
|
||||
sockets[mux]->sock_available--;
|
||||
// ^^ One less character available after moving from modem's FIFO to our FIFO
|
||||
}
|
||||
waitResponse();
|
||||
DBG("### READ:", len, "from", mux);
|
||||
|
@@ -835,12 +835,12 @@ protected:
|
||||
size_t len_requested = stream.readStringUntil(',').toInt();
|
||||
// ^^ Requested number of data bytes (1-1460 bytes)to be read
|
||||
size_t len_confirmed = stream.readStringUntil('\n').toInt();
|
||||
// ^^ Confirmed number of data bytes to be read, which may be less than requested.
|
||||
// 0 indicates that no data can be read.
|
||||
if (len_confirmed < len_requested) {
|
||||
DBG(len_requested - len_confirmed, "fewer bytes confirmed than requested!");
|
||||
}
|
||||
sockets[mux]->sock_available = len_confirmed;
|
||||
// ^^ Confirmed number of data bytes to be read, which may be less than requested.
|
||||
// 0 indicates that no data can be read.
|
||||
|
||||
for (size_t i=0; i<TinyGsmMin(len_confirmed, len_requested) ; i++) {
|
||||
uint32_t startMillis = millis();
|
||||
@@ -855,6 +855,8 @@ protected:
|
||||
char c = stream.read();
|
||||
#endif
|
||||
sockets[mux]->rx.put(c);
|
||||
sockets[mux]->sock_available--;
|
||||
// ^^ One less character available after moving from modem's FIFO to our FIFO
|
||||
}
|
||||
waitResponse();
|
||||
DBG("### READ:", TinyGsmMin(len_confirmed, len_requested), "from", mux);
|
||||
|
@@ -765,12 +765,12 @@ protected:
|
||||
size_t len_requested = stream.readStringUntil(',').toInt();
|
||||
// ^^ Requested number of data bytes (1-1460 bytes)to be read
|
||||
size_t len_confirmed = stream.readStringUntil('\n').toInt();
|
||||
// ^^ Confirmed number of data bytes to be read, which may be less than requested.
|
||||
// 0 indicates that no data can be read.
|
||||
if (len_confirmed < len_requested) {
|
||||
DBG(len_requested - len_confirmed, "fewer bytes confirmed than requested!");
|
||||
}
|
||||
sockets[mux]->sock_available = len_confirmed;
|
||||
// ^^ Confirmed number of data bytes to be read, which may be less than requested.
|
||||
// 0 indicates that no data can be read.
|
||||
|
||||
for (size_t i=0; i<TinyGsmMin(len_confirmed, len_requested) ; i++) {
|
||||
uint32_t startMillis = millis();
|
||||
@@ -785,6 +785,8 @@ protected:
|
||||
char c = stream.read();
|
||||
#endif
|
||||
sockets[mux]->rx.put(c);
|
||||
sockets[mux]->sock_available--;
|
||||
// ^^ One less character available after moving from modem's FIFO to our FIFO
|
||||
}
|
||||
waitResponse();
|
||||
DBG("### READ:", TinyGsmMin(len_confirmed, len_requested), "from", mux);
|
||||
|
@@ -610,6 +610,8 @@ protected:
|
||||
|
||||
for (size_t i=0; i<len; i++) {
|
||||
TINY_GSM_MODEM_STREAM_TO_MUX_FIFO_WITH_DOUBLE_TIMEOUT
|
||||
sockets[mux]->sock_available--;
|
||||
// ^^ One less character available after moving from modem's FIFO to our FIFO
|
||||
}
|
||||
streamSkipUntil('\"');
|
||||
waitResponse();
|
||||
|
@@ -621,10 +621,12 @@ protected:
|
||||
while (!stream.available() && ((millis() - startMillis) < sockets[mux % TINY_GSM_MUX_COUNT]->_timeout)) { TINY_GSM_YIELD(); } \
|
||||
char c = stream.read(); \
|
||||
sockets[mux % TINY_GSM_MUX_COUNT]->rx.put(c);
|
||||
sockets[mux % TINY_GSM_MUX_COUNT]->sock_available--;
|
||||
// ^^ One less character available after moving from modem's FIFO to our FIFO
|
||||
}
|
||||
// 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;
|
||||
}
|
||||
|
||||
|
@@ -598,6 +598,8 @@ protected:
|
||||
|
||||
for (size_t i=0; i<len; i++) {
|
||||
TINY_GSM_MODEM_STREAM_TO_MUX_FIFO_WITH_DOUBLE_TIMEOUT
|
||||
sockets[mux]->sock_available--;
|
||||
// ^^ One less character available after moving from modem's FIFO to our FIFO
|
||||
}
|
||||
streamSkipUntil('\"');
|
||||
waitResponse();
|
||||
|
@@ -100,7 +100,7 @@ uint32_t TinyGsmAutoBaud(T& SerialAT, uint32_t minimum = 9600, uint32_t maximum
|
||||
DBG("Trying baud rate", rate, "...");
|
||||
SerialAT.begin(rate);
|
||||
delay(10);
|
||||
for (int i=0; i<3; i++) {
|
||||
for (int i=0; i<10; i++) {
|
||||
SerialAT.print("AT\r\n");
|
||||
String input = SerialAT.readString();
|
||||
if (input.indexOf("OK") >= 0) {
|
||||
|
Reference in New Issue
Block a user