Sanity-Check for ConfigValues
This commit is contained in:
parent
4167a222d7
commit
1b49ed4a2e
4
Software/data_src/static/tt_dtc/dtc_13.json
Normal file
4
Software/data_src/static/tt_dtc/dtc_13.json
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"title": "Config-Validierung",
|
||||||
|
"description": "Ein oder mehrer Einstellungswerte waren ausserhalb gültiger Werte. Diese wurden automatisch korrigiert. Prüfen Sie Ihre Einstellungen"
|
||||||
|
}
|
@ -88,6 +88,12 @@ void GetConfig_EEPROM()
|
|||||||
MaintainDTC(DTC_EEPROM_CFG_BAD, DTC_CRITICAL, true);
|
MaintainDTC(DTC_EEPROM_CFG_BAD, DTC_CRITICAL, true);
|
||||||
}
|
}
|
||||||
LubeConfig.checksum = checksum;
|
LubeConfig.checksum = checksum;
|
||||||
|
|
||||||
|
if (!ConfigSanityCheck(true))
|
||||||
|
{
|
||||||
|
MaintainDTC(DTC_EEPROM_CFG_SANITY, DTC_WARN, true);
|
||||||
|
globals.requestEEAction = EE_CFG_SAVE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void StorePersistence_EEPROM()
|
void StorePersistence_EEPROM()
|
||||||
@ -231,3 +237,111 @@ boolean checkEEPROMavailable()
|
|||||||
MaintainDTC(DTC_NO_EEPROM_FOUND, DTC_CRITICAL, false);
|
MaintainDTC(DTC_NO_EEPROM_FOUND, DTC_CRITICAL, false);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool ConfigSanityCheck(bool autocorrect)
|
||||||
|
{
|
||||||
|
bool allvalid = true;
|
||||||
|
|
||||||
|
if (!(LubeConfig.DistancePerLube_Default > 0) || !(LubeConfig.DistancePerLube_Default < 50000))
|
||||||
|
{
|
||||||
|
allvalid = false;
|
||||||
|
if (autocorrect)
|
||||||
|
LubeConfig.DistancePerLube_Default = LubeConfig_defaults.DistancePerLube_Default;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(LubeConfig.DistancePerLube_Rain > 0) || !(LubeConfig.DistancePerLube_Rain < 50000))
|
||||||
|
{
|
||||||
|
allvalid = false;
|
||||||
|
if (autocorrect)
|
||||||
|
LubeConfig.DistancePerLube_Rain = LubeConfig_defaults.DistancePerLube_Rain;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(LubeConfig.tankCapacity_ml > 0) || !(LubeConfig.tankCapacity_ml < 5000))
|
||||||
|
{
|
||||||
|
allvalid = false;
|
||||||
|
if (autocorrect)
|
||||||
|
LubeConfig.tankCapacity_ml = LubeConfig_defaults.tankCapacity_ml;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(LubeConfig.amountPerDose_µl > 0) || !(LubeConfig.amountPerDose_µl < 100))
|
||||||
|
{
|
||||||
|
allvalid = false;
|
||||||
|
if (autocorrect)
|
||||||
|
LubeConfig.amountPerDose_µl = LubeConfig_defaults.amountPerDose_µl;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(LubeConfig.TankRemindAtPercentage >= 0) || !(LubeConfig.TankRemindAtPercentage <= 100))
|
||||||
|
{
|
||||||
|
allvalid = false;
|
||||||
|
if (autocorrect)
|
||||||
|
LubeConfig.TankRemindAtPercentage = LubeConfig_defaults.TankRemindAtPercentage;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(LubeConfig.PulsePerRevolution > 0) || !(LubeConfig.PulsePerRevolution < 1000))
|
||||||
|
{
|
||||||
|
allvalid = false;
|
||||||
|
if (autocorrect)
|
||||||
|
LubeConfig.PulsePerRevolution = LubeConfig_defaults.PulsePerRevolution;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(LubeConfig.TireWidth_mm > 0) || !(LubeConfig.TireWidth_mm < 500))
|
||||||
|
{
|
||||||
|
allvalid = false;
|
||||||
|
if (autocorrect)
|
||||||
|
LubeConfig.TireWidth_mm = LubeConfig_defaults.TireWidth_mm;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(LubeConfig.TireWidthHeight_Ratio > 0) || !(LubeConfig.TireWidthHeight_Ratio < 150))
|
||||||
|
{
|
||||||
|
allvalid = false;
|
||||||
|
if (autocorrect)
|
||||||
|
LubeConfig.TireWidthHeight_Ratio = LubeConfig_defaults.TireWidthHeight_Ratio;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(LubeConfig.RimDiameter_Inch > 0) || !(LubeConfig.RimDiameter_Inch < 30))
|
||||||
|
{
|
||||||
|
allvalid = false;
|
||||||
|
if (autocorrect)
|
||||||
|
LubeConfig.RimDiameter_Inch = LubeConfig_defaults.RimDiameter_Inch;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(LubeConfig.DistancePerRevolution_mm > 0) || !(LubeConfig.DistancePerRevolution_mm < 10000))
|
||||||
|
{
|
||||||
|
allvalid = false;
|
||||||
|
if (autocorrect)
|
||||||
|
LubeConfig.DistancePerRevolution_mm = LubeConfig_defaults.DistancePerRevolution_mm;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(LubeConfig.BleedingPulses > 0) || !(LubeConfig.BleedingPulses < 1001))
|
||||||
|
{
|
||||||
|
allvalid = false;
|
||||||
|
if (autocorrect)
|
||||||
|
LubeConfig.BleedingPulses = LubeConfig_defaults.BleedingPulses;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(LubeConfig.SpeedSource >= 0) || !(LubeConfig.SpeedSource < SpeedSourceString_Elements))
|
||||||
|
{
|
||||||
|
allvalid = false;
|
||||||
|
if (autocorrect)
|
||||||
|
LubeConfig.SpeedSource = LubeConfig_defaults.SpeedSource;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef FEATURE_ENABLE_GPS
|
||||||
|
if (!(LubeConfig.GPSBaudRate >= 0) || !(LubeConfig.GPSBaudRate < GPSBaudRateString_Elements))
|
||||||
|
{
|
||||||
|
allvalid = false;
|
||||||
|
if (autocorrect)
|
||||||
|
LubeConfig.GPSBaudRate = LubeConfig_defaults.GPSBaudRate;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef FEATURE_ENABLE_CAN
|
||||||
|
if (!(LubeConfig.CANSource >= 0) || !(LubeConfig.CANSource < CANSourceString_Elements))
|
||||||
|
{
|
||||||
|
allvalid = false;
|
||||||
|
if (autocorrect)
|
||||||
|
LubeConfig.CANSource = LubeConfig_defaults.CANSource;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
return allvalid;
|
||||||
|
}
|
@ -116,6 +116,7 @@ void FormatPersistence_EEPROM();
|
|||||||
uint32_t Checksum_EEPROM(uint8_t const *data, size_t len);
|
uint32_t Checksum_EEPROM(uint8_t const *data, size_t len);
|
||||||
void dumpEEPROM(uint16_t memoryAddress, uint16_t length);
|
void dumpEEPROM(uint16_t memoryAddress, uint16_t length);
|
||||||
void MovePersistencePage_EEPROM(boolean reset);
|
void MovePersistencePage_EEPROM(boolean reset);
|
||||||
|
bool ConfigSanityCheck(bool autocorrect = false);
|
||||||
|
|
||||||
extern LubeConfig_t LubeConfig;
|
extern LubeConfig_t LubeConfig;
|
||||||
extern persistenceData_t PersistenceData;
|
extern persistenceData_t PersistenceData;
|
||||||
|
@ -23,6 +23,7 @@ typedef enum DTCNums_e
|
|||||||
DTC_CAN_TRANSCEIVER_FAILED,
|
DTC_CAN_TRANSCEIVER_FAILED,
|
||||||
DTC_NO_CAN_SIGNAL,
|
DTC_NO_CAN_SIGNAL,
|
||||||
#endif
|
#endif
|
||||||
|
DTC_EEPROM_CFG_SANITY,
|
||||||
DTC_LAST_DTC
|
DTC_LAST_DTC
|
||||||
} DTCNums_t;
|
} DTCNums_t;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user