Re-Fix SIM7000

This commit is contained in:
Sara Damiano
2019-05-24 17:52:19 -04:00
parent 9e3e67473a
commit d55b5e6ed6
2 changed files with 10 additions and 13 deletions

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) { // This is actually be the number of bytes that will be remaining after the read
DBG(len_requested - len_confirmed, "fewer bytes confirmed than requested!"); for (size_t i=0; i<len_requested; i++) {
}
sockets[mux]->sock_available = len_confirmed;
for (size_t i=0; i<TinyGsmMin(len_confirmed, 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 len_requested;
return TinyGsmMin(len_confirmed, 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);
} }

View File

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