Compare commits

...

5 Commits

Author SHA1 Message Date
Jasper Blanckenburg 8905d173b3 Use only left button for screen cycling 2023-11-18 14:52:53 +01:00
Jasper Blanckenburg b8d8d70bfb Fix simulator compilation 2023-11-18 14:49:55 +01:00
Jasper Blanckenburg fd4ee51fd6 Add AS OK field to AMI 2023-11-18 14:48:51 +01:00
Jasper Blanckenburg 698c6a24c4 [WIP] SDC screen
This hasn't really been tested yet and sometimes looks weird.
2023-11-18 14:48:13 +01:00
Jasper Blanckenburg 61656942f9 Return to driver view from mission select 2023-08-04 13:15:50 +02:00
34 changed files with 798 additions and 153 deletions

View File

@ -110,6 +110,9 @@ typedef struct {
Mission active_mission;
int sdc_closed;
int pdu_sdc_active;
int imd_ok;
int sdcl_state[3];
R2DProgress r2d_progress;
struct {
@ -172,6 +175,7 @@ typedef struct {
uint32_t last_jetson_msg;
uint32_t last_epsc_msg;
int as_ok;
float desired_angle;
float measured_angle;
float desired_speed;

View File

@ -36,8 +36,11 @@ void ui_thread_entry(ULONG _) {
button_states[i] = state;
}
}
if ((press_event == 1 || press_event == 2) && button_states[1] &&
button_states[2]) {
// FIXME: The right button doesn't work :(
// if ((press_event == 1 || press_event == 2) && button_states[1] &&
// button_states[2]) {
if (press_event == 1 && button_states[1]) {
tx_event_flags_set(&gui_update_events, GUI_UPDATE_NEXT_SCREEN, TX_OR);
}
vehicle_broadcast_buttons(button_states);

View File

@ -15,6 +15,8 @@
#define CAN_ID_AMS_SLAVE_PANIC 0x9
#define CAN_ID_AMS_STATUS 0xA
#define CAN_ID_AMS_ERROR 0xC
#define CAN_ID_SDCL_TX 0x10
#define CAN_ID_PDU_RESPONSE 0xC9
#define CAN_ID_JETSON_TX 0xE1
#define CAN_ID_ABX_DRIVER 0x101
#define CAN_ID_ABX_TIMINGS 0x102
@ -36,6 +38,11 @@
#define CAN_ID_SHUNT_VOLTAGE2 0x523
#define CAN_AMS_STATUS_VOLTAGE_FACTOR 1e-4
#define CAN_AMS_STATUS_TEMP_FACTOR 0.0625
#define CAN_SDCL_STATE_1_MASK (1 << 1)
#define CAN_SDCL_STATE_2_MASK (1 << 2)
#define CAN_SDCL_STATE_3_MASK (1 << 3)
#define CAN_PDU_RESPONSE_SDC_TX_MASK (1 << 4)
#define CAN_JETSON_TX_AS_OK_MASK (1 << 1)
#define CAN_JETSON_TX_ANGLE_FACTOR 0.00784314f
#define CAN_JETSON_TX_SPEED_FACTOR (0.2 * 3.6)
#define CAN_ABX_DRIVER_SPEED_FACTOR (0.2 * 3.6)
@ -53,6 +60,8 @@ void vehicle_thread_entry(ULONG 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_SDCL_TX, 0x7FF);
ftcan_add_filter(CAN_ID_PDU_RESPONSE, 0x7FF);
ftcan_add_filter(CAN_ID_JETSON_TX, 0x7FF);
ftcan_add_filter(CAN_ID_ABX_DRIVER, 0x7FF);
ftcan_add_filter(CAN_ID_ABX_TIMINGS, 0x7FF);
@ -119,16 +128,26 @@ void ftcan_msg_received_cb(uint16_t id, size_t datalen, const uint8_t *data) {
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;
vehicle_state.imd_ok = (data[6] >> 7);
// TODO: Separate temperatures for left and right side of battery
vehicle_state.temps.bat_l = vehicle_state.max_cell_temp;
vehicle_state.temps.bat_r = vehicle_state.max_cell_temp;
break;
case CAN_ID_SDCL_TX:
vehicle_state.sdcl_state[0] = data[0] & CAN_SDCL_STATE_1_MASK;
vehicle_state.sdcl_state[1] = data[0] & CAN_SDCL_STATE_2_MASK;
vehicle_state.sdcl_state[2] = data[0] & CAN_SDCL_STATE_3_MASK;
break;
case CAN_ID_PDU_RESPONSE:
vehicle_state.pdu_sdc_active = data[0] & CAN_PDU_RESPONSE_SDC_TX_MASK;
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_JETSON_TX:
vehicle_state.last_jetson_msg = HAL_GetTick();
vehicle_state.as_ok = data[0] & CAN_JETSON_TX_AS_OK_MASK;
vehicle_state.desired_speed =
((int8_t)data[1]) * CAN_JETSON_TX_SPEED_FACTOR;
vehicle_state.desired_angle =

View File

@ -1,6 +1,6 @@
#include "vehicle_state.h"
VehicleState vehicle_state = {0};
VehicleState vehicle_state;
const char *inichkstate_str(IniChkState state) {
switch (vehicle_state.ini_chk_state) {

View File

@ -171,6 +171,33 @@
</Text>
</TextGroup>
<TextGroup Id="Unsorted">
<Text Id="__SingleUse_C17G" Alignment="Left" TypographyId="Chinat_Small">
<Translation Language="GB">AS &lt;value&gt;</Translation>
</Text>
<Text Id="__SingleUse_XFW7" Alignment="Left" TypographyId="Chinat_Small">
<Translation Language="GB">&#10;&#10;AMS</Translation>
</Text>
<Text Id="__SingleUse_N50J" Alignment="Left" TypographyId="Chinat_Small">
<Translation Language="GB">&#10;&#10;IMD</Translation>
</Text>
<Text Id="__SingleUse_V38H" Alignment="Left" TypographyId="Chinat_Small">
<Translation Language="GB">ACC</Translation>
</Text>
<Text Id="__SingleUse_XC1X" Alignment="Left" TypographyId="Chinat_Small">
<Translation Language="GB">TSMS</Translation>
</Text>
<Text Id="__SingleUse_KI1B" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">BSPD&#10;HVD</Translation>
</Text>
<Text Id="__SingleUse_QNHI" Alignment="Right" TypographyId="Chinat_Small">
<Translation Language="GB">SDB&#10;RES&#10;SDCL</Translation>
</Text>
<Text Id="__SingleUse_43KA" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">DASH&#10;BOTS&#10;INERTIA</Translation>
</Text>
<Text Id="__SingleUse_YRU7" Alignment="Left" TypographyId="Chinat_Small">
<Translation Language="GB">&#10;&#10;PDU</Translation>
</Text>
<Text Id="__SingleUse_E6D7" Alignment="Left" TypographyId="Chinat_Large">
<Translation Language="GB">INIT</Translation>
</Text>

View File

@ -1,3 +1,4 @@
10
32
37
46

View File

@ -67,6 +67,7 @@ protected:
touchgfx::Shape<3> ft;
touchgfx::PainterRGB565 ftPainter;
touchgfx::Container init;
touchgfx::TextAreaWithOneWildcard asOK;
touchgfx::TextArea textArea8;
touchgfx::TextArea textArea7;
touchgfx::TextAreaWithOneWildcard pressRear;

View File

@ -35,6 +35,9 @@ public:
// VehicleConfig
void gotoVehicleConfigScreenNoTransition();
// SDC
void gotoSDCScreenNoTransition();
protected:
touchgfx::Callback<FrontendApplicationBase> transitionCallback;
FrontendHeap& frontendHeap;
@ -54,6 +57,9 @@ protected:
// VehicleConfig
void gotoVehicleConfigScreenNoTransitionImpl();
// SDC
void gotoSDCScreenNoTransitionImpl();
};
#endif // FRONTENDAPPLICATIONBASE_HPP

View File

@ -22,6 +22,8 @@
#include <gui/debugview_screen/DebugViewPresenter.hpp>
#include <gui/vehicleconfig_screen/VehicleConfigView.hpp>
#include <gui/vehicleconfig_screen/VehicleConfigPresenter.hpp>
#include <gui/sdc_screen/SDCView.hpp>
#include <gui/sdc_screen/SDCPresenter.hpp>
/**
@ -49,7 +51,8 @@ public:
touchgfx::meta::TypeList< DriverViewView,
touchgfx::meta::TypeList< DebugViewView,
touchgfx::meta::TypeList< VehicleConfigView,
touchgfx::meta::Nil > > > >
touchgfx::meta::TypeList< SDCView,
touchgfx::meta::Nil > > > > >
> GeneratedViewTypes;
/**
@ -66,7 +69,8 @@ public:
touchgfx::meta::TypeList< DriverViewPresenter,
touchgfx::meta::TypeList< DebugViewPresenter,
touchgfx::meta::TypeList< VehicleConfigPresenter,
touchgfx::meta::Nil > > > >
touchgfx::meta::TypeList< SDCPresenter,
touchgfx::meta::Nil > > > > >
> GeneratedPresenterTypes;
/**

View File

@ -0,0 +1,56 @@
/*********************************************************************************/
/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/
/*********************************************************************************/
#ifndef SDCVIEWBASE_HPP
#define SDCVIEWBASE_HPP
#include <gui/common/FrontendApplication.hpp>
#include <mvp/View.hpp>
#include <gui/sdc_screen/SDCPresenter.hpp>
#include <touchgfx/widgets/Box.hpp>
#include <touchgfx/widgets/TextArea.hpp>
#include <touchgfx/widgets/canvas/Line.hpp>
#include <touchgfx/widgets/canvas/PainterRGB565.hpp>
class SDCViewBase : public touchgfx::View<SDCPresenter>
{
public:
SDCViewBase();
virtual ~SDCViewBase();
virtual void setupScreen();
protected:
FrontendApplication& application() {
return *static_cast<FrontendApplication*>(touchgfx::Application::getInstance());
}
/*
* Member Declarations
*/
touchgfx::Box __background;
touchgfx::TextArea pdu;
touchgfx::TextArea inertia;
touchgfx::TextArea sdcl;
touchgfx::TextArea hvb;
touchgfx::TextArea tsms;
touchgfx::TextArea acc;
touchgfx::TextArea imd;
touchgfx::TextArea ams;
touchgfx::Line line1;
touchgfx::PainterRGB565 line1Painter;
touchgfx::Line line2;
touchgfx::PainterRGB565 line2Painter;
touchgfx::Line line3;
touchgfx::PainterRGB565 line3Painter;
private:
/*
* Canvas Buffer Size
*/
static const uint32_t CANVAS_BUFFER_SIZE = 7200;
uint8_t canvasBuffer[CANVAS_BUFFER_SIZE];
};
#endif // SDCVIEWBASE_HPP

View File

@ -202,6 +202,12 @@ AMIViewBase::AMIViewBase()
add(driving);
init.setPosition(0, 0, 480, 320);
asOK.setPosition(68, 279, 169, 24);
asOK.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
asOK.setLinespacing(0);
asOK.setTypedText(touchgfx::TypedText(T___SINGLEUSE_C17G));
init.add(asOK);
textArea8.setXY(68, 247);
textArea8.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
textArea8.setLinespacing(0);

View File

@ -19,6 +19,8 @@
#include <gui/debugview_screen/DebugViewPresenter.hpp>
#include <gui/vehicleconfig_screen/VehicleConfigView.hpp>
#include <gui/vehicleconfig_screen/VehicleConfigPresenter.hpp>
#include <gui/sdc_screen/SDCView.hpp>
#include <gui/sdc_screen/SDCPresenter.hpp>
using namespace touchgfx;
@ -102,3 +104,16 @@ void FrontendApplicationBase::gotoVehicleConfigScreenNoTransitionImpl()
{
touchgfx::makeTransition<VehicleConfigView, VehicleConfigPresenter, touchgfx::NoTransition, Model >(&currentScreen, &currentPresenter, frontendHeap, &currentTransition, &model);
}
// SDC
void FrontendApplicationBase::gotoSDCScreenNoTransition()
{
transitionCallback = touchgfx::Callback<FrontendApplicationBase>(this, &FrontendApplicationBase::gotoSDCScreenNoTransitionImpl);
pendingScreenTransitionCallback = &transitionCallback;
}
void FrontendApplicationBase::gotoSDCScreenNoTransitionImpl()
{
touchgfx::makeTransition<SDCView, SDCPresenter, touchgfx::NoTransition, Model >(&currentScreen, &currentPresenter, frontendHeap, &currentTransition, &model);
}

View File

@ -135,4 +135,13 @@ void MissionSelectViewBase::handleKeyEvent(uint8_t key)
application().gotoVehicleConfigScreenNoTransition();
}
if(250 == key)
{
//DummyChangeSDCView
//When hardware button 250 clicked change screen to SDC
//Go to SDC with no screen transition
application().gotoSDCScreenNoTransition();
}
}

View File

@ -0,0 +1,101 @@
/*********************************************************************************/
/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/
/*********************************************************************************/
#include <gui_generated/sdc_screen/SDCViewBase.hpp>
#include <touchgfx/canvas_widget_renderer/CanvasWidgetRenderer.hpp>
#include <touchgfx/Color.hpp>
#include <texts/TextKeysAndLanguages.hpp>
SDCViewBase::SDCViewBase()
{
touchgfx::CanvasWidgetRenderer::setupBuffer(canvasBuffer, CANVAS_BUFFER_SIZE);
__background.setPosition(0, 0, 480, 320);
__background.setColor(touchgfx::Color::getColorFromRGB(0, 0, 0));
add(__background);
pdu.setXY(15, 40);
pdu.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
pdu.setLinespacing(0);
pdu.setTypedText(touchgfx::TypedText(T___SINGLEUSE_YRU7));
add(pdu);
inertia.setXY(128, 40);
inertia.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
inertia.setLinespacing(0);
inertia.setTypedText(touchgfx::TypedText(T___SINGLEUSE_43KA));
add(inertia);
sdcl.setPosition(363, 217, 102, 72);
sdcl.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
sdcl.setLinespacing(0);
sdcl.setTypedText(touchgfx::TypedText(T___SINGLEUSE_QNHI));
add(sdcl);
hvb.setXY(240, 241);
hvb.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
hvb.setLinespacing(0);
hvb.setTypedText(touchgfx::TypedText(T___SINGLEUSE_KI1B));
add(hvb);
tsms.setXY(120, 265);
tsms.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
tsms.setLinespacing(0);
tsms.setTypedText(touchgfx::TypedText(T___SINGLEUSE_XC1X));
add(tsms);
acc.setXY(15, 265);
acc.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
acc.setLinespacing(0);
acc.setTypedText(touchgfx::TypedText(T___SINGLEUSE_V38H));
add(acc);
imd.setXY(291, 40);
imd.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
imd.setLinespacing(0);
imd.setTypedText(touchgfx::TypedText(T___SINGLEUSE_N50J));
add(imd);
ams.setXY(404, 40);
ams.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
ams.setLinespacing(0);
ams.setTypedText(touchgfx::TypedText(T___SINGLEUSE_XFW7));
add(ams);
line1.setPosition(15, 122, 450, 10);
line1Painter.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
line1.setPainter(line1Painter);
line1.setStart(5, 5);
line1.setEnd(450, 5);
line1.setLineWidth(10);
line1.setLineEndingStyle(touchgfx::Line::SQUARE_CAP_ENDING);
add(line1);
line2.setPosition(15, 193, 450, 10);
line2Painter.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
line2.setPainter(line2Painter);
line2.setStart(10, 5);
line2.setEnd(450, 5);
line2.setLineWidth(10);
line2.setLineEndingStyle(touchgfx::Line::ROUND_CAP_ENDING);
add(line2);
line3.setPosition(455, 122, 10, 81);
line3Painter.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
line3.setPainter(line3Painter);
line3.setStart(5, 5);
line3.setEnd(5, 100);
line3.setLineWidth(10);
line3.setLineEndingStyle(touchgfx::Line::SQUARE_CAP_ENDING);
add(line3);
}
SDCViewBase::~SDCViewBase()
{
touchgfx::CanvasWidgetRenderer::resetBuffer();
}
void SDCViewBase::setupScreen()
{
}

View File

@ -1 +1 @@
{"remap":"yes","language":"GB","language_index":0,"indices":[["428","T_LV"],["412","T_PDU"],["420","T_SCS"],["424","T_SDC"],["416","T_R2D"],["409","T_TS"],["404","T_INV"],["400","T_AMS"],["174","T_ERROR_AMS"],["216","T_DEBUGVIEWFIELD_TITLE"],["216","T_DRIVERVIEWFIELD_TITLE"],["216","T_NUMBERSMALLWILDCARD"],["355","T_FIELD_BBAL"],["312","T_FIELD_TSVOLTVEH"],["305","T_FIELD_TSVOLTBAT"],["331","T_FIELD_LVSOC"],["349","T_FIELD_TSSOC"],["370","T_FIELD_MAXCELLTEMP"],["375","T_FIELD_TIREFL"],["380","T_FIELD_TIREFR"],["385","T_FIELD_TIRERL"],["390","T_FIELD_TIRERR"],["365","T_FIELD_LAPCOUNT"],["234","T_FIELD_INICHKSTATE"],["325","T_FIELD_ERR"],["424","T_FIELD_SDC"],["250","T_FIELD_INVRREADY"],["242","T_FIELD_INVLREADY"],["274","T_FIELD_R2DPROGRESS"],["258","T_FIELD_ACTIVEMISSION"],["218","T_FIELD_ASSTATE"],["290","T_FIELD_TSSTATE"],["216","T_NUMBERWILDCARD"],["216","T_DEFAULTWILDCARD_CENTERED"],["216","T_DEFAULTWILDCARD_RIGHTALIGNED"],["408","T_FIELD_TSCURRENT"],["395","T_FIELD_MINCELLVOLT"],["343","T_FIELD_SPEED"],["141","T_INSPECTION_HUGE"],["207","T_EBS_HUGE"],["163","T_TRACKDRIVE_HUGE"],["184","T_AUTOX_HUGE"],["282","T_SKIDPAD_HUGE"],["128","T_ACCEL_HUGE"],["17","T_INVALID_HUGE"],["98","T_MANUAL"],["141","T_INSPECTION"],["207","T_EBS"],["163","T_TRACKDRIVE"],["184","T_AUTOX"],["282","T_SKIDPAD"],["128","T_ACCEL"],["360","T___SINGLEUSE_E6D7"],["216","T___SINGLEUSE_ZEKA"],["113","T___SINGLEUSE_0L75"],["82","T___SINGLEUSE_GA13"],["216","T___SINGLEUSE_THUG"],["216","T___SINGLEUSE_CO7A"],["216","T___SINGLEUSE_A0LF"],["216","T___SINGLEUSE_166C"],["66","T___SINGLEUSE_OOU3"],["50","T___SINGLEUSE_2FPP"],["216","T___SINGLEUSE_2S21"],["216","T___SINGLEUSE_OQ6P"],["266","T___SINGLEUSE_590R"],["226","T___SINGLEUSE_Z78U"],["216","T___SINGLEUSE_LLOZ"],["216","T___SINGLEUSE_232C"],["337","T___SINGLEUSE_JFR7"],["319","T___SINGLEUSE_3MDX"],["16","T___SINGLEUSE_F9I5"],["216","T___SINGLEUSE_9L8R"],["16","T___SINGLEUSE_1NKF"],["216","T___SINGLEUSE_J5UH"],["416","T___SINGLEUSE_NGUK"],["216","T___SINGLEUSE_4E84"],["216","T___SINGLEUSE_YTAB"],["152","T___SINGLEUSE_RWCE"],["194","T___SINGLEUSE_HMH2"],["204","T___SINGLEUSE_PHFD"],["298","T___SINGLEUSE_H6UX"],["216","T___SINGLEUSE_20H3"],["34","T___SINGLEUSE_M5X7"],["0","T___SINGLEUSE_6GPV"]]}
{"remap":"yes","language":"GB","language_index":0,"indices":[["490","T_LV"],["376","T_PDU"],["482","T_SCS"],["486","T_SDC"],["478","T_R2D"],["475","T_TS"],["470","T_INV"],["364","T_AMS"],["210","T_ERROR_AMS"],["175","T_DEBUGVIEWFIELD_TITLE"],["175","T_DRIVERVIEWFIELD_TITLE"],["175","T_NUMBERSMALLWILDCARD"],["416","T_FIELD_BBAL"],["355","T_FIELD_TSVOLTVEH"],["348","T_FIELD_TSVOLTBAT"],["392","T_FIELD_LVSOC"],["410","T_FIELD_TSSOC"],["431","T_FIELD_MAXCELLTEMP"],["441","T_FIELD_TIREFL"],["446","T_FIELD_TIREFR"],["451","T_FIELD_TIRERL"],["456","T_FIELD_TIRERR"],["426","T_FIELD_LAPCOUNT"],["277","T_FIELD_INICHKSTATE"],["386","T_FIELD_ERR"],["486","T_FIELD_SDC"],["293","T_FIELD_INVRREADY"],["285","T_FIELD_INVLREADY"],["317","T_FIELD_R2DPROGRESS"],["301","T_FIELD_ACTIVEMISSION"],["261","T_FIELD_ASSTATE"],["333","T_FIELD_TSSTATE"],["175","T_NUMBERWILDCARD"],["175","T_DEFAULTWILDCARD_CENTERED"],["175","T_DEFAULTWILDCARD_RIGHTALIGNED"],["474","T_FIELD_TSCURRENT"],["461","T_FIELD_MINCELLVOLT"],["404","T_FIELD_SPEED"],["177","T_INSPECTION_HUGE"],["252","T_EBS_HUGE"],["199","T_TRACKDRIVE_HUGE"],["220","T_AUTOX_HUGE"],["325","T_SKIDPAD_HUGE"],["146","T_ACCEL_HUGE"],["35","T_INVALID_HUGE"],["116","T_MANUAL"],["177","T_INSPECTION"],["252","T_EBS"],["199","T_TRACKDRIVE"],["220","T_AUTOX"],["325","T_SKIDPAD"],["146","T_ACCEL"],["172","T___SINGLEUSE_C17G"],["362","T___SINGLEUSE_XFW7"],["368","T___SINGLEUSE_N50J"],["466","T___SINGLEUSE_V38H"],["436","T___SINGLEUSE_XC1X"],["243","T___SINGLEUSE_KI1B"],["159","T___SINGLEUSE_QNHI"],["0","T___SINGLEUSE_43KA"],["374","T___SINGLEUSE_YRU7"],["421","T___SINGLEUSE_E6D7"],["175","T___SINGLEUSE_ZEKA"],["131","T___SINGLEUSE_0L75"],["100","T___SINGLEUSE_GA13"],["175","T___SINGLEUSE_THUG"],["175","T___SINGLEUSE_CO7A"],["175","T___SINGLEUSE_A0LF"],["175","T___SINGLEUSE_166C"],["84","T___SINGLEUSE_OOU3"],["68","T___SINGLEUSE_2FPP"],["175","T___SINGLEUSE_2S21"],["175","T___SINGLEUSE_OQ6P"],["309","T___SINGLEUSE_590R"],["269","T___SINGLEUSE_Z78U"],["175","T___SINGLEUSE_LLOZ"],["175","T___SINGLEUSE_232C"],["398","T___SINGLEUSE_JFR7"],["380","T___SINGLEUSE_3MDX"],["17","T___SINGLEUSE_F9I5"],["175","T___SINGLEUSE_9L8R"],["17","T___SINGLEUSE_1NKF"],["175","T___SINGLEUSE_J5UH"],["478","T___SINGLEUSE_NGUK"],["175","T___SINGLEUSE_4E84"],["175","T___SINGLEUSE_YTAB"],["188","T___SINGLEUSE_RWCE"],["230","T___SINGLEUSE_HMH2"],["240","T___SINGLEUSE_PHFD"],["341","T___SINGLEUSE_H6UX"],["175","T___SINGLEUSE_20H3"],["52","T___SINGLEUSE_M5X7"],["18","T___SINGLEUSE_6GPV"]]}

View File

@ -1 +1 @@
{"languages":["GB"],"textids":["T_LV","T_PDU","T_SCS","T_SDC","T_R2D","T_TS","T_INV","T_AMS","T_ERROR_AMS","T_DEBUGVIEWFIELD_TITLE","T_DRIVERVIEWFIELD_TITLE","T_NUMBERSMALLWILDCARD","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_E6D7","T___SINGLEUSE_ZEKA","T___SINGLEUSE_0L75","T___SINGLEUSE_GA13","T___SINGLEUSE_THUG","T___SINGLEUSE_CO7A","T___SINGLEUSE_A0LF","T___SINGLEUSE_166C","T___SINGLEUSE_OOU3","T___SINGLEUSE_2FPP","T___SINGLEUSE_2S21","T___SINGLEUSE_OQ6P","T___SINGLEUSE_590R","T___SINGLEUSE_Z78U","T___SINGLEUSE_LLOZ","T___SINGLEUSE_232C","T___SINGLEUSE_JFR7","T___SINGLEUSE_3MDX","T___SINGLEUSE_F9I5","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_PHFD","T___SINGLEUSE_H6UX","T___SINGLEUSE_20H3","T___SINGLEUSE_M5X7","T___SINGLEUSE_6GPV"]}
{"languages":["GB"],"textids":["T_LV","T_PDU","T_SCS","T_SDC","T_R2D","T_TS","T_INV","T_AMS","T_ERROR_AMS","T_DEBUGVIEWFIELD_TITLE","T_DRIVERVIEWFIELD_TITLE","T_NUMBERSMALLWILDCARD","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_C17G","T___SINGLEUSE_XFW7","T___SINGLEUSE_N50J","T___SINGLEUSE_V38H","T___SINGLEUSE_XC1X","T___SINGLEUSE_KI1B","T___SINGLEUSE_QNHI","T___SINGLEUSE_43KA","T___SINGLEUSE_YRU7","T___SINGLEUSE_E6D7","T___SINGLEUSE_ZEKA","T___SINGLEUSE_0L75","T___SINGLEUSE_GA13","T___SINGLEUSE_THUG","T___SINGLEUSE_CO7A","T___SINGLEUSE_A0LF","T___SINGLEUSE_166C","T___SINGLEUSE_OOU3","T___SINGLEUSE_2FPP","T___SINGLEUSE_2S21","T___SINGLEUSE_OQ6P","T___SINGLEUSE_590R","T___SINGLEUSE_Z78U","T___SINGLEUSE_LLOZ","T___SINGLEUSE_232C","T___SINGLEUSE_JFR7","T___SINGLEUSE_3MDX","T___SINGLEUSE_F9I5","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_PHFD","T___SINGLEUSE_H6UX","T___SINGLEUSE_20H3","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,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,80,114,101,115,115,117,114,101,32,65,99,99,32,65,58,0,80,114,101,115,115,117,114,101,32,65,99,99,32,66,58,0,80,114,101,115,115,117,114,101,32,70,114,111,110,116,58,0,77,97,110,117,97,108,32,68,114,105,118,105,110,103,0,80,114,101,115,115,117,114,101,32,82,101,97,114,58,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,2,37,0,69,66,83,32,84,101,115,116,0,2,0,65,83,83,84,65,84,69,0,68,83,80,69,69,68,58,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,77,83,80,69,69,68,58,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,66,82,65,75,69,83,0,84,83,86,66,65,84,0,84,83,86,86,69,72,0,68,65,78,71,58,0,69,82,82,79,82,0,76,86,83,79,67,0,77,65,78,71,58,0,83,80,69,69,68,0,84,83,83,79,67,0,66,66,65,76,0,73,78,73,84,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,65,77,83,0,73,78,86,0,73,84,83,0,80,68,85,0,82,50,68,0,83,67,83,0,83,68,67,0,76,86,0]}
{"remap":"yes","languages":["Gb"],"characters":[68,65,83,72,10,66,79,84,83,10,73,78,69,82,84,73,65,0,67,104,111,111,115,101,32,97,32,109,105,115,115,105,111,110,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,80,114,101,115,115,117,114,101,32,65,99,99,32,65,58,0,80,114,101,115,115,117,114,101,32,65,99,99,32,66,58,0,80,114,101,115,115,117,114,101,32,70,114,111,110,116,58,0,77,97,110,117,97,108,32,68,114,105,118,105,110,103,0,80,114,101,115,115,117,114,101,32,82,101,97,114,58,0,65,99,99,101,108,101,114,97,116,105,111,110,0,83,68,66,10,82,69,83,10,83,68,67,76,0,65,83,32,2,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,2,37,0,66,83,80,68,10,72,86,68,0,69,66,83,32,84,101,115,116,0,65,83,83,84,65,84,69,0,68,83,80,69,69,68,58,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,77,83,80,69,69,68,58,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,66,82,65,75,69,83,0,84,83,86,66,65,84,0,84,83,86,86,69,72,0,10,10,65,77,83,0,10,10,73,77,68,0,10,10,80,68,85,0,68,65,78,71,58,0,69,82,82,79,82,0,76,86,83,79,67,0,77,65,78,71,58,0,83,80,69,69,68,0,84,83,83,79,67,0,66,66,65,76,0,73,78,73,84,0,76,65,80,83,0,84,77,65,88,0,84,83,77,83,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,65,67,67,0,73,78,86,0,73,84,83,0,82,50,68,0,83,67,83,0,83,68,67,0,76,86,0]}

View File

@ -1 +1 @@
{"databases":{"GB":[[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[3,"CENTER","LTR"],[5,"LEFT","LTR"],[2,"CENTER","LTR"],[6,"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"],[1,"RIGHT","LTR"],[2,"LEFT","LTR"],[2,"LEFT","LTR"],[7,"RIGHT","LTR"],[7,"RIGHT","LTR"],[7,"RIGHT","LTR"],[7,"RIGHT","LTR"],[2,"LEFT","LTR"],[2,"LEFT","LTR"],[7,"RIGHT","LTR"],[7,"RIGHT","LTR"],[2,"LEFT","LTR"],[2,"LEFT","LTR"],[7,"RIGHT","LTR"],[7,"RIGHT","LTR"],[2,"LEFT","LTR"],[2,"LEFT","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"],[4,"CENTER","LTR"],[2,"CENTER","LTR"],[1,"LEFT","LTR"]],"DEFAULT":[[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[3,"CENTER","LTR"],[5,"LEFT","LTR"],[2,"CENTER","LTR"],[6,"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"],[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"],[1,"RIGHT","LTR"],[2,"LEFT","LTR"],[2,"LEFT","LTR"],[7,"RIGHT","LTR"],[7,"RIGHT","LTR"],[7,"RIGHT","LTR"],[7,"RIGHT","LTR"],[2,"LEFT","LTR"],[2,"LEFT","LTR"],[7,"RIGHT","LTR"],[7,"RIGHT","LTR"],[2,"LEFT","LTR"],[2,"LEFT","LTR"],[7,"RIGHT","LTR"],[7,"RIGHT","LTR"],[2,"LEFT","LTR"],[2,"LEFT","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"],[4,"CENTER","LTR"],[2,"CENTER","LTR"],[1,"LEFT","LTR"]]},"database_list":["GB"],"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,"getFont_lucon_TTF_33_4bpp":6,"getFont_lucon_TTF_20_4bpp":7},"generate_font_format":"0"}
{"databases":{"GB":[[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[3,"CENTER","LTR"],[5,"LEFT","LTR"],[2,"CENTER","LTR"],[6,"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,"LEFT","LTR"],[2,"LEFT","LTR"],[2,"LEFT","LTR"],[2,"LEFT","LTR"],[2,"LEFT","LTR"],[2,"CENTER","LTR"],[2,"RIGHT","LTR"],[2,"CENTER","LTR"],[2,"LEFT","LTR"],[1,"LEFT","LTR"],[1,"RIGHT","LTR"],[2,"LEFT","LTR"],[2,"LEFT","LTR"],[7,"RIGHT","LTR"],[7,"RIGHT","LTR"],[7,"RIGHT","LTR"],[7,"RIGHT","LTR"],[2,"LEFT","LTR"],[2,"LEFT","LTR"],[7,"RIGHT","LTR"],[7,"RIGHT","LTR"],[2,"LEFT","LTR"],[2,"LEFT","LTR"],[7,"RIGHT","LTR"],[7,"RIGHT","LTR"],[2,"LEFT","LTR"],[2,"LEFT","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"],[4,"CENTER","LTR"],[2,"CENTER","LTR"],[1,"LEFT","LTR"]],"DEFAULT":[[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[3,"CENTER","LTR"],[5,"LEFT","LTR"],[2,"CENTER","LTR"],[6,"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"],[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,"LEFT","LTR"],[2,"LEFT","LTR"],[2,"LEFT","LTR"],[2,"LEFT","LTR"],[2,"LEFT","LTR"],[2,"CENTER","LTR"],[2,"RIGHT","LTR"],[2,"CENTER","LTR"],[2,"LEFT","LTR"],[1,"LEFT","LTR"],[1,"RIGHT","LTR"],[2,"LEFT","LTR"],[2,"LEFT","LTR"],[7,"RIGHT","LTR"],[7,"RIGHT","LTR"],[7,"RIGHT","LTR"],[7,"RIGHT","LTR"],[2,"LEFT","LTR"],[2,"LEFT","LTR"],[7,"RIGHT","LTR"],[7,"RIGHT","LTR"],[2,"LEFT","LTR"],[2,"LEFT","LTR"],[7,"RIGHT","LTR"],[7,"RIGHT","LTR"],[2,"LEFT","LTR"],[2,"LEFT","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"],[4,"CENTER","LTR"],[2,"CENTER","LTR"],[1,"LEFT","LTR"]]},"database_list":["GB"],"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,"getFont_lucon_TTF_33_4bpp":6,"getFont_lucon_TTF_20_4bpp":7},"generate_font_format":"0"}

View File

@ -64,6 +64,15 @@ enum TEXTS
T_AUTOX,
T_SKIDPAD,
T_ACCEL,
T___SINGLEUSE_C17G,
T___SINGLEUSE_XFW7,
T___SINGLEUSE_N50J,
T___SINGLEUSE_V38H,
T___SINGLEUSE_XC1X,
T___SINGLEUSE_KI1B,
T___SINGLEUSE_QNHI,
T___SINGLEUSE_43KA,
T___SINGLEUSE_YRU7,
T___SINGLEUSE_E6D7,
T___SINGLEUSE_ZEKA,
T___SINGLEUSE_0L75,

View File

@ -10,88 +10,97 @@ 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 = {
428, // T_LV: "LV"
412, // T_PDU: "PDU"
420, // T_SCS: "SCS"
424, // T_SDC: "SDC"
416, // T_R2D: "R2D"
409, // T_TS: "TS"
404, // T_INV: "INV"
400, // T_AMS: "AMS"
174, // T_ERROR_AMS: "AMS ErrOr"
216, // T_DEBUGVIEWFIELD_TITLE: "<>"
216, // T_DRIVERVIEWFIELD_TITLE: "<>"
216, // T_NUMBERSMALLWILDCARD: "<>"
355, // T_FIELD_BBAL: "BBAL"
312, // T_FIELD_TSVOLTVEH: "TSVVEH"
305, // T_FIELD_TSVOLTBAT: "TSVBAT"
331, // T_FIELD_LVSOC: "LVSOC"
349, // T_FIELD_TSSOC: "TSSOC"
370, // T_FIELD_MAXCELLTEMP: "TMAX"
375, // T_FIELD_TIREFL: "TTFL"
380, // T_FIELD_TIREFR: "TTFR"
385, // T_FIELD_TIRERL: "TTRL"
390, // T_FIELD_TIRERR: "TTRR"
365, // T_FIELD_LAPCOUNT: "LAPS"
234, // T_FIELD_INICHKSTATE: "ICSTATE"
325, // T_FIELD_ERR: "ERROR"
424, // T_FIELD_SDC: "SDC"
250, // T_FIELD_INVRREADY: "INVRRDY"
242, // T_FIELD_INVLREADY: "INVLRDY"
274, // T_FIELD_R2DPROGRESS: "R2DPROG"
258, // T_FIELD_ACTIVEMISSION: "MISSION"
218, // T_FIELD_ASSTATE: "ASSTATE"
290, // T_FIELD_TSSTATE: "TSSTATE"
216, // T_NUMBERWILDCARD: "<>"
216, // T_DEFAULTWILDCARD_CENTERED: "<>"
216, // T_DEFAULTWILDCARD_RIGHTALIGNED: "<>"
408, // T_FIELD_TSCURRENT: "ITS"
395, // T_FIELD_MINCELLVOLT: "VMIN"
343, // T_FIELD_SPEED: "SPEED"
141, // T_INSPECTION_HUGE: "Inspection"
207, // T_EBS_HUGE: "EBS Test"
163, // T_TRACKDRIVE_HUGE: "Trackdrive"
184, // T_AUTOX_HUGE: "Autocross"
282, // T_SKIDPAD_HUGE: "Skidpad"
128, // T_ACCEL_HUGE: "Acceleration"
17, // T_INVALID_HUGE: "Invalid Mission!"
98, // T_MANUAL: "Manual Driving"
141, // T_INSPECTION: "Inspection"
207, // T_EBS: "EBS Test"
163, // T_TRACKDRIVE: "Trackdrive"
184, // T_AUTOX: "Autocross"
282, // T_SKIDPAD: "Skidpad"
128, // T_ACCEL: "Acceleration"
360, // T___SINGLEUSE_E6D7: "INIT"
216, // T___SINGLEUSE_ZEKA: "<>"
113, // T___SINGLEUSE_0L75: "Pressure Rear:"
82, // T___SINGLEUSE_GA13: "Pressure Front:"
216, // T___SINGLEUSE_THUG: "<>"
216, // T___SINGLEUSE_CO7A: "<>"
216, // T___SINGLEUSE_A0LF: "<>"
216, // T___SINGLEUSE_166C: "<>"
66, // T___SINGLEUSE_OOU3: "Pressure Acc B:"
50, // T___SINGLEUSE_2FPP: "Pressure Acc A:"
216, // T___SINGLEUSE_2S21: "<>"
216, // T___SINGLEUSE_OQ6P: "<>"
266, // T___SINGLEUSE_590R: "MSPEED:"
226, // T___SINGLEUSE_Z78U: "DSPEED:"
216, // T___SINGLEUSE_LLOZ: "<>"
216, // T___SINGLEUSE_232C: "<>"
337, // T___SINGLEUSE_JFR7: "MANG:"
319, // T___SINGLEUSE_3MDX: "DANG:"
16, // T___SINGLEUSE_F9I5: ""
216, // T___SINGLEUSE_9L8R: "<>"
16, // T___SINGLEUSE_1NKF: ""
216, // T___SINGLEUSE_J5UH: "<>"
416, // T___SINGLEUSE_NGUK: "R2D"
216, // T___SINGLEUSE_4E84: "<>"
216, // T___SINGLEUSE_YTAB: "<>"
152, // T___SINGLEUSE_RWCE: "PARAMETERS"
194, // T___SINGLEUSE_HMH2: "PRECHARGE"
204, // T___SINGLEUSE_PHFD: "<>%"
298, // T___SINGLEUSE_H6UX: "BRAKES"
216, // T___SINGLEUSE_20H3: "<>"
34, // T___SINGLEUSE_M5X7: "Invalid Mission"
0 // T___SINGLEUSE_6GPV: "Choose a mission"
490, // T_LV: "LV"
376, // T_PDU: "PDU"
482, // T_SCS: "SCS"
486, // T_SDC: "SDC"
478, // T_R2D: "R2D"
475, // T_TS: "TS"
470, // T_INV: "INV"
364, // T_AMS: "AMS"
210, // T_ERROR_AMS: "AMS ErrOr"
175, // T_DEBUGVIEWFIELD_TITLE: "<>"
175, // T_DRIVERVIEWFIELD_TITLE: "<>"
175, // T_NUMBERSMALLWILDCARD: "<>"
416, // T_FIELD_BBAL: "BBAL"
355, // T_FIELD_TSVOLTVEH: "TSVVEH"
348, // T_FIELD_TSVOLTBAT: "TSVBAT"
392, // T_FIELD_LVSOC: "LVSOC"
410, // T_FIELD_TSSOC: "TSSOC"
431, // T_FIELD_MAXCELLTEMP: "TMAX"
441, // T_FIELD_TIREFL: "TTFL"
446, // T_FIELD_TIREFR: "TTFR"
451, // T_FIELD_TIRERL: "TTRL"
456, // T_FIELD_TIRERR: "TTRR"
426, // T_FIELD_LAPCOUNT: "LAPS"
277, // T_FIELD_INICHKSTATE: "ICSTATE"
386, // T_FIELD_ERR: "ERROR"
486, // T_FIELD_SDC: "SDC"
293, // T_FIELD_INVRREADY: "INVRRDY"
285, // T_FIELD_INVLREADY: "INVLRDY"
317, // T_FIELD_R2DPROGRESS: "R2DPROG"
301, // T_FIELD_ACTIVEMISSION: "MISSION"
261, // T_FIELD_ASSTATE: "ASSTATE"
333, // T_FIELD_TSSTATE: "TSSTATE"
175, // T_NUMBERWILDCARD: "<>"
175, // T_DEFAULTWILDCARD_CENTERED: "<>"
175, // T_DEFAULTWILDCARD_RIGHTALIGNED: "<>"
474, // T_FIELD_TSCURRENT: "ITS"
461, // T_FIELD_MINCELLVOLT: "VMIN"
404, // T_FIELD_SPEED: "SPEED"
177, // T_INSPECTION_HUGE: "Inspection"
252, // T_EBS_HUGE: "EBS Test"
199, // T_TRACKDRIVE_HUGE: "Trackdrive"
220, // T_AUTOX_HUGE: "Autocross"
325, // T_SKIDPAD_HUGE: "Skidpad"
146, // T_ACCEL_HUGE: "Acceleration"
35, // T_INVALID_HUGE: "Invalid Mission!"
116, // T_MANUAL: "Manual Driving"
177, // T_INSPECTION: "Inspection"
252, // T_EBS: "EBS Test"
199, // T_TRACKDRIVE: "Trackdrive"
220, // T_AUTOX: "Autocross"
325, // T_SKIDPAD: "Skidpad"
146, // T_ACCEL: "Acceleration"
172, // T___SINGLEUSE_C17G: "AS <>"
362, // T___SINGLEUSE_XFW7: "\n\nAMS"
368, // T___SINGLEUSE_N50J: "\n\nIMD"
466, // T___SINGLEUSE_V38H: "ACC"
436, // T___SINGLEUSE_XC1X: "TSMS"
243, // T___SINGLEUSE_KI1B: "BSPD\nHVD"
159, // T___SINGLEUSE_QNHI: "SDB\nRES\nSDCL"
0, // T___SINGLEUSE_43KA: "DASH\nBOTS\nINERTIA"
374, // T___SINGLEUSE_YRU7: "\n\nPDU"
421, // T___SINGLEUSE_E6D7: "INIT"
175, // T___SINGLEUSE_ZEKA: "<>"
131, // T___SINGLEUSE_0L75: "Pressure Rear:"
100, // T___SINGLEUSE_GA13: "Pressure Front:"
175, // T___SINGLEUSE_THUG: "<>"
175, // T___SINGLEUSE_CO7A: "<>"
175, // T___SINGLEUSE_A0LF: "<>"
175, // T___SINGLEUSE_166C: "<>"
84, // T___SINGLEUSE_OOU3: "Pressure Acc B:"
68, // T___SINGLEUSE_2FPP: "Pressure Acc A:"
175, // T___SINGLEUSE_2S21: "<>"
175, // T___SINGLEUSE_OQ6P: "<>"
309, // T___SINGLEUSE_590R: "MSPEED:"
269, // T___SINGLEUSE_Z78U: "DSPEED:"
175, // T___SINGLEUSE_LLOZ: "<>"
175, // T___SINGLEUSE_232C: "<>"
398, // T___SINGLEUSE_JFR7: "MANG:"
380, // T___SINGLEUSE_3MDX: "DANG:"
17, // T___SINGLEUSE_F9I5: ""
175, // T___SINGLEUSE_9L8R: "<>"
17, // T___SINGLEUSE_1NKF: ""
175, // T___SINGLEUSE_J5UH: "<>"
478, // T___SINGLEUSE_NGUK: "R2D"
175, // T___SINGLEUSE_4E84: "<>"
175, // T___SINGLEUSE_YTAB: "<>"
188, // T___SINGLEUSE_RWCE: "PARAMETERS"
230, // T___SINGLEUSE_HMH2: "PRECHARGE"
240, // T___SINGLEUSE_PHFD: "<>%"
341, // T___SINGLEUSE_H6UX: "BRAKES"
175, // T___SINGLEUSE_20H3: "<>"
52, // T___SINGLEUSE_M5X7: "Invalid Mission"
18 // T___SINGLEUSE_6GPV: "Choose a mission"
};

View File

@ -60,60 +60,66 @@ extern const touchgfx::TypedText::TypedTextData* const typedTextDatabaseArray[];
TEXT_LOCATION_FLASH_PRAGMA
KEEP extern const touchgfx::Unicode::UnicodeChar texts_all_languages[] TEXT_LOCATION_FLASH_ATTRIBUTE = {
0x43, 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x20, 0x61, 0x20, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0, // @0 "Choose a mission"
0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x21, 0x0, // @17 "Invalid Mission!"
0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0, // @34 "Invalid Mission"
0x50, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, 0x65, 0x20, 0x41, 0x63, 0x63, 0x20, 0x41, 0x3a, 0x0, // @50 "Pressure Acc A:"
0x50, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, 0x65, 0x20, 0x41, 0x63, 0x63, 0x20, 0x42, 0x3a, 0x0, // @66 "Pressure Acc B:"
0x50, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, 0x65, 0x20, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x3a, 0x0, // @82 "Pressure Front:"
0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x20, 0x44, 0x72, 0x69, 0x76, 0x69, 0x6e, 0x67, 0x0, // @98 "Manual Driving"
0x50, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, 0x65, 0x20, 0x52, 0x65, 0x61, 0x72, 0x3a, 0x0, // @113 "Pressure Rear:"
0x41, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0, // @128 "Acceleration"
0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0, // @141 "Inspection"
0x50, 0x41, 0x52, 0x41, 0x4d, 0x45, 0x54, 0x45, 0x52, 0x53, 0x0, // @152 "PARAMETERS"
0x54, 0x72, 0x61, 0x63, 0x6b, 0x64, 0x72, 0x69, 0x76, 0x65, 0x0, // @163 "Trackdrive"
0x41, 0x4d, 0x53, 0x20, 0x45, 0x72, 0x72, 0x4f, 0x72, 0x0, // @174 "AMS ErrOr"
0x41, 0x75, 0x74, 0x6f, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x0, // @184 "Autocross"
0x50, 0x52, 0x45, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x0, // @194 "PRECHARGE"
0x2, 0x25, 0x0, // @204 "<>%"
0x45, 0x42, 0x53, 0x20, 0x54, 0x65, 0x73, 0x74, 0x0, // @207 "EBS Test"
0x2, 0x0, // @216 "<>"
0x41, 0x53, 0x53, 0x54, 0x41, 0x54, 0x45, 0x0, // @218 "ASSTATE"
0x44, 0x53, 0x50, 0x45, 0x45, 0x44, 0x3a, 0x0, // @226 "DSPEED:"
0x49, 0x43, 0x53, 0x54, 0x41, 0x54, 0x45, 0x0, // @234 "ICSTATE"
0x49, 0x4e, 0x56, 0x4c, 0x52, 0x44, 0x59, 0x0, // @242 "INVLRDY"
0x49, 0x4e, 0x56, 0x52, 0x52, 0x44, 0x59, 0x0, // @250 "INVRRDY"
0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x0, // @258 "MISSION"
0x4d, 0x53, 0x50, 0x45, 0x45, 0x44, 0x3a, 0x0, // @266 "MSPEED:"
0x52, 0x32, 0x44, 0x50, 0x52, 0x4f, 0x47, 0x0, // @274 "R2DPROG"
0x53, 0x6b, 0x69, 0x64, 0x70, 0x61, 0x64, 0x0, // @282 "Skidpad"
0x54, 0x53, 0x53, 0x54, 0x41, 0x54, 0x45, 0x0, // @290 "TSSTATE"
0x42, 0x52, 0x41, 0x4b, 0x45, 0x53, 0x0, // @298 "BRAKES"
0x54, 0x53, 0x56, 0x42, 0x41, 0x54, 0x0, // @305 "TSVBAT"
0x54, 0x53, 0x56, 0x56, 0x45, 0x48, 0x0, // @312 "TSVVEH"
0x44, 0x41, 0x4e, 0x47, 0x3a, 0x0, // @319 "DANG:"
0x45, 0x52, 0x52, 0x4f, 0x52, 0x0, // @325 "ERROR"
0x4c, 0x56, 0x53, 0x4f, 0x43, 0x0, // @331 "LVSOC"
0x4d, 0x41, 0x4e, 0x47, 0x3a, 0x0, // @337 "MANG:"
0x53, 0x50, 0x45, 0x45, 0x44, 0x0, // @343 "SPEED"
0x54, 0x53, 0x53, 0x4f, 0x43, 0x0, // @349 "TSSOC"
0x42, 0x42, 0x41, 0x4c, 0x0, // @355 "BBAL"
0x49, 0x4e, 0x49, 0x54, 0x0, // @360 "INIT"
0x4c, 0x41, 0x50, 0x53, 0x0, // @365 "LAPS"
0x54, 0x4d, 0x41, 0x58, 0x0, // @370 "TMAX"
0x54, 0x54, 0x46, 0x4c, 0x0, // @375 "TTFL"
0x54, 0x54, 0x46, 0x52, 0x0, // @380 "TTFR"
0x54, 0x54, 0x52, 0x4c, 0x0, // @385 "TTRL"
0x54, 0x54, 0x52, 0x52, 0x0, // @390 "TTRR"
0x56, 0x4d, 0x49, 0x4e, 0x0, // @395 "VMIN"
0x41, 0x4d, 0x53, 0x0, // @400 "AMS"
0x49, 0x4e, 0x56, 0x0, // @404 "INV"
0x49, 0x54, 0x53, 0x0, // @408 "ITS"
0x50, 0x44, 0x55, 0x0, // @412 "PDU"
0x52, 0x32, 0x44, 0x0, // @416 "R2D"
0x53, 0x43, 0x53, 0x0, // @420 "SCS"
0x53, 0x44, 0x43, 0x0, // @424 "SDC"
0x4c, 0x56, 0x0 // @428 "LV"
0x44, 0x41, 0x53, 0x48, 0xa, 0x42, 0x4f, 0x54, 0x53, 0xa, 0x49, 0x4e, 0x45, 0x52, 0x54, 0x49, 0x41, 0x0, // @0 "DASH\nBOTS\nINERTIA"
0x43, 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x20, 0x61, 0x20, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0, // @18 "Choose a mission"
0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x21, 0x0, // @35 "Invalid Mission!"
0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0, // @52 "Invalid Mission"
0x50, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, 0x65, 0x20, 0x41, 0x63, 0x63, 0x20, 0x41, 0x3a, 0x0, // @68 "Pressure Acc A:"
0x50, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, 0x65, 0x20, 0x41, 0x63, 0x63, 0x20, 0x42, 0x3a, 0x0, // @84 "Pressure Acc B:"
0x50, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, 0x65, 0x20, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x3a, 0x0, // @100 "Pressure Front:"
0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x20, 0x44, 0x72, 0x69, 0x76, 0x69, 0x6e, 0x67, 0x0, // @116 "Manual Driving"
0x50, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, 0x65, 0x20, 0x52, 0x65, 0x61, 0x72, 0x3a, 0x0, // @131 "Pressure Rear:"
0x41, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0, // @146 "Acceleration"
0x53, 0x44, 0x42, 0xa, 0x52, 0x45, 0x53, 0xa, 0x53, 0x44, 0x43, 0x4c, 0x0, // @159 "SDB\nRES\nSDCL"
0x41, 0x53, 0x20, 0x2, 0x0, // @172 "AS <>"
0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0, // @177 "Inspection"
0x50, 0x41, 0x52, 0x41, 0x4d, 0x45, 0x54, 0x45, 0x52, 0x53, 0x0, // @188 "PARAMETERS"
0x54, 0x72, 0x61, 0x63, 0x6b, 0x64, 0x72, 0x69, 0x76, 0x65, 0x0, // @199 "Trackdrive"
0x41, 0x4d, 0x53, 0x20, 0x45, 0x72, 0x72, 0x4f, 0x72, 0x0, // @210 "AMS ErrOr"
0x41, 0x75, 0x74, 0x6f, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x0, // @220 "Autocross"
0x50, 0x52, 0x45, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x0, // @230 "PRECHARGE"
0x2, 0x25, 0x0, // @240 "<>%"
0x42, 0x53, 0x50, 0x44, 0xa, 0x48, 0x56, 0x44, 0x0, // @243 "BSPD\nHVD"
0x45, 0x42, 0x53, 0x20, 0x54, 0x65, 0x73, 0x74, 0x0, // @252 "EBS Test"
0x41, 0x53, 0x53, 0x54, 0x41, 0x54, 0x45, 0x0, // @261 "ASSTATE"
0x44, 0x53, 0x50, 0x45, 0x45, 0x44, 0x3a, 0x0, // @269 "DSPEED:"
0x49, 0x43, 0x53, 0x54, 0x41, 0x54, 0x45, 0x0, // @277 "ICSTATE"
0x49, 0x4e, 0x56, 0x4c, 0x52, 0x44, 0x59, 0x0, // @285 "INVLRDY"
0x49, 0x4e, 0x56, 0x52, 0x52, 0x44, 0x59, 0x0, // @293 "INVRRDY"
0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x0, // @301 "MISSION"
0x4d, 0x53, 0x50, 0x45, 0x45, 0x44, 0x3a, 0x0, // @309 "MSPEED:"
0x52, 0x32, 0x44, 0x50, 0x52, 0x4f, 0x47, 0x0, // @317 "R2DPROG"
0x53, 0x6b, 0x69, 0x64, 0x70, 0x61, 0x64, 0x0, // @325 "Skidpad"
0x54, 0x53, 0x53, 0x54, 0x41, 0x54, 0x45, 0x0, // @333 "TSSTATE"
0x42, 0x52, 0x41, 0x4b, 0x45, 0x53, 0x0, // @341 "BRAKES"
0x54, 0x53, 0x56, 0x42, 0x41, 0x54, 0x0, // @348 "TSVBAT"
0x54, 0x53, 0x56, 0x56, 0x45, 0x48, 0x0, // @355 "TSVVEH"
0xa, 0xa, 0x41, 0x4d, 0x53, 0x0, // @362 "\n\nAMS"
0xa, 0xa, 0x49, 0x4d, 0x44, 0x0, // @368 "\n\nIMD"
0xa, 0xa, 0x50, 0x44, 0x55, 0x0, // @374 "\n\nPDU"
0x44, 0x41, 0x4e, 0x47, 0x3a, 0x0, // @380 "DANG:"
0x45, 0x52, 0x52, 0x4f, 0x52, 0x0, // @386 "ERROR"
0x4c, 0x56, 0x53, 0x4f, 0x43, 0x0, // @392 "LVSOC"
0x4d, 0x41, 0x4e, 0x47, 0x3a, 0x0, // @398 "MANG:"
0x53, 0x50, 0x45, 0x45, 0x44, 0x0, // @404 "SPEED"
0x54, 0x53, 0x53, 0x4f, 0x43, 0x0, // @410 "TSSOC"
0x42, 0x42, 0x41, 0x4c, 0x0, // @416 "BBAL"
0x49, 0x4e, 0x49, 0x54, 0x0, // @421 "INIT"
0x4c, 0x41, 0x50, 0x53, 0x0, // @426 "LAPS"
0x54, 0x4d, 0x41, 0x58, 0x0, // @431 "TMAX"
0x54, 0x53, 0x4d, 0x53, 0x0, // @436 "TSMS"
0x54, 0x54, 0x46, 0x4c, 0x0, // @441 "TTFL"
0x54, 0x54, 0x46, 0x52, 0x0, // @446 "TTFR"
0x54, 0x54, 0x52, 0x4c, 0x0, // @451 "TTRL"
0x54, 0x54, 0x52, 0x52, 0x0, // @456 "TTRR"
0x56, 0x4d, 0x49, 0x4e, 0x0, // @461 "VMIN"
0x41, 0x43, 0x43, 0x0, // @466 "ACC"
0x49, 0x4e, 0x56, 0x0, // @470 "INV"
0x49, 0x54, 0x53, 0x0, // @474 "ITS"
0x52, 0x32, 0x44, 0x0, // @478 "R2D"
0x53, 0x43, 0x53, 0x0, // @482 "SCS"
0x53, 0x44, 0x43, 0x0, // @486 "SDC"
0x4c, 0x56, 0x0 // @490 "LV"
};
TEXT_LOCATION_FLASH_PRAGMA

View File

@ -82,6 +82,15 @@ const touchgfx::TypedText::TypedTextData typedText_database_GB[] TEXT_LOCATION_F
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::RIGHT, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
{ 1, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
{ 1, touchgfx::RIGHT, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
@ -169,6 +178,15 @@ 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::LEFT, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::RIGHT, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
{ 1, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
{ 1, touchgfx::RIGHT, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },

View File

@ -51,6 +51,7 @@ protected:
AMIDataField measuredSpeedField;
touchgfx::Unicode::UnicodeChar progressBuffer[16];
touchgfx::Unicode::UnicodeChar asOKBuffer[16];
touchgfx::Shape<3> cones[NUM_CONES] = {cone0, cone1, cone2, cone3, cone4,
cone5, cone6, cone7, cone8, cone9};
};

View File

@ -0,0 +1,39 @@
#ifndef SDCPRESENTER_HPP
#define SDCPRESENTER_HPP
#include <gui/model/ModelListener.hpp>
#include <mvp/Presenter.hpp>
using namespace touchgfx;
class SDCView;
class SDCPresenter : public touchgfx::Presenter, public ModelListener {
public:
SDCPresenter(SDCView &v);
/**
* The activate function is called automatically when this screen is "switched
* in" (ie. made active). Initialization logic can be placed here.
*/
virtual void activate() override;
/**
* The deactivate function is called automatically when this screen is
* "switched out" (ie. made inactive). Teardown functionality can be placed
* here.
*/
virtual void deactivate() override;
virtual ~SDCPresenter() {}
void vehicleStateUpdated() override;
void nextScreen() override;
private:
SDCPresenter();
SDCView &view;
};
#endif // SDCPRESENTER_HPP

View File

@ -0,0 +1,33 @@
#ifndef SDCVIEW_HPP
#define SDCVIEW_HPP
#include "gui/containers/DriverViewStatusItem.hpp"
#include "touchgfx/Color.hpp"
#include "touchgfx/hal/Types.hpp"
#include <gui/sdc_screen/SDCPresenter.hpp>
#include <gui_generated/sdc_screen/SDCViewBase.hpp>
class SDCView : public SDCViewBase {
public:
SDCView();
virtual ~SDCView() {}
virtual void setupScreen();
virtual void tearDownScreen();
void setPDUClosed(bool closed);
void setInertiaClosed(bool closed);
void setIMDClosed(bool closed);
void setAMSClosed(bool closed);
void setSDCLClosed(bool closed);
void setHVBClosed(bool closed);
void setTSMSClosed(bool closed);
void setAccClosed(bool closed);
protected:
inline touchgfx::colortype getColor(bool closed) {
return closed ? DriverViewStatusItem::COLOR_OK
: DriverViewStatusItem::COLOR_ERROR;
}
};
#endif // SDCVIEW_HPP

View File

@ -37,5 +37,5 @@ void AMIPresenter::vehicleStateUpdated() {
void AMIPresenter::nextScreen() {
FrontendApplication *app =
static_cast<FrontendApplication *>(FrontendApplication::getInstance());
app->gotoDebugViewScreenNoTransition();
app->gotoSDCScreenNoTransition();
}

View File

@ -111,6 +111,9 @@ void AMIView::updateDataFields() {
void AMIView::setJetsonTimeout(bool timeout) {
if (timeout) {
desiredAngle.setColor(touchgfx::Color::getColorFromRGB(0xFF, 0, 0));
touchgfx::Unicode::fromUTF8((const uint8_t *)"TIMEOUT", asOKBuffer,
sizeof(asOKBuffer) / sizeof(*asOKBuffer));
asOK.setWildcard(asOKBuffer);
} else {
desiredAngle.setColor(touchgfx::Color::getColorFromRGB(0xFF, 0xFF, 0xFF));
}

View File

@ -38,7 +38,11 @@ void MissionSelectPresenter::nextScreen() {
FrontendApplication *app =
static_cast<FrontendApplication *>(FrontendApplication::getInstance());
if (app->getBackToMissionSelect()) {
app->gotoAMIScreenNoTransition();
if (vehicle_state.active_mission == MISSION_MANUAL) {
app->gotoDriverViewScreenNoTransition();
} else {
app->gotoAMIScreenNoTransition();
}
return;
}
}

View File

@ -0,0 +1,27 @@
#include "gui/common/FrontendApplication.hpp"
#include "vehicle_state.h"
#include <gui/sdc_screen/SDCPresenter.hpp>
#include <gui/sdc_screen/SDCView.hpp>
SDCPresenter::SDCPresenter(SDCView &v) : view(v) {}
void SDCPresenter::activate() { vehicleStateUpdated(); }
void SDCPresenter::deactivate() {}
void SDCPresenter::vehicleStateUpdated() {
view.setPDUClosed(vehicle_state.pdu_sdc_active);
view.setInertiaClosed(vehicle_state.sdcl_state[1]);
view.setIMDClosed(vehicle_state.imd_ok);
view.setAMSClosed(vehicle_state.ts_state != TS_ERROR);
view.setSDCLClosed(vehicle_state.sdcl_state[0]);
view.setHVBClosed(vehicle_state.sdcl_state[2]);
view.setTSMSClosed(true);
view.setAccClosed(vehicle_state.sdc_closed);
}
void SDCPresenter::nextScreen() {
FrontendApplication *app =
static_cast<FrontendApplication *>(FrontendApplication::getInstance());
app->gotoDebugViewScreenNoTransition();
}

View File

@ -0,0 +1,26 @@
#include "gui/driverview_screen/DriverViewView.hpp"
#include <gui/sdc_screen/SDCView.hpp>
SDCView::SDCView() {}
void SDCView::setupScreen() { SDCViewBase::setupScreen(); }
void SDCView::tearDownScreen() { SDCViewBase::tearDownScreen(); }
void SDCView::setPDUClosed(bool closed) { pdu.setColor(getColor(closed)); }
void SDCView::setInertiaClosed(bool closed) {
inertia.setColor(getColor(closed));
}
void SDCView::setIMDClosed(bool closed) { imd.setColor(getColor(closed)); }
void SDCView::setAMSClosed(bool closed) { ams.setColor(getColor(closed)); }
void SDCView::setSDCLClosed(bool closed) { sdcl.setColor(getColor(closed)); }
void SDCView::setHVBClosed(bool closed) { hvb.setColor(getColor(closed)); }
void SDCView::setTSMSClosed(bool closed) { tsms.setColor(getColor(closed)); }
void SDCView::setAccClosed(bool closed) { acc.setColor(getColor(closed)); }

View File

@ -11,7 +11,7 @@ void VehicleConfigPresenter::deactivate() {}
void VehicleConfigPresenter::nextScreen() {
static_cast<FrontendApplication *>(Application::getInstance())
->gotoDebugViewScreenNoTransition();
->gotoSDCScreenNoTransition();
}
void VehicleConfigPresenter::paramConfirmed() {

View File

@ -20,7 +20,7 @@ all clean assets:
$(error Spaces not allowed in path)
else
ADDITIONAL_SOURCES :=
ADDITIONAL_SOURCES := $(application_path)/../Core/Src/vehicle_state.c
ADDITIONAL_INCLUDE_PATHS := $(application_path)/../Core/Inc
ADDITIONAL_LIBRARY_PATHS :=
ADDITIONAL_LIBRARIES :=

View File

@ -49,7 +49,6 @@ int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
// Stubs
extern "C" {
VehicleState vehicle_state;
void params_dec(ParamType param) {}
void params_inc(ParamType param) {}
void params_broadcast(ParamType param) {}

View File

@ -192,6 +192,18 @@
"ScreenTransitionType": "ScreenTransitionNone",
"ActionComponent": "VehicleConfig"
}
},
{
"InteractionName": "DummyChangeSDCView",
"Trigger": {
"Type": "TriggerPhysicalButtonClicked",
"ButtonKey": 250
},
"Action": {
"Type": "ActionGotoScreen",
"ScreenTransitionType": "ScreenTransitionNone",
"ActionComponent": "SDC"
}
}
]
},
@ -630,6 +642,22 @@
"Width": 480,
"Height": 320,
"Components": [
{
"Type": "TextArea",
"Name": "asOK",
"X": 68,
"Y": 279,
"Width": 169,
"Height": 24,
"TextId": "__SingleUse_C17G",
"TextRotation": "0",
"Color": {
"Red": 255,
"Green": 255,
"Blue": 255
},
"Wildcard1": {}
},
{
"Type": "TextArea",
"Name": "textArea8",
@ -1093,7 +1121,7 @@
"X": 95,
"Y": -2,
"Width": 269,
"Height": 30,
"Height": 37,
"Visible": false,
"TextId": "__SingleUse_HMH2",
"TextRotation": "0",
@ -1408,6 +1436,197 @@
}
}
]
},
{
"Name": "SDC",
"CanvasBufferSize": 7200,
"Components": [
{
"Type": "TextArea",
"Name": "pdu",
"X": 15,
"Y": 40,
"Width": 60,
"Height": 72,
"TextId": "__SingleUse_YRU7",
"TextRotation": "0",
"Color": {
"Red": 255,
"Green": 255,
"Blue": 255
},
"AutoSize": true
},
{
"Type": "TextArea",
"Name": "inertia",
"X": 128,
"Y": 40,
"Width": 107,
"Height": 72,
"TextId": "__SingleUse_43KA",
"TextRotation": "0",
"Color": {
"Red": 255,
"Green": 255,
"Blue": 255
},
"AutoSize": true
},
{
"Type": "TextArea",
"Name": "sdcl",
"X": 363,
"Y": 217,
"Width": 102,
"Height": 72,
"TextId": "__SingleUse_QNHI",
"TextRotation": "0",
"Color": {
"Red": 255,
"Green": 255,
"Blue": 255
}
},
{
"Type": "TextArea",
"Name": "hvb",
"X": 240,
"Y": 241,
"Width": 103,
"Height": 48,
"TextId": "__SingleUse_KI1B",
"TextRotation": "0",
"Color": {
"Red": 255,
"Green": 255,
"Blue": 255
},
"AutoSize": true
},
{
"Type": "TextArea",
"Name": "tsms",
"X": 120,
"Y": 265,
"Width": 84,
"Height": 24,
"TextId": "__SingleUse_XC1X",
"TextRotation": "0",
"Color": {
"Red": 255,
"Green": 255,
"Blue": 255
},
"AutoSize": true
},
{
"Type": "TextArea",
"Name": "acc",
"X": 15,
"Y": 265,
"Width": 58,
"Height": 24,
"TextId": "__SingleUse_V38H",
"TextRotation": "0",
"Color": {
"Red": 255,
"Green": 255,
"Blue": 255
},
"AutoSize": true
},
{
"Type": "TextArea",
"Name": "imd",
"X": 291,
"Y": 40,
"Width": 46,
"Height": 72,
"TextId": "__SingleUse_N50J",
"TextRotation": "0",
"Color": {
"Red": 255,
"Green": 255,
"Blue": 255
},
"AutoSize": true
},
{
"Type": "TextArea",
"Name": "ams",
"X": 404,
"Y": 40,
"Width": 61,
"Height": 72,
"TextId": "__SingleUse_XFW7",
"TextRotation": "0",
"Color": {
"Red": 255,
"Green": 255,
"Blue": 255
},
"AutoSize": true
},
{
"Type": "Line",
"Name": "line1",
"X": 15,
"Y": 122,
"Width": 450,
"Height": 10,
"Color": {
"Red": 255,
"Green": 255,
"Blue": 255
},
"StartX": 5.0,
"StartY": 5.0,
"EndX": 450.0,
"EndY": 5.0,
"LineWidth": 10.0,
"LineEndingStyle": "Square"
},
{
"Type": "Line",
"Name": "line2",
"X": 15,
"Y": 193,
"Width": 450,
"Height": 10,
"Color": {
"Red": 255,
"Green": 255,
"Blue": 255
},
"StartX": 10.0,
"StartY": 5.0,
"EndX": 450.0,
"EndY": 5.0,
"LineWidth": 10.0,
"LineEndingStyle": "Round"
},
{
"Type": "Line",
"Name": "line3",
"X": 455,
"Y": 122,
"Width": 10,
"Height": 81,
"Color": {
"Red": 255,
"Green": 255,
"Blue": 255
},
"StartX": 5.0,
"StartY": 5.0,
"EndX": 5.0,
"EndY": 100.0,
"LineWidth": 10.0,
"LineEndingStyle": "Square"
}
],
"Interactions": []
}
],
"CustomContainerDefinitions": [