stw24/TouchGFX/gui/src/containers/DriverViewStatusItem.cpp
Jasper v. Blanckenburg 2347b738c5 Make header structure compatible with simulator
Currently, the generated Makefile doesn't successfully compile. But it
is possible to run the simulator again by manually editing the Makefile.
2023-05-23 02:20:00 +02:00

70 lines
2.0 KiB
C++

#include <gui/containers/DriverViewStatusItem.hpp>
#include "texts/TextKeysAndLanguages.hpp"
#include "vehicle_state.h"
DriverViewStatusItem::DriverViewStatusItem() {}
void DriverViewStatusItem::initialize() {
DriverViewStatusItemBase::initialize();
}
void DriverViewStatusItem::setType(DriverViewStatusType type) {
this->type = type;
}
void DriverViewStatusItem::update() {
switch (type) {
case DriverViewStatusType::TS_R2D:
if (vehicle_state.ts_state == TS_ERROR) {
text.setTypedText(T_TS);
bg.setColor(COLOR_ERROR);
} else if (vehicle_state.ts_state == TS_INACTIVE) {
text.setTypedText(T_TS);
bg.setColor(COLOR_OFF);
} else if (vehicle_state.r2d_progress == R2D_INIT_SUCCESS) {
text.setTypedText(T_R2D);
bg.setColor(COLOR_OK);
} else {
text.setTypedText(T_TS);
bg.setColor(COLOR_TS);
}
break;
case DriverViewStatusType::AMS:
text.setTypedText(T_AMS);
bg.setColor(vehicle_state.ts_state == TS_ERROR ? COLOR_ERROR : COLOR_OK);
break;
case DriverViewStatusType::SDC:
text.setTypedText(T_SDC);
bg.setColor(vehicle_state.sdc_closed ? COLOR_OK : COLOR_WARNING);
break;
case DriverViewStatusType::SCS:
text.setTypedText(T_SCS);
bg.setColor(vehicle_state.errors.err_scs ? COLOR_ERROR : COLOR_OK);
break;
case DriverViewStatusType::PDU:
text.setTypedText(T_PDU);
bg.setColor(vehicle_state.errors.err_pdu ? COLOR_ERROR : COLOR_OK);
break;
case DriverViewStatusType::INV:
text.setTypedText(T_INV);
if (vehicle_state.errors.err_invl || vehicle_state.errors.err_invr) {
bg.setColor(COLOR_ERROR);
} else if (vehicle_state.errors.invl_ready &&
vehicle_state.errors.invr_ready) {
bg.setColor(COLOR_OK);
} else {
bg.setColor(COLOR_OFF);
}
break;
case DriverViewStatusType::LV:
text.setTypedText(T_LV);
// TODO: Set color based on LV SoC
bg.setColor(COLOR_OFF);
break;
}
text.invalidate();
bg.invalidate();
}