|
|
@ -481,7 +481,6 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK() |
|
|
|
return TinyGsmIpFromString(getLocalIP()); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/* |
|
|
|
* 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; |
|
|
@ -739,6 +738,7 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK() |
|
|
|
streamSkipUntil(','); // Skip battery charge level |
|
|
|
// return voltage in mV |
|
|
|
uint16_t res = stream.readStringUntil(',').toInt(); |
|
|
|
// Wait for final OK |
|
|
|
waitResponse(); |
|
|
|
return res; |
|
|
|
} |
|
|
@ -751,6 +751,7 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK() |
|
|
|
streamSkipUntil(','); // Skip battery charge status |
|
|
|
// Read battery charge level |
|
|
|
int res = stream.readStringUntil(',').toInt(); |
|
|
|
// Wait for final OK |
|
|
|
waitResponse(); |
|
|
|
return res; |
|
|
|
} |
|
|
@ -837,12 +838,8 @@ protected: |
|
|
|
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; |
|
|
|
|
|
|
|
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(); |
|
|
|
#ifdef TINY_GSM_USE_HEX |
|
|
|
while (stream.available() < 2 && (millis() - startMillis < sockets[mux]->_timeout)) { TINY_GSM_YIELD(); } |
|
|
@ -855,12 +852,12 @@ 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 |
|
|
|
} |
|
|
|
DBG("### READ:", len_requested, "from", mux); |
|
|
|
// sockets[mux]->sock_available = modemGetAvailable(mux); |
|
|
|
sockets[mux]->sock_available = len_confirmed; |
|
|
|
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) { |
|
|
@ -872,6 +869,7 @@ protected: |
|
|
|
result = stream.readStringUntil('\n').toInt(); |
|
|
|
waitResponse(); |
|
|
|
} |
|
|
|
DBG("### Available:", result, "on", mux); |
|
|
|
if (!result) { |
|
|
|
sockets[mux]->sock_connected = modemGetConnected(mux); |
|
|
|
} |
|
|
|