some Improvements with DTC and Init at Startup

This commit is contained in:
Marcel Peterkau 2022-05-06 22:38:24 +02:00
parent d5508137d3
commit b0ddece378
3 changed files with 27 additions and 4 deletions

View File

@ -19,6 +19,7 @@ void InitEEPROM()
if (!checkEEPROMavailable()) if (!checkEEPROMavailable())
{ {
globals.systemStatus = sysStat_Error; globals.systemStatus = sysStat_Error;
MaintainDTC(DTC_NO_EEPROM_FOUND, true);
return; return;
} }
GetConfig_EEPROM(); GetConfig_EEPROM();
@ -131,6 +132,7 @@ void FormatConfig_EEPROM()
{ {
LubeConfig_t defaults; LubeConfig_t defaults;
LubeConfig = defaults; LubeConfig = defaults;
LubeConfig.EEPROM_Version = eeVersion;
StoreConfig_EEPROM(); StoreConfig_EEPROM();
} }
@ -151,10 +153,10 @@ void MovePersistencePage_EEPROM(boolean reset)
PersistenceData.writeCycleCounter = 0; PersistenceData.writeCycleCounter = 0;
// check if we reached the End of the EEPROM and Startover at the beginning // check if we reached the End of the EEPROM and Startover at the beginning
if ((startofPersistence + eePersistenceMarker + sizeof(PersistenceData)) > ee.getDeviceSize() || reset) // if ((startofPersistence + eePersistenceMarker + sizeof(PersistenceData)) > ee.getDeviceSize() || reset)
{ // {
eePersistenceMarker = 0; // eePersistenceMarker = 0;
} // }
ee.updateByte(0, (uint8_t)(eePersistenceMarker >> 8)); ee.updateByte(0, (uint8_t)(eePersistenceMarker >> 8));
ee.updateByte(1, (uint8_t)(eePersistenceMarker & 0xFF)); ee.updateByte(1, (uint8_t)(eePersistenceMarker & 0xFF));

View File

@ -7,8 +7,18 @@ void RunLubeApp(uint32_t add_milimeters)
MaintainDTC(DTC_TANK_EMPTY, (PersistenceData.tankRemain_µl < LubeConfig.amountPerDose_µl)); MaintainDTC(DTC_TANK_EMPTY, (PersistenceData.tankRemain_µl < LubeConfig.amountPerDose_µl));
static tSystem_Status preserverSysStatusError;
if (getlastDTC(true) < DTC_LAST_DTC) if (getlastDTC(true) < DTC_LAST_DTC)
{
if (globals.systemStatus != sysStat_Error)
preserverSysStatusError = globals.systemStatus;
globals.systemStatus = sysStat_Error; globals.systemStatus = sysStat_Error;
}
else
{
globals.systemStatus = preserverSysStatusError;
}
// Add traveled Distance in mm // Add traveled Distance in mm
PersistenceData.TravelDistance_highRes_mm += add_milimeters; PersistenceData.TravelDistance_highRes_mm += add_milimeters;

View File

@ -59,6 +59,7 @@ void toggleWiFiAP(boolean shutdown = false);
void SystemShutdown(); void SystemShutdown();
uint32_t Process_Impulse_WheelSpeed(); uint32_t Process_Impulse_WheelSpeed();
void EEPROMCyclicPDS_callback(); void EEPROMCyclicPDS_callback();
void initGlobals();
#ifdef FEATURE_ENABLE_REMOTE_DEBUG #ifdef FEATURE_ENABLE_REMOTE_DEBUG
RemoteDebug Debug; RemoteDebug Debug;
@ -192,6 +193,7 @@ void setup()
u8x8.refreshDisplay(); u8x8.refreshDisplay();
initWebUI(); initWebUI();
initGlobals();
EEPROMCyclicPDSTicker.start(); EEPROMCyclicPDSTicker.start();
Serial.println("Setup Done"); Serial.println("Setup Done");
} }
@ -246,6 +248,14 @@ String IpAddress2String(const IPAddress &ipAddress)
String(ipAddress[3]); String(ipAddress[3]);
} }
void initGlobals()
{
globals.purgePulses = 0;
globals.requestEEAction = EE_IDLE;
globals.resumeStatus = sysStat_Normal;
globals.systemStatus = sysStat_Startup;
}
#ifdef FEATURE_ENABLE_REMOTE_DEBUG #ifdef FEATURE_ENABLE_REMOTE_DEBUG
void processCmdRemoteDebug() void processCmdRemoteDebug()
{ {
@ -309,6 +319,7 @@ void RemotDebug_printSystemInfo()
: "UNKNOWN")); : "UNKNOWN"));
debugA("OTA-Pass: %s", QUOTE(ADMIN_PASSWORD)); debugA("OTA-Pass: %s", QUOTE(ADMIN_PASSWORD));
debugA("Git-Revison: %s", GIT_REV); debugA("Git-Revison: %s", GIT_REV);
debugA("Sw-Version: %d.%02d", SW_VERSION_MAJOR, SW_VERSION_MINOR);
} }
void RemoteDebug_dumpConfig() void RemoteDebug_dumpConfig()