Compare commits

...

4 Commits

40 changed files with 987 additions and 379 deletions

View File

@ -55,12 +55,34 @@ typedef enum {
INICHK_ERROR = 9
} IniChkState;
typedef enum {
AMS_ERROR_NONE = 0x00,
AMS_ERROR_SLAVE_TIMEOUT = 0x01,
AMS_ERROR_SLAVE_PANIC = 0x02,
AMS_ERROR_SHUNT_TIMEOUT = 0x03,
AMS_ERROR_SHUNT_OVERCURRENT = 0x04,
AMS_ERROR_SHUNT_OVERTEMP = 0x05
} AMSErrorKind;
typedef enum {
AMS_SLAVEPANIC_OVERTEMP = 0x00,
AMS_SLAVEPANIC_UNDERTEMP = 0x01,
AMS_SLAVEPANIC_OVERVOLTAGE = 0x02,
AMS_SLAVEPANIC_UNDERVOLTAGE = 0x03,
AMS_SLAVEPANIC_TOO_FEW_TEMP = 0x04,
AMS_SLAVEPANIC_OPENWIRE = 0x05
} AMSSlavePanicKind;
typedef struct {
float fl;
float fr;
float rl;
float rr;
} TireTemps;
float tire_fl;
float tire_fr;
float tire_rl;
float tire_rr;
float inv_l;
float inv_r;
float mot_l;
float mot_r;
} Temperatures;
typedef struct {
TSState ts_state;
@ -89,10 +111,19 @@ typedef struct {
int err_invl : 1;
int err_invr : 1;
} errors;
struct {
AMSErrorKind kind;
uint8_t arg;
} last_ams_error;
struct {
uint8_t id;
AMSSlavePanicKind kind;
uint32_t arg;
} last_ams_slave_panic;
IniChkState ini_chk_state;
unsigned lap_count;
TireTemps tire_temps;
Temperatures temps;
float min_cell_volt;
float max_cell_temp;
@ -101,6 +132,8 @@ typedef struct {
float ts_current;
float ts_voltage_bat;
float ts_voltage_veh;
float speed;
} VehicleState;
extern VehicleState vehicle_state;

View File

@ -11,7 +11,11 @@
#include "stm32h7xx_hal_gpio.h"
#include "tx_api.h"
#define CAN_ID_AMS_SLAVE_PANIC 0x9
#define CAN_ID_AMS_STATUS 0xA
#define CAN_ID_AMS_ERROR 0xC
#define CAN_ID_ABX_DRIVER 0x101
#define CAN_ID_CS_INTERNAL 0x108
#define CAN_ID_MISSION_SELECTED 0x400
#define CAN_ID_STW_BUTTONS 0x401
#define CAN_ID_STW_PARAM_SET 0x402
@ -22,12 +26,18 @@
#define CAN_ID_SHUNT_VOLTAGE2 0x523
#define CAN_AMS_STATUS_VOLTAGE_FACTOR 1e-4
#define CAN_AMS_STATUS_TEMP_FACTOR 0.0625
#define CAN_ABX_DRIVER_SPEED_FACTOR (0.2 * 3.6)
#define CAN_CS_INTERNAL_TEMP_FACTOR 0.01
VehicleState vehicle_state = {0};
void vehicle_thread_entry(ULONG hfdcan_addr) {
ftcan_init((void *)hfdcan_addr);
ftcan_add_filter(CAN_ID_AMS_SLAVE_PANIC, 0x7FF);
ftcan_add_filter(CAN_ID_AMS_STATUS, 0x7FF);
ftcan_add_filter(CAN_ID_AMS_ERROR, 0x7FF);
ftcan_add_filter(CAN_ID_ABX_DRIVER, 0x7FF);
ftcan_add_filter(CAN_ID_CS_INTERNAL, 0x7FF);
ftcan_add_filter(CAN_ID_AS_MISSION_FB, 0x7FF);
ftcan_add_filter(CAN_ID_STW_STATUS, 0x7FF);
ftcan_add_filter(CAN_ID_SHUNT_CURRENT, 0x7FF);
@ -59,16 +69,41 @@ void vehicle_broadcast_buttons(GPIO_PinState *button_states) {
}
void ftcan_msg_received_cb(uint16_t id, size_t datalen, const uint8_t *data) {
const uint8_t *ptr;
switch (id) {
case CAN_ID_AMS_SLAVE_PANIC:
vehicle_state.last_ams_slave_panic.id = data[0];
vehicle_state.last_ams_slave_panic.kind = data[1];
ptr = &data[2];
vehicle_state.last_ams_slave_panic.arg = ftcan_unmarshal_unsigned(&ptr, 4);
break;
case CAN_ID_AMS_STATUS:
vehicle_state.ts_state = data[0] & 0x7F;
vehicle_state.soc = data[1];
const uint8_t *ptr = &data[2];
ptr = &data[2];
vehicle_state.min_cell_volt =
ftcan_unmarshal_unsigned(&ptr, 2) * CAN_AMS_STATUS_VOLTAGE_FACTOR;
vehicle_state.max_cell_temp =
ftcan_unmarshal_signed(&ptr, 2) * CAN_AMS_STATUS_TEMP_FACTOR;
break;
case CAN_ID_AMS_ERROR:
vehicle_state.last_ams_error.kind = data[0];
vehicle_state.last_ams_error.arg = data[1];
break;
case CAN_ID_ABX_DRIVER:
vehicle_state.speed = data[5] * CAN_ABX_DRIVER_SPEED_FACTOR;
break;
case CAN_ID_CS_INTERNAL:
vehicle_state.temps.inv_l =
(data[0] | (data[1] << 8)) * CAN_CS_INTERNAL_TEMP_FACTOR;
vehicle_state.temps.inv_r =
(data[2] | (data[3] << 8)) * CAN_CS_INTERNAL_TEMP_FACTOR;
vehicle_state.temps.mot_l =
(data[4] | (data[5] << 8)) * CAN_CS_INTERNAL_TEMP_FACTOR;
// TODO: uncomment when we have a right motor
// vehicle_state.temps.mot_r =
// (data[6] | (data[7] << 8)) * CAN_CS_INTERNAL_TEMP_FACTOR;
break;
case CAN_ID_AS_MISSION_FB:
vehicle_state.active_mission = data[0] & 0b111;
break;

View File

@ -360,8 +360,9 @@ TouchGFX/generated/gui_generated/src/containers/DebugViewItemBase.cpp \
TouchGFX/generated/gui_generated/src/containers/DebugViewLineBase.cpp \
TouchGFX/generated/gui_generated/src/containers/DriverViewFieldBase.cpp \
TouchGFX/generated/gui_generated/src/containers/DriverViewFieldSelectionBase.cpp \
TouchGFX/generated/gui_generated/src/containers/ErrorPopupBase.cpp \
TouchGFX/generated/gui_generated/src/containers/MissionSelectElementBase.cpp \
TouchGFX/generated/gui_generated/src/containers/TireTempBase.cpp \
TouchGFX/generated/gui_generated/src/containers/TemperatureBase.cpp \
TouchGFX/generated/gui_generated/src/debugview_screen/DebugViewViewBase.cpp \
TouchGFX/generated/gui_generated/src/driverview_screen/DriverViewViewBase.cpp \
TouchGFX/generated/gui_generated/src/missionselect_screen/MissionSelectViewBase.cpp \
@ -388,8 +389,9 @@ TouchGFX/gui/src/containers/DebugViewItem.cpp \
TouchGFX/gui/src/containers/DebugViewLine.cpp \
TouchGFX/gui/src/containers/DriverViewField.cpp \
TouchGFX/gui/src/containers/DriverViewFieldSelection.cpp \
TouchGFX/gui/src/containers/ErrorPopup.cpp \
TouchGFX/gui/src/containers/MissionSelectElement.cpp \
TouchGFX/gui/src/containers/TireTemp.cpp \
TouchGFX/gui/src/containers/Temperature.cpp \
TouchGFX/gui/src/debugview_screen/DebugViewPresenter.cpp \
TouchGFX/gui/src/debugview_screen/DebugViewView.cpp \
TouchGFX/gui/src/driverview_screen/DriverViewPresenter.cpp \

View File

@ -4,6 +4,11 @@
<Language Id="GB" />
</Languages>
<Texts>
<TextGroup Id="Errors">
<Text Id="Error_AMS" Alignment="Center" TypographyId="Chinat_Huge">
<Translation Language="GB">AMS ErrOr</Translation>
</Text>
</TextGroup>
<TextGroup Id="DataFields">
<Text Id="DebugViewField_Title" Alignment="Left" TypographyId="Default_Bold">
<Translation Language="GB">&lt;value&gt;</Translation>
@ -137,8 +142,23 @@
</Text>
</TextGroup>
<TextGroup Id="Unsorted">
<Text Id="__SingleUse_JN2J" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">MOTOR</Translation>
</Text>
<Text Id="__SingleUse_ZP7N" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">INVERTER</Translation>
</Text>
<Text Id="__SingleUse_9L8R" Alignment="Left" TypographyId="Default">
<Translation Language="GB">&lt;value&gt;</Translation>
</Text>
<Text Id="__SingleUse_1NKF" Alignment="Center" TypographyId="Chinat_Huge">
<Translation Language="GB" />
</Text>
<Text Id="__SingleUse_J5UH" Alignment="Right" TypographyId="Chinat_Large">
<Translation Language="GB">&lt;value&gt;</Translation>
</Text>
<Text Id="__SingleUse_NGUK" Alignment="Left" TypographyId="Chinat_Large">
<Translation Language="GB">R2D [&lt;value&gt;/8]</Translation>
<Translation Language="GB">R2D</Translation>
</Text>
<Text Id="__SingleUse_4E84" Alignment="Right" TypographyId="Numbers">
<Translation Language="GB">&lt;value&gt;</Translation>

View File

@ -1,6 +1,5 @@
32
45
47
48
49
50
@ -39,8 +38,6 @@
88
89
90
91
93
97
98
99

View File

@ -6,6 +6,7 @@
69
73
77
79
83
84
97

View File

@ -1,7 +1,6 @@
AH:0 BA:1 FC:63 EC:0 FF:0 CF:0
32
45
47
48
49
50
@ -40,8 +39,6 @@ AH:0 BA:1 FC:63 EC:0 FF:0 CF:0
88
89
90
91
93
97
98
99

View File

@ -7,6 +7,7 @@ AH:0 BA:1 FC:63 EC:0 FF:0 CF:0
69
73
77
79
83
84
97

View File

@ -8,21 +8,6 @@ KEEP extern const uint8_t unicodes_CHINN____30_4bpp_0[] FONT_GLYPH_LOCATION_FLAS
0xF3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x08, 0xF3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x08, 0xF3, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x08, 0xF3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x08, 0xF3, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0x08,
// Unicode: [0x002F, slash]
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x2E, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x40, 0xFF, 0xFF, 0xFF, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE1, 0xFF, 0xFF, 0x9F,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFA, 0xFF, 0xFF, 0x1D, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x60, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE2, 0xFF, 0xFF, 0x7F,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x80, 0xFF, 0xFF, 0xEF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0xFF, 0xFF, 0x6F,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xFD, 0xFF, 0xFF, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xA0, 0xFF, 0xFF, 0xDF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF6, 0xFF, 0xFF, 0x4F,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xFE, 0xFF, 0xFF, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xC0, 0xFF, 0xFF, 0xCF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x2E,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xFF, 0xFF, 0xFF, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xD1, 0xFF, 0xFF, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFA, 0xFF, 0xFF, 0x1E,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xE2, 0xFF, 0xFF, 0x9F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
// Unicode: [0x0030, zero]
0x00, 0x00, 0xA5, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDE, 0x29, 0x00, 0x00, 0x00,
0xC2, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x10, 0xFD,
@ -748,26 +733,6 @@ KEEP extern const uint8_t unicodes_CHINN____30_4bpp_0[] FONT_GLYPH_LOCATION_FLAS
0x1F, 0x00, 0x00, 0xFA, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0x1F, 0x00, 0x00, 0x40, 0xEA, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0x1F, 0x00,
// Unicode: [0x005B, bracketleft]
0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0x02, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0x02, 0xF1, 0xFF, 0xFF, 0xFF,
0xFF, 0x02, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0x02, 0xF1, 0xFF, 0xFF, 0x44, 0x44, 0x01, 0xF1, 0xFF,
0xEF, 0x00, 0x00, 0x00, 0xF1, 0xFF, 0xEF, 0x00, 0x00, 0x00, 0xF1, 0xFF, 0xEF, 0x00, 0x00, 0x00,
0xF1, 0xFF, 0xEF, 0x00, 0x00, 0x00, 0xF1, 0xFF, 0xEF, 0x00, 0x00, 0x00, 0xF1, 0xFF, 0xEF, 0x00,
0x00, 0x00, 0xF1, 0xFF, 0xEF, 0x00, 0x00, 0x00, 0xF1, 0xFF, 0xEF, 0x00, 0x00, 0x00, 0xF1, 0xFF,
0xEF, 0x00, 0x00, 0x00, 0xF1, 0xFF, 0xEF, 0x00, 0x00, 0x00, 0xF1, 0xFF, 0xEF, 0x00, 0x00, 0x00,
0xF1, 0xFF, 0xEF, 0x00, 0x00, 0x00, 0xF1, 0xFF, 0xEF, 0x00, 0x00, 0x00, 0xF1, 0xFF, 0xEF, 0x00,
0x00, 0x00, 0xF1, 0xFF, 0xEF, 0x00, 0x00, 0x00, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0x02, 0xF1, 0xFF,
0xFF, 0xFF, 0xFF, 0x02, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0x02, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0x02,
0x30, 0x33, 0x33, 0x33, 0x33, 0x00,
// Unicode: [0x005D, bracketright]
0xFB, 0xFF, 0xFF, 0xFF, 0x8F, 0xFB, 0xFF, 0xFF, 0xFF, 0x8F, 0xFB, 0xFF, 0xFF, 0xFF, 0x8F, 0xFB,
0xFF, 0xFF, 0xFF, 0x8F, 0x43, 0x44, 0xFA, 0xFF, 0x8F, 0x00, 0x00, 0xF8, 0xFF, 0x8F, 0x00, 0x00,
0xF8, 0xFF, 0x8F, 0x00, 0x00, 0xF8, 0xFF, 0x8F, 0x00, 0x00, 0xF8, 0xFF, 0x8F, 0x00, 0x00, 0xF8,
0xFF, 0x8F, 0x00, 0x00, 0xF8, 0xFF, 0x8F, 0x00, 0x00, 0xF8, 0xFF, 0x8F, 0x00, 0x00, 0xF8, 0xFF,
0x8F, 0x00, 0x00, 0xF8, 0xFF, 0x8F, 0x00, 0x00, 0xF8, 0xFF, 0x8F, 0x00, 0x00, 0xF8, 0xFF, 0x8F,
0x00, 0x00, 0xF8, 0xFF, 0x8F, 0x00, 0x00, 0xF8, 0xFF, 0x8F, 0x00, 0x00, 0xF8, 0xFF, 0x8F, 0x00,
0x00, 0xF8, 0xFF, 0x8F, 0xFB, 0xFF, 0xFF, 0xFF, 0x8F, 0xFB, 0xFF, 0xFF, 0xFF, 0x8F, 0xFB, 0xFF,
0xFF, 0xFF, 0x8F, 0xFB, 0xFF, 0xFF, 0xFF, 0x8F, 0x43, 0x44, 0x44, 0x44, 0x24,
// Unicode: [0x0061, a]
0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xAE, 0x03, 0x00, 0x80,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x6F, 0x00, 0x80, 0xFF,

View File

@ -197,6 +197,41 @@ KEEP extern const uint8_t unicodes_CHINN____40_4bpp_0[] FONT_GLYPH_LOCATION_FLAS
0xFF, 0x0D, 0xFE, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x90, 0xFF, 0xFF, 0xAF, 0x01, 0x00,
0x00, 0x00, 0x10, 0xFF, 0xFF, 0xFF, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x62, 0x67, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
// Unicode: [0x004F, O]
0x00, 0x00, 0x30, 0xC9, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBE,
0x16, 0x00, 0x00, 0x00, 0x00, 0x20, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0x04, 0x00, 0x00, 0x00, 0xE4, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x6F, 0x00, 0x00, 0x30, 0xFE, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x04, 0x00,
0xD1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0x1E, 0x00, 0xF6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0xFB, 0xFF, 0xFF, 0xCF, 0xCC, 0xCC, 0xCC, 0xCC,
0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xEC, 0xFF, 0xFF, 0xCF, 0x00, 0xFD, 0xFF, 0xFF, 0x0F,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0xFF, 0xFF, 0xFF, 0x00,
0xFE, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0,
0xFF, 0xFF, 0xFF, 0x01, 0xFE, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xD0, 0xFF, 0xFF, 0xFF, 0x01, 0xFE, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0xFF, 0xFF, 0xFF, 0x01, 0xFE, 0xFF, 0xFF, 0x0F,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0xFF, 0xFF, 0xFF, 0x01,
0xFE, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0,
0xFF, 0xFF, 0xFF, 0x01, 0xFE, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xD0, 0xFF, 0xFF, 0xFF, 0x01, 0xFE, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0xFF, 0xFF, 0xFF, 0x01, 0xFE, 0xFF, 0xFF, 0x0F,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0xFF, 0xFF, 0xFF, 0x01,
0xFE, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0,
0xFF, 0xFF, 0xFF, 0x01, 0xFE, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xD0, 0xFF, 0xFF, 0xFF, 0x01, 0xFE, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0xFF, 0xFF, 0xFF, 0x01, 0xFC, 0xFF, 0xFF, 0x0F,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0xFF, 0xFF, 0xFF, 0x00,
0xFA, 0xFF, 0xFF, 0xCF, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xEC,
0xFF, 0xFF, 0xDF, 0x00, 0xF6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8F, 0x00, 0xD0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2E, 0x00, 0x50, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x06, 0x00,
0x00, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0x8F, 0x00, 0x00, 0x00, 0x50, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0x05, 0x00, 0x00, 0x00, 0x00, 0x71, 0xEB, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBE, 0x17, 0x00, 0x00, 0x00,
// Unicode: [0x0053, S]
0x00, 0x00, 0x00, 0x72, 0xDB, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x06, 0x00, 0x00, 0x00, 0xA1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,

View File

@ -6,73 +6,70 @@ FONT_TABLE_LOCATION_FLASH_PRAGMA
KEEP extern const touchgfx::GlyphNode glyphs_CHINN____30_4bpp[] FONT_TABLE_LOCATION_FLASH_ATTRIBUTE = {
{ 0, 0x0020, 0, 0, 0, 0, 8, 0, 0, 0x00 }, // space
{ 0, 0x002D, 13, 5, 12, 0, 13, 0, 0, 0x00 }, // hyphen
{ 35, 0x002F, 22, 20, 20, 0, 22, 0, 0, 0x00 }, // slash
{ 255, 0x0030, 29, 20, 20, 0, 30, 0, 0, 0x00 }, // zero
{ 555, 0x0031, 14, 20, 20, 5, 30, 0, 0, 0x00 }, // one
{ 695, 0x0032, 29, 20, 20, 0, 30, 0, 0, 0x00 }, // two
{ 995, 0x0033, 29, 20, 20, 0, 30, 0, 0, 0x00 }, // three
{ 1295, 0x0034, 29, 20, 20, 0, 30, 0, 0, 0x00 }, // four
{ 1595, 0x0035, 29, 20, 20, 0, 30, 0, 0, 0x00 }, // five
{ 1895, 0x0036, 29, 20, 20, 0, 30, 0, 0, 0x00 }, // six
{ 2195, 0x0037, 29, 20, 20, 0, 30, 0, 0, 0x00 }, // seven
{ 2495, 0x0038, 29, 20, 20, 0, 30, 0, 0, 0x00 }, // eight
{ 2795, 0x0039, 29, 20, 20, 0, 30, 0, 0, 0x00 }, // nine
{ 3095, 0x003A, 7, 14, 14, 1, 8, 0, 0, 0x00 }, // colon
{ 3151, 0x003F, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // question
{ 3451, 0x0041, 29, 20, 20, -1, 27, 0, 0, 0x00 }, // A
{ 3751, 0x0042, 30, 20, 20, 0, 31, 0, 0, 0x00 }, // B
{ 4051, 0x0043, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // C
{ 4351, 0x0044, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // D
{ 4651, 0x0045, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // E
{ 4951, 0x0046, 29, 20, 20, 0, 29, 0, 0, 0x00 }, // F
{ 5251, 0x0047, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // G
{ 5551, 0x0048, 30, 20, 20, 0, 31, 0, 0, 0x00 }, // H
{ 5851, 0x0049, 6, 20, 20, 0, 7, 0, 0, 0x00 }, // I
{ 5911, 0x004A, 30, 20, 20, -1, 29, 0, 0, 0x00 }, // J
{ 6211, 0x004B, 30, 20, 20, 0, 29, 0, 0, 0x00 }, // K
{ 6511, 0x004C, 30, 20, 20, 0, 29, 0, 0, 0x00 }, // L
{ 6811, 0x004D, 32, 20, 20, 0, 32, 0, 0, 0x00 }, // M
{ 7131, 0x004E, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // N
{ 7431, 0x004F, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // O
{ 7731, 0x0050, 31, 20, 20, 0, 31, 0, 0, 0x00 }, // P
{ 8051, 0x0051, 31, 20, 20, 0, 31, 0, 0, 0x00 }, // Q
{ 8371, 0x0052, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // R
{ 8671, 0x0053, 32, 20, 20, 0, 32, 0, 0, 0x00 }, // S
{ 8991, 0x0054, 30, 20, 20, -1, 28, 0, 0, 0x00 }, // T
{ 9291, 0x0055, 30, 20, 20, 0, 31, 0, 0, 0x00 }, // U
{ 9591, 0x0056, 29, 20, 20, -1, 27, 0, 0, 0x00 }, // V
{ 9891, 0x0057, 28, 20, 20, 0, 28, 0, 0, 0x00 }, // W
{ 10171, 0x0058, 29, 20, 20, 0, 28, 0, 0, 0x00 }, // X
{ 10471, 0x0059, 28, 20, 20, -1, 27, 0, 0, 0x00 }, // Y
{ 10751, 0x005A, 33, 20, 20, 0, 32, 0, 0, 0x00 }, // Z
{ 11091, 0x005B, 11, 25, 20, 1, 11, 0, 0, 0x00 }, // bracketleft
{ 11241, 0x005D, 10, 25, 20, 0, 11, 0, 0, 0x00 }, // bracketright
{ 11366, 0x0061, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // a
{ 11666, 0x0062, 30, 20, 20, 0, 31, 0, 0, 0x00 }, // b
{ 11966, 0x0063, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // c
{ 12266, 0x0064, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // d
{ 12566, 0x0065, 29, 20, 20, 0, 30, 0, 0, 0x00 }, // e
{ 12866, 0x0066, 29, 20, 20, 0, 29, 0, 0, 0x00 }, // f
{ 13166, 0x0067, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // g
{ 13466, 0x0068, 30, 20, 20, 0, 31, 0, 0, 0x00 }, // h
{ 13766, 0x0069, 6, 20, 20, 0, 7, 0, 0, 0x00 }, // i
{ 13826, 0x006A, 30, 20, 20, -1, 29, 0, 0, 0x00 }, // j
{ 14126, 0x006B, 30, 20, 20, 0, 29, 0, 0, 0x00 }, // k
{ 14426, 0x006C, 22, 20, 20, 0, 21, 0, 0, 0x00 }, // l
{ 14646, 0x006D, 29, 20, 20, 0, 30, 0, 0, 0x00 }, // m
{ 14946, 0x006E, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // n
{ 15246, 0x006F, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // o
{ 15546, 0x0070, 29, 20, 20, 0, 29, 0, 0, 0x00 }, // p
{ 15846, 0x0071, 31, 20, 20, 0, 31, 0, 0, 0x00 }, // q
{ 16166, 0x0072, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // r
{ 16466, 0x0073, 32, 20, 20, 0, 32, 0, 0, 0x00 }, // s
{ 16786, 0x0074, 30, 20, 20, -1, 28, 0, 0, 0x00 }, // t
{ 17086, 0x0075, 30, 20, 20, 0, 31, 0, 0, 0x00 }, // u
{ 17386, 0x0076, 29, 20, 20, -1, 27, 0, 0, 0x00 }, // v
{ 17686, 0x0077, 33, 20, 20, 0, 33, 0, 0, 0x00 }, // w
{ 18026, 0x0078, 29, 20, 20, 0, 28, 0, 0, 0x00 }, // x
{ 18326, 0x0079, 30, 20, 20, 0, 31, 0, 0, 0x00 }, // y
{ 18626, 0x007A, 33, 20, 20, 0, 32, 0, 0, 0x00 } // z
{ 35, 0x0030, 29, 20, 20, 0, 30, 0, 0, 0x00 }, // zero
{ 335, 0x0031, 14, 20, 20, 5, 30, 0, 0, 0x00 }, // one
{ 475, 0x0032, 29, 20, 20, 0, 30, 0, 0, 0x00 }, // two
{ 775, 0x0033, 29, 20, 20, 0, 30, 0, 0, 0x00 }, // three
{ 1075, 0x0034, 29, 20, 20, 0, 30, 0, 0, 0x00 }, // four
{ 1375, 0x0035, 29, 20, 20, 0, 30, 0, 0, 0x00 }, // five
{ 1675, 0x0036, 29, 20, 20, 0, 30, 0, 0, 0x00 }, // six
{ 1975, 0x0037, 29, 20, 20, 0, 30, 0, 0, 0x00 }, // seven
{ 2275, 0x0038, 29, 20, 20, 0, 30, 0, 0, 0x00 }, // eight
{ 2575, 0x0039, 29, 20, 20, 0, 30, 0, 0, 0x00 }, // nine
{ 2875, 0x003A, 7, 14, 14, 1, 8, 0, 0, 0x00 }, // colon
{ 2931, 0x003F, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // question
{ 3231, 0x0041, 29, 20, 20, -1, 27, 0, 0, 0x00 }, // A
{ 3531, 0x0042, 30, 20, 20, 0, 31, 0, 0, 0x00 }, // B
{ 3831, 0x0043, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // C
{ 4131, 0x0044, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // D
{ 4431, 0x0045, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // E
{ 4731, 0x0046, 29, 20, 20, 0, 29, 0, 0, 0x00 }, // F
{ 5031, 0x0047, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // G
{ 5331, 0x0048, 30, 20, 20, 0, 31, 0, 0, 0x00 }, // H
{ 5631, 0x0049, 6, 20, 20, 0, 7, 0, 0, 0x00 }, // I
{ 5691, 0x004A, 30, 20, 20, -1, 29, 0, 0, 0x00 }, // J
{ 5991, 0x004B, 30, 20, 20, 0, 29, 0, 0, 0x00 }, // K
{ 6291, 0x004C, 30, 20, 20, 0, 29, 0, 0, 0x00 }, // L
{ 6591, 0x004D, 32, 20, 20, 0, 32, 0, 0, 0x00 }, // M
{ 6911, 0x004E, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // N
{ 7211, 0x004F, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // O
{ 7511, 0x0050, 31, 20, 20, 0, 31, 0, 0, 0x00 }, // P
{ 7831, 0x0051, 31, 20, 20, 0, 31, 0, 0, 0x00 }, // Q
{ 8151, 0x0052, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // R
{ 8451, 0x0053, 32, 20, 20, 0, 32, 0, 0, 0x00 }, // S
{ 8771, 0x0054, 30, 20, 20, -1, 28, 0, 0, 0x00 }, // T
{ 9071, 0x0055, 30, 20, 20, 0, 31, 0, 0, 0x00 }, // U
{ 9371, 0x0056, 29, 20, 20, -1, 27, 0, 0, 0x00 }, // V
{ 9671, 0x0057, 28, 20, 20, 0, 28, 0, 0, 0x00 }, // W
{ 9951, 0x0058, 29, 20, 20, 0, 28, 0, 0, 0x00 }, // X
{ 10251, 0x0059, 28, 20, 20, -1, 27, 0, 0, 0x00 }, // Y
{ 10531, 0x005A, 33, 20, 20, 0, 32, 0, 0, 0x00 }, // Z
{ 10871, 0x0061, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // a
{ 11171, 0x0062, 30, 20, 20, 0, 31, 0, 0, 0x00 }, // b
{ 11471, 0x0063, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // c
{ 11771, 0x0064, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // d
{ 12071, 0x0065, 29, 20, 20, 0, 30, 0, 0, 0x00 }, // e
{ 12371, 0x0066, 29, 20, 20, 0, 29, 0, 0, 0x00 }, // f
{ 12671, 0x0067, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // g
{ 12971, 0x0068, 30, 20, 20, 0, 31, 0, 0, 0x00 }, // h
{ 13271, 0x0069, 6, 20, 20, 0, 7, 0, 0, 0x00 }, // i
{ 13331, 0x006A, 30, 20, 20, -1, 29, 0, 0, 0x00 }, // j
{ 13631, 0x006B, 30, 20, 20, 0, 29, 0, 0, 0x00 }, // k
{ 13931, 0x006C, 22, 20, 20, 0, 21, 0, 0, 0x00 }, // l
{ 14151, 0x006D, 29, 20, 20, 0, 30, 0, 0, 0x00 }, // m
{ 14451, 0x006E, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // n
{ 14751, 0x006F, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // o
{ 15051, 0x0070, 29, 20, 20, 0, 29, 0, 0, 0x00 }, // p
{ 15351, 0x0071, 31, 20, 20, 0, 31, 0, 0, 0x00 }, // q
{ 15671, 0x0072, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // r
{ 15971, 0x0073, 32, 20, 20, 0, 32, 0, 0, 0x00 }, // s
{ 16291, 0x0074, 30, 20, 20, -1, 28, 0, 0, 0x00 }, // t
{ 16591, 0x0075, 30, 20, 20, 0, 31, 0, 0, 0x00 }, // u
{ 16891, 0x0076, 29, 20, 20, -1, 27, 0, 0, 0x00 }, // v
{ 17191, 0x0077, 33, 20, 20, 0, 33, 0, 0, 0x00 }, // w
{ 17531, 0x0078, 29, 20, 20, 0, 28, 0, 0, 0x00 }, // x
{ 17831, 0x0079, 30, 20, 20, 0, 31, 0, 0, 0x00 }, // y
{ 18131, 0x007A, 33, 20, 20, 0, 32, 0, 0, 0x00 } // z
};
// CHINN____30_4bpp
@ -90,6 +87,6 @@ touchgfx::GeneratedFont& getFont_CHINN____30_4bpp();
touchgfx::GeneratedFont& getFont_CHINN____30_4bpp()
{
static touchgfx::GeneratedFont CHINN____30_4bpp(glyphs_CHINN____30_4bpp, 69, 35, 30, 0, 0, 4, 1, 1, 1, unicodes_CHINN____30_4bpp, kerning_CHINN____30_4bpp, 63, 0, 0, 0);
static touchgfx::GeneratedFont CHINN____30_4bpp(glyphs_CHINN____30_4bpp, 66, 30, 30, 0, 0, 4, 1, 1, 1, unicodes_CHINN____30_4bpp, kerning_CHINN____30_4bpp, 63, 0, 0, 0);
return CHINN____30_4bpp;
}

View File

@ -12,23 +12,24 @@ KEEP extern const touchgfx::GlyphNode glyphs_CHINN____40_4bpp[] FONT_TABLE_LOCAT
{ 1720, 0x0045, 38, 27, 27, 1, 40, 0, 0, 0x00 }, // E
{ 2233, 0x0049, 7, 27, 27, 1, 9, 0, 0, 0x00 }, // I
{ 2341, 0x004D, 41, 28, 27, 1, 43, 0, 0, 0x00 }, // M
{ 2929, 0x0053, 43, 27, 27, 0, 43, 0, 0, 0x00 }, // S
{ 3523, 0x0054, 39, 27, 27, -1, 37, 0, 0, 0x00 }, // T
{ 4063, 0x0061, 40, 27, 27, 0, 41, 0, 0, 0x00 }, // a
{ 4603, 0x0063, 39, 27, 27, 1, 41, 0, 0, 0x00 }, // c
{ 5143, 0x0064, 39, 27, 27, 1, 40, 0, 0, 0x00 }, // d
{ 5683, 0x0065, 38, 27, 27, 1, 39, 0, 0, 0x00 }, // e
{ 6196, 0x0069, 7, 27, 27, 1, 9, 0, 0, 0x00 }, // i
{ 6304, 0x006B, 39, 27, 27, 1, 39, 0, 0, 0x00 }, // k
{ 6844, 0x006C, 28, 27, 27, 1, 28, 0, 0, 0x00 }, // l
{ 7222, 0x006E, 38, 29, 28, 1, 40, 0, 0, 0x00 }, // n
{ 7773, 0x006F, 39, 27, 27, 1, 40, 0, 0, 0x00 }, // o
{ 8313, 0x0070, 38, 27, 27, 1, 39, 0, 0, 0x00 }, // p
{ 8826, 0x0072, 39, 27, 27, 1, 40, 0, 0, 0x00 }, // r
{ 9366, 0x0073, 43, 27, 27, 0, 43, 0, 0, 0x00 }, // s
{ 9960, 0x0074, 39, 27, 27, -1, 37, 0, 0, 0x00 }, // t
{ 10500, 0x0075, 39, 27, 27, 1, 41, 0, 0, 0x00 }, // u
{ 11040, 0x0076, 38, 28, 27, -1, 36, 0, 0, 0x00 } // v
{ 2929, 0x004F, 39, 27, 27, 1, 40, 0, 0, 0x00 }, // O
{ 3469, 0x0053, 43, 27, 27, 0, 43, 0, 0, 0x00 }, // S
{ 4063, 0x0054, 39, 27, 27, -1, 37, 0, 0, 0x00 }, // T
{ 4603, 0x0061, 40, 27, 27, 0, 41, 0, 0, 0x00 }, // a
{ 5143, 0x0063, 39, 27, 27, 1, 41, 0, 0, 0x00 }, // c
{ 5683, 0x0064, 39, 27, 27, 1, 40, 0, 0, 0x00 }, // d
{ 6223, 0x0065, 38, 27, 27, 1, 39, 0, 0, 0x00 }, // e
{ 6736, 0x0069, 7, 27, 27, 1, 9, 0, 0, 0x00 }, // i
{ 6844, 0x006B, 39, 27, 27, 1, 39, 0, 0, 0x00 }, // k
{ 7384, 0x006C, 28, 27, 27, 1, 28, 0, 0, 0x00 }, // l
{ 7762, 0x006E, 38, 29, 28, 1, 40, 0, 0, 0x00 }, // n
{ 8313, 0x006F, 39, 27, 27, 1, 40, 0, 0, 0x00 }, // o
{ 8853, 0x0070, 38, 27, 27, 1, 39, 0, 0, 0x00 }, // p
{ 9366, 0x0072, 39, 27, 27, 1, 40, 0, 0, 0x00 }, // r
{ 9906, 0x0073, 43, 27, 27, 0, 43, 0, 0, 0x00 }, // s
{ 10500, 0x0074, 39, 27, 27, -1, 37, 0, 0, 0x00 }, // t
{ 11040, 0x0075, 39, 27, 27, 1, 41, 0, 0, 0x00 }, // u
{ 11580, 0x0076, 38, 28, 27, -1, 36, 0, 0, 0x00 } // v
};
// CHINN____40_4bpp
@ -46,6 +47,6 @@ touchgfx::GeneratedFont& getFont_CHINN____40_4bpp();
touchgfx::GeneratedFont& getFont_CHINN____40_4bpp()
{
static touchgfx::GeneratedFont CHINN____40_4bpp(glyphs_CHINN____40_4bpp, 25, 41, 40, 0, 0, 4, 1, 1, 1, unicodes_CHINN____40_4bpp, kerning_CHINN____40_4bpp, 63, 0, 0, 0);
static touchgfx::GeneratedFont CHINN____40_4bpp(glyphs_CHINN____40_4bpp, 26, 41, 40, 0, 0, 4, 1, 1, 1, unicodes_CHINN____40_4bpp, kerning_CHINN____40_4bpp, 63, 0, 0, 0);
return CHINN____40_4bpp;
}

View File

@ -0,0 +1,36 @@
/*********************************************************************************/
/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/
/*********************************************************************************/
#ifndef ERRORPOPUPBASE_HPP
#define ERRORPOPUPBASE_HPP
#include <gui/common/FrontendApplication.hpp>
#include <touchgfx/containers/Container.hpp>
#include <touchgfx/widgets/BoxWithBorder.hpp>
#include <touchgfx/widgets/TextArea.hpp>
#include <touchgfx/widgets/TextAreaWithWildcard.hpp>
class ErrorPopupBase : public touchgfx::Container
{
public:
ErrorPopupBase();
virtual ~ErrorPopupBase();
virtual void initialize();
protected:
FrontendApplication& application() {
return *static_cast<FrontendApplication*>(touchgfx::Application::getInstance());
}
/*
* Member Declarations
*/
touchgfx::BoxWithBorder bg;
touchgfx::TextArea title;
touchgfx::TextAreaWithOneWildcard details;
private:
};
#endif // ERRORPOPUPBASE_HPP

View File

@ -1,19 +1,19 @@
/*********************************************************************************/
/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/
/*********************************************************************************/
#ifndef TIRETEMPBASE_HPP
#define TIRETEMPBASE_HPP
#ifndef TEMPERATUREBASE_HPP
#define TEMPERATUREBASE_HPP
#include <gui/common/FrontendApplication.hpp>
#include <touchgfx/containers/Container.hpp>
#include <touchgfx/widgets/Box.hpp>
#include <touchgfx/widgets/TextAreaWithWildcard.hpp>
class TireTempBase : public touchgfx::Container
class TemperatureBase : public touchgfx::Container
{
public:
TireTempBase();
virtual ~TireTempBase();
TemperatureBase();
virtual ~TemperatureBase();
virtual void initialize();
protected:
@ -31,4 +31,4 @@ private:
};
#endif // TIRETEMPBASE_HPP
#endif // TEMPERATUREBASE_HPP

View File

@ -8,16 +8,17 @@
#include <mvp/View.hpp>
#include <gui/driverview_screen/DriverViewPresenter.hpp>
#include <touchgfx/widgets/Box.hpp>
#include <gui/containers/TireTemp.hpp>
#include <touchgfx/widgets/TextArea.hpp>
#include <gui/containers/Temperature.hpp>
#include <touchgfx/widgets/canvas/Line.hpp>
#include <touchgfx/widgets/canvas/PainterRGB565.hpp>
#include <touchgfx/containers/progress_indicators/LineProgress.hpp>
#include <touchgfx/widgets/TextArea.hpp>
#include <gui/containers/DriverViewField.hpp>
#include <touchgfx/containers/scrollers/ScrollWheel.hpp>
#include <gui/containers/DriverViewFieldSelection.hpp>
#include <touchgfx/containers/progress_indicators/BoxProgress.hpp>
#include <touchgfx/widgets/TextAreaWithWildcard.hpp>
#include <gui/containers/ErrorPopup.hpp>
class DriverViewViewBase : public touchgfx::View<DriverViewPresenter>
{
@ -65,14 +66,24 @@ protected:
* Member Declarations
*/
touchgfx::Box __background;
TireTemp tireTempRR;
TireTemp tireTempFR;
TireTemp tireTempRL;
TireTemp tireTempFL;
touchgfx::TextArea motorTempLabel;
Temperature motorTempL;
Temperature motorTempR;
touchgfx::Line motorTempDiv;
touchgfx::PainterRGB565 motorTempDivPainter;
touchgfx::Line invTempDiv;
touchgfx::PainterRGB565 invTempDivPainter;
Temperature invTempR;
Temperature invTempL;
touchgfx::TextArea invTempLabel;
touchgfx::Line ttDivVert;
touchgfx::PainterRGB565 ttDivVertPainter;
touchgfx::Line ttDivHoriz;
touchgfx::PainterRGB565 ttDivHorizPainter;
Temperature tireTempRR;
Temperature tireTempFR;
Temperature tireTempRL;
Temperature tireTempFL;
touchgfx::LineProgress tsSoC;
touchgfx::PainterRGB565 tsSoCPainter;
touchgfx::LineProgress lvSoC;
@ -87,7 +98,9 @@ protected:
touchgfx::DrawableListItems<DriverViewFieldSelection, 10> fieldTypeSelectionListItems;
touchgfx::BoxProgress progressBar;
touchgfx::TextArea prechargeLabel;
touchgfx::TextAreaWithOneWildcard r2dLabel;
touchgfx::TextArea r2dLabel;
touchgfx::TextAreaWithOneWildcard r2dProgressLabel;
ErrorPopup errorPopup;
private:

View File

@ -0,0 +1,39 @@
/*********************************************************************************/
/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/
/*********************************************************************************/
#include <gui_generated/containers/ErrorPopupBase.hpp>
#include <touchgfx/Color.hpp>
#include <texts/TextKeysAndLanguages.hpp>
ErrorPopupBase::ErrorPopupBase()
{
setWidth(450);
setHeight(150);
bg.setPosition(0, 0, 450, 150);
bg.setColor(touchgfx::Color::getColorFromRGB(197, 14, 31));
bg.setBorderColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
bg.setBorderSize(5);
add(bg);
title.setPosition(0, 0, 450, 49);
title.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
title.setLinespacing(0);
title.setTypedText(touchgfx::TypedText(T___SINGLEUSE_1NKF));
add(title);
details.setPosition(15, 60, 420, 75);
details.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
details.setLinespacing(0);
details.setTypedText(touchgfx::TypedText(T___SINGLEUSE_9L8R));
add(details);
}
ErrorPopupBase::~ErrorPopupBase()
{
}
void ErrorPopupBase::initialize()
{
}

View File

@ -1,31 +1,31 @@
/*********************************************************************************/
/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/
/*********************************************************************************/
#include <gui_generated/containers/TireTempBase.hpp>
#include <gui_generated/containers/TemperatureBase.hpp>
#include <touchgfx/Color.hpp>
#include <texts/TextKeysAndLanguages.hpp>
TireTempBase::TireTempBase()
TemperatureBase::TemperatureBase()
{
setWidth(75);
setHeight(75);
bg.setPosition(0, 0, 75, 75);
setWidth(60);
setHeight(60);
bg.setPosition(0, 0, 60, 60);
bg.setColor(touchgfx::Color::getColorFromRGB(0, 38, 255));
add(bg);
value.setPosition(0, 7, 75, 60);
value.setPosition(0, 0, 60, 50);
value.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
value.setLinespacing(0);
value.setTypedText(touchgfx::TypedText(T___SINGLEUSE_20H3));
add(value);
}
TireTempBase::~TireTempBase()
TemperatureBase::~TemperatureBase()
{
}
void TireTempBase::initialize()
void TemperatureBase::initialize()
{
}

View File

@ -4,8 +4,8 @@
#include <gui_generated/driverview_screen/DriverViewViewBase.hpp>
#include <touchgfx/canvas_widget_renderer/CanvasWidgetRenderer.hpp>
#include <touchgfx/Color.hpp>
#include <images/BitmapDatabase.hpp>
#include <texts/TextKeysAndLanguages.hpp>
#include <images/BitmapDatabase.hpp>
DriverViewViewBase::DriverViewViewBase() :
updateItemCallback(this, &DriverViewViewBase::updateItemCallbackHandler)
@ -16,19 +16,49 @@ DriverViewViewBase::DriverViewViewBase() :
__background.setColor(touchgfx::Color::getColorFromRGB(0, 0, 0));
add(__background);
tireTempRR.setXY(240, 197);
add(tireTempRR);
motorTempLabel.setPosition(315, 187, 150, 25);
motorTempLabel.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
motorTempLabel.setLinespacing(0);
motorTempLabel.setTypedText(touchgfx::TypedText(T___SINGLEUSE_JN2J));
add(motorTempLabel);
tireTempFR.setXY(240, 122);
add(tireTempFR);
motorTempL.setXY(329, 212);
add(motorTempL);
tireTempRL.setXY(165, 197);
add(tireTempRL);
motorTempR.setXY(392, 212);
add(motorTempR);
tireTempFL.setXY(165, 122);
add(tireTempFL);
motorTempDiv.setPosition(389, 212, 3, 60);
motorTempDivPainter.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
motorTempDiv.setPainter(motorTempDivPainter);
motorTempDiv.setStart(0, 0);
motorTempDiv.setEnd(0, 320);
motorTempDiv.setLineWidth(10);
motorTempDiv.setLineEndingStyle(touchgfx::Line::ROUND_CAP_ENDING);
add(motorTempDiv);
ttDivVert.setPosition(239, 122, 3, 150);
invTempDiv.setPosition(389, 122, 3, 60);
invTempDivPainter.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
invTempDiv.setPainter(invTempDivPainter);
invTempDiv.setStart(0, 0);
invTempDiv.setEnd(0, 320);
invTempDiv.setLineWidth(10);
invTempDiv.setLineEndingStyle(touchgfx::Line::ROUND_CAP_ENDING);
add(invTempDiv);
invTempR.setXY(392, 122);
add(invTempR);
invTempL.setXY(329, 122);
add(invTempL);
invTempLabel.setPosition(315, 97, 150, 25);
invTempLabel.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
invTempLabel.setLinespacing(0);
invTempLabel.setTypedText(touchgfx::TypedText(T___SINGLEUSE_ZP7N));
add(invTempLabel);
ttDivVert.setPosition(239, 122, 3, 123);
ttDivVertPainter.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
ttDivVert.setPainter(ttDivVertPainter);
ttDivVert.setStart(0, 0);
@ -37,7 +67,7 @@ DriverViewViewBase::DriverViewViewBase() :
ttDivVert.setLineEndingStyle(touchgfx::Line::ROUND_CAP_ENDING);
add(ttDivVert);
ttDivHoriz.setPosition(165, 196, 150, 3);
ttDivHoriz.setPosition(179, 182, 123, 3);
ttDivHorizPainter.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
ttDivHoriz.setPainter(ttDivHorizPainter);
ttDivHoriz.setStart(0, 0);
@ -46,6 +76,18 @@ DriverViewViewBase::DriverViewViewBase() :
ttDivHoriz.setLineEndingStyle(touchgfx::Line::ROUND_CAP_ENDING);
add(ttDivHoriz);
tireTempRR.setXY(242, 185);
add(tireTempRR);
tireTempFR.setXY(242, 122);
add(tireTempFR);
tireTempRL.setXY(179, 185);
add(tireTempRL);
tireTempFL.setXY(179, 122);
add(tireTempFL);
tsSoC.setXY(15, 122);
tsSoC.setProgressIndicatorPosition(0, 0, 40, 150);
tsSoC.setRange(0, 100);
@ -59,7 +101,7 @@ DriverViewViewBase::DriverViewViewBase() :
tsSoC.setValue(60);
add(tsSoC);
lvSoC.setXY(425, 122);
lvSoC.setXY(110, 122);
lvSoC.setProgressIndicatorPosition(0, 0, 40, 150);
lvSoC.setRange(0, 100);
lvSoC.setBackground(touchgfx::Bitmap(BITMAP_BAT_BAR_BG_ID));
@ -84,7 +126,7 @@ DriverViewViewBase::DriverViewViewBase() :
tsSoCLabel.setTypedText(touchgfx::TypedText(T___SINGLEUSE_PHFD));
add(tsSoCLabel);
lvSoCLabel.setPosition(425, 97, 40, 25);
lvSoCLabel.setPosition(110, 97, 40, 25);
lvSoCLabel.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
lvSoCLabel.setLinespacing(0);
lvSoCLabel.setTypedText(touchgfx::TypedText(T___SINGLEUSE_4OBM));
@ -130,12 +172,23 @@ DriverViewViewBase::DriverViewViewBase() :
prechargeLabel.setVisible(false);
add(prechargeLabel);
r2dLabel.setPosition(139, 275, 202, 37);
r2dLabel.setPosition(82, 275, 317, 37);
r2dLabel.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
r2dLabel.setLinespacing(0);
r2dLabel.setTypedText(touchgfx::TypedText(T___SINGLEUSE_NGUK));
r2dLabel.setVisible(false);
add(r2dLabel);
r2dProgressLabel.setPosition(180, 275, 219, 37);
r2dProgressLabel.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
r2dProgressLabel.setLinespacing(0);
r2dProgressLabel.setTypedText(touchgfx::TypedText(T___SINGLEUSE_J5UH));
r2dProgressLabel.setVisible(false);
add(r2dProgressLabel);
errorPopup.setXY(15, 122);
errorPopup.setVisible(false);
add(errorPopup);
}
DriverViewViewBase::~DriverViewViewBase()
@ -145,6 +198,10 @@ DriverViewViewBase::~DriverViewViewBase()
void DriverViewViewBase::setupScreen()
{
motorTempL.initialize();
motorTempR.initialize();
invTempR.initialize();
invTempL.initialize();
tireTempRR.initialize();
tireTempFR.initialize();
tireTempRL.initialize();
@ -157,6 +214,7 @@ void DriverViewViewBase::setupScreen()
{
fieldTypeSelectionListItems[i].initialize();
}
errorPopup.initialize();
}
void DriverViewViewBase::handleKeyEvent(uint8_t key)

View File

@ -1 +1 @@
{"remap":"yes","language":"GB","language_index":0,"indices":[["167","T_DEBUGVIEWFIELD_TITLE"],["167","T_DRIVERVIEWFIELD_TITLE"],["277","T_FIELD_BBAL"],["240","T_FIELD_TSVOLTVEH"],["233","T_FIELD_TSVOLTBAT"],["253","T_FIELD_LVSOC"],["271","T_FIELD_TSSOC"],["287","T_FIELD_MAXCELLTEMP"],["292","T_FIELD_TIREFL"],["297","T_FIELD_TIREFR"],["302","T_FIELD_TIRERL"],["307","T_FIELD_TIRERR"],["282","T_FIELD_LAPCOUNT"],["177","T_FIELD_INICHKSTATE"],["247","T_FIELD_ERR"],["321","T_FIELD_SDC"],["193","T_FIELD_INVRREADY"],["185","T_FIELD_INVLREADY"],["209","T_FIELD_R2DPROGRESS"],["201","T_FIELD_ACTIVEMISSION"],["169","T_FIELD_ASSTATE"],["225","T_FIELD_TSSTATE"],["167","T_NUMBERWILDCARD"],["167","T_DEFAULTWILDCARD_CENTERED"],["167","T_DEFAULTWILDCARD_RIGHTALIGNED"],["317","T_FIELD_TSCURRENT"],["312","T_FIELD_MINCELLVOLT"],["259","T_FIELD_SPEED"],["105","T_INSPECTION_HUGE"],["158","T_EBS_HUGE"],["127","T_TRACKDRIVE_HUGE"],["138","T_AUTOX_HUGE"],["217","T_SKIDPAD_HUGE"],["92","T_ACCEL_HUGE"],["34","T_INVALID_HUGE"],["77","T_MANUAL"],["105","T_INSPECTION"],["158","T_EBS"],["127","T_TRACKDRIVE"],["138","T_AUTOX"],["217","T_SKIDPAD"],["92","T_ACCEL"],["67","T___SINGLEUSE_NGUK"],["167","T___SINGLEUSE_4E84"],["167","T___SINGLEUSE_YTAB"],["116","T___SINGLEUSE_RWCE"],["148","T___SINGLEUSE_HMH2"],["325","T___SINGLEUSE_4OBM"],["318","T___SINGLEUSE_PHFD"],["265","T___SINGLEUSE_H6UX"],["167","T___SINGLEUSE_20H3"],["17","T___SINGLEUSE_SDGP"],["51","T___SINGLEUSE_M5X7"],["0","T___SINGLEUSE_6GPV"]]}
{"remap":"yes","language":"GB","language_index":0,"indices":[["128","T_ERROR_AMS"],["176","T_DEBUGVIEWFIELD_TITLE"],["176","T_DRIVERVIEWFIELD_TITLE"],["292","T_FIELD_BBAL"],["249","T_FIELD_TSVOLTVEH"],["242","T_FIELD_TSVOLTBAT"],["262","T_FIELD_LVSOC"],["286","T_FIELD_TSSOC"],["302","T_FIELD_MAXCELLTEMP"],["307","T_FIELD_TIREFL"],["312","T_FIELD_TIREFR"],["317","T_FIELD_TIRERL"],["322","T_FIELD_TIRERR"],["297","T_FIELD_LAPCOUNT"],["186","T_FIELD_INICHKSTATE"],["256","T_FIELD_ERR"],["340","T_FIELD_SDC"],["202","T_FIELD_INVRREADY"],["194","T_FIELD_INVLREADY"],["218","T_FIELD_R2DPROGRESS"],["210","T_FIELD_ACTIVEMISSION"],["178","T_FIELD_ASSTATE"],["234","T_FIELD_TSSTATE"],["176","T_NUMBERWILDCARD"],["176","T_DEFAULTWILDCARD_CENTERED"],["176","T_DEFAULTWILDCARD_RIGHTALIGNED"],["332","T_FIELD_TSCURRENT"],["327","T_FIELD_MINCELLVOLT"],["274","T_FIELD_SPEED"],["95","T_INSPECTION_HUGE"],["158","T_EBS_HUGE"],["117","T_TRACKDRIVE_HUGE"],["138","T_AUTOX_HUGE"],["226","T_SKIDPAD_HUGE"],["82","T_ACCEL_HUGE"],["34","T_INVALID_HUGE"],["67","T_MANUAL"],["95","T_INSPECTION"],["158","T_EBS"],["117","T_TRACKDRIVE"],["138","T_AUTOX"],["226","T_SKIDPAD"],["82","T_ACCEL"],["268","T___SINGLEUSE_JN2J"],["167","T___SINGLEUSE_ZP7N"],["176","T___SINGLEUSE_9L8R"],["16","T___SINGLEUSE_1NKF"],["176","T___SINGLEUSE_J5UH"],["336","T___SINGLEUSE_NGUK"],["176","T___SINGLEUSE_4E84"],["176","T___SINGLEUSE_YTAB"],["106","T___SINGLEUSE_RWCE"],["148","T___SINGLEUSE_HMH2"],["344","T___SINGLEUSE_4OBM"],["333","T___SINGLEUSE_PHFD"],["280","T___SINGLEUSE_H6UX"],["176","T___SINGLEUSE_20H3"],["17","T___SINGLEUSE_SDGP"],["51","T___SINGLEUSE_M5X7"],["0","T___SINGLEUSE_6GPV"]]}

View File

@ -1 +1 @@
{"languages":["GB"],"textids":["T_DEBUGVIEWFIELD_TITLE","T_DRIVERVIEWFIELD_TITLE","T_FIELD_BBAL","T_FIELD_TSVOLTVEH","T_FIELD_TSVOLTBAT","T_FIELD_LVSOC","T_FIELD_TSSOC","T_FIELD_MAXCELLTEMP","T_FIELD_TIREFL","T_FIELD_TIREFR","T_FIELD_TIRERL","T_FIELD_TIRERR","T_FIELD_LAPCOUNT","T_FIELD_INICHKSTATE","T_FIELD_ERR","T_FIELD_SDC","T_FIELD_INVRREADY","T_FIELD_INVLREADY","T_FIELD_R2DPROGRESS","T_FIELD_ACTIVEMISSION","T_FIELD_ASSTATE","T_FIELD_TSSTATE","T_NUMBERWILDCARD","T_DEFAULTWILDCARD_CENTERED","T_DEFAULTWILDCARD_RIGHTALIGNED","T_FIELD_TSCURRENT","T_FIELD_MINCELLVOLT","T_FIELD_SPEED","T_INSPECTION_HUGE","T_EBS_HUGE","T_TRACKDRIVE_HUGE","T_AUTOX_HUGE","T_SKIDPAD_HUGE","T_ACCEL_HUGE","T_INVALID_HUGE","T_MANUAL","T_INSPECTION","T_EBS","T_TRACKDRIVE","T_AUTOX","T_SKIDPAD","T_ACCEL","T___SINGLEUSE_NGUK","T___SINGLEUSE_4E84","T___SINGLEUSE_YTAB","T___SINGLEUSE_RWCE","T___SINGLEUSE_HMH2","T___SINGLEUSE_4OBM","T___SINGLEUSE_PHFD","T___SINGLEUSE_H6UX","T___SINGLEUSE_20H3","T___SINGLEUSE_SDGP","T___SINGLEUSE_M5X7","T___SINGLEUSE_6GPV"]}
{"languages":["GB"],"textids":["T_ERROR_AMS","T_DEBUGVIEWFIELD_TITLE","T_DRIVERVIEWFIELD_TITLE","T_FIELD_BBAL","T_FIELD_TSVOLTVEH","T_FIELD_TSVOLTBAT","T_FIELD_LVSOC","T_FIELD_TSSOC","T_FIELD_MAXCELLTEMP","T_FIELD_TIREFL","T_FIELD_TIREFR","T_FIELD_TIRERL","T_FIELD_TIRERR","T_FIELD_LAPCOUNT","T_FIELD_INICHKSTATE","T_FIELD_ERR","T_FIELD_SDC","T_FIELD_INVRREADY","T_FIELD_INVLREADY","T_FIELD_R2DPROGRESS","T_FIELD_ACTIVEMISSION","T_FIELD_ASSTATE","T_FIELD_TSSTATE","T_NUMBERWILDCARD","T_DEFAULTWILDCARD_CENTERED","T_DEFAULTWILDCARD_RIGHTALIGNED","T_FIELD_TSCURRENT","T_FIELD_MINCELLVOLT","T_FIELD_SPEED","T_INSPECTION_HUGE","T_EBS_HUGE","T_TRACKDRIVE_HUGE","T_AUTOX_HUGE","T_SKIDPAD_HUGE","T_ACCEL_HUGE","T_INVALID_HUGE","T_MANUAL","T_INSPECTION","T_EBS","T_TRACKDRIVE","T_AUTOX","T_SKIDPAD","T_ACCEL","T___SINGLEUSE_JN2J","T___SINGLEUSE_ZP7N","T___SINGLEUSE_9L8R","T___SINGLEUSE_1NKF","T___SINGLEUSE_J5UH","T___SINGLEUSE_NGUK","T___SINGLEUSE_4E84","T___SINGLEUSE_YTAB","T___SINGLEUSE_RWCE","T___SINGLEUSE_HMH2","T___SINGLEUSE_4OBM","T___SINGLEUSE_PHFD","T___SINGLEUSE_H6UX","T___SINGLEUSE_20H3","T___SINGLEUSE_SDGP","T___SINGLEUSE_M5X7","T___SINGLEUSE_6GPV"]}

View File

@ -1 +1 @@
{"remap":"yes","languages":["Gb"],"characters":[67,104,111,111,115,101,32,97,32,109,105,115,115,105,111,110,0,67,117,114,114,101,110,116,32,77,105,115,115,105,111,110,58,0,73,110,118,97,108,105,100,32,77,105,115,115,105,111,110,33,0,73,110,118,97,108,105,100,32,77,105,115,115,105,111,110,0,82,50,68,32,91,2,47,56,93,0,77,97,110,117,97,108,32,68,114,105,118,105,110,103,0,65,99,99,101,108,101,114,97,116,105,111,110,0,73,110,115,112,101,99,116,105,111,110,0,80,65,82,65,77,69,84,69,82,83,0,84,114,97,99,107,100,114,105,118,101,0,65,117,116,111,99,114,111,115,115,0,80,82,69,67,72,65,82,71,69,0,69,66,83,32,84,101,115,116,0,2,0,65,83,83,84,65,84,69,0,73,67,83,84,65,84,69,0,73,78,86,76,82,68,89,0,73,78,86,82,82,68,89,0,77,73,83,83,73,79,78,0,82,50,68,80,82,79,71,0,83,107,105,100,112,97,100,0,84,83,83,84,65,84,69,0,84,83,86,66,65,84,0,84,83,86,86,69,72,0,69,82,82,79,82,0,76,86,83,79,67,0,83,80,69,69,68,0,84,73,82,69,83,0,84,83,83,79,67,0,66,66,65,76,0,76,65,80,83,0,84,77,65,88,0,84,84,70,76,0,84,84,70,82,0,84,84,82,76,0,84,84,82,82,0,86,77,73,78,0,73,84,83,0,83,68,67,0,76,86,0]}
{"remap":"yes","languages":["Gb"],"characters":[67,104,111,111,115,101,32,97,32,109,105,115,115,105,111,110,0,67,117,114,114,101,110,116,32,77,105,115,115,105,111,110,58,0,73,110,118,97,108,105,100,32,77,105,115,115,105,111,110,33,0,73,110,118,97,108,105,100,32,77,105,115,115,105,111,110,0,77,97,110,117,97,108,32,68,114,105,118,105,110,103,0,65,99,99,101,108,101,114,97,116,105,111,110,0,73,110,115,112,101,99,116,105,111,110,0,80,65,82,65,77,69,84,69,82,83,0,84,114,97,99,107,100,114,105,118,101,0,65,77,83,32,69,114,114,79,114,0,65,117,116,111,99,114,111,115,115,0,80,82,69,67,72,65,82,71,69,0,69,66,83,32,84,101,115,116,0,73,78,86,69,82,84,69,82,0,2,0,65,83,83,84,65,84,69,0,73,67,83,84,65,84,69,0,73,78,86,76,82,68,89,0,73,78,86,82,82,68,89,0,77,73,83,83,73,79,78,0,82,50,68,80,82,79,71,0,83,107,105,100,112,97,100,0,84,83,83,84,65,84,69,0,84,83,86,66,65,84,0,84,83,86,86,69,72,0,69,82,82,79,82,0,76,86,83,79,67,0,77,79,84,79,82,0,83,80,69,69,68,0,84,73,82,69,83,0,84,83,83,79,67,0,66,66,65,76,0,76,65,80,83,0,84,77,65,88,0,84,84,70,76,0,84,84,70,82,0,84,84,82,76,0,84,84,82,82,0,86,77,73,78,0,73,84,83,0,82,50,68,0,83,68,67,0,76,86,0]}

View File

@ -1 +1 @@
{"databases":{"DEFAULT":[[5,"LEFT","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[4,"CENTER","LTR"],[0,"CENTER","LTR"],[0,"RIGHT","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[1,"LEFT","LTR"],[4,"RIGHT","LTR"],[1,"LEFT","LTR"],[1,"CENTER","LTR"],[1,"LEFT","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[4,"CENTER","LTR"],[1,"LEFT","LTR"],[2,"CENTER","LTR"],[1,"LEFT","LTR"]]},"database_list":["DEFAULT"],"fonts":{"getFont_verdana_20_4bpp":0,"getFont_CHINN____30_4bpp":1,"getFont_CHINN____20_4bpp":2,"getFont_CHINN____40_4bpp":3,"getFont_lucon_TTF_50_4bpp":4,"getFont_verdanab_20_4bpp":5},"generate_font_format":"0"}
{"databases":{"DEFAULT":[[3,"CENTER","LTR"],[5,"LEFT","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[4,"CENTER","LTR"],[0,"CENTER","LTR"],[0,"RIGHT","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[0,"LEFT","LTR"],[3,"CENTER","LTR"],[1,"RIGHT","LTR"],[1,"LEFT","LTR"],[4,"RIGHT","LTR"],[1,"LEFT","LTR"],[1,"CENTER","LTR"],[1,"LEFT","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[4,"CENTER","LTR"],[1,"LEFT","LTR"],[2,"CENTER","LTR"],[1,"LEFT","LTR"]]},"database_list":["DEFAULT"],"fonts":{"getFont_verdana_20_4bpp":0,"getFont_CHINN____30_4bpp":1,"getFont_CHINN____20_4bpp":2,"getFont_CHINN____40_4bpp":3,"getFont_lucon_TTF_50_4bpp":4,"getFont_verdanab_20_4bpp":5},"generate_font_format":"0"}

View File

@ -12,6 +12,7 @@ enum LANGUAGES
enum TEXTS
{
T_ERROR_AMS,
T_DEBUGVIEWFIELD_TITLE,
T_DRIVERVIEWFIELD_TITLE,
T_FIELD_BBAL,
@ -54,6 +55,11 @@ enum TEXTS
T_AUTOX,
T_SKIDPAD,
T_ACCEL,
T___SINGLEUSE_JN2J,
T___SINGLEUSE_ZP7N,
T___SINGLEUSE_9L8R,
T___SINGLEUSE_1NKF,
T___SINGLEUSE_J5UH,
T___SINGLEUSE_NGUK,
T___SINGLEUSE_4E84,
T___SINGLEUSE_YTAB,

View File

@ -10,57 +10,63 @@ KEEP extern const uint32_t indicesGb[] TEXT_LOCATION_FLASH_ATTRIBUTE;
// Remap all strings
TEXT_LOCATION_FLASH_PRAGMA
KEEP extern const uint32_t indicesGb[] TEXT_LOCATION_FLASH_ATTRIBUTE = {
167, // T_DEBUGVIEWFIELD_TITLE: "<>"
167, // T_DRIVERVIEWFIELD_TITLE: "<>"
277, // T_FIELD_BBAL: "BBAL"
240, // T_FIELD_TSVOLTVEH: "TSVVEH"
233, // T_FIELD_TSVOLTBAT: "TSVBAT"
253, // T_FIELD_LVSOC: "LVSOC"
271, // T_FIELD_TSSOC: "TSSOC"
287, // T_FIELD_MAXCELLTEMP: "TMAX"
292, // T_FIELD_TIREFL: "TTFL"
297, // T_FIELD_TIREFR: "TTFR"
302, // T_FIELD_TIRERL: "TTRL"
307, // T_FIELD_TIRERR: "TTRR"
282, // T_FIELD_LAPCOUNT: "LAPS"
177, // T_FIELD_INICHKSTATE: "ICSTATE"
247, // T_FIELD_ERR: "ERROR"
321, // T_FIELD_SDC: "SDC"
193, // T_FIELD_INVRREADY: "INVRRDY"
185, // T_FIELD_INVLREADY: "INVLRDY"
209, // T_FIELD_R2DPROGRESS: "R2DPROG"
201, // T_FIELD_ACTIVEMISSION: "MISSION"
169, // T_FIELD_ASSTATE: "ASSTATE"
225, // T_FIELD_TSSTATE: "TSSTATE"
167, // T_NUMBERWILDCARD: "<>"
167, // T_DEFAULTWILDCARD_CENTERED: "<>"
167, // T_DEFAULTWILDCARD_RIGHTALIGNED: "<>"
317, // T_FIELD_TSCURRENT: "ITS"
312, // T_FIELD_MINCELLVOLT: "VMIN"
259, // T_FIELD_SPEED: "SPEED"
105, // T_INSPECTION_HUGE: "Inspection"
128, // T_ERROR_AMS: "AMS ErrOr"
176, // T_DEBUGVIEWFIELD_TITLE: "<>"
176, // T_DRIVERVIEWFIELD_TITLE: "<>"
292, // T_FIELD_BBAL: "BBAL"
249, // T_FIELD_TSVOLTVEH: "TSVVEH"
242, // T_FIELD_TSVOLTBAT: "TSVBAT"
262, // T_FIELD_LVSOC: "LVSOC"
286, // T_FIELD_TSSOC: "TSSOC"
302, // T_FIELD_MAXCELLTEMP: "TMAX"
307, // T_FIELD_TIREFL: "TTFL"
312, // T_FIELD_TIREFR: "TTFR"
317, // T_FIELD_TIRERL: "TTRL"
322, // T_FIELD_TIRERR: "TTRR"
297, // T_FIELD_LAPCOUNT: "LAPS"
186, // T_FIELD_INICHKSTATE: "ICSTATE"
256, // T_FIELD_ERR: "ERROR"
340, // T_FIELD_SDC: "SDC"
202, // T_FIELD_INVRREADY: "INVRRDY"
194, // T_FIELD_INVLREADY: "INVLRDY"
218, // T_FIELD_R2DPROGRESS: "R2DPROG"
210, // T_FIELD_ACTIVEMISSION: "MISSION"
178, // T_FIELD_ASSTATE: "ASSTATE"
234, // T_FIELD_TSSTATE: "TSSTATE"
176, // T_NUMBERWILDCARD: "<>"
176, // T_DEFAULTWILDCARD_CENTERED: "<>"
176, // T_DEFAULTWILDCARD_RIGHTALIGNED: "<>"
332, // T_FIELD_TSCURRENT: "ITS"
327, // T_FIELD_MINCELLVOLT: "VMIN"
274, // T_FIELD_SPEED: "SPEED"
95, // T_INSPECTION_HUGE: "Inspection"
158, // T_EBS_HUGE: "EBS Test"
127, // T_TRACKDRIVE_HUGE: "Trackdrive"
117, // T_TRACKDRIVE_HUGE: "Trackdrive"
138, // T_AUTOX_HUGE: "Autocross"
217, // T_SKIDPAD_HUGE: "Skidpad"
92, // T_ACCEL_HUGE: "Acceleration"
226, // T_SKIDPAD_HUGE: "Skidpad"
82, // T_ACCEL_HUGE: "Acceleration"
34, // T_INVALID_HUGE: "Invalid Mission!"
77, // T_MANUAL: "Manual Driving"
105, // T_INSPECTION: "Inspection"
67, // T_MANUAL: "Manual Driving"
95, // T_INSPECTION: "Inspection"
158, // T_EBS: "EBS Test"
127, // T_TRACKDRIVE: "Trackdrive"
117, // T_TRACKDRIVE: "Trackdrive"
138, // T_AUTOX: "Autocross"
217, // T_SKIDPAD: "Skidpad"
92, // T_ACCEL: "Acceleration"
67, // T___SINGLEUSE_NGUK: "R2D [<>/8]"
167, // T___SINGLEUSE_4E84: "<>"
167, // T___SINGLEUSE_YTAB: "<>"
116, // T___SINGLEUSE_RWCE: "PARAMETERS"
226, // T_SKIDPAD: "Skidpad"
82, // T_ACCEL: "Acceleration"
268, // T___SINGLEUSE_JN2J: "MOTOR"
167, // T___SINGLEUSE_ZP7N: "INVERTER"
176, // T___SINGLEUSE_9L8R: "<>"
16, // T___SINGLEUSE_1NKF: ""
176, // T___SINGLEUSE_J5UH: "<>"
336, // T___SINGLEUSE_NGUK: "R2D"
176, // T___SINGLEUSE_4E84: "<>"
176, // T___SINGLEUSE_YTAB: "<>"
106, // T___SINGLEUSE_RWCE: "PARAMETERS"
148, // T___SINGLEUSE_HMH2: "PRECHARGE"
325, // T___SINGLEUSE_4OBM: "LV"
318, // T___SINGLEUSE_PHFD: "TS"
265, // T___SINGLEUSE_H6UX: "TIRES"
167, // T___SINGLEUSE_20H3: "<>"
344, // T___SINGLEUSE_4OBM: "LV"
333, // T___SINGLEUSE_PHFD: "TS"
280, // T___SINGLEUSE_H6UX: "TIRES"
176, // T___SINGLEUSE_20H3: "<>"
17, // T___SINGLEUSE_SDGP: "Current Mission:"
51, // T___SINGLEUSE_M5X7: "Invalid Mission"
0 // T___SINGLEUSE_6GPV: "Choose a mission"

View File

@ -64,42 +64,45 @@ KEEP extern const touchgfx::Unicode::UnicodeChar texts_all_languages[] TEXT_LOCA
0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x0, // @17 "Current Mission:"
0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x21, 0x0, // @34 "Invalid Mission!"
0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0, // @51 "Invalid Mission"
0x52, 0x32, 0x44, 0x20, 0x5b, 0x2, 0x2f, 0x38, 0x5d, 0x0, // @67 "R2D [<>/8]"
0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x20, 0x44, 0x72, 0x69, 0x76, 0x69, 0x6e, 0x67, 0x0, // @77 "Manual Driving"
0x41, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0, // @92 "Acceleration"
0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0, // @105 "Inspection"
0x50, 0x41, 0x52, 0x41, 0x4d, 0x45, 0x54, 0x45, 0x52, 0x53, 0x0, // @116 "PARAMETERS"
0x54, 0x72, 0x61, 0x63, 0x6b, 0x64, 0x72, 0x69, 0x76, 0x65, 0x0, // @127 "Trackdrive"
0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x20, 0x44, 0x72, 0x69, 0x76, 0x69, 0x6e, 0x67, 0x0, // @67 "Manual Driving"
0x41, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0, // @82 "Acceleration"
0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0, // @95 "Inspection"
0x50, 0x41, 0x52, 0x41, 0x4d, 0x45, 0x54, 0x45, 0x52, 0x53, 0x0, // @106 "PARAMETERS"
0x54, 0x72, 0x61, 0x63, 0x6b, 0x64, 0x72, 0x69, 0x76, 0x65, 0x0, // @117 "Trackdrive"
0x41, 0x4d, 0x53, 0x20, 0x45, 0x72, 0x72, 0x4f, 0x72, 0x0, // @128 "AMS ErrOr"
0x41, 0x75, 0x74, 0x6f, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x0, // @138 "Autocross"
0x50, 0x52, 0x45, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x0, // @148 "PRECHARGE"
0x45, 0x42, 0x53, 0x20, 0x54, 0x65, 0x73, 0x74, 0x0, // @158 "EBS Test"
0x2, 0x0, // @167 "<>"
0x41, 0x53, 0x53, 0x54, 0x41, 0x54, 0x45, 0x0, // @169 "ASSTATE"
0x49, 0x43, 0x53, 0x54, 0x41, 0x54, 0x45, 0x0, // @177 "ICSTATE"
0x49, 0x4e, 0x56, 0x4c, 0x52, 0x44, 0x59, 0x0, // @185 "INVLRDY"
0x49, 0x4e, 0x56, 0x52, 0x52, 0x44, 0x59, 0x0, // @193 "INVRRDY"
0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x0, // @201 "MISSION"
0x52, 0x32, 0x44, 0x50, 0x52, 0x4f, 0x47, 0x0, // @209 "R2DPROG"
0x53, 0x6b, 0x69, 0x64, 0x70, 0x61, 0x64, 0x0, // @217 "Skidpad"
0x54, 0x53, 0x53, 0x54, 0x41, 0x54, 0x45, 0x0, // @225 "TSSTATE"
0x54, 0x53, 0x56, 0x42, 0x41, 0x54, 0x0, // @233 "TSVBAT"
0x54, 0x53, 0x56, 0x56, 0x45, 0x48, 0x0, // @240 "TSVVEH"
0x45, 0x52, 0x52, 0x4f, 0x52, 0x0, // @247 "ERROR"
0x4c, 0x56, 0x53, 0x4f, 0x43, 0x0, // @253 "LVSOC"
0x53, 0x50, 0x45, 0x45, 0x44, 0x0, // @259 "SPEED"
0x54, 0x49, 0x52, 0x45, 0x53, 0x0, // @265 "TIRES"
0x54, 0x53, 0x53, 0x4f, 0x43, 0x0, // @271 "TSSOC"
0x42, 0x42, 0x41, 0x4c, 0x0, // @277 "BBAL"
0x4c, 0x41, 0x50, 0x53, 0x0, // @282 "LAPS"
0x54, 0x4d, 0x41, 0x58, 0x0, // @287 "TMAX"
0x54, 0x54, 0x46, 0x4c, 0x0, // @292 "TTFL"
0x54, 0x54, 0x46, 0x52, 0x0, // @297 "TTFR"
0x54, 0x54, 0x52, 0x4c, 0x0, // @302 "TTRL"
0x54, 0x54, 0x52, 0x52, 0x0, // @307 "TTRR"
0x56, 0x4d, 0x49, 0x4e, 0x0, // @312 "VMIN"
0x49, 0x54, 0x53, 0x0, // @317 "ITS"
0x53, 0x44, 0x43, 0x0, // @321 "SDC"
0x4c, 0x56, 0x0 // @325 "LV"
0x49, 0x4e, 0x56, 0x45, 0x52, 0x54, 0x45, 0x52, 0x0, // @167 "INVERTER"
0x2, 0x0, // @176 "<>"
0x41, 0x53, 0x53, 0x54, 0x41, 0x54, 0x45, 0x0, // @178 "ASSTATE"
0x49, 0x43, 0x53, 0x54, 0x41, 0x54, 0x45, 0x0, // @186 "ICSTATE"
0x49, 0x4e, 0x56, 0x4c, 0x52, 0x44, 0x59, 0x0, // @194 "INVLRDY"
0x49, 0x4e, 0x56, 0x52, 0x52, 0x44, 0x59, 0x0, // @202 "INVRRDY"
0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x0, // @210 "MISSION"
0x52, 0x32, 0x44, 0x50, 0x52, 0x4f, 0x47, 0x0, // @218 "R2DPROG"
0x53, 0x6b, 0x69, 0x64, 0x70, 0x61, 0x64, 0x0, // @226 "Skidpad"
0x54, 0x53, 0x53, 0x54, 0x41, 0x54, 0x45, 0x0, // @234 "TSSTATE"
0x54, 0x53, 0x56, 0x42, 0x41, 0x54, 0x0, // @242 "TSVBAT"
0x54, 0x53, 0x56, 0x56, 0x45, 0x48, 0x0, // @249 "TSVVEH"
0x45, 0x52, 0x52, 0x4f, 0x52, 0x0, // @256 "ERROR"
0x4c, 0x56, 0x53, 0x4f, 0x43, 0x0, // @262 "LVSOC"
0x4d, 0x4f, 0x54, 0x4f, 0x52, 0x0, // @268 "MOTOR"
0x53, 0x50, 0x45, 0x45, 0x44, 0x0, // @274 "SPEED"
0x54, 0x49, 0x52, 0x45, 0x53, 0x0, // @280 "TIRES"
0x54, 0x53, 0x53, 0x4f, 0x43, 0x0, // @286 "TSSOC"
0x42, 0x42, 0x41, 0x4c, 0x0, // @292 "BBAL"
0x4c, 0x41, 0x50, 0x53, 0x0, // @297 "LAPS"
0x54, 0x4d, 0x41, 0x58, 0x0, // @302 "TMAX"
0x54, 0x54, 0x46, 0x4c, 0x0, // @307 "TTFL"
0x54, 0x54, 0x46, 0x52, 0x0, // @312 "TTFR"
0x54, 0x54, 0x52, 0x4c, 0x0, // @317 "TTRL"
0x54, 0x54, 0x52, 0x52, 0x0, // @322 "TTRR"
0x56, 0x4d, 0x49, 0x4e, 0x0, // @327 "VMIN"
0x49, 0x54, 0x53, 0x0, // @332 "ITS"
0x52, 0x32, 0x44, 0x0, // @336 "R2D"
0x53, 0x44, 0x43, 0x0, // @340 "SDC"
0x4c, 0x56, 0x0 // @344 "LV"
};
TEXT_LOCATION_FLASH_PRAGMA

View File

@ -26,6 +26,7 @@ extern const touchgfx::TypedText::TypedTextData* const typedTextDatabaseArray[];
TEXT_LOCATION_FLASH_PRAGMA
const touchgfx::TypedText::TypedTextData typedText_database_DEFAULT[] TEXT_LOCATION_FLASH_ATTRIBUTE = {
{ 3, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 5, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
@ -68,6 +69,11 @@ const touchgfx::TypedText::TypedTextData typedText_database_DEFAULT[] TEXT_LOCAT
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 0, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
{ 3, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 1, touchgfx::RIGHT, touchgfx::TEXT_DIRECTION_LTR },
{ 1, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
{ 4, touchgfx::RIGHT, touchgfx::TEXT_DIRECTION_LTR },
{ 1, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },

View File

@ -66,4 +66,6 @@ private:
void updateValueBuffer();
};
void *get_r2dprog_text();
#endif // NAMEDFIELD_HPP

View File

@ -0,0 +1,20 @@
#ifndef ERRORPOPUP_HPP
#define ERRORPOPUP_HPP
#include "touchgfx/Unicode.hpp"
#include <gui_generated/containers/ErrorPopupBase.hpp>
class ErrorPopup : public ErrorPopupBase {
public:
ErrorPopup();
virtual ~ErrorPopup() {}
virtual void initialize();
void showAMSError();
protected:
touchgfx::Unicode::UnicodeChar detailsBuffer[128];
};
#endif // ERRORPOPUP_HPP

View File

@ -0,0 +1,31 @@
#ifndef TEMPERATURE_HPP
#define TEMPERATURE_HPP
#include <gui_generated/containers/TemperatureBase.hpp>
class Temperature : public TemperatureBase {
public:
Temperature();
virtual ~Temperature() {}
virtual void initialize();
virtual void setTemp(int temp_in_celsius);
/**
* @brief Set the temperature thresholds for the color coding.
*
* @param thresholds Array of 4 integers
*/
void setTempThresholds(int *thresholds);
protected:
private:
int temp;
int tempThresholds[4];
Unicode::UnicodeChar valueBuffer[3];
void updateValueBuffer();
};
#endif // TEMPERATURE_HPP

View File

@ -1,24 +0,0 @@
#ifndef TIRETEMP_HPP
#define TIRETEMP_HPP
#include <gui_generated/containers/TireTempBase.hpp>
#include <sys/_stdint.h>
class TireTemp : public TireTempBase {
public:
TireTemp();
virtual ~TireTemp() {}
virtual void initialize();
virtual void setTemp(int temp_in_celsius);
protected:
private:
int temp;
Unicode::UnicodeChar valueBuffer[3];
void updateValueBuffer();
};
#endif // TIRETEMP_HPP

View File

@ -37,6 +37,9 @@ public:
private:
DriverViewPresenter();
void updateProgress();
void updateErrorPopup();
DriverViewView &view;
DataFieldType fields[3];

View File

@ -24,10 +24,13 @@ public:
void setFieldType(size_t i, DataFieldType type);
void updateFieldValues();
void setTireTemps(const TireTemps &temps);
void setTemps(const Temperatures &temps);
void setTSSoC(uint8_t soc);
void setProgress(bool active, DriverViewProgressType type, float progress);
void showAMSError();
void clearErrorPopup();
void selectPrevField() override;
void selectNextField() override;
void selectPrevFieldType() override;

View File

@ -249,13 +249,13 @@ NamedFieldDescription dataFieldDescs[] = {
[DF_IniChkState] = {NamedFieldKind::Text, "ICSTATE", 1, 0, get_inichk_text},
[DF_LapCount] = {NamedFieldKind::Int, "LAPS", 3, 0, VEH_FIELD(lap_count)},
[DF_TireTempFL] = {NamedFieldKind::Float, "TTFL", 2, 1,
VEH_FIELD(tire_temps.fl)},
VEH_FIELD(temps.tire_fl)},
[DF_TireTempFR] = {NamedFieldKind::Float, "TTFR", 2, 1,
VEH_FIELD(tire_temps.fr)},
VEH_FIELD(temps.tire_fr)},
[DF_TireTempRL] = {NamedFieldKind::Float, "TTRL", 2, 1,
VEH_FIELD(tire_temps.rl)},
VEH_FIELD(temps.tire_rl)},
[DF_TireTempRR] = {NamedFieldKind::Float, "TTRR", 2, 1,
VEH_FIELD(tire_temps.rr)},
VEH_FIELD(temps.tire_rr)},
[DF_MinCellVolt] = {NamedFieldKind::Float, "VMIN", 1, 2,
VEH_FIELD(min_cell_volt)},
[DF_MaxCellTemp] = {NamedFieldKind::Float, "TMAX", 2, 1,
@ -268,7 +268,7 @@ NamedFieldDescription dataFieldDescs[] = {
VEH_FIELD(ts_voltage_bat)},
[DF_TSVoltageVeh] = {NamedFieldKind::Float, "TSVVEH", 3, 1,
VEH_FIELD(ts_voltage_veh)},
[DF_Speed] = {NamedFieldKind::Float, "SPEED", 3, 0, get_zero},
[DF_Speed] = {NamedFieldKind::Float, "SPEED", 3, 0, VEH_FIELD(speed)},
[DF_BBal] = {NamedFieldKind::Float, "BBAL", 3, 1, get_zero},
};

View File

@ -0,0 +1,71 @@
#include <gui/containers/ErrorPopup.hpp>
#include "texts/TextKeysAndLanguages.hpp"
#include "touchgfx/Unicode.hpp"
#include "vehicle.h"
ErrorPopup::ErrorPopup() {}
void ErrorPopup::initialize() { ErrorPopupBase::initialize(); }
void ErrorPopup::showAMSError() {
title.setTypedText(T_ERROR_AMS);
title.invalidate();
switch (vehicle_state.last_ams_error.kind) {
case AMS_ERROR_NONE:
touchgfx::Unicode::strncpy(detailsBuffer, "UNKNOWN ERROR",
sizeof(detailsBuffer) / sizeof(*detailsBuffer));
break;
case AMS_ERROR_SLAVE_TIMEOUT:
touchgfx::Unicode::snprintf(
detailsBuffer, sizeof(detailsBuffer) / sizeof(*detailsBuffer),
"Slave timeout: Slave %d", vehicle_state.last_ams_error.arg);
break;
case AMS_ERROR_SLAVE_PANIC: {
const char *panicKindStr = "UNKNOWN";
switch (vehicle_state.last_ams_slave_panic.kind) {
case AMS_SLAVEPANIC_OVERTEMP:
panicKindStr = "OVERTEMPERATURE";
break;
case AMS_SLAVEPANIC_UNDERTEMP:
panicKindStr = "UNDERTEMPERATURE";
break;
case AMS_SLAVEPANIC_OVERVOLTAGE:
panicKindStr = "OVERVOLTAGE";
break;
case AMS_SLAVEPANIC_UNDERVOLTAGE:
panicKindStr = "UNDERVOLTAGE";
break;
case AMS_SLAVEPANIC_TOO_FEW_TEMP:
panicKindStr = "TOO FEW TEMP SENSORS";
break;
case AMS_SLAVEPANIC_OPENWIRE:
panicKindStr = "OPEN WIRE";
break;
}
touchgfx::Unicode::UnicodeChar panicKindBuf[32];
touchgfx::Unicode::strncpy(panicKindBuf, panicKindStr,
sizeof(panicKindBuf) / sizeof(*panicKindBuf));
touchgfx::Unicode::snprintf(
detailsBuffer, sizeof(detailsBuffer) / sizeof(*detailsBuffer),
"Slave panic: Slave %d\n[ID: %d, Kind: %s, Arg: %08x]",
vehicle_state.last_ams_slave_panic.id, panicKindBuf,
vehicle_state.last_ams_slave_panic.arg);
break;
}
case AMS_ERROR_SHUNT_TIMEOUT:
touchgfx::Unicode::strncpy(detailsBuffer, "Shunt timeout",
sizeof(detailsBuffer) / sizeof(*detailsBuffer));
break;
case AMS_ERROR_SHUNT_OVERCURRENT:
touchgfx::Unicode::strncpy(detailsBuffer, "Shunt overcurrent",
sizeof(detailsBuffer) / sizeof(*detailsBuffer));
break;
case AMS_ERROR_SHUNT_OVERTEMP:
touchgfx::Unicode::strncpy(detailsBuffer, "Shunt overtemperature",
sizeof(detailsBuffer) / sizeof(*detailsBuffer));
break;
}
details.setWildcard(detailsBuffer);
details.invalidate();
}

View File

@ -1,12 +1,17 @@
#include <gui/containers/Temperature.hpp>
#include <cstring>
#include "touchgfx/Color.hpp"
#include "touchgfx/Unicode.hpp"
#include <gui/containers/TireTemp.hpp>
TireTemp::TireTemp() : temp{0} { updateValueBuffer(); }
Temperature::Temperature() : temp{0}, tempThresholds{0, 0, 0, 0} {
updateValueBuffer();
}
void TireTemp::initialize() { TireTempBase::initialize(); }
void Temperature::initialize() { TemperatureBase::initialize(); }
void TireTemp::setTemp(int temp_in_celsius) {
void Temperature::setTemp(int temp_in_celsius) {
if (temp_in_celsius < 0) {
// No space for displaying negative values
temp_in_celsius = 0;
@ -18,13 +23,13 @@ void TireTemp::setTemp(int temp_in_celsius) {
temp = temp_in_celsius;
updateValueBuffer();
if (temp < 35) {
if (temp < tempThresholds[0]) {
bg.setColor(touchgfx::Color::getColorFromRGB(0x05, 0x76, 0xb7));
} else if (temp < 40) {
} else if (temp < tempThresholds[1]) {
bg.setColor(touchgfx::Color::getColorFromRGB(0x05, 0x76, 0x64));
} else if (temp < 50) {
} else if (temp < tempThresholds[2]) {
bg.setColor(touchgfx::Color::getColorFromRGB(0x05, 0x95, 0x38));
} else if (temp < 60) {
} else if (temp < tempThresholds[3]) {
bg.setColor(touchgfx::Color::getColorFromRGB(0xdd, 0x6e, 0x22));
} else {
bg.setColor(touchgfx::Color::getColorFromRGB(0xdd, 0x2f, 0x22));
@ -33,7 +38,11 @@ void TireTemp::setTemp(int temp_in_celsius) {
bg.invalidate(); // TODO: Only invalidate if color changed
}
void TireTemp::updateValueBuffer() {
void Temperature::setTempThresholds(int *thresholds) {
memcpy(tempThresholds, thresholds, sizeof(tempThresholds));
}
void Temperature::updateValueBuffer() {
// Unicode::utoa(temp, valueBuffer, 3, 10);
Unicode::snprintf(valueBuffer,
sizeof(valueBuffer) / sizeof(Unicode::UnicodeChar), "%02d",

View File

@ -5,7 +5,7 @@
#include "vehicle.h"
DriverViewPresenter::DriverViewPresenter(DriverViewView &v)
: view(v), fields{DF_MinCellVolt, DF_Speed, DF_TSCurrent} {}
: view(v), fields{DF_MinCellVolt, DF_Speed, DF_MaxCellTemp} {}
void DriverViewPresenter::activate() {
for (size_t i = 0; i < 3; i++) {
@ -16,22 +16,10 @@ void DriverViewPresenter::activate() {
void DriverViewPresenter::deactivate() {}
void DriverViewPresenter::vehicleStateUpdated() {
view.setTireTemps(vehicle_state.tire_temps);
view.setTemps(vehicle_state.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.setProgress(true, DriverViewProgressType::PRECHARGE, progress);
} else if (vehicle_state.r2d_progress != R2D_NONE &&
vehicle_state.r2d_progress != R2D_INIT_SUCCESS) {
view.setProgress(true, DriverViewProgressType::R2D,
vehicle_state.r2d_progress);
} else {
view.setProgress(false, DriverViewProgressType::PRECHARGE, 0);
}
updateProgress();
updateErrorPopup();
view.updateFieldValues();
}
@ -45,3 +33,28 @@ void DriverViewPresenter::setFieldType(size_t i, DataFieldType type) {
fields[i] = type;
view.setFieldType(i, type);
}
void DriverViewPresenter::updateProgress() {
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.setProgress(true, DriverViewProgressType::PRECHARGE, progress);
} 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 {
view.setProgress(false, DriverViewProgressType::PRECHARGE, 0);
}
}
void DriverViewPresenter::updateErrorPopup() {
if (vehicle_state.ts_state == TS_ERROR) {
view.showAMSError();
} else {
view.clearErrorPopup();
}
}

View File

@ -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()
@ -15,6 +17,17 @@ void DriverViewView::setupScreen() {
getField(i).setType(fieldTypes[i]);
}
fieldTypeSelection.setNumberOfItems(DataFieldType_COUNT);
int tireThresholds[4] = {35, 40, 50, 60};
tireTempFL.setTempThresholds(tireThresholds);
tireTempFR.setTempThresholds(tireThresholds);
tireTempRL.setTempThresholds(tireThresholds);
tireTempRR.setTempThresholds(tireThresholds);
int invThresholds[4] = {30, 40, 50, 60};
invTempL.setTempThresholds(invThresholds);
invTempR.setTempThresholds(invThresholds);
int motorThresholds[4] = {30, 45, 60, 80};
motorTempL.setTempThresholds(motorThresholds);
motorTempR.setTempThresholds(motorThresholds);
}
void DriverViewView::tearDownScreen() { DriverViewViewBase::tearDownScreen(); }
@ -35,11 +48,15 @@ void DriverViewView::updateFieldValues() {
}
}
void DriverViewView::setTireTemps(const TireTemps &temps) {
tireTempFL.setTemp(temps.fl);
tireTempFR.setTemp(temps.fr);
tireTempRL.setTemp(temps.rl);
tireTempRR.setTemp(temps.rr);
void DriverViewView::setTemps(const Temperatures &temps) {
tireTempFL.setTemp(roundf(temps.tire_fl));
tireTempFR.setTemp(roundf(temps.tire_fr));
tireTempRL.setTemp(roundf(temps.tire_rl));
tireTempRR.setTemp(roundf(temps.tire_rr));
invTempL.setTemp(roundf(temps.inv_l));
invTempR.setTemp(roundf(temps.inv_r));
motorTempL.setTemp(roundf(temps.mot_l));
motorTempR.setTemp(roundf(temps.mot_r));
}
void DriverViewView::setTSSoC(uint8_t soc) {
@ -54,33 +71,50 @@ 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();
}
}
void DriverViewView::showAMSError() {
errorPopup.setVisible(true);
errorPopup.showAMSError();
errorPopup.invalidate();
}
void DriverViewView::clearErrorPopup() {
errorPopup.setVisible(false);
errorPopup.invalidate();
}
void DriverViewView::selectNextField() {
if (!fieldTypeSelection.isVisible()) {
fieldTypeSelection.setVisible(true);

View File

@ -32,8 +32,6 @@
<ClCompile Include="..\..\gui\src\driverview_screen\DriverViewPresenter.cpp"/>
<ClCompile Include="..\..\gui\src\driverview_screen\DriverViewView.cpp"/>
<ClCompile Include="..\..\generated\gui_generated\src\driverview_screen\DriverViewViewBase.cpp"/>
<ClCompile Include="..\..\gui\src\containers\TireTemp.cpp"/>
<ClCompile Include="..\..\generated\gui_generated\src\containers\TireTempBase.cpp"/>
<ClCompile Include="..\..\gui\src\containers\DriverViewField.cpp"/>
<ClCompile Include="..\..\generated\gui_generated\src\containers\DriverViewFieldBase.cpp"/>
<ClCompile Include="..\..\gui\src\containers\DriverViewFieldSelection.cpp"/>
@ -51,6 +49,10 @@
<ClCompile Include="..\..\gui\src\vehicleconfig_screen\VehicleConfigPresenter.cpp"/>
<ClCompile Include="..\..\gui\src\vehicleconfig_screen\VehicleConfigView.cpp"/>
<ClCompile Include="..\..\generated\gui_generated\src\vehicleconfig_screen\VehicleConfigViewBase.cpp"/>
<ClCompile Include="..\..\gui\src\containers\ErrorPopup.cpp"/>
<ClCompile Include="..\..\generated\gui_generated\src\containers\ErrorPopupBase.cpp"/>
<ClCompile Include="..\..\gui\src\containers\Temperature.cpp"/>
<ClCompile Include="..\..\generated\gui_generated\src\containers\TemperatureBase.cpp"/>
</ItemGroup>
<ItemGroup>
<None Include="$(ApplicationRoot)\assets\texts\texts.xml"/>
@ -212,8 +214,6 @@
<ClInclude Include="..\..\gui\include\gui\driverview_screen\DriverViewPresenter.hpp"/>
<ClInclude Include="..\..\gui\include\gui\driverview_screen\DriverViewView.hpp"/>
<ClInclude Include="..\..\generated\gui_generated\include\gui_generated\driverview_screen\DriverViewViewBase.hpp"/>
<ClInclude Include="..\..\gui\include\gui\containers\TireTemp.hpp"/>
<ClInclude Include="..\..\generated\gui_generated\include\gui_generated\containers\TireTempBase.hpp"/>
<ClInclude Include="..\..\gui\include\gui\containers\DriverViewField.hpp"/>
<ClInclude Include="..\..\generated\gui_generated\include\gui_generated\containers\DriverViewFieldBase.hpp"/>
<ClInclude Include="..\..\gui\include\gui\containers\DriverViewFieldSelection.hpp"/>
@ -231,6 +231,10 @@
<ClInclude Include="..\..\gui\include\gui\vehicleconfig_screen\VehicleConfigPresenter.hpp"/>
<ClInclude Include="..\..\gui\include\gui\vehicleconfig_screen\VehicleConfigView.hpp"/>
<ClInclude Include="..\..\generated\gui_generated\include\gui_generated\vehicleconfig_screen\VehicleConfigViewBase.hpp"/>
<ClInclude Include="..\..\gui\include\gui\containers\ErrorPopup.hpp"/>
<ClInclude Include="..\..\generated\gui_generated\include\gui_generated\containers\ErrorPopupBase.hpp"/>
<ClInclude Include="..\..\gui\include\gui\containers\Temperature.hpp"/>
<ClInclude Include="..\..\generated\gui_generated\include\gui_generated\containers\TemperatureBase.hpp"/>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="$(ApplicationRoot)\generated\simulator\touchgfx.rc"/>

View File

@ -309,12 +309,6 @@
<ClCompile Include="..\..\generated\gui_generated\src\driverview_screen\DriverViewViewBase.cpp">
<Filter>Source Files\generated\gui_generated\driverview_screen</Filter>
</ClCompile>
<ClCompile Include="..\..\gui\src\containers\TireTemp.cpp">
<Filter>Source Files\gui\containers</Filter>
</ClCompile>
<ClCompile Include="..\..\generated\gui_generated\src\containers\TireTempBase.cpp">
<Filter>Source Files\generated\gui_generated\containers</Filter>
</ClCompile>
<ClCompile Include="..\..\gui\src\containers\DriverViewField.cpp">
<Filter>Source Files\gui\containers</Filter>
</ClCompile>
@ -366,6 +360,18 @@
<ClCompile Include="..\..\generated\gui_generated\src\vehicleconfig_screen\VehicleConfigViewBase.cpp">
<Filter>Source Files\generated\gui_generated\vehicleconfig_screen</Filter>
</ClCompile>
<ClCompile Include="..\..\gui\src\containers\ErrorPopup.cpp">
<Filter>Source Files\gui\containers</Filter>
</ClCompile>
<ClCompile Include="..\..\generated\gui_generated\src\containers\ErrorPopupBase.cpp">
<Filter>Source Files\generated\gui_generated\containers</Filter>
</ClCompile>
<ClCompile Include="..\..\gui\src\containers\Temperature.cpp">
<Filter>Source Files\gui\containers</Filter>
</ClCompile>
<ClCompile Include="..\..\generated\gui_generated\src\containers\TemperatureBase.cpp">
<Filter>Source Files\generated\gui_generated\containers</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<None Include="$(ApplicationRoot)\assets\texts\texts.xml">
@ -841,12 +847,6 @@
<ClInclude Include="..\..\generated\gui_generated\include\gui_generated\driverview_screen\DriverViewViewBase.hpp">
<Filter>Header Files\generated\gui_generated\driverview_screen</Filter>
</ClInclude>
<ClInclude Include="..\..\gui\include\gui\containers\TireTemp.hpp">
<Filter>Header Files\gui\containers</Filter>
</ClInclude>
<ClInclude Include="..\..\generated\gui_generated\include\gui_generated\containers\TireTempBase.hpp">
<Filter>Header Files\generated\gui_generated\containers</Filter>
</ClInclude>
<ClInclude Include="..\..\gui\include\gui\containers\DriverViewField.hpp">
<Filter>Header Files\gui\containers</Filter>
</ClInclude>
@ -898,6 +898,18 @@
<ClInclude Include="..\..\generated\gui_generated\include\gui_generated\vehicleconfig_screen\VehicleConfigViewBase.hpp">
<Filter>Header Files\generated\gui_generated\vehicleconfig_screen</Filter>
</ClInclude>
<ClInclude Include="..\..\gui\include\gui\containers\ErrorPopup.hpp">
<Filter>Header Files\gui\containers</Filter>
</ClInclude>
<ClInclude Include="..\..\generated\gui_generated\include\gui_generated\containers\ErrorPopupBase.hpp">
<Filter>Header Files\generated\gui_generated\containers</Filter>
</ClInclude>
<ClInclude Include="..\..\gui\include\gui\containers\Temperature.hpp">
<Filter>Header Files\gui\containers</Filter>
</ClInclude>
<ClInclude Include="..\..\generated\gui_generated\include\gui_generated\containers\TemperatureBase.hpp">
<Filter>Header Files\generated\gui_generated\containers</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="$(ApplicationRoot)\generated\simulator\touchgfx.rc">

View File

@ -245,40 +245,102 @@
"CanvasBufferSize": 7200,
"Components": [
{
"Type": "CustomContainerInstance",
"Name": "tireTempRR",
"X": 240,
"Y": 197,
"Width": 75,
"Height": 75,
"CustomContainerDefinitionName": "TireTemp"
"Type": "TextArea",
"Name": "motorTempLabel",
"X": 315,
"Y": 187,
"Width": 150,
"Height": 25,
"TextId": "__SingleUse_JN2J",
"TextRotation": "0",
"Color": {
"Red": 255,
"Green": 255,
"Blue": 255
}
},
{
"Type": "CustomContainerInstance",
"Name": "tireTempFR",
"X": 240,
"Name": "motorTempL",
"X": 329,
"Y": 212,
"Width": 60,
"Height": 60,
"CustomContainerDefinitionName": "Temperature"
},
{
"Type": "CustomContainerInstance",
"Name": "motorTempR",
"X": 392,
"Y": 212,
"Width": 60,
"Height": 60,
"CustomContainerDefinitionName": "Temperature"
},
{
"Type": "Line",
"Name": "motorTempDiv",
"X": 389,
"Y": 212,
"Width": 3,
"Height": 60,
"Color": {
"Red": 255,
"Green": 255,
"Blue": 255
},
"EndY": 320.0,
"LineWidth": 10.0,
"LineEndingStyle": "Round"
},
{
"Type": "Line",
"Name": "invTempDiv",
"X": 389,
"Y": 122,
"Width": 75,
"Height": 75,
"CustomContainerDefinitionName": "TireTemp"
"Width": 3,
"Height": 60,
"Color": {
"Red": 255,
"Green": 255,
"Blue": 255
},
"EndY": 320.0,
"LineWidth": 10.0,
"LineEndingStyle": "Round"
},
{
"Type": "CustomContainerInstance",
"Name": "tireTempRL",
"X": 165,
"Y": 197,
"Width": 75,
"Height": 75,
"CustomContainerDefinitionName": "TireTemp"
},
{
"Type": "CustomContainerInstance",
"Name": "tireTempFL",
"X": 165,
"Name": "invTempR",
"X": 392,
"Y": 122,
"Width": 75,
"Height": 75,
"CustomContainerDefinitionName": "TireTemp"
"Width": 60,
"Height": 60,
"CustomContainerDefinitionName": "Temperature"
},
{
"Type": "CustomContainerInstance",
"Name": "invTempL",
"X": 329,
"Y": 122,
"Width": 60,
"Height": 60,
"CustomContainerDefinitionName": "Temperature"
},
{
"Type": "TextArea",
"Name": "invTempLabel",
"X": 315,
"Y": 97,
"Width": 150,
"Height": 25,
"TextId": "__SingleUse_ZP7N",
"TextRotation": "0",
"Color": {
"Red": 255,
"Green": 255,
"Blue": 255
}
},
{
"Type": "Line",
@ -286,7 +348,7 @@
"X": 239,
"Y": 122,
"Width": 3,
"Height": 150,
"Height": 123,
"Color": {
"Red": 255,
"Green": 255,
@ -299,9 +361,9 @@
{
"Type": "Line",
"Name": "ttDivHoriz",
"X": 165,
"Y": 196,
"Width": 150,
"X": 179,
"Y": 182,
"Width": 123,
"Height": 3,
"Color": {
"Red": 255,
@ -312,6 +374,42 @@
"LineWidth": 10.0,
"LineEndingStyle": "Round"
},
{
"Type": "CustomContainerInstance",
"Name": "tireTempRR",
"X": 242,
"Y": 185,
"Width": 60,
"Height": 60,
"CustomContainerDefinitionName": "Temperature"
},
{
"Type": "CustomContainerInstance",
"Name": "tireTempFR",
"X": 242,
"Y": 122,
"Width": 60,
"Height": 60,
"CustomContainerDefinitionName": "Temperature"
},
{
"Type": "CustomContainerInstance",
"Name": "tireTempRL",
"X": 179,
"Y": 185,
"Width": 60,
"Height": 60,
"CustomContainerDefinitionName": "Temperature"
},
{
"Type": "CustomContainerInstance",
"Name": "tireTempFL",
"X": 179,
"Y": 122,
"Width": 60,
"Height": 60,
"CustomContainerDefinitionName": "Temperature"
},
{
"Type": "LineProgress",
"Name": "tsSoC",
@ -335,7 +433,7 @@
{
"Type": "LineProgress",
"Name": "lvSoC",
"X": 425,
"X": 110,
"Y": 122,
"Width": 40,
"Height": 150,
@ -385,7 +483,7 @@
{
"Type": "TextArea",
"Name": "lvSoCLabel",
"X": 425,
"X": 110,
"Y": 97,
"Width": 40,
"Height": 25,
@ -479,19 +577,45 @@
{
"Type": "TextArea",
"Name": "r2dLabel",
"X": 139,
"X": 82,
"Y": 275,
"Width": 202,
"Width": 317,
"Height": 37,
"Visible": false,
"TextId": "__SingleUse_NGUK",
"TextRotation": "0",
"Color": {
"Red": 255,
"Green": 255,
"Blue": 255
}
},
{
"Type": "TextArea",
"Name": "r2dProgressLabel",
"X": 180,
"Y": 275,
"Width": 219,
"Height": 37,
"Visible": false,
"TextId": "__SingleUse_J5UH",
"TextRotation": "0",
"Color": {
"Red": 255,
"Green": 255,
"Blue": 255
},
"Wildcard1": {}
},
{
"Type": "CustomContainerInstance",
"Name": "errorPopup",
"X": 15,
"Y": 122,
"Width": 450,
"Height": 150,
"Visible": false,
"CustomContainerDefinitionName": "ErrorPopup"
}
],
"Interactions": [
@ -777,17 +901,17 @@
"Interactions": []
},
{
"Name": "TireTemp",
"Name": "Temperature",
"X": 135,
"Y": 215,
"Width": 75,
"Height": 75,
"Width": 60,
"Height": 60,
"Components": [
{
"Type": "Box",
"Name": "bg",
"Width": 75,
"Height": 75,
"Width": 60,
"Height": 60,
"Color": {
"Green": 38,
"Blue": 255
@ -796,9 +920,8 @@
{
"Type": "TextArea",
"Name": "value",
"Y": 7,
"Width": 75,
"Height": 60,
"Width": 60,
"Height": 50,
"TextId": "__SingleUse_20H3",
"TextRotation": "0",
"Color": {
@ -1118,6 +1241,62 @@
}
],
"Interactions": []
},
{
"Name": "ErrorPopup",
"X": -80,
"Y": 165,
"Width": 450,
"Height": 150,
"Components": [
{
"Type": "BoxWithBorder",
"Name": "bg",
"Width": 450,
"Height": 150,
"Color": {
"Red": 197,
"Green": 14,
"Blue": 31
},
"BorderColor": {
"Red": 255,
"Green": 255,
"Blue": 255
},
"BorderSize": 5
},
{
"Type": "TextArea",
"Name": "title",
"Width": 450,
"Height": 49,
"TextId": "__SingleUse_1NKF",
"TextRotation": "0",
"Color": {
"Red": 255,
"Green": 255,
"Blue": 255
}
},
{
"Type": "TextArea",
"Name": "details",
"X": 15,
"Y": 60,
"Width": 420,
"Height": 75,
"TextId": "__SingleUse_9L8R",
"TextRotation": "0",
"Color": {
"Red": 255,
"Green": 255,
"Blue": 255
},
"Wildcard1": {}
}
],
"Interactions": []
}
],
"Name": "MyApplication",