Added NTPServerSync() and related methoeds
This commit is contained in:
		@@ -140,6 +140,51 @@ class TinyGsmSim7000 : public TinyGsmModem<TinyGsmSim7000>,
 | 
				
			|||||||
  };
 | 
					  };
 | 
				
			||||||
  */
 | 
					  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					  boolean isValidNumber(String str) {
 | 
				
			||||||
 | 
					    if (!(str.charAt(0) == '+' || str.charAt(0) == '-' ||
 | 
				
			||||||
 | 
					          isDigit(str.charAt(0))))
 | 
				
			||||||
 | 
					      return false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    for (byte i = 1; i < str.length(); i++) {
 | 
				
			||||||
 | 
					      if (!(isDigit(str.charAt(i)) || str.charAt(i) == '.')) { return false; }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    return true;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  String ShowNTPError(byte error) {
 | 
				
			||||||
 | 
					    switch (error) {
 | 
				
			||||||
 | 
					      case 1: return "Network time synchronization is successful";
 | 
				
			||||||
 | 
					      case 61: return "Network error";
 | 
				
			||||||
 | 
					      case 62: return "DNS resolution error";
 | 
				
			||||||
 | 
					      case 63: return "Connection error";
 | 
				
			||||||
 | 
					      case 64: return "Service response error";
 | 
				
			||||||
 | 
					      case 65: return "Service response timeout";
 | 
				
			||||||
 | 
					      default: return "Unknown error: " + String(error);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  byte NTPServerSync(String server = "pool.ntp.org", byte TimeZone = 3) {
 | 
				
			||||||
 | 
					    // Set GPRS bearer profile to associate with NTP sync
 | 
				
			||||||
 | 
					    sendAT(GF("+CNTPCID=1"));
 | 
				
			||||||
 | 
					    if (waitResponse(10000L) != 1) { return -1; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Set NTP server and timezone
 | 
				
			||||||
 | 
					    sendAT(GF("+CNTP="), server, ',', String(TimeZone));
 | 
				
			||||||
 | 
					    if (waitResponse(10000L) != 1) { return -1; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Request network synchronization
 | 
				
			||||||
 | 
					    sendAT(GF("+CNTP"));
 | 
				
			||||||
 | 
					    if (waitResponse(10000L, GF(GSM_NL "+CNTP:"))) {
 | 
				
			||||||
 | 
					      String result = stream.readStringUntil('\n');
 | 
				
			||||||
 | 
					      result.trim();
 | 
				
			||||||
 | 
					      if (isValidNumber(result)) { return result.toInt(); }
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					      return -1;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    return -1;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					                         
 | 
				
			||||||
  /*
 | 
					  /*
 | 
				
			||||||
   * Constructor
 | 
					   * Constructor
 | 
				
			||||||
   */
 | 
					   */
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user