2023-05-22 07:22:44 +02:00
|
|
|
#include <gui/containers/DriverViewStatusItem.hpp>
|
|
|
|
|
|
|
|
#include "texts/TextKeysAndLanguages.hpp"
|
2023-05-23 02:19:46 +02:00
|
|
|
|
|
|
|
#include "vehicle_state.h"
|
2023-05-22 07:22:44 +02:00
|
|
|
|
|
|
|
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;
|
2023-05-22 08:51:29 +02:00
|
|
|
case DriverViewStatusType::LV:
|
|
|
|
text.setTypedText(T_LV);
|
|
|
|
// TODO: Set color based on LV SoC
|
|
|
|
bg.setColor(COLOR_OFF);
|
|
|
|
break;
|
2023-05-22 07:22:44 +02:00
|
|
|
}
|
|
|
|
text.invalidate();
|
|
|
|
bg.invalidate();
|
|
|
|
}
|