mirror of
https://github.com/meshtastic/firmware.git
synced 2025-08-03 04:15:53 +00:00
Use NTP time if connected to wifi
This commit is contained in:
parent
97ad7a1825
commit
38baebe48f
@ -1,5 +1,6 @@
|
|||||||
#include "mesh/http/WiFiAPClient.h"
|
#include "mesh/http/WiFiAPClient.h"
|
||||||
#include "NodeDB.h"
|
#include "NodeDB.h"
|
||||||
|
#include "RTC.h"
|
||||||
#include "concurrency/Periodic.h"
|
#include "concurrency/Periodic.h"
|
||||||
#include "configuration.h"
|
#include "configuration.h"
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
@ -9,9 +10,9 @@
|
|||||||
#include "target_specific.h"
|
#include "target_specific.h"
|
||||||
#include <DNSServer.h>
|
#include <DNSServer.h>
|
||||||
#include <ESPmDNS.h>
|
#include <ESPmDNS.h>
|
||||||
|
#include <NTPClient.h>
|
||||||
#include <WiFi.h>
|
#include <WiFi.h>
|
||||||
#include <WiFiUdp.h>
|
#include <WiFiUdp.h>
|
||||||
#include <NTPClient.h>
|
|
||||||
|
|
||||||
using namespace concurrency;
|
using namespace concurrency;
|
||||||
|
|
||||||
@ -55,8 +56,7 @@ static int32_t reconnectWiFi()
|
|||||||
const char *wifiName = radioConfig.preferences.wifi_ssid;
|
const char *wifiName = radioConfig.preferences.wifi_ssid;
|
||||||
const char *wifiPsw = radioConfig.preferences.wifi_password;
|
const char *wifiPsw = radioConfig.preferences.wifi_password;
|
||||||
|
|
||||||
if (radioConfig.has_preferences && needReconnect) {
|
if (radioConfig.has_preferences && needReconnect && !WiFi.isConnected()) {
|
||||||
|
|
||||||
|
|
||||||
if (!*wifiPsw) // Treat empty password as no password
|
if (!*wifiPsw) // Treat empty password as no password
|
||||||
wifiPsw = NULL;
|
wifiPsw = NULL;
|
||||||
@ -67,19 +67,27 @@ static int32_t reconnectWiFi()
|
|||||||
DEBUG_MSG("... Reconnecting to WiFi access point\n");
|
DEBUG_MSG("... Reconnecting to WiFi access point\n");
|
||||||
WiFi.mode(WIFI_MODE_STA);
|
WiFi.mode(WIFI_MODE_STA);
|
||||||
WiFi.begin(wifiName, wifiPsw);
|
WiFi.begin(wifiName, wifiPsw);
|
||||||
|
|
||||||
|
|
||||||
// Starting timeClient;
|
// Starting timeClient;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (*wifiName) {
|
//if (*wifiName) {
|
||||||
|
if (WiFi.isConnected()) {
|
||||||
DEBUG_MSG("Updating NTP time\n");
|
DEBUG_MSG("Updating NTP time\n");
|
||||||
timeClient.update();
|
if (timeClient.update()) {
|
||||||
|
DEBUG_MSG("NTP Request Success - Setting RTCQualityNTP if needed\n");
|
||||||
|
|
||||||
Serial.println(timeClient.getFormattedTime());
|
struct timeval tv;
|
||||||
Serial.println(timeClient.getEpochTime());
|
tv.tv_sec = timeClient.getEpochTime();
|
||||||
|
tv.tv_usec = 0;
|
||||||
|
|
||||||
|
perhapsSetRTC(RTCQualityNTP, &tv);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
DEBUG_MSG("NTP Update failed\n");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return 30 * 1000; // every 30 seconds
|
return 30 * 1000; // every 30 seconds
|
||||||
@ -149,6 +157,7 @@ static void onNetworkConnected()
|
|||||||
|
|
||||||
DEBUG_MSG("Starting NTP time client\n");
|
DEBUG_MSG("Starting NTP time client\n");
|
||||||
timeClient.begin();
|
timeClient.begin();
|
||||||
|
timeClient.setUpdateInterval(60*60); // Update once an hour
|
||||||
|
|
||||||
initWebServer();
|
initWebServer();
|
||||||
initApiServer();
|
initApiServer();
|
||||||
|
Loading…
Reference in New Issue
Block a user