add not applicable as restart reason

This commit is contained in:
technyon
2023-03-09 21:07:14 +01:00
parent 10608040c5
commit 1b60087b27
3 changed files with 15 additions and 4 deletions

View File

@@ -18,6 +18,7 @@ enum class RestartReason
OTAAborted, OTAAborted,
OTAUnknownState, OTAUnknownState,
DeviceUnpaired, DeviceUnpaired,
NotApplicable
}; };
#define RESTART_REASON_VALID_DETECT 0xa00ab00bc00bd00d; #define RESTART_REASON_VALID_DETECT 0xa00ab00bc00bd00d;
@@ -25,6 +26,8 @@ enum class RestartReason
extern int restartReason; extern int restartReason;
extern uint64_t restartReasonValid; extern uint64_t restartReasonValid;
extern RestartReason currentRestartReason;
inline static void restartEsp(RestartReason reason) inline static void restartEsp(RestartReason reason)
{ {
restartReason = (int)reason; restartReason = (int)reason;
@@ -32,15 +35,19 @@ inline static void restartEsp(RestartReason reason)
ESP.restart(); ESP.restart();
} }
inline static String getRestartReason() inline static void initializeRestartReason()
{ {
uint64_t cmp = RESTART_REASON_VALID_DETECT; 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: case RestartReason::RequestedViaMqtt:
return "RequestedViaMqtt"; return "RequestedViaMqtt";
@@ -74,6 +81,8 @@ inline static String getRestartReason()
return "OTAUnknownState"; return "OTAUnknownState";
case RestartReason::DeviceUnpaired: case RestartReason::DeviceUnpaired:
return "DeviceUnpaired"; return "DeviceUnpaired";
case RestartReason::NotApplicable:
return "NotApplicable";
default: default:
return "Unknown: " + restartReason; return "Unknown: " + restartReason;
} }

View File

@@ -31,6 +31,7 @@ unsigned long restartTs = (2^32) - 5 * 60000;
RTC_NOINIT_ATTR int restartReason; RTC_NOINIT_ATTR int restartReason;
RTC_NOINIT_ATTR uint64_t restartReasonValid; RTC_NOINIT_ATTR uint64_t restartReasonValid;
RestartReason currentRestartReason = RestartReason::NotApplicable;
TaskHandle_t networkTaskHandle = nullptr; TaskHandle_t networkTaskHandle = nullptr;
TaskHandle_t nukiTaskHandle = nullptr; TaskHandle_t nukiTaskHandle = nullptr;
@@ -167,6 +168,7 @@ void setup()
Log->print(F("NUKI Hub version ")); Log->println(NUKI_HUB_VERSION); Log->print(F("NUKI Hub version ")); Log->println(NUKI_HUB_VERSION);
bool firstStart = initPreferences(); bool firstStart = initPreferences();
initializeRestartReason();
if(preferences->getInt(preference_restart_timer) > 0) if(preferences->getInt(preference_restart_timer) > 0)
{ {

Binary file not shown.