mirror of
				https://github.com/KevinMidboe/TinyGSM.git
				synced 2025-10-29 18:00:18 +00:00 
			
		
		
		
	Fix disconnect for SARA R4
This commit is contained in:
		| @@ -328,7 +328,6 @@ TINY_GSM_MODEM_GET_SIMCCID_CCID() | ||||
|     return SIM_ERROR; | ||||
|   } | ||||
|  | ||||
|  | ||||
| TINY_GSM_MODEM_GET_REGISTRATION_XREG(CEREG) | ||||
|  | ||||
| TINY_GSM_MODEM_GET_OPERATOR_COPS() | ||||
| @@ -501,7 +500,7 @@ TINY_GSM_MODEM_GET_GPRS_IP_CONNECTED() | ||||
|       return 0; | ||||
|     } | ||||
|  | ||||
|     int8_t res = stream.readStringUntil(',').toInt(); | ||||
|     int res = stream.readStringUntil(',').toInt(); | ||||
|     int8_t percent = res*20;  // return is 0-5 | ||||
|     // Wait for final OK | ||||
|     waitResponse(); | ||||
| @@ -576,8 +575,13 @@ protected: | ||||
|       sockets[mux]->sock_connected = false; | ||||
|       return true; | ||||
|     } | ||||
|     bool success; | ||||
|     sendAT(GF("+USOCL="), mux); | ||||
|     return 1 == waitResponse(120000L);  // can take up to 120s to get a response | ||||
|     success = 1 == waitResponse(120000L);  // can take up to 120s to get a response | ||||
|     if (success) { | ||||
|       sockets[mux]->sock_connected = false; | ||||
|     } | ||||
|     return success; | ||||
|   } | ||||
|  | ||||
|   int16_t modemSend(const void* buff, size_t len, uint8_t mux) { | ||||
| @@ -629,12 +633,11 @@ protected: | ||||
|       result = stream.readStringUntil('\n').toInt(); | ||||
|       // if (result) DBG("### DATA AVAILABLE:", result, "on", mux); | ||||
|       waitResponse(); | ||||
|     } else if (res == 3) { | ||||
|       streamSkipUntil('\n'); // Skip the error text | ||||
|     } | ||||
|     if (!result) { | ||||
|       sockets[mux]->sock_connected = modemGetConnected(mux); | ||||
|     } | ||||
|     DBG("### AVAILABLE:", result, "on", mux); | ||||
|     return result; | ||||
|   } | ||||
|  | ||||
| @@ -701,6 +704,9 @@ TINY_GSM_MODEM_STREAM_UTILITIES() | ||||
|           goto finish; | ||||
|         } else if (r3 && data.endsWith(r3)) { | ||||
|           index = 3; | ||||
|           if (r3 == GFP(GSM_CME_ERROR)) { | ||||
|             streamSkipUntil('\n');  // Read out the error | ||||
|           } | ||||
|           goto finish; | ||||
|         } else if (r4 && data.endsWith(r4)) { | ||||
|           index = 4; | ||||
| @@ -723,7 +729,7 @@ TINY_GSM_MODEM_STREAM_UTILITIES() | ||||
|             sockets[mux]->sock_connected = false; | ||||
|           } | ||||
|           data = ""; | ||||
|           DBG("### URC Sock Closed:", mux); | ||||
|           DBG("### URC Sock Closed: ", mux); | ||||
|         } | ||||
|       } | ||||
|     } while (millis() - startMillis < timeout_ms); | ||||
|   | ||||
| @@ -108,11 +108,11 @@ TINY_GSM_CLIENT_CONNECT_OVERLOADS() | ||||
|     at->modemDisconnect(mux); | ||||
|   } | ||||
|  | ||||
| TINY_GSM_CLIENT_WRITE() ; | ||||
| TINY_GSM_CLIENT_WRITE() | ||||
|  | ||||
| TINY_GSM_CLIENT_AVAILABLE_WITH_BUFFER_CHECK() ; | ||||
| TINY_GSM_CLIENT_AVAILABLE_WITH_BUFFER_CHECK() | ||||
|  | ||||
| TINY_GSM_CLIENT_READ_WITH_BUFFER_CHECK() ; | ||||
| TINY_GSM_CLIENT_READ_WITH_BUFFER_CHECK() | ||||
|  | ||||
| TINY_GSM_CLIENT_PEEK_FLUSH_CONNECTED() | ||||
|  | ||||
| @@ -575,8 +575,6 @@ protected: | ||||
|     //waitResponse(); | ||||
|  | ||||
|     // connect on the allocated socket | ||||
|     // TODO:  Use faster "asynchronous" connection? | ||||
|     // We would have to wait for the +UUSOCO URC to verify connection | ||||
|     sendAT(GF("+USOCO="), *mux, ",\"", host, "\",", port); | ||||
|     int rsp = waitResponse(timeout_ms); | ||||
|     return (1 == rsp); | ||||
| @@ -650,6 +648,7 @@ protected: | ||||
|     if (!result) { | ||||
|       sockets[mux]->sock_connected = modemGetConnected(mux); | ||||
|     } | ||||
|     DBG("### AVAILABLE:", result, "on", mux); | ||||
|     return result; | ||||
|   } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user