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