Make R2D progress display prettier
This commit is contained in:
@ -66,4 +66,6 @@ private:
|
||||
void updateValueBuffer();
|
||||
};
|
||||
|
||||
void *get_r2dprog_text();
|
||||
|
||||
#endif // NAMEDFIELD_HPP
|
||||
|
||||
@ -25,8 +25,8 @@ void DriverViewPresenter::vehicleStateUpdated() {
|
||||
vehicle_state.ts_voltage_veh / vehicle_state.ts_voltage_bat * 100;
|
||||
}
|
||||
view.setProgress(true, DriverViewProgressType::PRECHARGE, progress);
|
||||
} else if (vehicle_state.r2d_progress != R2D_NONE &&
|
||||
vehicle_state.r2d_progress != R2D_INIT_SUCCESS) {
|
||||
} else if (vehicle_state.r2d_progress > R2D_TSACTIVE &&
|
||||
vehicle_state.r2d_progress < R2D_INIT_SUCCESS) {
|
||||
view.setProgress(true, DriverViewProgressType::R2D,
|
||||
vehicle_state.r2d_progress);
|
||||
} else {
|
||||
|
||||
@ -3,7 +3,9 @@
|
||||
#include "gui/driverview_screen/DriverViewPresenter.hpp"
|
||||
#include "texts/TextKeysAndLanguages.hpp"
|
||||
#include "touchgfx/Unicode.hpp"
|
||||
#include "vehicle.h"
|
||||
#include <gui/driverview_screen/DriverViewView.hpp>
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
DriverViewView::DriverViewView()
|
||||
@ -54,28 +56,34 @@ void DriverViewView::setProgress(bool active, DriverViewProgressType type,
|
||||
case DriverViewProgressType::PRECHARGE:
|
||||
prechargeLabel.setVisible(true);
|
||||
r2dLabel.setVisible(false);
|
||||
r2dProgressLabel.setVisible(false);
|
||||
progressBar.setValue(progress);
|
||||
break;
|
||||
case DriverViewProgressType::R2D:
|
||||
touchgfx::Unicode::snprintf(
|
||||
r2dProgBuffer, sizeof(r2dProgBuffer) / sizeof(*r2dProgBuffer), "%d",
|
||||
progress);
|
||||
r2dLabel.setWildcard(r2dProgBuffer);
|
||||
const char *progText = static_cast<const char *>(get_r2dprog_text());
|
||||
touchgfx::Unicode::strncpy(r2dProgBuffer, progText,
|
||||
sizeof(r2dProgBuffer) /
|
||||
sizeof(*r2dProgBuffer));
|
||||
r2dProgressLabel.setWildcard(r2dProgBuffer);
|
||||
r2dProgressLabel.setVisible(true);
|
||||
r2dLabel.setVisible(true);
|
||||
prechargeLabel.setVisible(false);
|
||||
progressBar.setValue(progress * 100 / 8);
|
||||
progress = progress - R2D_TSACTIVE;
|
||||
progressBar.setValue(progress * 100 / 5);
|
||||
break;
|
||||
}
|
||||
prechargeLabel.invalidate();
|
||||
r2dProgressLabel.invalidate();
|
||||
r2dLabel.invalidate();
|
||||
progressBar.setVisible(true);
|
||||
progressBar.invalidate();
|
||||
} else if (prechargeLabel.isVisible() || r2dLabel.isVisible() ||
|
||||
progressBar.isVisible()) {
|
||||
} else if (progressBar.isVisible()) {
|
||||
prechargeLabel.setVisible(false);
|
||||
prechargeLabel.invalidate();
|
||||
r2dLabel.setVisible(false);
|
||||
r2dLabel.invalidate();
|
||||
r2dProgressLabel.setVisible(false);
|
||||
r2dProgressLabel.invalidate();
|
||||
progressBar.setVisible(false);
|
||||
progressBar.invalidate();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user