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>TravelDistance_highRes</td>
|
||||||
<td>%TRAVEL_DISTANCE_HIGHRES%</td>
|
<td>%TRAVEL_DISTANCE_HIGHRES%</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Odometer</td>
|
||||||
|
<td>%ODOMETER%,%ODOMETER_M%</td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>checksum</td>
|
<td>checksum</td>
|
||||||
<td>%PERSISTANCE_CHECKSUM%</td>
|
<td>%PERSISTANCE_CHECKSUM%</td>
|
||||||
|
@ -144,12 +144,18 @@ void FormatPersistence_EEPROM()
|
|||||||
|
|
||||||
void MovePersistencePage_EEPROM(boolean reset)
|
void MovePersistencePage_EEPROM(boolean reset)
|
||||||
{
|
{
|
||||||
eePersistenceMarker = reset ? sizeof(PersistenceData) : eePersistenceMarker + sizeof(PersistenceData);
|
|
||||||
PersistenceData.writeCycleCounter = 0;
|
|
||||||
|
|
||||||
if (!checkEEPROMavailable())
|
if (!checkEEPROMavailable())
|
||||||
return;
|
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(0, (uint8_t)(eePersistenceMarker >> 8));
|
||||||
ee.updateByte(1, (uint8_t)(eePersistenceMarker & 0xFF));
|
ee.updateByte(1, (uint8_t)(eePersistenceMarker & 0xFF));
|
||||||
}
|
}
|
||||||
|
@ -64,7 +64,9 @@ typedef struct
|
|||||||
{
|
{
|
||||||
uint16_t writeCycleCounter = 0;
|
uint16_t writeCycleCounter = 0;
|
||||||
uint32_t tankRemain_µl = 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;
|
uint32_t checksum = 0;
|
||||||
} persistenceData_t;
|
} persistenceData_t;
|
||||||
|
|
||||||
|
@ -11,7 +11,13 @@ void RunLubeApp(uint32_t add_milimeters)
|
|||||||
globals.systemStatus = sysStat_Error;
|
globals.systemStatus = sysStat_Error;
|
||||||
|
|
||||||
// Add traveled Distance in mm
|
// 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)
|
switch (globals.systemStatus)
|
||||||
{
|
{
|
||||||
@ -24,18 +30,18 @@ void RunLubeApp(uint32_t add_milimeters)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case sysStat_Normal:
|
case sysStat_Normal:
|
||||||
if (PersistenceData.TravelDistance_highRes / 1000 > LubeConfig.DistancePerLube_Default)
|
if (PersistenceData.TravelDistance_highRes_mm / 1000 > LubeConfig.DistancePerLube_Default)
|
||||||
{
|
{
|
||||||
LubePulse();
|
LubePulse();
|
||||||
PersistenceData.TravelDistance_highRes = 0;
|
PersistenceData.TravelDistance_highRes_mm = 0;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case sysStat_Rain:
|
case sysStat_Rain:
|
||||||
if (PersistenceData.TravelDistance_highRes / 1000 > LubeConfig.DistancePerLube_Rain)
|
if (PersistenceData.TravelDistance_highRes_mm / 1000 > LubeConfig.DistancePerLube_Rain)
|
||||||
{
|
{
|
||||||
LubePulse();
|
LubePulse();
|
||||||
PersistenceData.TravelDistance_highRes = 0;
|
PersistenceData.TravelDistance_highRes_mm = 0;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case sysStat_Purge:
|
case sysStat_Purge:
|
||||||
|
@ -338,7 +338,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("TravelDistance_highRes: %d", PersistenceData.TravelDistance_highRes);
|
debugA("TravelDistance_highRes_mm: %d", PersistenceData.TravelDistance_highRes_mm);
|
||||||
debugA("checksum: %d", PersistenceData.checksum);
|
debugA("checksum: %d", PersistenceData.checksum);
|
||||||
debugA("PSD Adress: 0x%04X", getPersistanceAddress());
|
debugA("PSD Adress: 0x%04X", getPersistanceAddress());
|
||||||
}
|
}
|
||||||
@ -415,7 +415,6 @@ void trigger_ISR()
|
|||||||
|
|
||||||
void LED_Process(uint8_t override, CRGB SetColor)
|
void LED_Process(uint8_t override, CRGB SetColor)
|
||||||
{
|
{
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
LED_Startup,
|
LED_Startup,
|
||||||
|
@ -74,7 +74,11 @@ String processor(const String &var)
|
|||||||
if (var == "TANK_REMAIN_UL")
|
if (var == "TANK_REMAIN_UL")
|
||||||
return String(PersistenceData.tankRemain_µl);
|
return String(PersistenceData.tankRemain_µl);
|
||||||
if (var == "TRAVEL_DISTANCE_HIGHRES")
|
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")
|
if (var == "PERSISTANCE_CHECKSUM")
|
||||||
{
|
{
|
||||||
char buffer[7];
|
char buffer[7];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user