propely handle sysstart and display Startup

This commit is contained in:
Marcel Peterkau 2023-04-17 23:12:13 +02:00
parent f33076a0a3
commit 3e77f89538
2 changed files with 52 additions and 21 deletions

View File

@ -5,6 +5,7 @@
typedef enum eSystem_Status
{
sysStat_null,
sysStat_Startup,
sysStat_Normal,
sysStat_Error,
@ -12,6 +13,7 @@ typedef enum eSystem_Status
} tSystem_Status;
const char sSystem_Status_txt[][9] = {
"Null",
"Startup",
"Normal",
"Error",

View File

@ -47,6 +47,7 @@ void SetBatteryType(batteryType_t type);
void ProcessKeyCombos(bool *btnState);
void OverrideDisplay(uint32_t time, const char *message1, const char *message2, const char *message3);
void initGlobals();
void maintainSysStat();
#ifdef FEATURE_ENABLE_LORA
void setMPins_Helper(int pin, int status);
@ -215,6 +216,7 @@ void setup()
void loop()
{
maintainSysStat();
tmrEEPROMCyclicPDS.update();
tmrFactionTicker.update();
@ -240,27 +242,6 @@ void loop()
tmrWiFiMaintainConnection.update();
#endif
switch (globals.systemStatus)
{
case sysStat_Error:
/* code */
break;
case sysStat_Normal:
/* code */
break;
case sysStat_Shutdown:
OverrideDisplay(SHUTDOWN_DELAY_MS, " re", "boot", " ");
SystemShutdown();
break;
case sysStat_Startup:
if (millis() > STARTUP_DELAY_MS)
globals.systemStatus = sysStat_Normal;
break;
default:
break;
}
yield();
}
@ -617,4 +598,52 @@ void ProcessKeyCombos(bool *btnState)
keyStatus_Fac2 = KEY_RELEASED;
keyStatus_Fac3 = KEY_RELEASED;
}
}
void maintainSysStat()
{
static tSystem_Status lastStat = sysStat_null;
// system Status Transistions
switch (globals.systemStatus)
{
case sysStat_Shutdown:
SystemShutdown();
break;
case sysStat_Startup:
if (millis() > STARTUP_DELAY_MS)
globals.systemStatus = sysStat_Normal;
break;
case sysStat_Error:
case sysStat_Normal:
case sysStat_null:
default:
break;
}
// system Status Changed Actions
if (lastStat != globals.systemStatus)
{
switch (globals.systemStatus)
{
case sysStat_Shutdown:
OverrideDisplay(SHUTDOWN_DELAY_MS, " re", "boot", " ");
break;
case sysStat_Startup:
OverrideDisplay(STARTUP_DELAY_MS, "star", "t up", " ");
break;
case sysStat_Error:
case sysStat_Normal:
case sysStat_null:
default:
break;
}
lastStat = globals.systemStatus;
}
}