Added Odometer and added EEPROM-End Detection
This commit is contained in:
parent
1c0ab060ff
commit
27437555f8
@ -432,6 +432,10 @@
|
||||
<td>TravelDistance_highRes</td>
|
||||
<td>%TRAVEL_DISTANCE_HIGHRES%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Odometer</td>
|
||||
<td>%ODOMETER%,%ODOMETER_M%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>checksum</td>
|
||||
<td>%PERSISTANCE_CHECKSUM%</td>
|
||||
|
@ -144,12 +144,18 @@ void FormatPersistence_EEPROM()
|
||||
|
||||
void MovePersistencePage_EEPROM(boolean reset)
|
||||
{
|
||||
eePersistenceMarker = reset ? sizeof(PersistenceData) : eePersistenceMarker + sizeof(PersistenceData);
|
||||
PersistenceData.writeCycleCounter = 0;
|
||||
|
||||
if (!checkEEPROMavailable())
|
||||
return;
|
||||
|
||||
eePersistenceMarker = eePersistenceMarker + sizeof(PersistenceData);
|
||||
PersistenceData.writeCycleCounter = 0;
|
||||
|
||||
// check if we reached the End of the EEPROM and Startover at the beginning
|
||||
if ((startofPersistence + eePersistenceMarker + sizeof(PersistenceData)) > ee.getDeviceSize() || reset)
|
||||
{
|
||||
eePersistenceMarker = 0;
|
||||
}
|
||||
|
||||
ee.updateByte(0, (uint8_t)(eePersistenceMarker >> 8));
|
||||
ee.updateByte(1, (uint8_t)(eePersistenceMarker & 0xFF));
|
||||
}
|
||||
|
@ -64,7 +64,9 @@ typedef struct
|
||||
{
|
||||
uint16_t writeCycleCounter = 0;
|
||||
uint32_t tankRemain_µl = 0;
|
||||
uint32_t TravelDistance_highRes = 0;
|
||||
uint32_t TravelDistance_highRes_mm = 0;
|
||||
uint32_t odometer_mm = 0;
|
||||
uint32_t odometer = 0;
|
||||
uint32_t checksum = 0;
|
||||
} persistenceData_t;
|
||||
|
||||
|
@ -11,7 +11,13 @@ void RunLubeApp(uint32_t add_milimeters)
|
||||
globals.systemStatus = sysStat_Error;
|
||||
|
||||
// Add traveled Distance in mm
|
||||
PersistenceData.TravelDistance_highRes += add_milimeters;
|
||||
PersistenceData.TravelDistance_highRes_mm += add_milimeters;
|
||||
PersistenceData.odometer_mm += add_milimeters;
|
||||
if (PersistenceData.odometer_mm >= 1000000)
|
||||
{
|
||||
PersistenceData.odometer++;
|
||||
PersistenceData.odometer_mm = 0;
|
||||
}
|
||||
|
||||
switch (globals.systemStatus)
|
||||
{
|
||||
@ -24,18 +30,18 @@ void RunLubeApp(uint32_t add_milimeters)
|
||||
break;
|
||||
|
||||
case sysStat_Normal:
|
||||
if (PersistenceData.TravelDistance_highRes / 1000 > LubeConfig.DistancePerLube_Default)
|
||||
if (PersistenceData.TravelDistance_highRes_mm / 1000 > LubeConfig.DistancePerLube_Default)
|
||||
{
|
||||
LubePulse();
|
||||
PersistenceData.TravelDistance_highRes = 0;
|
||||
PersistenceData.TravelDistance_highRes_mm = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case sysStat_Rain:
|
||||
if (PersistenceData.TravelDistance_highRes / 1000 > LubeConfig.DistancePerLube_Rain)
|
||||
if (PersistenceData.TravelDistance_highRes_mm / 1000 > LubeConfig.DistancePerLube_Rain)
|
||||
{
|
||||
LubePulse();
|
||||
PersistenceData.TravelDistance_highRes = 0;
|
||||
PersistenceData.TravelDistance_highRes_mm = 0;
|
||||
}
|
||||
break;
|
||||
case sysStat_Purge:
|
||||
|
@ -338,7 +338,7 @@ void RemoteDebug_dumpPersistance()
|
||||
{
|
||||
debugA("writeCycleCounter: %d", PersistenceData.writeCycleCounter);
|
||||
debugA("tankRemain_µl: %d", PersistenceData.tankRemain_µl);
|
||||
debugA("TravelDistance_highRes: %d", PersistenceData.TravelDistance_highRes);
|
||||
debugA("TravelDistance_highRes_mm: %d", PersistenceData.TravelDistance_highRes_mm);
|
||||
debugA("checksum: %d", PersistenceData.checksum);
|
||||
debugA("PSD Adress: 0x%04X", getPersistanceAddress());
|
||||
}
|
||||
@ -415,7 +415,6 @@ void trigger_ISR()
|
||||
|
||||
void LED_Process(uint8_t override, CRGB SetColor)
|
||||
{
|
||||
|
||||
typedef enum
|
||||
{
|
||||
LED_Startup,
|
||||
|
@ -74,7 +74,11 @@ String processor(const String &var)
|
||||
if (var == "TANK_REMAIN_UL")
|
||||
return String(PersistenceData.tankRemain_µl);
|
||||
if (var == "TRAVEL_DISTANCE_HIGHRES")
|
||||
return String(PersistenceData.TravelDistance_highRes);
|
||||
return String(PersistenceData.TravelDistance_highRes_mm);
|
||||
if (var == "ODOMETER")
|
||||
return String(PersistenceData.odometer);
|
||||
if (var == "ODOMETER_M")
|
||||
return String(PersistenceData.odometer_mm / 1000);
|
||||
if (var == "PERSISTANCE_CHECKSUM")
|
||||
{
|
||||
char buffer[7];
|
||||
|
Loading…
x
Reference in New Issue
Block a user