add restart reason to sysinfo page
This commit is contained in:
68
RestartReason.h
Normal file
68
RestartReason.h
Normal file
@@ -0,0 +1,68 @@
|
||||
#pragma once
|
||||
|
||||
enum class RestartReason
|
||||
{
|
||||
RequestedViaMqtt,
|
||||
BLEBeaconWatchdog,
|
||||
RestartOnDisconnectWatchdog,
|
||||
RestartIntervalWatchdog,
|
||||
NetworkTimeoutWatchdog,
|
||||
WifiInitFailed,
|
||||
ReconfigureWifi,
|
||||
NetworkDeviceCriticalFailure,
|
||||
ConfigurationUpdated,
|
||||
RestartTimer,
|
||||
OTATimeout,
|
||||
DeviceUnpaired
|
||||
};
|
||||
|
||||
#define RESTART_REASON_VALID_DETECT 0xa00ab00bc00bd00d;
|
||||
|
||||
extern int restartReason;
|
||||
extern uint64_t restartReasonValid;
|
||||
|
||||
inline static void restartEsp(RestartReason reason)
|
||||
{
|
||||
restartReason = (int)reason;
|
||||
restartReasonValid = RESTART_REASON_VALID_DETECT;
|
||||
ESP.restart();
|
||||
}
|
||||
|
||||
inline static String getRestartReasion()
|
||||
{
|
||||
uint64_t cmp = RESTART_REASON_VALID_DETECT;
|
||||
if(restartReasonValid != cmp)
|
||||
{
|
||||
return "UnknownNoRestartRegistered";
|
||||
}
|
||||
|
||||
switch((RestartReason)restartReason)
|
||||
{
|
||||
case RestartReason::RequestedViaMqtt:
|
||||
return "RequestedViaMqtt";
|
||||
case RestartReason::BLEBeaconWatchdog:
|
||||
return "BLEBeaconWatchdog";
|
||||
case RestartReason::RestartOnDisconnectWatchdog:
|
||||
return "RestartOnDisconnectWatchdog";
|
||||
case RestartReason::RestartIntervalWatchdog:
|
||||
return "RestartIntervalWatchdog";
|
||||
case RestartReason::NetworkTimeoutWatchdog:
|
||||
return "NetworkTimeoutWatchdog";
|
||||
case RestartReason::WifiInitFailed:
|
||||
return "WifiInitFailed";
|
||||
case RestartReason::ReconfigureWifi:
|
||||
return "ReconfigureWifi";
|
||||
case RestartReason::NetworkDeviceCriticalFailure:
|
||||
return "NetworkDeviceCriticalFailure";
|
||||
case RestartReason::ConfigurationUpdated:
|
||||
return "ConfigurationUpdated";
|
||||
case RestartReason::RestartTimer:
|
||||
return "RestartTimer";
|
||||
case RestartReason::OTATimeout:
|
||||
return "OTATimeout";
|
||||
case RestartReason::DeviceUnpaired:
|
||||
return "DeviceUnpaired";
|
||||
default:
|
||||
return "Unknown: " + restartReason;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user