From 1b60087b27411ad44aa361fbb7bb6983408eab93 Mon Sep 17 00:00:00 2001 From: technyon Date: Thu, 9 Mar 2023 21:07:14 +0100 Subject: [PATCH] add not applicable as restart reason --- RestartReason.h | 17 +++++++++++++---- main.cpp | 2 ++ webflash/nuki_hub.bin | Bin 1640528 -> 1640528 bytes 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/RestartReason.h b/RestartReason.h index 5c7815d..4542da3 100644 --- a/RestartReason.h +++ b/RestartReason.h @@ -18,6 +18,7 @@ enum class RestartReason OTAAborted, OTAUnknownState, DeviceUnpaired, + NotApplicable }; #define RESTART_REASON_VALID_DETECT 0xa00ab00bc00bd00d; @@ -25,6 +26,8 @@ enum class RestartReason extern int restartReason; extern uint64_t restartReasonValid; +extern RestartReason currentRestartReason; + inline static void restartEsp(RestartReason reason) { restartReason = (int)reason; @@ -32,15 +35,19 @@ inline static void restartEsp(RestartReason reason) ESP.restart(); } -inline static String getRestartReason() +inline static void initializeRestartReason() { uint64_t cmp = RESTART_REASON_VALID_DETECT; - if(restartReasonValid != cmp) + if(restartReasonValid == cmp) { - return "UnknownNoRestartRegistered"; + currentRestartReason = (RestartReason)restartReason; + memset(&restartReasonValid, 0, sizeof(restartReasonValid)); } +} - switch((RestartReason)restartReason) +inline static String getRestartReason() +{ + switch(currentRestartReason) { case RestartReason::RequestedViaMqtt: return "RequestedViaMqtt"; @@ -74,6 +81,8 @@ inline static String getRestartReason() return "OTAUnknownState"; case RestartReason::DeviceUnpaired: return "DeviceUnpaired"; + case RestartReason::NotApplicable: + return "NotApplicable"; default: return "Unknown: " + restartReason; } diff --git a/main.cpp b/main.cpp index 19b37eb..b6ffd5b 100644 --- a/main.cpp +++ b/main.cpp @@ -31,6 +31,7 @@ unsigned long restartTs = (2^32) - 5 * 60000; RTC_NOINIT_ATTR int restartReason; RTC_NOINIT_ATTR uint64_t restartReasonValid; +RestartReason currentRestartReason = RestartReason::NotApplicable; TaskHandle_t networkTaskHandle = nullptr; TaskHandle_t nukiTaskHandle = nullptr; @@ -167,6 +168,7 @@ void setup() Log->print(F("NUKI Hub version ")); Log->println(NUKI_HUB_VERSION); bool firstStart = initPreferences(); + initializeRestartReason(); if(preferences->getInt(preference_restart_timer) > 0) { diff --git a/webflash/nuki_hub.bin b/webflash/nuki_hub.bin index 08181ddd0532fd4d56828dca1a979070016208b1..e353d9db5257ff137b7825fc2a26c326bf049ea5 100644 GIT binary patch delta 190 zcmcaGA?3n^lnEOYau$7=@$q_ej!D1S$<8SyM*=-o_qBBv96r8*<9@UL;V07#?=l56 zD=@YzFoG}>5HkZY%XS4u)`#XyHGkTfEm?t>4T#x+m;;D8ftU-3xq+AmhIMM&0z!uX delta 190 zcmcaGA?3n^lnEOYzK7|~KQSvuUt<^hQPT>I?K5uNPgw9z@zfXdij1&g=Cjic?=l56 zD=@YzFoG}>5HkZY%XS4u)`#XyHfP$IEm?t>4T#x+m;;D8ftU-3xq+Amh