Browse Source

Merge remote-tracking branch 'Warlib1975/patch-3' into develop

Merge NTP sync for SIM800
v_master
Sara Damiano 5 years ago
parent
commit
f006268969
1 changed files with 72 additions and 0 deletions
  1. +72
    -0
      src/TinyGsmClientSIM800.h

+ 72
- 0
src/TinyGsmClientSIM800.h View File

@ -704,6 +704,78 @@ TINY_GSM_MODEM_WAIT_FOR_NETWORK()
waitResponse(); waitResponse();
return true; return true;
} }
/*
* NTP server functions
*/
boolean isValidNumber(String str)
{
boolean isNum = false;
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)
{
//Serial.println("Sync time with NTP server.");
sendAT(GF("+CNTPCID=1"));
if (waitResponse(10000L) != 1)
{
//Serial.println("AT command \"AT+CNTPCID=1\" executing fault.");
return -1;
}
String CNTP = "+CNTP=" + server + "," + String(TimeZone);
sendAT(GF(CNTP));
if (waitResponse(10000L) != 1)
{
//Serial.println("AT command \"" + CNTP + "\" executing fault.");
return -1;
}
sendAT(GF("+CNTP"));
if (waitResponse(10000L, GF(GSM_NL "+CNTP:")))
{
String result = stream.readStringUntil('\n');
result.trim();
if (isValidNumber(result))
{
return result.toInt();
}
}
else
{
//Serial.println("AT command \"+CNTP\" executing fault.");
return -1;
}
return -1;
}
float getTemperature() TINY_GSM_ATTR_NOT_AVAILABLE; float getTemperature() TINY_GSM_ATTR_NOT_AVAILABLE;


Loading…
Cancel
Save