mirror of
				https://github.com/KevinMidboe/TinyGSM.git
				synced 2025-10-29 18:00:18 +00:00 
			
		
		
		
	Reordered some functions in the XBee
This commit is contained in:
		| @@ -724,6 +724,11 @@ public: | ||||
|    Utilities | ||||
|    */ | ||||
|  | ||||
|    void streamClear(void) { | ||||
|      TINY_GSM_YIELD(); | ||||
|      while (stream.available()) { stream.read(); } | ||||
|    } | ||||
|  | ||||
|   template<typename T> | ||||
|   void streamWrite(T last) { | ||||
|     stream.print(last); | ||||
| @@ -735,50 +740,6 @@ public: | ||||
|     streamWrite(tail...); | ||||
|   } | ||||
|  | ||||
|   void streamClear(void) { | ||||
|     TINY_GSM_YIELD(); | ||||
|     while (stream.available()) { stream.read(); } | ||||
|   } | ||||
|  | ||||
|   bool commandMode(int retries = 2) { | ||||
|     int triesMade = 0; | ||||
|     bool success = false; | ||||
|     streamClear();  // Empty everything in the buffer before starting | ||||
|     while (!success and triesMade < retries) { | ||||
|       // Cannot send anything for 1 "guard time" before entering command mode | ||||
|       // Default guard time is 1s, but the init fxn decreases it to 250 ms | ||||
|       delay(guardTime); | ||||
|       streamWrite(GF("+++"));  // enter command mode | ||||
|       DBG("+++"); | ||||
|       success = (1 == waitResponse(guardTime*2)); | ||||
|       triesMade ++; | ||||
|     } | ||||
|     return success; | ||||
|   } | ||||
|  | ||||
|   bool writeChanges(void) { | ||||
|     sendAT(GF("WR"));  // Write changes to flash | ||||
|     if (1 != waitResponse()) return false; | ||||
|     sendAT(GF("AC"));  // Apply changes | ||||
|     if (1 != waitResponse()) return false; | ||||
|     return true; | ||||
|   } | ||||
|  | ||||
|   void exitCommand(void) { | ||||
|     sendAT(GF("CN"));  // Exit command mode | ||||
|     waitResponse(); | ||||
|   } | ||||
|  | ||||
|   String readResponse(uint32_t timeout = 1000) { | ||||
|     TINY_GSM_YIELD(); | ||||
|     unsigned long startMillis = millis(); | ||||
|     while (!stream.available() && millis() - startMillis < timeout) {}; | ||||
|     String res = stream.readStringUntil('\r');  // lines end with carriage returns | ||||
|     res.trim(); | ||||
|     DBG("<<< ", res); | ||||
|     return res; | ||||
|   } | ||||
|  | ||||
|   template<typename... Args> | ||||
|   void sendAT(Args... cmd) { | ||||
|     streamWrite("AT", cmd..., GSM_NL); | ||||
| @@ -843,6 +804,7 @@ finish: | ||||
|         DBG("<<< ", data); | ||||
|       } | ||||
|     } | ||||
|     DBG('<', index, '>'); | ||||
|     return index; | ||||
|   } | ||||
|  | ||||
| @@ -860,6 +822,45 @@ finish: | ||||
|     return waitResponse(1000, r1, r2, r3, r4, r5); | ||||
|   } | ||||
|  | ||||
|   bool commandMode(int retries = 2) { | ||||
|     int triesMade = 0; | ||||
|     bool success = false; | ||||
|     streamClear();  // Empty everything in the buffer before starting | ||||
|     while (!success and triesMade < retries) { | ||||
|       // Cannot send anything for 1 "guard time" before entering command mode | ||||
|       // Default guard time is 1s, but the init fxn decreases it to 250 ms | ||||
|       delay(guardTime); | ||||
|       streamWrite(GF("+++"));  // enter command mode | ||||
|       DBG("+++"); | ||||
|       success = (1 == waitResponse(guardTime*2)); | ||||
|       triesMade ++; | ||||
|     } | ||||
|     return success; | ||||
|   } | ||||
|  | ||||
|   bool writeChanges(void) { | ||||
|     sendAT(GF("WR"));  // Write changes to flash | ||||
|     if (1 != waitResponse()) return false; | ||||
|     sendAT(GF("AC"));  // Apply changes | ||||
|     if (1 != waitResponse()) return false; | ||||
|     return true; | ||||
|   } | ||||
|  | ||||
|   void exitCommand(void) { | ||||
|     sendAT(GF("CN"));  // Exit command mode | ||||
|     waitResponse(); | ||||
|   } | ||||
|  | ||||
|   String readResponse(uint32_t timeout = 1000) { | ||||
|     TINY_GSM_YIELD(); | ||||
|     unsigned long startMillis = millis(); | ||||
|     while (!stream.available() && millis() - startMillis < timeout) {}; | ||||
|     String res = stream.readStringUntil('\r');  // lines end with carriage returns | ||||
|     res.trim(); | ||||
|     DBG("<<< ", res); | ||||
|     return res; | ||||
|   } | ||||
|  | ||||
| public: | ||||
|   Stream&       stream; | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user