Browse Source

De-increment sock available as we read out of sock

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

+ 2
- 0
.gitignore View File

@ -14,6 +14,8 @@
.cproject .cproject
.project .project
.settings .settings
.pioenvs
.piolibdeps
.pio/* .pio/*
.clang_complete .clang_complete
.gcc-flags.json .gcc-flags.json


+ 2
- 0
src/TinyGsmClientBG96.h View File

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


+ 2
- 0
src/TinyGsmClientM95.h View File

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


+ 2
- 0
src/TinyGsmClientMC60.h View File

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


+ 4
- 2
src/TinyGsmClientSIM7000.h View File

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


+ 4
- 2
src/TinyGsmClientSIM800.h View File

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


+ 2
- 0
src/TinyGsmClientSaraR4.h View File

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


+ 3
- 1
src/TinyGsmClientSequansMonarch.h View File

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


+ 2
- 0
src/TinyGsmClientUBLOX.h View File

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


+ 1
- 1
src/TinyGsmCommon.h View File

@ -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) {


Loading…
Cancel
Save