Browse Source

Re-Fix SIM7000

v_master
Sara Damiano 5 years ago
parent
commit
d55b5e6ed6
2 changed files with 10 additions and 13 deletions
  1. +10
    -12
      src/TinyGsmClientSIM7000.h
  2. +0
    -1
      src/TinyGsmClientSIM800.h

+ 10
- 12
src/TinyGsmClientSIM7000.h View File

@ -481,7 +481,6 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK()
return TinyGsmIpFromString(getLocalIP()); return TinyGsmIpFromString(getLocalIP());
} }
/* /*
* Phone Call functions * Phone Call functions
*/ */
@ -726,7 +725,7 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK()
} }
/* /*
* Battery functions
* Battery & temperature functions
*/ */
// Use: float vBatt = modem.getBattVoltage() / 1000.0; // Use: float vBatt = modem.getBattVoltage() / 1000.0;
@ -739,6 +738,7 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK()
streamSkipUntil(','); // Skip battery charge level streamSkipUntil(','); // Skip battery charge level
// return voltage in mV // return voltage in mV
uint16_t res = stream.readStringUntil(',').toInt(); uint16_t res = stream.readStringUntil(',').toInt();
// Wait for final OK
waitResponse(); waitResponse();
return res; return res;
} }
@ -751,6 +751,7 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK()
streamSkipUntil(','); // Skip battery charge status streamSkipUntil(','); // Skip battery charge status
// Read battery charge level // Read battery charge level
int res = stream.readStringUntil(',').toInt(); int res = stream.readStringUntil(',').toInt();
// Wait for final OK
waitResponse(); waitResponse();
return res; return res;
} }
@ -837,12 +838,8 @@ protected:
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. // ^^ Confirmed number of data bytes to be read, which may be less than requested.
// 0 indicates that no data can be read. // 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;
for (size_t i=0; i<TinyGsmMin(len_confirmed, len_requested) ; i++) {
// This is actually be the number of bytes that will be remaining after the read
for (size_t i=0; i<len_requested; i++) {
uint32_t startMillis = millis(); uint32_t startMillis = millis();
#ifdef TINY_GSM_USE_HEX #ifdef TINY_GSM_USE_HEX
while (stream.available() < 2 && (millis() - startMillis < sockets[mux]->_timeout)) { TINY_GSM_YIELD(); } while (stream.available() < 2 && (millis() - startMillis < sockets[mux]->_timeout)) { TINY_GSM_YIELD(); }
@ -855,12 +852,12 @@ 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
} }
DBG("### READ:", len_requested, "from", mux);
// sockets[mux]->sock_available = modemGetAvailable(mux);
sockets[mux]->sock_available = len_confirmed;
waitResponse(); waitResponse();
DBG("### READ:", TinyGsmMin(len_confirmed, len_requested), "from", mux);
return TinyGsmMin(len_confirmed, len_requested);
return len_requested;
} }
size_t modemGetAvailable(uint8_t mux) { size_t modemGetAvailable(uint8_t mux) {
@ -872,6 +869,7 @@ protected:
result = stream.readStringUntil('\n').toInt(); result = stream.readStringUntil('\n').toInt();
waitResponse(); waitResponse();
} }
DBG("### Available:", result, "on", mux);
if (!result) { if (!result) {
sockets[mux]->sock_connected = modemGetConnected(mux); sockets[mux]->sock_connected = modemGetConnected(mux);
} }


+ 0
- 1
src/TinyGsmClientSIM800.h View File

@ -459,7 +459,6 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK()
return true; return true;
} }
/* /*
* IP Address functions * IP Address functions
*/ */


Loading…
Cancel
Save