Added option to apply calibration, preparations for calibration implementation

This commit is contained in:
CommanderRedYT
2021-10-11 21:41:57 +02:00
committed by 0xFEEDC0DE64
parent 9cc69afd5d
commit 49138c64f1
6 changed files with 18 additions and 2 deletions

View File

@@ -172,6 +172,7 @@ struct LedstripBrightnessAccessor : public RefAccessorSaveSettings<uint8_t> { ui
struct BatterySeriesCellsAccessor : public RefAccessorSaveSettings<uint8_t> { uint8_t &getRef() const override { return settings.battery.cellsSeries; } }; struct BatterySeriesCellsAccessor : public RefAccessorSaveSettings<uint8_t> { uint8_t &getRef() const override { return settings.battery.cellsSeries; } };
struct BatteryParallelCellsAccessor : public RefAccessorSaveSettings<uint8_t> { uint8_t &getRef() const override { return settings.battery.cellsParallel; } }; struct BatteryParallelCellsAccessor : public RefAccessorSaveSettings<uint8_t> { uint8_t &getRef() const override { return settings.battery.cellsParallel; } };
struct BatteryWHperKMAccessor : public RefAccessorSaveSettings<uint16_t> { uint16_t &getRef() const override { return settings.battery.watthoursPerKilometer; } }; struct BatteryWHperKMAccessor : public RefAccessorSaveSettings<uint16_t> { uint16_t &getRef() const override { return settings.battery.watthoursPerKilometer; } };
struct BatteryApplyCalibrationAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.battery.applyCalibration; } };
struct LockscreenAllowPresetSwitchAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.lockscreen.allowPresetSwitch; } }; struct LockscreenAllowPresetSwitchAccessor : public RefAccessorSaveSettings<bool> { bool &getRef() const override { return settings.lockscreen.allowPresetSwitch; } };

View File

@@ -57,6 +57,8 @@ namespace {
{ {
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_VOLTAGECALIBRATION_30V>, Save30VCalibrationAction>>(); constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_VOLTAGECALIBRATION_30V>, Save30VCalibrationAction>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_VOLTAGECALIBRATION_50V>, Save50VCalibrationAction>>(); constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_VOLTAGECALIBRATION_50V>, Save50VCalibrationAction>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BATTERY_APPLYCALIB>, ToggleBoolAction, CheckboxIcon, BatteryApplyCalibrationAccessor>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<BatteryMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
constructMenuItem<makeComponent<MenuItem, EmptyText, DummyAction>>(); constructMenuItem<makeComponent<MenuItem, EmptyText, DummyAction>>();
@@ -65,7 +67,6 @@ namespace {
constructMenuItem<makeComponent<MenuItem, BatteryVoltageCalibrationFront50VText, DisabledColor, DummyAction>>(); constructMenuItem<makeComponent<MenuItem, BatteryVoltageCalibrationFront50VText, DisabledColor, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, BatteryVoltageCalibrationBack50VText, DisabledColor, DummyAction>>(); constructMenuItem<makeComponent<MenuItem, BatteryVoltageCalibrationBack50VText, DisabledColor, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<BatteryMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();
} }
}; };
} // Namespace } // Namespace

View File

@@ -261,7 +261,8 @@ constexpr Settings::Battery defaultBattery {
.front30VoltCalibration = 30, .front30VoltCalibration = 30,
.back30VoltCalibration = 30, .back30VoltCalibration = 30,
.front50VoltCalibration = 50, .front50VoltCalibration = 50,
.back50VoltCalibration = 50 .back50VoltCalibration = 50,
.applyCalibration = false
}; };
constexpr Settings defaultSettings { constexpr Settings defaultSettings {

View File

@@ -180,6 +180,7 @@ struct Settings
int16_t back30VoltCalibration; int16_t back30VoltCalibration;
int16_t front50VoltCalibration; int16_t front50VoltCalibration;
int16_t back50VoltCalibration; int16_t back50VoltCalibration;
bool applyCalibration;
} battery; } battery;
#endif #endif
@@ -299,6 +300,7 @@ void Settings::executeForEveryCommonSetting(T &&callable)
callable("batB30VCal", battery.back30VoltCalibration); callable("batB30VCal", battery.back30VoltCalibration);
callable("batF50VCal", battery.front50VoltCalibration); callable("batF50VCal", battery.front50VoltCalibration);
callable("batB50VCal", battery.back50VoltCalibration); callable("batB50VCal", battery.back50VoltCalibration);
callable("applyBatCal", battery.applyCalibration);
callable("lockAlwPresetSw", lockscreen.allowPresetSwitch); callable("lockAlwPresetSw", lockscreen.allowPresetSwitch);
callable("lockscreenPin", lockscreen.pin); callable("lockscreenPin", lockscreen.pin);

View File

@@ -99,6 +99,7 @@ constexpr char TEXT_BATTERY_TYPE_HG2[] = "HG2 cells";
constexpr char TEXT_BATTERY_TYPE_MH1[] = "MH1 cells"; constexpr char TEXT_BATTERY_TYPE_MH1[] = "MH1 cells";
constexpr char TEXT_BATTERY_TYPE_VTC5[] = "VTC5 cells"; constexpr char TEXT_BATTERY_TYPE_VTC5[] = "VTC5 cells";
constexpr char TEXT_BATTERY_WHKM[] = "Wh per km"; constexpr char TEXT_BATTERY_WHKM[] = "Wh per km";
constexpr char TEXT_BATTERY_APPLYCALIB[] = "Apply calibration";
//CalibrateVoltageDisplay //CalibrateVoltageDisplay
constexpr char TEXT_VOLTAGECALIBRATION_30V[] = "Calibrate 30.0V"; constexpr char TEXT_VOLTAGECALIBRATION_30V[] = "Calibrate 30.0V";

View File

@@ -64,6 +64,16 @@ float fixBatVoltage(int16_t value)
return value/100.; return value/100.;
} }
float fixFrontBatVoltage(int16_t value)
{
float frontVoltage = fixBatVoltage(value);
// settings.battery.front30VoltCalibration // Front 30.0V
// settings.battery.back30VoltCalibration // Back 30.0V
// settings.battery.front50VoltCalibration // Front 50.0V
// settings.battery.back50VoltCalibration // Back 50.0V
return frontVoltage;
}
float fixBoardTemp(int16_t value) float fixBoardTemp(int16_t value)
{ {
return value/10.; return value/10.;