mirror of
				https://github.com/KevinMidboe/TinyGSM.git
				synced 2025-10-29 18:00:18 +00:00 
			
		
		
		
	Removed SIM7000 factory reset which most recent AT manual has removed
This commit is contained in:
		| @@ -249,8 +249,6 @@ public: | ||||
|     if (!testAT()) { | ||||
|       return false; | ||||
|     } | ||||
|     sendAT(GF("&FZ"));  // Factory + Reset | ||||
|     waitResponse(); | ||||
|     sendAT(GF("E0"));   // Echo Off | ||||
|     if (waitResponse() != 1) { | ||||
|       return false; | ||||
| @@ -291,19 +289,8 @@ public: | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   bool factoryDefault() { | ||||
|     sendAT(GF("&FZE0&W"));  // Factory + Reset + Echo Off + Write | ||||
|     waitResponse(); | ||||
|     sendAT(GF("+IPR=0"));   // Auto-baud | ||||
|     waitResponse(); | ||||
|     sendAT(GF("+IFC=0,0")); // No Flow Control | ||||
|     waitResponse(); | ||||
|     sendAT(GF("+ICF=3,3")); // 8 data 0 parity 1 stop | ||||
|     waitResponse(); | ||||
|     sendAT(GF("+CSCLK=0")); // Disable Slow Clock | ||||
|     waitResponse(); | ||||
|     sendAT(GF("&W"));       // Write configuration | ||||
|     return waitResponse() == 1; | ||||
|   bool factoryDefault() {  // these commands aren't supported | ||||
|     return false; | ||||
|   } | ||||
|  | ||||
|   String getModemInfo() { | ||||
| @@ -352,7 +339,7 @@ public: | ||||
|     if (waitResponse(10000L) != 1) { | ||||
|       return false; | ||||
|     } | ||||
|     delay(3000); | ||||
|     delay(3000);  //TODO:  Test this delay | ||||
|     return init(); | ||||
|   } | ||||
|  | ||||
| @@ -371,8 +358,9 @@ public: | ||||
|   } | ||||
|  | ||||
|   /* | ||||
|     During sleep, the SIM7000 module has its serial communication disabled. In order to reestablish communication | ||||
|     pull the DRT-pin of the SIM7000 module LOW for at least 50ms. Then use this function to disable sleep mode. | ||||
|     During sleep, the SIM7000 module has its serial communication disabled. | ||||
|     In order to reestablish communication pull the DRT-pin of the SIM7000 module | ||||
|     LOW for at least 50ms. Then use this function to disable sleep mode. | ||||
|     The DTR-pin can then be released again. | ||||
|   */ | ||||
|   bool sleepEnable(bool enable = true) { | ||||
| @@ -418,7 +406,7 @@ public: | ||||
|         delay(1000); | ||||
|         continue; | ||||
|       } | ||||
|       int status = waitResponse(GF("READY"), GF("SIM PIN"), GF("SIM PUK"), GF("NOT INSERTED")); | ||||
|       int status = waitResponse(GF("READY"), GF("SIM PIN"), GF("SIM PUK")); | ||||
|       waitResponse(); | ||||
|       switch (status) { | ||||
|         case 2: | ||||
| @@ -471,16 +459,6 @@ public: | ||||
|     return (s == REG_OK_HOME || s == REG_OK_ROAMING); | ||||
|   } | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|   String getNetworkModes() { | ||||
|     sendAT(GF("+CNMP=?")); | ||||
|     if (waitResponse(GF(GSM_NL "+CNMP:")) != 1) { | ||||
| @@ -522,130 +500,6 @@ public: | ||||
|   } | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|   /* | ||||
|    * GPS location functions | ||||
|    */ | ||||
|  | ||||
|   // enable GPS | ||||
|   bool enableGPS() { | ||||
|     uint16_t state; | ||||
|  | ||||
|     sendAT(GF("+CGNSPWR=1")); | ||||
|     if (waitResponse() != 1) { | ||||
|       return false; | ||||
|     } | ||||
|  | ||||
|     return true; | ||||
|   } | ||||
|  | ||||
|   bool disableGPS() { | ||||
|     uint16_t state; | ||||
|  | ||||
|     sendAT(GF("+CGNSPWR=0")); | ||||
|     if (waitResponse() != 1) { | ||||
|       return false; | ||||
|     } | ||||
|  | ||||
|     return true; | ||||
|   } | ||||
|  | ||||
|   // get the RAW GPS output | ||||
|   String getGPSraw() { | ||||
|     sendAT(GF("+CGNSINF")); | ||||
|     if (waitResponse(GF(GSM_NL "+CGNSINF:")) != 1) { | ||||
|       return ""; | ||||
|     } | ||||
|     String res = stream.readStringUntil('\n'); | ||||
|     waitResponse(); | ||||
|     res.trim(); | ||||
|     return res; | ||||
|   } | ||||
|  | ||||
|   // get GPS informations | ||||
|   bool getGPS(float *lat, float *lon, float *speed=0, int *alt=0, int *vsat=0, int *usat=0) { | ||||
|     //String buffer = ""; | ||||
|     bool fix = false; | ||||
|  | ||||
|     sendAT(GF("+CGNSINF")); | ||||
|     if (waitResponse(GF(GSM_NL "+CGNSINF:")) != 1) { | ||||
|       return false; | ||||
|     } | ||||
|  | ||||
|     stream.readStringUntil(','); // mode | ||||
|     if ( stream.readStringUntil(',').toInt() == 1 ) fix = true; | ||||
|     stream.readStringUntil(','); //utctime | ||||
|     *lat =  stream.readStringUntil(',').toFloat(); //lat | ||||
|     *lon =  stream.readStringUntil(',').toFloat(); //lon | ||||
|     if (alt != NULL) *alt =  stream.readStringUntil(',').toFloat(); //lon | ||||
|     if (speed != NULL) *speed = stream.readStringUntil(',').toFloat(); //speed | ||||
|     stream.readStringUntil(','); | ||||
|     stream.readStringUntil(','); | ||||
|     stream.readStringUntil(','); | ||||
|     stream.readStringUntil(','); | ||||
|     stream.readStringUntil(','); | ||||
|     stream.readStringUntil(','); | ||||
|     stream.readStringUntil(','); | ||||
|     if (vsat != NULL) *vsat = stream.readStringUntil(',').toInt(); //viewed satelites | ||||
|     if (usat != NULL) *usat = stream.readStringUntil(',').toInt(); //used satelites | ||||
|     stream.readStringUntil('\n'); | ||||
|  | ||||
|     waitResponse(); | ||||
|  | ||||
|     return fix; | ||||
|   } | ||||
|  | ||||
|   // get GPS time | ||||
|   bool getGPSTime(int *year, int *month, int *day, int *hour, int *minute, int *second) { | ||||
|     bool fix = false; | ||||
|     char chr_buffer[12]; | ||||
|     sendAT(GF("+CGNSINF")); | ||||
|     if (waitResponse(GF(GSM_NL "+CGNSINF:")) != 1) { | ||||
|       return false; | ||||
|     } | ||||
|  | ||||
|     for (int i = 0; i < 3; i++) { | ||||
|       String buffer = stream.readStringUntil(','); | ||||
|       buffer.toCharArray(chr_buffer, sizeof(chr_buffer)); | ||||
|       switch (i) { | ||||
|         case 0: | ||||
|           //mode | ||||
|           break; | ||||
|         case 1: | ||||
|           //fixstatus | ||||
|           if ( buffer.toInt() == 1 ) { | ||||
|             fix = buffer.toInt(); | ||||
|           } | ||||
|           break; | ||||
|         case 2: | ||||
|           *year = buffer.substring(0,4).toInt(); | ||||
|           *month = buffer.substring(4,6).toInt(); | ||||
|           *day = buffer.substring(6,8).toInt(); | ||||
|           *hour = buffer.substring(8,10).toInt(); | ||||
|           *minute = buffer.substring(10,12).toInt(); | ||||
|           *second = buffer.substring(12,14).toInt(); | ||||
|           break; | ||||
|  | ||||
|         default: | ||||
|           // if nothing else matches, do the default | ||||
|           // default is optional | ||||
|           break; | ||||
|       } | ||||
|     } | ||||
|     String res = stream.readStringUntil('\n'); | ||||
|     waitResponse(); | ||||
|  | ||||
|     if (fix) { | ||||
|       return true; | ||||
|     } else { | ||||
|       return false; | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   /* | ||||
|    * GPRS functions | ||||
|    */ | ||||
| @@ -727,12 +581,6 @@ public: | ||||
|       return false; | ||||
|     } | ||||
|  | ||||
|     // Configure Domain Name Server (DNS) | ||||
|     sendAT(GF("+CDNSCFG=\"8.8.8.8\",\"8.8.4.4\"")); | ||||
|     if (waitResponse() != 1) { | ||||
|       return false; | ||||
|     } | ||||
|  | ||||
|     return true; | ||||
|   } | ||||
|  | ||||
| @@ -885,6 +733,73 @@ public: | ||||
|     return res; | ||||
|   } | ||||
|  | ||||
|  | ||||
|   /* | ||||
|    * GPS location functions | ||||
|    */ | ||||
|  | ||||
|   // enable GPS | ||||
|   bool enableGPS() { | ||||
|     sendAT(GF("+CGNSPWR=1")); | ||||
|     if (waitResponse() != 1) { | ||||
|       return false; | ||||
|     } | ||||
|     return true; | ||||
|   } | ||||
|  | ||||
|   bool disableGPS() { | ||||
|     sendAT(GF("+CGNSPWR=0")); | ||||
|     if (waitResponse() != 1) { | ||||
|       return false; | ||||
|     } | ||||
|     return true; | ||||
|   } | ||||
|  | ||||
|   // get the RAW GPS output | ||||
|   String getGPSraw() { | ||||
|     sendAT(GF("+CGNSINF")); | ||||
|     if (waitResponse(GF(GSM_NL "+CGNSINF:")) != 1) { | ||||
|       return ""; | ||||
|     } | ||||
|     String res = stream.readStringUntil('\n'); | ||||
|     waitResponse(); | ||||
|     res.trim(); | ||||
|     return res; | ||||
|   } | ||||
|  | ||||
|   // get GPS informations | ||||
|   bool getGPS(float *lat, float *lon, float *speed=0, int *alt=0, int *vsat=0, int *usat=0) { | ||||
|     //String buffer = ""; | ||||
|     bool fix = false; | ||||
|  | ||||
|     sendAT(GF("+CGNSINF")); | ||||
|     if (waitResponse(GF(GSM_NL "+CGNSINF:")) != 1) { | ||||
|       return false; | ||||
|     } | ||||
|  | ||||
|     stream.readStringUntil(','); // mode | ||||
|     if ( stream.readStringUntil(',').toInt() == 1 ) fix = true; | ||||
|     stream.readStringUntil(','); //utctime | ||||
|     *lat =  stream.readStringUntil(',').toFloat(); //lat | ||||
|     *lon =  stream.readStringUntil(',').toFloat(); //lon | ||||
|     if (alt != NULL) *alt =  stream.readStringUntil(',').toFloat(); //lon | ||||
|     if (speed != NULL) *speed = stream.readStringUntil(',').toFloat(); //speed | ||||
|     stream.readStringUntil(','); | ||||
|     stream.readStringUntil(','); | ||||
|     stream.readStringUntil(','); | ||||
|     stream.readStringUntil(','); | ||||
|     stream.readStringUntil(','); | ||||
|     stream.readStringUntil(','); | ||||
|     stream.readStringUntil(','); | ||||
|     if (vsat != NULL) *vsat = stream.readStringUntil(',').toInt(); //viewed satelites | ||||
|     if (usat != NULL) *usat = stream.readStringUntil(',').toInt(); //used satelites | ||||
|     stream.readStringUntil('\n'); | ||||
|  | ||||
|     waitResponse(); | ||||
|  | ||||
|     return fix; | ||||
|   } | ||||
|  | ||||
|   /* | ||||
|    * Time functions | ||||
|    */ | ||||
| @@ -911,6 +826,53 @@ public: | ||||
|     return res; | ||||
|   } | ||||
|  | ||||
|   // get GPS time | ||||
|   bool getGPSTime(int *year, int *month, int *day, int *hour, int *minute, int *second) { | ||||
|     bool fix = false; | ||||
|     char chr_buffer[12]; | ||||
|     sendAT(GF("+CGNSINF")); | ||||
|     if (waitResponse(GF(GSM_NL "+CGNSINF:")) != 1) { | ||||
|       return false; | ||||
|     } | ||||
|  | ||||
|     for (int i = 0; i < 3; i++) { | ||||
|       String buffer = stream.readStringUntil(','); | ||||
|       buffer.toCharArray(chr_buffer, sizeof(chr_buffer)); | ||||
|       switch (i) { | ||||
|         case 0: | ||||
|           //mode | ||||
|           break; | ||||
|         case 1: | ||||
|           //fixstatus | ||||
|           if ( buffer.toInt() == 1 ) { | ||||
|             fix = buffer.toInt(); | ||||
|           } | ||||
|           break; | ||||
|         case 2: | ||||
|           *year = buffer.substring(0,4).toInt(); | ||||
|           *month = buffer.substring(4,6).toInt(); | ||||
|           *day = buffer.substring(6,8).toInt(); | ||||
|           *hour = buffer.substring(8,10).toInt(); | ||||
|           *minute = buffer.substring(10,12).toInt(); | ||||
|           *second = buffer.substring(12,14).toInt(); | ||||
|           break; | ||||
|  | ||||
|         default: | ||||
|           // if nothing else matches, do the default | ||||
|           // default is optional | ||||
|           break; | ||||
|       } | ||||
|     } | ||||
|     String res = stream.readStringUntil('\n'); | ||||
|     waitResponse(); | ||||
|  | ||||
|     if (fix) { | ||||
|       return true; | ||||
|     } else { | ||||
|       return false; | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   /* | ||||
|    * Battery functions | ||||
|    */ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user