Add precharge progress bar
This commit is contained in:
@ -23,6 +23,7 @@ public:
|
||||
|
||||
void setTireTemps(const TireTemps &temps);
|
||||
void setTSSoC(uint8_t soc);
|
||||
void setPrecharge(bool active, float progress);
|
||||
|
||||
void selectPrevField() override;
|
||||
void selectNextField() override;
|
||||
|
||||
@ -18,6 +18,16 @@ void DriverViewPresenter::deactivate() {}
|
||||
void DriverViewPresenter::vehicleStateUpdated() {
|
||||
view.setTireTemps(vehicle_state.tire_temps);
|
||||
view.setTSSoC(vehicle_state.soc);
|
||||
if (vehicle_state.ts_state == TS_PRECHARGE) {
|
||||
float progress = 0;
|
||||
if (vehicle_state.ts_voltage_bat != 0) {
|
||||
progress =
|
||||
vehicle_state.ts_voltage_veh / vehicle_state.ts_voltage_bat * 100;
|
||||
}
|
||||
view.setPrecharge(true, progress);
|
||||
} else {
|
||||
view.setPrecharge(false, 0);
|
||||
}
|
||||
|
||||
view.updateFieldValues();
|
||||
}
|
||||
|
||||
@ -46,6 +46,21 @@ void DriverViewView::setTSSoC(uint8_t soc) {
|
||||
tsSoC.invalidate();
|
||||
}
|
||||
|
||||
void DriverViewView::setPrecharge(bool active, float progress) {
|
||||
if (active) {
|
||||
prechargeLabel.setVisible(true);
|
||||
prechargeLabel.invalidate();
|
||||
prechargeProgress.setVisible(true);
|
||||
prechargeProgress.setValue(progress);
|
||||
prechargeProgress.invalidate();
|
||||
} else if (prechargeLabel.isVisible() || prechargeProgress.isVisible()) {
|
||||
prechargeLabel.setVisible(false);
|
||||
prechargeLabel.invalidate();
|
||||
prechargeProgress.setVisible(false);
|
||||
prechargeProgress.invalidate();
|
||||
}
|
||||
}
|
||||
|
||||
void DriverViewView::selectNextField() {
|
||||
if (!fieldTypeSelection.isVisible()) {
|
||||
fieldTypeSelection.setVisible(true);
|
||||
|
||||
Reference in New Issue
Block a user