PersistenceData gets stored cyclic now.
This commit is contained in:
parent
6ae9c273cb
commit
055183ce90
@ -10,8 +10,8 @@ uint16_t eePersistenceMarker = 0;
|
|||||||
uint16_t eeVersion = 0; // inc
|
uint16_t eeVersion = 0; // inc
|
||||||
boolean eeAvailable = false;
|
boolean eeAvailable = false;
|
||||||
|
|
||||||
const uint16_t startofLubeConfig = sizeof(eePersistenceMarker);
|
const uint16_t startofLubeConfig = 16;
|
||||||
const uint16_t startofPersistence = sizeof(LubeConfig) + sizeof(eePersistenceMarker);
|
const uint16_t startofPersistence = 16 + sizeof(LubeConfig) + (sizeof(LubeConfig) % 16);
|
||||||
|
|
||||||
#if PCB_REVISION >= 12
|
#if PCB_REVISION >= 12
|
||||||
void InitEEPROM()
|
void InitEEPROM()
|
||||||
@ -52,7 +52,7 @@ void StoreConfig_EEPROM()
|
|||||||
#if PCB_REVISION >= 12
|
#if PCB_REVISION >= 12
|
||||||
if (!ee.isConnected())
|
if (!ee.isConnected())
|
||||||
return;
|
return;
|
||||||
ee.writeBlock(startofLubeConfig, (uint8_t *)&LubeConfig, sizeof(LubeConfig));
|
ee.updateBlock(startofLubeConfig, (uint8_t *)&LubeConfig, sizeof(LubeConfig));
|
||||||
#else
|
#else
|
||||||
EEPROM.begin(512);
|
EEPROM.begin(512);
|
||||||
EEPROM.put(startofLubeConfig, LubeConfig);
|
EEPROM.put(startofLubeConfig, LubeConfig);
|
||||||
@ -86,7 +86,7 @@ void GetConfig_EEPROM()
|
|||||||
|
|
||||||
void StorePersistence_EEPROM()
|
void StorePersistence_EEPROM()
|
||||||
{
|
{
|
||||||
if (PersistenceData.writeCycleCounter == 0xFFFF)
|
if (PersistenceData.writeCycleCounter >= 0xFFF0)
|
||||||
MovePersistencePage_EEPROM(false);
|
MovePersistencePage_EEPROM(false);
|
||||||
else
|
else
|
||||||
PersistenceData.writeCycleCounter++;
|
PersistenceData.writeCycleCounter++;
|
||||||
|
@ -62,7 +62,7 @@ typedef struct
|
|||||||
{
|
{
|
||||||
uint16_t writeCycleCounter = 0;
|
uint16_t writeCycleCounter = 0;
|
||||||
uint32_t tankRemain_µl = 0;
|
uint32_t tankRemain_µl = 0;
|
||||||
uint32_t distanceTraveled_m = 0;
|
uint32_t TravelDistance_highRes = 0;
|
||||||
uint32_t checksum = 0;
|
uint32_t checksum = 0;
|
||||||
} persistenceData_t;
|
} persistenceData_t;
|
||||||
|
|
||||||
|
@ -32,6 +32,5 @@ typedef struct Globals_s
|
|||||||
} Globals_t;
|
} Globals_t;
|
||||||
|
|
||||||
extern Globals_t globals;
|
extern Globals_t globals;
|
||||||
extern uint32_t TravelDistance_highRes;
|
|
||||||
|
|
||||||
#endif
|
#endif
|
@ -5,7 +5,7 @@ uint32_t lubePulseTimestamp = 0;
|
|||||||
void RunLubeApp(uint32_t add_milimeters)
|
void RunLubeApp(uint32_t add_milimeters)
|
||||||
{
|
{
|
||||||
// Add traveled Distance in mm
|
// Add traveled Distance in mm
|
||||||
TravelDistance_highRes += add_milimeters;
|
PersistenceData.TravelDistance_highRes += add_milimeters;
|
||||||
|
|
||||||
switch (globals.systemStatus)
|
switch (globals.systemStatus)
|
||||||
{
|
{
|
||||||
@ -18,18 +18,18 @@ void RunLubeApp(uint32_t add_milimeters)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case sysStat_Normal:
|
case sysStat_Normal:
|
||||||
if (TravelDistance_highRes / 1000 > LubeConfig.DistancePerLube_Default)
|
if (PersistenceData.TravelDistance_highRes / 1000 > LubeConfig.DistancePerLube_Default)
|
||||||
{
|
{
|
||||||
LubePulse();
|
LubePulse();
|
||||||
TravelDistance_highRes = 0;
|
PersistenceData.TravelDistance_highRes = 0;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case sysStat_Rain:
|
case sysStat_Rain:
|
||||||
if (TravelDistance_highRes / 1000 > LubeConfig.DistancePerLube_Rain)
|
if (PersistenceData.TravelDistance_highRes / 1000 > LubeConfig.DistancePerLube_Rain)
|
||||||
{
|
{
|
||||||
LubePulse();
|
LubePulse();
|
||||||
TravelDistance_highRes = 0;
|
PersistenceData.TravelDistance_highRes = 0;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case sysStat_Purge:
|
case sysStat_Purge:
|
||||||
|
@ -61,12 +61,14 @@ void Button_Process();
|
|||||||
void toggleWiFiAP(boolean shutdown = false);
|
void toggleWiFiAP(boolean shutdown = false);
|
||||||
void SystemShutdown();
|
void SystemShutdown();
|
||||||
uint32_t Process_Impulse_WheelSpeed();
|
uint32_t Process_Impulse_WheelSpeed();
|
||||||
|
void EEPROMCyclicPDS_callback();
|
||||||
|
|
||||||
#ifdef WIFI_CLIENT
|
#ifdef WIFI_CLIENT
|
||||||
void wifiMaintainConnectionTicker_callback();
|
void wifiMaintainConnectionTicker_callback();
|
||||||
Ticker WiFiMaintainConnectionTicker(wifiMaintainConnectionTicker_callback, 1000, 0, MILLIS);
|
Ticker WiFiMaintainConnectionTicker(wifiMaintainConnectionTicker_callback, 1000, 0, MILLIS);
|
||||||
#endif
|
#endif
|
||||||
Ticker UpdateWebUITicker(updateWebUITicker_callback, 5000, 0, MILLIS);
|
Ticker UpdateWebUITicker(updateWebUITicker_callback, 5000, 0, MILLIS);
|
||||||
|
Ticker EEPROMCyclicPDSTicker(EEPROMCyclicPDS_callback, 60000, 0, MILLIS);
|
||||||
|
|
||||||
void setup()
|
void setup()
|
||||||
{
|
{
|
||||||
@ -155,8 +157,7 @@ void setup()
|
|||||||
ArduinoOTA.begin();
|
ArduinoOTA.begin();
|
||||||
|
|
||||||
u8x8.clearDisplay();
|
u8x8.clearDisplay();
|
||||||
u8x8.drawString(4, 0, "Souko's");
|
u8x8.drawString(0, 0, "KTM ChainLube V1");
|
||||||
u8x8.drawString(1, 1, "ChainLube Mk1");
|
|
||||||
u8x8.refreshDisplay();
|
u8x8.refreshDisplay();
|
||||||
|
|
||||||
#if PCB_REVISION >= 13
|
#if PCB_REVISION >= 13
|
||||||
@ -165,6 +166,7 @@ void setup()
|
|||||||
|
|
||||||
initWebUI();
|
initWebUI();
|
||||||
UpdateWebUITicker.start();
|
UpdateWebUITicker.start();
|
||||||
|
EEPROMCyclicPDSTicker.start();
|
||||||
Serial.println("Setup Done");
|
Serial.println("Setup Done");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -188,6 +190,7 @@ void loop()
|
|||||||
|
|
||||||
RunLubeApp(wheelDistance);
|
RunLubeApp(wheelDistance);
|
||||||
UpdateWebUITicker.update();
|
UpdateWebUITicker.update();
|
||||||
|
EEPROMCyclicPDSTicker.update();
|
||||||
Display_Process();
|
Display_Process();
|
||||||
Button_Process();
|
Button_Process();
|
||||||
LED_Process();
|
LED_Process();
|
||||||
@ -298,7 +301,7 @@ void RemoteDebug_dumpPersistance()
|
|||||||
{
|
{
|
||||||
debugA("writeCycleCounter: %d", PersistenceData.writeCycleCounter);
|
debugA("writeCycleCounter: %d", PersistenceData.writeCycleCounter);
|
||||||
debugA("tankRemain_µl: %d", PersistenceData.tankRemain_µl);
|
debugA("tankRemain_µl: %d", PersistenceData.tankRemain_µl);
|
||||||
debugA("distanceTraveled_m: %d", PersistenceData.distanceTraveled_m);
|
debugA("TravelDistance_highRes: %d", PersistenceData.TravelDistance_highRes);
|
||||||
debugA("checksum: %d", PersistenceData.checksum);
|
debugA("checksum: %d", PersistenceData.checksum);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -366,6 +369,11 @@ void updateWebUITicker_callback()
|
|||||||
UpdateWebUI();
|
UpdateWebUI();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void EEPROMCyclicPDS_callback()
|
||||||
|
{
|
||||||
|
StorePersistence_EEPROM();
|
||||||
|
}
|
||||||
|
|
||||||
void trigger_ISR()
|
void trigger_ISR()
|
||||||
{
|
{
|
||||||
wheel_pulse++;
|
wheel_pulse++;
|
||||||
@ -528,7 +536,7 @@ void LED_Process(uint8_t override, CRGB SetColor)
|
|||||||
|
|
||||||
void Display_Process()
|
void Display_Process()
|
||||||
{
|
{
|
||||||
u8x8.setCursor(0, 2);
|
u8x8.setCursor(0, 1);
|
||||||
uint32_t DistRemain = globals.systemStatus == sysStat_Normal ? LubeConfig.DistancePerLube_Default : LubeConfig.DistancePerLube_Rain;
|
uint32_t DistRemain = globals.systemStatus == sysStat_Normal ? LubeConfig.DistancePerLube_Default : LubeConfig.DistancePerLube_Rain;
|
||||||
DistRemain -= TravelDistance_highRes / 1000;
|
DistRemain -= TravelDistance_highRes / 1000;
|
||||||
u8x8.printf("Mode: %10s\n", globals.systemStatustxt);
|
u8x8.printf("Mode: %10s\n", globals.systemStatustxt);
|
||||||
@ -538,6 +546,7 @@ void Display_Process()
|
|||||||
: WiFi.getMode() == WIFI_STA ? "CLIENT"
|
: WiFi.getMode() == WIFI_STA ? "CLIENT"
|
||||||
: "UNKNOWN"));
|
: "UNKNOWN"));
|
||||||
u8x8.printf("Source: %8s\n", SpeedSourceString[LubeConfig.SpeedSource]);
|
u8x8.printf("Source: %8s\n", SpeedSourceString[LubeConfig.SpeedSource]);
|
||||||
|
u8x8.printf("EE_PDS: %6d s\n", EEPROMCyclicPDSTicker.remaining() / 1000);
|
||||||
u8x8.refreshDisplay();
|
u8x8.refreshDisplay();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user