mirror of
				https://github.com/KevinMidboe/TinyGSM.git
				synced 2025-10-29 18:00:18 +00:00 
			
		
		
		
	Re-align Quectel 2G with manuals
This commit is contained in:
		| @@ -186,7 +186,7 @@ TINY_GSM_MODEM_SET_BAUD_IPR() | ||||
|  | ||||
| TINY_GSM_MODEM_TEST_AT() | ||||
|  | ||||
| TINY_GSM_MODEM_MAINTAIN_CHECK_SOCKS() | ||||
| TINY_GSM_MODEM_MAINTAIN_LISTEN() | ||||
|  | ||||
|   bool factoryDefault() { | ||||
|     sendAT(GF("&FZE0&W"));  // Factory + Reset + Echo Off + Write | ||||
| @@ -606,11 +606,21 @@ protected: | ||||
|   } | ||||
|  | ||||
|   size_t modemRead(size_t size, uint8_t mux) { | ||||
|     sendAT(GF("+QIRD="), mux, ',', size); | ||||
|     // TODO:  Does this work???? | ||||
|     // AT+QIRD=<id>,<sc>,<sid>,<len> | ||||
|     // id = GPRS context number - 0, set in GPRS connect | ||||
|     // sc = roll in connection - 1, client of connection | ||||
|     // sid = index of connection - mux | ||||
|     // len = maximum length of data to send | ||||
|     sendAT(GF("+QIRD=0,1,"), mux, ',', size); | ||||
|     // sendAT(GF("+QIRD="), mux, ',', size); | ||||
|     if (waitResponse(GF("+QIRD:")) != 1) { | ||||
|       return 0; | ||||
|     } | ||||
|     size_t len = stream.readStringUntil('\n').toInt(); | ||||
|     streamSkipUntil(':');  // skip IP address | ||||
|     streamSkipUntil(',');  // skip port | ||||
|     streamSkipUntil(',');  // skip connection type (TCP/UDP) | ||||
|     size_t len = stream.readStringUntil('\n').toInt();  // read length | ||||
|     sockets[mux]->sock_available = len; | ||||
|  | ||||
|     for (size_t i=0; i<len; i++) { | ||||
| @@ -618,27 +628,11 @@ protected: | ||||
|       sockets[mux]->sock_available--; | ||||
|       // ^^ One less character available after moving from modem's FIFO to our FIFO | ||||
|     } | ||||
|     waitResponse(); | ||||
|     waitResponse();  // ends with an OK | ||||
|     DBG("### READ:", len, "from", mux); | ||||
|     return len; | ||||
|   } | ||||
|  | ||||
|   size_t modemGetAvailable(uint8_t mux) { | ||||
|     sendAT(GF("+QIRD="), mux, GF(",0")); | ||||
|     size_t result = 0; | ||||
|     if (waitResponse(GF("+QIRD:")) == 1) { | ||||
|       streamSkipUntil(','); // Skip total received | ||||
|       streamSkipUntil(','); // Skip have read | ||||
|       result = stream.readStringUntil('\n').toInt(); | ||||
|       if (result) DBG("### DATA AVAILABLE:", result, "on", mux); | ||||
|       waitResponse(); | ||||
|     } | ||||
|     if (!result) { | ||||
|       sockets[mux]->sock_connected = modemGetConnected(mux); | ||||
|     } | ||||
|     return result; | ||||
|   } | ||||
|  | ||||
|   bool modemGetConnected(uint8_t mux) { | ||||
|     sendAT(GF("+QISTATE=1,"), mux); | ||||
|     //+QISTATE: 0,"TCP","151.139.237.11",80,5087,4,1,0,0,"uart1" | ||||
| @@ -702,7 +696,7 @@ TINY_GSM_MODEM_STREAM_UTILITIES() | ||||
|         } else if (r5 && data.endsWith(r5)) { | ||||
|           index = 5; | ||||
|           goto finish; | ||||
|         } else if (data.endsWith(GF(GSM_NL "+QIRD:"))) { | ||||
|         } else if (data.endsWith(GF(GSM_NL "+QIRD:"))) {  // TODO:  QIRD? or QIRDI? | ||||
|           streamSkipUntil(',');  // Skip the context | ||||
|           streamSkipUntil(',');  // Skip the role | ||||
|           int mux = stream.readStringUntil('\n').toInt(); | ||||
|   | ||||
| @@ -193,7 +193,7 @@ TINY_GSM_MODEM_SET_BAUD_IPR() | ||||
|  | ||||
| TINY_GSM_MODEM_TEST_AT() | ||||
|  | ||||
| TINY_GSM_MODEM_MAINTAIN_CHECK_SOCKS() | ||||
| TINY_GSM_MODEM_MAINTAIN_LISTEN() | ||||
|  | ||||
|   bool factoryDefault() { | ||||
|     sendAT(GF("&FZE0&W"));  // Factory + Reset + Echo Off + Write | ||||
| @@ -613,11 +613,21 @@ protected: | ||||
|   } | ||||
|  | ||||
|   size_t modemRead(size_t size, uint8_t mux) { | ||||
|     sendAT(GF("+QIRD="), mux, ',', size); | ||||
|     // TODO:  Does this work???? | ||||
|     // AT+QIRD=<id>,<sc>,<sid>,<len> | ||||
|     // id = GPRS context number - 0, set in GPRS connect | ||||
|     // sc = roll in connection - 1, client of connection | ||||
|     // sid = index of connection - mux | ||||
|     // len = maximum length of data to send | ||||
|     sendAT(GF("+QIRD=0,1,"), mux, ',', size); | ||||
|     // sendAT(GF("+QIRD="), mux, ',', size); | ||||
|     if (waitResponse(GF("+QIRD:")) != 1) { | ||||
|       return 0; | ||||
|     } | ||||
|     size_t len = stream.readStringUntil('\n').toInt(); | ||||
|     streamSkipUntil(':');  // skip IP address | ||||
|     streamSkipUntil(',');  // skip port | ||||
|     streamSkipUntil(',');  // skip connection type (TCP/UDP) | ||||
|     size_t len = stream.readStringUntil('\n').toInt();  // read length | ||||
|     sockets[mux]->sock_available = len; | ||||
|  | ||||
|     for (size_t i=0; i<len; i++) { | ||||
| @@ -630,22 +640,6 @@ protected: | ||||
|     return len; | ||||
|   } | ||||
|  | ||||
|   size_t modemGetAvailable(uint8_t mux) { | ||||
|     sendAT(GF("+QIRD="), mux, GF(",0")); | ||||
|     size_t result = 0; | ||||
|     if (waitResponse(GF("+QIRD:")) == 1) { | ||||
|       streamSkipUntil(','); // Skip total received | ||||
|       streamSkipUntil(','); // Skip have read | ||||
|       result = stream.readStringUntil('\n').toInt(); | ||||
|       if (result) DBG("### DATA AVAILABLE:", result, "on", mux); | ||||
|       waitResponse(); | ||||
|     } | ||||
|     if (!result) { | ||||
|       sockets[mux]->sock_connected = modemGetConnected(mux); | ||||
|     } | ||||
|     return result; | ||||
|   } | ||||
|  | ||||
|   bool modemGetConnected(uint8_t mux) { | ||||
|     sendAT(GF("+QISTATE=1,"), mux); | ||||
|     //+QISTATE: 0,"TCP","151.139.237.11",80,5087,4,1,0,0,"uart1" | ||||
| @@ -713,7 +707,7 @@ TINY_GSM_MODEM_STREAM_UTILITIES() | ||||
|         } else if (r6 && data.endsWith(r6)) { | ||||
|           index = 6; | ||||
|           goto finish; | ||||
|         } else if (data.endsWith(GF(GSM_NL "+QIRD:"))) { | ||||
|         } else if (data.endsWith(GF(GSM_NL "+QIRD:"))) {  // TODO:  QIRD? or QIRDI? | ||||
|           streamSkipUntil(',');  // Skip the context | ||||
|           streamSkipUntil(',');  // Skip the role | ||||
|           int mux = stream.readStringUntil('\n').toInt(); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user