mirror of
https://github.com/OpenEPaperLink/OpenEPaperLink.git
synced 2026-03-24 06:06:26 +01:00
fixed sntp blocking on no internet connection
This commit is contained in:
@@ -8,7 +8,7 @@
|
||||
#define WAKEUP_REASON_NETWORK_SCAN 0xFD
|
||||
#define WAKEUP_REASON_WDT_RESET 0xFE
|
||||
|
||||
void init_time();
|
||||
void initTime(void* parameter);
|
||||
void logLine(char* buffer);
|
||||
void logLine(String text);
|
||||
void logStartUp();
|
||||
|
||||
@@ -26,9 +26,11 @@ void pinTest();
|
||||
|
||||
void delayedStart(void* parameter) {
|
||||
vTaskDelay(30000 / portTICK_PERIOD_MS);
|
||||
Serial.println("Resuming content generation");
|
||||
wsLog("resuming content generation");
|
||||
config.runStatus = RUNSTATUS_RUN;
|
||||
if (config.runStatus != RUNSTATUS_RUN) {
|
||||
Serial.println("Starting content generation");
|
||||
wsLog("starting content generation");
|
||||
config.runStatus = RUNSTATUS_RUN;
|
||||
}
|
||||
vTaskDelay(10 / portTICK_PERIOD_MS);
|
||||
vTaskDelete(NULL);
|
||||
}
|
||||
@@ -123,8 +125,6 @@ void setup() {
|
||||
#endif
|
||||
|
||||
initAPconfig();
|
||||
configTzTime(config.timeZone, "0.nl.pool.ntp.org", "europe.pool.ntp.org", "time.nist.gov");
|
||||
// https://github.com/nayarsystems/posix_tz_db/blob/master/zones.csv
|
||||
|
||||
updateLanguageFromConfig();
|
||||
updateBrightnessFromConfig();
|
||||
@@ -142,20 +142,15 @@ void setup() {
|
||||
vTaskDelay(10 / portTICK_PERIOD_MS);
|
||||
|
||||
config.runStatus = RUNSTATUS_INIT;
|
||||
|
||||
xTaskCreate(timeTask, "timed tasks", 12000, NULL, 2, NULL);
|
||||
|
||||
init_time();
|
||||
logStartUp();
|
||||
|
||||
esp_reset_reason_t resetReason = esp_reset_reason();
|
||||
if (resetReason == ESP_RST_PANIC) {
|
||||
Serial.println("Panic! Pausing content generation for 30 seconds");
|
||||
config.runStatus = RUNSTATUS_PAUSE;
|
||||
xTaskCreate(delayedStart, "delaystart", 2000, NULL, 2, NULL);
|
||||
} else {
|
||||
config.runStatus = RUNSTATUS_RUN;
|
||||
}
|
||||
|
||||
xTaskCreate(timeTask, "timed tasks", 12000, NULL, 2, NULL);
|
||||
xTaskCreate(initTime, "init time", 5000, NULL, 2, NULL);
|
||||
xTaskCreate(delayedStart, "delaystart", 2000, NULL, 2, NULL);
|
||||
}
|
||||
|
||||
void loop() {
|
||||
|
||||
@@ -478,14 +478,16 @@ void processDataReq(struct espAvailDataReq* eadr, bool local) {
|
||||
memset(taginfo->md5, 0, 16 * sizeof(uint8_t));
|
||||
memset(taginfo->md5pending, 0, 16 * sizeof(uint8_t));
|
||||
|
||||
const char* reason = "";
|
||||
if (eadr->adr.wakeupReason == WAKEUP_REASON_FIRSTBOOT) reason = "Booting";
|
||||
else if (eadr->adr.wakeupReason == WAKEUP_REASON_NETWORK_SCAN) reason = "Network scan";
|
||||
else if (eadr->adr.wakeupReason == WAKEUP_REASON_WDT_RESET) reason = "Watchdog reset";
|
||||
sprintf(buffer, "%02X%02X%02X%02X%02X%02X%02X%02X %s", eadr->src[7], eadr->src[6], eadr->src[5], eadr->src[4], eadr->src[3], eadr->src[2], eadr->src[1], eadr->src[0], reason);
|
||||
logLine(buffer);
|
||||
if (local) {
|
||||
const char* reason = "";
|
||||
if (eadr->adr.wakeupReason == WAKEUP_REASON_FIRSTBOOT) reason = "Booting";
|
||||
else if (eadr->adr.wakeupReason == WAKEUP_REASON_NETWORK_SCAN) reason = "Network scan";
|
||||
else if (eadr->adr.wakeupReason == WAKEUP_REASON_WDT_RESET) reason = "Watchdog reset";
|
||||
sprintf(buffer, "%02X%02X%02X%02X%02X%02X%02X%02X %s", eadr->src[7], eadr->src[6], eadr->src[5], eadr->src[4], eadr->src[3], eadr->src[2], eadr->src[1], eadr->src[0], reason);
|
||||
logLine(buffer);
|
||||
}
|
||||
}
|
||||
if (taginfo->batteryMv != eadr->adr.batteryMv) {
|
||||
if (local && taginfo->batteryMv != eadr->adr.batteryMv) {
|
||||
sprintf(buffer, "%02X%02X%02X%02X%02X%02X%02X%02X battery went from %.2fV to %.2fV", eadr->src[7], eadr->src[6], eadr->src[5], eadr->src[4], eadr->src[3], eadr->src[2], eadr->src[1], eadr->src[0], static_cast<float>(taginfo->batteryMv) / 1000.0, static_cast<float>(eadr->adr.batteryMv) / 1000.0);
|
||||
logLine(buffer);
|
||||
}
|
||||
|
||||
@@ -2,10 +2,19 @@
|
||||
|
||||
#include <Arduino.h>
|
||||
#include <FS.h>
|
||||
#include <sntp.h>
|
||||
|
||||
#include "storage.h"
|
||||
#include "tag_db.h"
|
||||
|
||||
void init_time() {
|
||||
void timeSyncCallback(struct timeval* tv) {
|
||||
Serial.println("time succesfully synced");
|
||||
}
|
||||
|
||||
void initTime(void* parameter) {
|
||||
sntp_set_time_sync_notification_cb(timeSyncCallback);
|
||||
sntp_set_sync_interval(300 * 1000);
|
||||
configTzTime(config.timeZone, "nl.pool.ntp.org", "europe.pool.ntp.org", "time.nist.gov");
|
||||
struct tm timeinfo;
|
||||
while (true) {
|
||||
if (!getLocalTime(&timeinfo)) {
|
||||
@@ -15,6 +24,10 @@ void init_time() {
|
||||
break;
|
||||
}
|
||||
}
|
||||
logStartUp();
|
||||
if (config.runStatus = RUNSTATUS_INIT) config.runStatus = RUNSTATUS_RUN;
|
||||
vTaskDelay(10 / portTICK_PERIOD_MS);
|
||||
vTaskDelete(NULL);
|
||||
}
|
||||
|
||||
void logLine(char* buffer) {
|
||||
|
||||
Reference in New Issue
Block a user