APPS calibration screen
This commit is contained in:
parent
afd4688c97
commit
738e15e963
|
@ -10,20 +10,39 @@ extern "C" {
|
|||
|
||||
#include "util.h"
|
||||
|
||||
CountedEnum(ParamType, size_t, PF_BBAL, PF_SLIPREF, PF_MUMAX, PF_ASRP, PF_ASRON,
|
||||
PF_ASRI, PF_PLIM);
|
||||
CountedEnum(ParamType, size_t, PF_BBAL, PF_PLIM, PF_TORQUE, PF_SLIM,
|
||||
PF_APPS0_MIN, PF_APPS0_MAX, PF_APPS1_MIN, PF_APPS1_MAX, PF_TV,
|
||||
PF_TC, PF_TC_SLIPREF, PF_TC_MUMAX, PF_TC_P, PF_TC_I, PF_DRS_CLOSED,
|
||||
PF_DRS_OPEN, PF_MAP);
|
||||
|
||||
typedef struct {
|
||||
float bbal;
|
||||
float slipref;
|
||||
float mumax;
|
||||
unsigned asrp;
|
||||
unsigned asri;
|
||||
unsigned asron;
|
||||
unsigned plim;
|
||||
typedef union {
|
||||
struct {
|
||||
float bbal;
|
||||
float plim;
|
||||
float torque;
|
||||
float slim;
|
||||
float apps0_min;
|
||||
float apps0_max;
|
||||
float apps1_min;
|
||||
float apps1_max;
|
||||
int tv;
|
||||
int tc;
|
||||
float tc_slipref;
|
||||
float tc_mumax;
|
||||
float tc_p;
|
||||
float tc_i;
|
||||
float drs_closed;
|
||||
float drs_open;
|
||||
int map;
|
||||
};
|
||||
// TODO: Use ParamType_COUNT somehow?
|
||||
float valuesFloat[17];
|
||||
int valuesInt[17];
|
||||
} Params;
|
||||
|
||||
extern Params params;
|
||||
// TODO: Use ParamType_COUNT somehow?
|
||||
extern float param_steps[17];
|
||||
|
||||
void params_init();
|
||||
void params_inc(ParamType param);
|
||||
|
|
|
@ -189,6 +189,15 @@ typedef struct {
|
|||
float measured_angle;
|
||||
float desired_speed;
|
||||
|
||||
float apps0_min;
|
||||
float apps0_max;
|
||||
float apps0_volt;
|
||||
float apps0_out;
|
||||
float apps1_min;
|
||||
float apps1_max;
|
||||
float apps1_volt;
|
||||
float apps1_out;
|
||||
|
||||
ConePosition cone_pos[NUM_CONES];
|
||||
|
||||
ParamType last_param_confirmed;
|
||||
|
|
|
@ -3,6 +3,75 @@
|
|||
#include "vehicle.h"
|
||||
|
||||
Params params = {0};
|
||||
static const float param_limits[] = {
|
||||
[PF_BBAL] = 100.0f,
|
||||
[PF_PLIM] = 120.0f,
|
||||
[PF_TORQUE] = 1500.0f,
|
||||
[PF_SLIM] = 150.0f,
|
||||
[PF_APPS0_MIN] = 5.0f,
|
||||
[PF_APPS0_MAX] = 5.0f,
|
||||
[PF_APPS1_MIN] = 5.0f,
|
||||
[PF_APPS1_MAX] = 5.0f,
|
||||
[PF_TV] = 1,
|
||||
[PF_TC] = 1,
|
||||
[PF_TC_SLIPREF] = 1.0f,
|
||||
[PF_TC_MUMAX] = 5.0f,
|
||||
[PF_TC_P] = 20.0f,
|
||||
[PF_TC_I] = 20.0f,
|
||||
[PF_DRS_CLOSED] = 1.0f,
|
||||
[PF_DRS_OPEN] = 1.0f,
|
||||
// TODO: counted enum for map?
|
||||
[PF_MAP] = 7,
|
||||
};
|
||||
float param_steps[] = {
|
||||
[PF_BBAL] = 1,
|
||||
[PF_PLIM] = 1,
|
||||
[PF_TORQUE] = 10,
|
||||
[PF_SLIM] = 1,
|
||||
[PF_APPS0_MIN] = 0.001f,
|
||||
[PF_APPS0_MAX] = 0.001f,
|
||||
[PF_APPS1_MIN] = 0.001f,
|
||||
[PF_APPS1_MAX] = 0.001f,
|
||||
[PF_TV] = 1,
|
||||
[PF_TC] = 1,
|
||||
[PF_TC_SLIPREF] = 0.01f,
|
||||
[PF_TC_MUMAX] = 0.1f,
|
||||
[PF_TC_P] = 0.1f,
|
||||
[PF_TC_I] = 0.1f,
|
||||
[PF_DRS_CLOSED] = 0.001f,
|
||||
[PF_DRS_OPEN] = 0.001f,
|
||||
[PF_MAP] = 1,
|
||||
};
|
||||
static const float param_broadcast_factors[] = {
|
||||
[PF_BBAL] = 1,
|
||||
[PF_PLIM] = 1,
|
||||
[PF_TORQUE] = 1,
|
||||
[PF_SLIM] = 1,
|
||||
[PF_APPS0_MIN] = 0.001f,
|
||||
[PF_APPS0_MAX] = 0.001f,
|
||||
[PF_APPS1_MIN] = 0.001f,
|
||||
[PF_APPS1_MAX] = 0.001f,
|
||||
[PF_TV] = 1,
|
||||
[PF_TC] = 1,
|
||||
[PF_TC_SLIPREF] = 0.001f,
|
||||
[PF_TC_MUMAX] = 0.001f,
|
||||
[PF_TC_P] = 0.001f,
|
||||
[PF_TC_I] = 0.001f,
|
||||
[PF_DRS_CLOSED] = 0.001f,
|
||||
[PF_DRS_OPEN] = 0.001f,
|
||||
[PF_MAP] = 1,
|
||||
};
|
||||
#ifdef __cplusplus
|
||||
_Static_assert(sizeof(param_limits) / sizeof(param_limits[0]) ==
|
||||
ParamType_COUNT,
|
||||
"Incorrect number of param limits");
|
||||
_Static_assert(sizeof(param_steps) / sizeof(param_steps[0]) == ParamType_COUNT,
|
||||
"Incorrect number of param steps");
|
||||
_Static_assert(sizeof(param_broadcast_factors) /
|
||||
sizeof(param_broadcast_factors[0]) ==
|
||||
ParamType_COUNT,
|
||||
"Incorrect number of param broadcast factors");
|
||||
#endif
|
||||
|
||||
void params_init() {
|
||||
params.bbal = 50;
|
||||
|
@ -11,96 +80,50 @@ void params_init() {
|
|||
|
||||
void params_inc(ParamType param) {
|
||||
switch (param) {
|
||||
case PF_BBAL:
|
||||
params.bbal += 0.5f;
|
||||
if (params.bbal > 100.0f) {
|
||||
params.bbal = 100.0f;
|
||||
case PF_TV:
|
||||
case PF_TC:
|
||||
case PF_MAP:
|
||||
params.valuesInt[param] += param_steps[param];
|
||||
if (params.valuesInt[param] > param_limits[param]) {
|
||||
params.valuesInt[param] = param_limits[param];
|
||||
}
|
||||
break;
|
||||
case PF_SLIPREF:
|
||||
params.slipref += 0.01f;
|
||||
break;
|
||||
case PF_MUMAX:
|
||||
params.mumax += 0.1f;
|
||||
break;
|
||||
case PF_ASRP:
|
||||
params.asrp++;
|
||||
break;
|
||||
case PF_ASRI:
|
||||
params.asri++;
|
||||
break;
|
||||
case PF_ASRON:
|
||||
params.asron = 1;
|
||||
break;
|
||||
case PF_PLIM:
|
||||
params.plim = (params.plim < 80) ? params.plim + 1 : 80;
|
||||
break;
|
||||
default:
|
||||
params.valuesFloat[param] += param_steps[param];
|
||||
if (params.valuesFloat[param] > param_limits[param]) {
|
||||
params.valuesFloat[param] = param_limits[param];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void params_dec(ParamType param) {
|
||||
switch (param) {
|
||||
case PF_BBAL:
|
||||
params.bbal -= 0.5f;
|
||||
if (params.bbal < 0.0f) {
|
||||
params.bbal = 0.0f;
|
||||
case PF_TV:
|
||||
case PF_TC:
|
||||
case PF_MAP:
|
||||
params.valuesInt[param] -= param_steps[param];
|
||||
if (params.valuesInt[param] < 0) {
|
||||
params.valuesInt[param] = 0;
|
||||
}
|
||||
break;
|
||||
case PF_SLIPREF:
|
||||
if (params.slipref > 0) {
|
||||
params.slipref -= 0.01f;
|
||||
default:
|
||||
params.valuesFloat[param] -= param_steps[param];
|
||||
if (params.valuesFloat[param] < 0) {
|
||||
params.valuesFloat[param] = 0;
|
||||
}
|
||||
break;
|
||||
case PF_MUMAX:
|
||||
if (params.mumax > 0) {
|
||||
params.mumax -= 0.1f;
|
||||
}
|
||||
break;
|
||||
case PF_ASRP:
|
||||
if (params.asrp > 0) {
|
||||
params.asrp--;
|
||||
}
|
||||
break;
|
||||
case PF_ASRI:
|
||||
if (params.asri > 0) {
|
||||
params.asri--;
|
||||
}
|
||||
break;
|
||||
case PF_ASRON:
|
||||
params.asron = 0;
|
||||
break;
|
||||
case PF_PLIM:
|
||||
params.plim = (params.plim > 2) ? params.plim - 1 : 2;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void params_broadcast(ParamType param) {
|
||||
int32_t value;
|
||||
switch (param) {
|
||||
case PF_BBAL:
|
||||
value = params.bbal * 10;
|
||||
break;
|
||||
case PF_SLIPREF:
|
||||
value = params.slipref * 100;
|
||||
break;
|
||||
case PF_MUMAX:
|
||||
value = params.mumax * 10;
|
||||
break;
|
||||
case PF_ASRP:
|
||||
value = params.asrp;
|
||||
break;
|
||||
case PF_ASRI:
|
||||
value = params.asri;
|
||||
break;
|
||||
case PF_ASRON:
|
||||
value = params.asron;
|
||||
break;
|
||||
case PF_PLIM:
|
||||
value = params.plim;
|
||||
case PF_TV:
|
||||
case PF_TC:
|
||||
case PF_MAP:
|
||||
value = params.valuesInt[param] / param_broadcast_factors[param];
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
value = params.valuesFloat[param] / param_broadcast_factors[param];
|
||||
}
|
||||
vehicle_broadcast_param(param, value);
|
||||
}
|
||||
|
|
|
@ -25,6 +25,8 @@
|
|||
#define CAN_ID_ABX_MISC 0x109
|
||||
#define CAN_ID_ABX_HYDRAULICS 0x110
|
||||
#define CAN_ID_ABX_ENDURANCE 0x113
|
||||
#define CAN_ID_ABX_APPS 0x114
|
||||
#define CAN_ID_ABX_APPS_LIMITS 0x115
|
||||
#define CAN_ID_EPSC_OUT 0x321
|
||||
#define CAN_ID_MISSION_SELECTED 0x400
|
||||
#define CAN_ID_STW_BUTTONS 0x401
|
||||
|
@ -73,6 +75,8 @@ void vehicle_thread_entry(ULONG hfdcan_addr) {
|
|||
ftcan_add_filter(CAN_ID_ABX_MISC, 0x7FF);
|
||||
ftcan_add_filter(CAN_ID_ABX_ENDURANCE, 0x7FF);
|
||||
ftcan_add_filter(CAN_ID_ABX_HYDRAULICS, 0x7FF);
|
||||
ftcan_add_filter(CAN_ID_ABX_APPS, 0x7FF);
|
||||
ftcan_add_filter(CAN_ID_ABX_APPS_LIMITS, 0x7FF);
|
||||
ftcan_add_filter(CAN_ID_EPSC_OUT, 0x7FF);
|
||||
ftcan_add_filter(CAN_ID_AS_MISSION_FB, 0x7FF);
|
||||
ftcan_add_filter(CAN_ID_STW_STATUS, 0x7FF);
|
||||
|
@ -204,6 +208,18 @@ void ftcan_msg_received_cb(uint16_t id, size_t datalen, const uint8_t *data) {
|
|||
vehicle_state.temps.brake_rl = (data[4] | (data[5] << 8)) * 0.01f;
|
||||
vehicle_state.temps.brake_rr = (data[6] | (data[7] << 8)) * 0.01f;
|
||||
break;
|
||||
case CAN_ID_ABX_APPS:
|
||||
vehicle_state.apps0_volt = (data[0] | (data[1] << 8)) * 0.001f;
|
||||
vehicle_state.apps1_volt = (data[2] | (data[3] << 8)) * 0.001f;
|
||||
vehicle_state.apps0_out = (int16_t)((data[4] | (data[5] << 8))) * 0.001f;
|
||||
vehicle_state.apps1_out = (int16_t)((data[6] | (data[7] << 8))) * 0.001f;
|
||||
break;
|
||||
case CAN_ID_ABX_APPS_LIMITS:
|
||||
vehicle_state.apps0_min = (data[0] | (data[1] << 8)) * 0.001f;
|
||||
vehicle_state.apps0_max = (data[2] | (data[3] << 8)) * 0.001f;
|
||||
vehicle_state.apps1_min = (data[4] | (data[5] << 8)) * 0.001f;
|
||||
vehicle_state.apps1_max = (data[6] | (data[7] << 8)) * 0.001f;
|
||||
break;
|
||||
case CAN_ID_CS_INTERNAL:
|
||||
vehicle_state.temps.inv_l =
|
||||
(data[0] | (data[1] << 8)) * CAN_CS_INTERNAL_TEMP_FACTOR;
|
||||
|
|
|
@ -171,6 +171,45 @@
|
|||
</Text>
|
||||
</TextGroup>
|
||||
<TextGroup Id="Unsorted">
|
||||
<Text Id="__SingleUse_W4YT" Alignment="Left" TypographyId="Chinat_Small">
|
||||
<Translation Language="GB">APPS1</Translation>
|
||||
</Text>
|
||||
<Text Id="__SingleUse_SM6H" Alignment="Left" TypographyId="Numbers_Smaller">
|
||||
<Translation Language="GB"><value></Translation>
|
||||
</Text>
|
||||
<Text Id="__SingleUse_8KB4" Alignment="Left" TypographyId="Numbers_Smaller">
|
||||
<Translation Language="GB"><value></Translation>
|
||||
</Text>
|
||||
<Text Id="__SingleUse_P4TL" Alignment="Left" TypographyId="Numbers_Smaller">
|
||||
<Translation Language="GB"><value></Translation>
|
||||
</Text>
|
||||
<Text Id="__SingleUse_CBZ9" Alignment="Center" TypographyId="Chinat_Small">
|
||||
<Translation Language="GB">CUR</Translation>
|
||||
</Text>
|
||||
<Text Id="__SingleUse_WQXQ" Alignment="Center" TypographyId="Chinat_Small">
|
||||
<Translation Language="GB">MAX</Translation>
|
||||
</Text>
|
||||
<Text Id="__SingleUse_QXG5" Alignment="Center" TypographyId="Chinat_Small">
|
||||
<Translation Language="GB">MIN</Translation>
|
||||
</Text>
|
||||
<Text Id="__SingleUse_MBQT" Alignment="Left" TypographyId="Numbers_Smaller">
|
||||
<Translation Language="GB"><value></Translation>
|
||||
</Text>
|
||||
<Text Id="__SingleUse_978V" Alignment="Left" TypographyId="Numbers_Smaller">
|
||||
<Translation Language="GB"><value></Translation>
|
||||
</Text>
|
||||
<Text Id="__SingleUse_H8OI" Alignment="Left" TypographyId="Numbers_Smaller">
|
||||
<Translation Language="GB"><value></Translation>
|
||||
</Text>
|
||||
<Text Id="__SingleUse_6EKV" Alignment="Left" TypographyId="Chinat_Small">
|
||||
<Translation Language="GB">APPS0</Translation>
|
||||
</Text>
|
||||
<Text Id="__SingleUse_RK9Z" Alignment="Right" TypographyId="Numbers_Small">
|
||||
<Translation Language="GB"><></Translation>
|
||||
</Text>
|
||||
<Text Id="__SingleUse_UBFH" Alignment="Left" TypographyId="Chinat_Large">
|
||||
<Translation Language="GB">APPS CALIBRATION</Translation>
|
||||
</Text>
|
||||
<Text Id="__SingleUse_6EXA" Alignment="Right" TypographyId="Chinat_Large">
|
||||
<Translation Language="GB"><value></Translation>
|
||||
</Text>
|
||||
|
@ -334,7 +373,7 @@
|
|||
<Typography Id="Numbers" Font="lucon.TTF" Size="50" Bpp="4" Direction="LTR" FallbackCharacter="?" WildcardCharacters=". ,-" WildcardCharacterRanges="0-9" />
|
||||
<Typography Id="Default_Bold" Font="verdanab.ttf" Size="20" Bpp="4" Direction="LTR" FallbackCharacter="?" WildcardCharacters="! "" WildcardCharacterRanges="#-~" />
|
||||
<Typography Id="Numbers_Smaller" Font="lucon.TTF" Size="33" Bpp="4" Direction="LTR" FallbackCharacter="?" WildcardCharacters=" .,-" WildcardCharacterRanges="0-9" />
|
||||
<Typography Id="Numbers_Small" Font="lucon.TTF" Size="20" Bpp="4" Direction="LTR" FallbackCharacter="?" WildcardCharacters=" .,-" WildcardCharacterRanges="0-9" />
|
||||
<Typography Id="Numbers_Small" Font="lucon.TTF" Size="20" Bpp="4" Direction="LTR" FallbackCharacter="?" WildcardCharacters=" .,-" WidgetWildcardCharacters="-., 0123456789" WildcardCharacterRanges="0-9" />
|
||||
<Typography Id="Numbers_Huge" Font="lucon.TTF" Size="80" Bpp="4" Direction="LTR" FallbackCharacter="?" WildcardCharacters=" .,-+" WildcardCharacterRanges="0-9" />
|
||||
</Typographies>
|
||||
</TextDatabase>
|
||||
|
|
|
@ -0,0 +1,99 @@
|
|||
/*********************************************************************************/
|
||||
/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/
|
||||
/*********************************************************************************/
|
||||
#ifndef APPSVIEWBASE_HPP
|
||||
#define APPSVIEWBASE_HPP
|
||||
|
||||
#include <gui/common/FrontendApplication.hpp>
|
||||
#include <mvp/View.hpp>
|
||||
#include <gui/apps_screen/APPSPresenter.hpp>
|
||||
#include <touchgfx/widgets/Box.hpp>
|
||||
#include <touchgfx/widgets/graph/GraphWrapAndOverwrite.hpp>
|
||||
#include <touchgfx/widgets/graph/GraphElements.hpp>
|
||||
#include <touchgfx/widgets/graph/GraphLabels.hpp>
|
||||
#include <touchgfx/widgets/canvas/PainterRGB565.hpp>
|
||||
#include <touchgfx/widgets/TextArea.hpp>
|
||||
#include <touchgfx/widgets/TextAreaWithWildcard.hpp>
|
||||
|
||||
class APPSViewBase : public touchgfx::View<APPSPresenter>
|
||||
{
|
||||
public:
|
||||
APPSViewBase();
|
||||
virtual ~APPSViewBase();
|
||||
virtual void setupScreen();
|
||||
virtual void handleKeyEvent(uint8_t key);
|
||||
|
||||
/*
|
||||
* Virtual Action Handlers
|
||||
*/
|
||||
virtual void selectPrevField()
|
||||
{
|
||||
// Override and implement this function in APPS
|
||||
}
|
||||
virtual void selectNextField()
|
||||
{
|
||||
// Override and implement this function in APPS
|
||||
}
|
||||
virtual void decField()
|
||||
{
|
||||
// Override and implement this function in APPS
|
||||
}
|
||||
virtual void incField()
|
||||
{
|
||||
// Override and implement this function in APPS
|
||||
}
|
||||
virtual void confirmField()
|
||||
{
|
||||
// Override and implement this function in APPS
|
||||
}
|
||||
virtual void switchPrecision()
|
||||
{
|
||||
// Override and implement this function in APPS
|
||||
}
|
||||
|
||||
protected:
|
||||
FrontendApplication& application() {
|
||||
return *static_cast<FrontendApplication*>(touchgfx::Application::getInstance());
|
||||
}
|
||||
|
||||
/*
|
||||
* Member Declarations
|
||||
*/
|
||||
touchgfx::Box __background;
|
||||
touchgfx::GraphWrapAndOverwrite<50> apps0Graph;
|
||||
touchgfx::GraphElementGridY apps0GraphMajorYAxisGrid;
|
||||
touchgfx::GraphLabelsY apps0GraphMajorYAxisLabel;
|
||||
touchgfx::GraphElementLine apps0GraphLine1;
|
||||
touchgfx::PainterRGB565 apps0GraphLine1Painter;
|
||||
touchgfx::GraphElementVerticalGapLine apps0GraphVerticalFrontline;
|
||||
touchgfx::GraphWrapAndOverwrite<50> apps1Graph;
|
||||
touchgfx::GraphElementLine apps1GraphLine1;
|
||||
touchgfx::PainterRGB565 apps1GraphLine1Painter;
|
||||
touchgfx::TextArea title;
|
||||
touchgfx::TextArea apps0;
|
||||
touchgfx::TextArea apps1;
|
||||
touchgfx::TextArea min;
|
||||
touchgfx::TextArea max;
|
||||
touchgfx::TextArea cur;
|
||||
touchgfx::Box apps1max_bg;
|
||||
touchgfx::Box apps0max_bg;
|
||||
touchgfx::Box apps1min_bg;
|
||||
touchgfx::Box apps0min_bg;
|
||||
touchgfx::TextAreaWithOneWildcard apps1cur;
|
||||
touchgfx::TextAreaWithOneWildcard apps0cur;
|
||||
touchgfx::TextAreaWithOneWildcard apps1max;
|
||||
touchgfx::TextAreaWithOneWildcard apps0max;
|
||||
touchgfx::TextAreaWithOneWildcard apps1min;
|
||||
touchgfx::TextAreaWithOneWildcard apps0min;
|
||||
|
||||
private:
|
||||
|
||||
/*
|
||||
* Canvas Buffer Size
|
||||
*/
|
||||
static const uint32_t CANVAS_BUFFER_SIZE = 7200;
|
||||
uint8_t canvasBuffer[CANVAS_BUFFER_SIZE];
|
||||
|
||||
};
|
||||
|
||||
#endif // APPSVIEWBASE_HPP
|
|
@ -41,6 +41,9 @@ public:
|
|||
// Endurance
|
||||
void gotoEnduranceScreenNoTransition();
|
||||
|
||||
// APPS
|
||||
void gotoAPPSScreenNoTransition();
|
||||
|
||||
protected:
|
||||
touchgfx::Callback<FrontendApplicationBase> transitionCallback;
|
||||
FrontendHeap& frontendHeap;
|
||||
|
@ -66,6 +69,9 @@ protected:
|
|||
|
||||
// Endurance
|
||||
void gotoEnduranceScreenNoTransitionImpl();
|
||||
|
||||
// APPS
|
||||
void gotoAPPSScreenNoTransitionImpl();
|
||||
};
|
||||
|
||||
#endif // FRONTENDAPPLICATIONBASE_HPP
|
||||
|
|
|
@ -26,6 +26,8 @@
|
|||
#include <gui/sdc_screen/SDCPresenter.hpp>
|
||||
#include <gui/endurance_screen/EnduranceView.hpp>
|
||||
#include <gui/endurance_screen/EndurancePresenter.hpp>
|
||||
#include <gui/apps_screen/APPSView.hpp>
|
||||
#include <gui/apps_screen/APPSPresenter.hpp>
|
||||
|
||||
|
||||
/**
|
||||
|
@ -55,7 +57,8 @@ public:
|
|||
touchgfx::meta::TypeList< VehicleConfigView,
|
||||
touchgfx::meta::TypeList< SDCView,
|
||||
touchgfx::meta::TypeList< EnduranceView,
|
||||
touchgfx::meta::Nil > > > > > >
|
||||
touchgfx::meta::TypeList< APPSView,
|
||||
touchgfx::meta::Nil > > > > > > >
|
||||
> GeneratedViewTypes;
|
||||
|
||||
/**
|
||||
|
@ -74,7 +77,8 @@ public:
|
|||
touchgfx::meta::TypeList< VehicleConfigPresenter,
|
||||
touchgfx::meta::TypeList< SDCPresenter,
|
||||
touchgfx::meta::TypeList< EndurancePresenter,
|
||||
touchgfx::meta::Nil > > > > > >
|
||||
touchgfx::meta::TypeList< APPSPresenter,
|
||||
touchgfx::meta::Nil > > > > > > >
|
||||
> GeneratedPresenterTypes;
|
||||
|
||||
/**
|
||||
|
|
|
@ -0,0 +1,216 @@
|
|||
/*********************************************************************************/
|
||||
/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/
|
||||
/*********************************************************************************/
|
||||
#include <gui_generated/apps_screen/APPSViewBase.hpp>
|
||||
#include <touchgfx/canvas_widget_renderer/CanvasWidgetRenderer.hpp>
|
||||
#include <touchgfx/Color.hpp>
|
||||
#include <texts/TextKeysAndLanguages.hpp>
|
||||
|
||||
APPSViewBase::APPSViewBase()
|
||||
{
|
||||
touchgfx::CanvasWidgetRenderer::setupBuffer(canvasBuffer, CANVAS_BUFFER_SIZE);
|
||||
|
||||
__background.setPosition(0, 0, 480, 320);
|
||||
__background.setColor(touchgfx::Color::getColorFromRGB(0, 0, 0));
|
||||
add(__background);
|
||||
|
||||
apps0Graph.setPosition(11, 36, 458, 180);
|
||||
apps0Graph.setScale(10);
|
||||
apps0Graph.setGraphAreaMargin(0, 40, 0, 0);
|
||||
apps0Graph.setGraphAreaPadding(0, 0, 0, 0);
|
||||
apps0Graph.setGraphRangeY(-10, 110);
|
||||
apps0GraphMajorYAxisGrid.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
|
||||
apps0GraphMajorYAxisGrid.setInterval(20);
|
||||
apps0GraphMajorYAxisGrid.setLineWidth(1);
|
||||
apps0GraphMajorYAxisGrid.setScale(10);
|
||||
apps0Graph.addGraphElement(apps0GraphMajorYAxisGrid);
|
||||
|
||||
apps0GraphMajorYAxisLabel.setInterval(20);
|
||||
apps0GraphMajorYAxisLabel.setLabelTypedText(touchgfx::TypedText(T___SINGLEUSE_RK9Z));
|
||||
apps0GraphMajorYAxisLabel.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
|
||||
apps0GraphMajorYAxisLabel.setScale(10);
|
||||
apps0Graph.addLeftElement(apps0GraphMajorYAxisLabel);
|
||||
|
||||
apps0GraphLine1Painter.setColor(touchgfx::Color::getColorFromRGB(20, 151, 197));
|
||||
apps0GraphLine1.setPainter(apps0GraphLine1Painter);
|
||||
apps0GraphLine1.setLineWidth(2);
|
||||
apps0Graph.addGraphElement(apps0GraphLine1);
|
||||
|
||||
apps0GraphVerticalFrontline.setColor(touchgfx::Color::getColorFromRGB(137, 224, 13));
|
||||
apps0GraphVerticalFrontline.setGapLineWidth(1);
|
||||
apps0Graph.addGraphElement(apps0GraphVerticalFrontline);
|
||||
|
||||
|
||||
add(apps0Graph);
|
||||
|
||||
apps1Graph.setPosition(11, 36, 458, 180);
|
||||
apps1Graph.setScale(10);
|
||||
apps1Graph.setGraphAreaMargin(0, 0, 0, 0);
|
||||
apps1Graph.setGraphAreaPadding(0, 40, 0, 0);
|
||||
apps1Graph.setGraphRangeY(-10, 110);
|
||||
apps1GraphLine1Painter.setColor(touchgfx::Color::getColorFromRGB(196, 109, 22));
|
||||
apps1GraphLine1.setPainter(apps1GraphLine1Painter);
|
||||
apps1GraphLine1.setLineWidth(2);
|
||||
apps1Graph.addGraphElement(apps1GraphLine1);
|
||||
|
||||
add(apps1Graph);
|
||||
|
||||
title.setXY(38, 0);
|
||||
title.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
|
||||
title.setLinespacing(0);
|
||||
title.setTypedText(touchgfx::TypedText(T___SINGLEUSE_UBFH));
|
||||
add(title);
|
||||
|
||||
apps0.setXY(11, 247);
|
||||
apps0.setColor(touchgfx::Color::getColorFromRGB(20, 151, 197));
|
||||
apps0.setLinespacing(0);
|
||||
apps0.setTypedText(touchgfx::TypedText(T___SINGLEUSE_6EKV));
|
||||
add(apps0);
|
||||
|
||||
apps1.setXY(11, 285);
|
||||
apps1.setColor(touchgfx::Color::getColorFromRGB(196, 109, 22));
|
||||
apps1.setLinespacing(0);
|
||||
apps1.setTypedText(touchgfx::TypedText(T___SINGLEUSE_W4YT));
|
||||
add(apps1);
|
||||
|
||||
min.setPosition(127, 216, 100, 24);
|
||||
min.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
|
||||
min.setLinespacing(0);
|
||||
min.setTypedText(touchgfx::TypedText(T___SINGLEUSE_QXG5));
|
||||
add(min);
|
||||
|
||||
max.setPosition(250, 216, 100, 24);
|
||||
max.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
|
||||
max.setLinespacing(0);
|
||||
max.setTypedText(touchgfx::TypedText(T___SINGLEUSE_WQXQ));
|
||||
add(max);
|
||||
|
||||
cur.setPosition(369, 216, 100, 24);
|
||||
cur.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
|
||||
cur.setLinespacing(0);
|
||||
cur.setTypedText(touchgfx::TypedText(T___SINGLEUSE_CBZ9));
|
||||
add(cur);
|
||||
|
||||
apps1max_bg.setPosition(250, 278, 100, 38);
|
||||
apps1max_bg.setColor(touchgfx::Color::getColorFromRGB(68, 68, 68));
|
||||
apps1max_bg.setVisible(false);
|
||||
add(apps1max_bg);
|
||||
|
||||
apps0max_bg.setPosition(250, 240, 100, 38);
|
||||
apps0max_bg.setColor(touchgfx::Color::getColorFromRGB(68, 68, 68));
|
||||
apps0max_bg.setVisible(false);
|
||||
add(apps0max_bg);
|
||||
|
||||
apps1min_bg.setPosition(127, 278, 100, 38);
|
||||
apps1min_bg.setColor(touchgfx::Color::getColorFromRGB(68, 68, 68));
|
||||
apps1min_bg.setVisible(false);
|
||||
add(apps1min_bg);
|
||||
|
||||
apps0min_bg.setPosition(127, 240, 100, 38);
|
||||
apps0min_bg.setColor(touchgfx::Color::getColorFromRGB(68, 68, 68));
|
||||
apps0min_bg.setVisible(false);
|
||||
add(apps0min_bg);
|
||||
|
||||
apps1cur.setPosition(369, 278, 100, 38);
|
||||
apps1cur.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
|
||||
apps1cur.setLinespacing(0);
|
||||
apps1cur.setTypedText(touchgfx::TypedText(T___SINGLEUSE_SM6H));
|
||||
add(apps1cur);
|
||||
|
||||
apps0cur.setPosition(369, 240, 100, 38);
|
||||
apps0cur.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
|
||||
apps0cur.setLinespacing(0);
|
||||
apps0cur.setTypedText(touchgfx::TypedText(T___SINGLEUSE_8KB4));
|
||||
add(apps0cur);
|
||||
|
||||
apps1max.setPosition(250, 278, 100, 38);
|
||||
apps1max.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
|
||||
apps1max.setLinespacing(0);
|
||||
apps1max.setTypedText(touchgfx::TypedText(T___SINGLEUSE_H8OI));
|
||||
add(apps1max);
|
||||
|
||||
apps0max.setPosition(250, 240, 100, 38);
|
||||
apps0max.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
|
||||
apps0max.setLinespacing(0);
|
||||
apps0max.setTypedText(touchgfx::TypedText(T___SINGLEUSE_978V));
|
||||
add(apps0max);
|
||||
|
||||
apps1min.setPosition(127, 278, 100, 38);
|
||||
apps1min.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
|
||||
apps1min.setLinespacing(0);
|
||||
apps1min.setTypedText(touchgfx::TypedText(T___SINGLEUSE_P4TL));
|
||||
add(apps1min);
|
||||
|
||||
apps0min.setPosition(127, 240, 100, 38);
|
||||
apps0min.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
|
||||
apps0min.setLinespacing(0);
|
||||
apps0min.setTypedText(touchgfx::TypedText(T___SINGLEUSE_MBQT));
|
||||
add(apps0min);
|
||||
}
|
||||
|
||||
APPSViewBase::~APPSViewBase()
|
||||
{
|
||||
touchgfx::CanvasWidgetRenderer::resetBuffer();
|
||||
}
|
||||
|
||||
void APPSViewBase::setupScreen()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void APPSViewBase::handleKeyEvent(uint8_t key)
|
||||
{
|
||||
if(104 == key)
|
||||
{
|
||||
//SelectPrevField
|
||||
//When hardware button 104 clicked call virtual function
|
||||
//Call selectPrevField
|
||||
selectPrevField();
|
||||
|
||||
}
|
||||
|
||||
if(108 == key)
|
||||
{
|
||||
//SelectNextField
|
||||
//When hardware button 108 clicked call virtual function
|
||||
//Call selectNextField
|
||||
selectNextField();
|
||||
|
||||
}
|
||||
|
||||
if(107 == key)
|
||||
{
|
||||
//DecField
|
||||
//When hardware button 107 clicked call virtual function
|
||||
//Call decField
|
||||
decField();
|
||||
|
||||
}
|
||||
|
||||
if(106 == key)
|
||||
{
|
||||
//IncField
|
||||
//When hardware button 106 clicked call virtual function
|
||||
//Call incField
|
||||
incField();
|
||||
|
||||
}
|
||||
|
||||
if(54 == key)
|
||||
{
|
||||
//ConfirmField
|
||||
//When hardware button 54 clicked call virtual function
|
||||
//Call confirmField
|
||||
confirmField();
|
||||
|
||||
}
|
||||
|
||||
if(53 == key)
|
||||
{
|
||||
//SwitchPrecision
|
||||
//When hardware button 53 clicked call virtual function
|
||||
//Call switchPrecision
|
||||
switchPrecision();
|
||||
|
||||
}
|
||||
}
|
|
@ -23,6 +23,8 @@
|
|||
#include <gui/sdc_screen/SDCPresenter.hpp>
|
||||
#include <gui/endurance_screen/EnduranceView.hpp>
|
||||
#include <gui/endurance_screen/EndurancePresenter.hpp>
|
||||
#include <gui/apps_screen/APPSView.hpp>
|
||||
#include <gui/apps_screen/APPSPresenter.hpp>
|
||||
|
||||
using namespace touchgfx;
|
||||
|
||||
|
@ -132,3 +134,16 @@ void FrontendApplicationBase::gotoEnduranceScreenNoTransitionImpl()
|
|||
{
|
||||
touchgfx::makeTransition<EnduranceView, EndurancePresenter, touchgfx::NoTransition, Model >(¤tScreen, ¤tPresenter, frontendHeap, ¤tTransition, &model);
|
||||
}
|
||||
|
||||
// APPS
|
||||
|
||||
void FrontendApplicationBase::gotoAPPSScreenNoTransition()
|
||||
{
|
||||
transitionCallback = touchgfx::Callback<FrontendApplicationBase>(this, &FrontendApplicationBase::gotoAPPSScreenNoTransitionImpl);
|
||||
pendingScreenTransitionCallback = &transitionCallback;
|
||||
}
|
||||
|
||||
void FrontendApplicationBase::gotoAPPSScreenNoTransitionImpl()
|
||||
{
|
||||
touchgfx::makeTransition<APPSView, APPSPresenter, touchgfx::NoTransition, Model >(¤tScreen, ¤tPresenter, frontendHeap, ¤tTransition, &model);
|
||||
}
|
||||
|
|
|
@ -153,4 +153,13 @@ void MissionSelectViewBase::handleKeyEvent(uint8_t key)
|
|||
application().gotoEnduranceScreenNoTransition();
|
||||
|
||||
}
|
||||
|
||||
if(248 == key)
|
||||
{
|
||||
//DummyChangeAPPSView
|
||||
//When hardware button 248 clicked change screen to APPS
|
||||
//Go to APPS with no screen transition
|
||||
application().gotoAPPSScreenNoTransition();
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1 +1 @@
|
|||
{"remap":"yes","language":"GB","language_index":0,"indices":[["524","T_LV"],["404","T_PDU"],["516","T_SCS"],["520","T_SDC"],["512","T_R2D"],["509","T_TS"],["504","T_INV"],["392","T_AMS"],["235","T_ERROR_AMS"],["200","T_DEBUGVIEWFIELD_TITLE"],["200","T_DRIVERVIEWFIELD_TITLE"],["200","T_NUMBERSMALLWILDCARD"],["450","T_FIELD_BBAL"],["383","T_FIELD_TSVOLTVEH"],["376","T_FIELD_TSVOLTBAT"],["420","T_FIELD_LVSOC"],["444","T_FIELD_TSSOC"],["465","T_FIELD_MAXCELLTEMP"],["475","T_FIELD_TIREFL"],["480","T_FIELD_TIREFR"],["485","T_FIELD_TIRERL"],["490","T_FIELD_TIRERR"],["460","T_FIELD_LAPCOUNT"],["305","T_FIELD_INICHKSTATE"],["414","T_FIELD_ERR"],["520","T_FIELD_SDC"],["321","T_FIELD_INVRREADY"],["313","T_FIELD_INVLREADY"],["345","T_FIELD_R2DPROGRESS"],["329","T_FIELD_ACTIVEMISSION"],["289","T_FIELD_ASSTATE"],["361","T_FIELD_TSSTATE"],["200","T_NUMBERWILDCARD"],["200","T_DEFAULTWILDCARD_CENTERED"],["200","T_DEFAULTWILDCARD_RIGHTALIGNED"],["508","T_FIELD_TSCURRENT"],["495","T_FIELD_MINCELLVOLT"],["438","T_FIELD_SPEED"],["202","T_INSPECTION_HUGE"],["280","T_EBS_HUGE"],["224","T_TRACKDRIVE_HUGE"],["245","T_AUTOX_HUGE"],["353","T_SKIDPAD_HUGE"],["146","T_ACCEL_HUGE"],["35","T_INVALID_HUGE"],["116","T_MANUAL"],["202","T_INSPECTION"],["280","T_EBS"],["224","T_TRACKDRIVE"],["245","T_AUTOX"],["353","T_SKIDPAD"],["146","T_ACCEL"],["200","T___SINGLEUSE_6EXA"],["512","T___SINGLEUSE_570K"],["255","T___SINGLEUSE_G2S2"],["268","T___SINGLEUSE_B2Q6"],["265","T___SINGLEUSE_OP6C"],["438","T___SINGLEUSE_1F9T"],["432","T___SINGLEUSE_QAZ3"],["200","T___SINGLEUSE_DONW"],["200","T___SINGLEUSE_4X8X"],["265","T___SINGLEUSE_FPXE"],["265","T___SINGLEUSE_51AZ"],["185","T___SINGLEUSE_DJ62"],["159","T___SINGLEUSE_5W6Y"],["197","T___SINGLEUSE_C17G"],["390","T___SINGLEUSE_XFW7"],["396","T___SINGLEUSE_N50J"],["500","T___SINGLEUSE_V38H"],["470","T___SINGLEUSE_XC1X"],["271","T___SINGLEUSE_KI1B"],["172","T___SINGLEUSE_QNHI"],["0","T___SINGLEUSE_43KA"],["402","T___SINGLEUSE_YRU7"],["455","T___SINGLEUSE_E6D7"],["200","T___SINGLEUSE_ZEKA"],["131","T___SINGLEUSE_0L75"],["100","T___SINGLEUSE_GA13"],["200","T___SINGLEUSE_THUG"],["200","T___SINGLEUSE_CO7A"],["200","T___SINGLEUSE_A0LF"],["200","T___SINGLEUSE_166C"],["84","T___SINGLEUSE_OOU3"],["68","T___SINGLEUSE_2FPP"],["200","T___SINGLEUSE_2S21"],["200","T___SINGLEUSE_OQ6P"],["337","T___SINGLEUSE_590R"],["297","T___SINGLEUSE_Z78U"],["200","T___SINGLEUSE_LLOZ"],["200","T___SINGLEUSE_232C"],["426","T___SINGLEUSE_JFR7"],["408","T___SINGLEUSE_3MDX"],["17","T___SINGLEUSE_F9I5"],["200","T___SINGLEUSE_9L8R"],["17","T___SINGLEUSE_1NKF"],["200","T___SINGLEUSE_4E84"],["200","T___SINGLEUSE_YTAB"],["213","T___SINGLEUSE_RWCE"],["265","T___SINGLEUSE_PHFD"],["369","T___SINGLEUSE_H6UX"],["200","T___SINGLEUSE_20H3"],["52","T___SINGLEUSE_M5X7"],["18","T___SINGLEUSE_6GPV"]]}
|
||||
{"remap":"yes","language":"GB","language_index":0,"indices":[["557","T_LV"],["421","T_PDU"],["549","T_SCS"],["553","T_SDC"],["545","T_R2D"],["542","T_TS"],["537","T_INV"],["409","T_AMS"],["252","T_ERROR_AMS"],["217","T_DEBUGVIEWFIELD_TITLE"],["217","T_DRIVERVIEWFIELD_TITLE"],["217","T_NUMBERSMALLWILDCARD"],["479","T_FIELD_BBAL"],["400","T_FIELD_TSVOLTVEH"],["393","T_FIELD_TSVOLTBAT"],["449","T_FIELD_LVSOC"],["473","T_FIELD_TSSOC"],["494","T_FIELD_MAXCELLTEMP"],["504","T_FIELD_TIREFL"],["509","T_FIELD_TIREFR"],["514","T_FIELD_TIRERL"],["519","T_FIELD_TIRERR"],["489","T_FIELD_LAPCOUNT"],["322","T_FIELD_INICHKSTATE"],["443","T_FIELD_ERR"],["553","T_FIELD_SDC"],["338","T_FIELD_INVRREADY"],["330","T_FIELD_INVLREADY"],["362","T_FIELD_R2DPROGRESS"],["346","T_FIELD_ACTIVEMISSION"],["306","T_FIELD_ASSTATE"],["378","T_FIELD_TSSTATE"],["217","T_NUMBERWILDCARD"],["217","T_DEFAULTWILDCARD_CENTERED"],["217","T_DEFAULTWILDCARD_RIGHTALIGNED"],["541","T_FIELD_TSCURRENT"],["524","T_FIELD_MINCELLVOLT"],["467","T_FIELD_SPEED"],["219","T_INSPECTION_HUGE"],["297","T_EBS_HUGE"],["241","T_TRACKDRIVE_HUGE"],["262","T_AUTOX_HUGE"],["370","T_SKIDPAD_HUGE"],["163","T_ACCEL_HUGE"],["52","T_INVALID_HUGE"],["133","T_MANUAL"],["219","T_INSPECTION"],["297","T_EBS"],["241","T_TRACKDRIVE"],["262","T_AUTOX"],["370","T_SKIDPAD"],["163","T_ACCEL"],["431","T___SINGLEUSE_W4YT"],["217","T___SINGLEUSE_SM6H"],["217","T___SINGLEUSE_8KB4"],["217","T___SINGLEUSE_P4TL"],["533","T___SINGLEUSE_CBZ9"],["495","T___SINGLEUSE_WQXQ"],["525","T___SINGLEUSE_QXG5"],["217","T___SINGLEUSE_MBQT"],["217","T___SINGLEUSE_978V"],["217","T___SINGLEUSE_H8OI"],["425","T___SINGLEUSE_6EKV"],["217","T___SINGLEUSE_RK9Z"],["18","T___SINGLEUSE_UBFH"],["217","T___SINGLEUSE_6EXA"],["545","T___SINGLEUSE_570K"],["272","T___SINGLEUSE_G2S2"],["285","T___SINGLEUSE_B2Q6"],["282","T___SINGLEUSE_OP6C"],["467","T___SINGLEUSE_1F9T"],["461","T___SINGLEUSE_QAZ3"],["217","T___SINGLEUSE_DONW"],["217","T___SINGLEUSE_4X8X"],["282","T___SINGLEUSE_FPXE"],["282","T___SINGLEUSE_51AZ"],["202","T___SINGLEUSE_DJ62"],["176","T___SINGLEUSE_5W6Y"],["214","T___SINGLEUSE_C17G"],["407","T___SINGLEUSE_XFW7"],["413","T___SINGLEUSE_N50J"],["529","T___SINGLEUSE_V38H"],["499","T___SINGLEUSE_XC1X"],["288","T___SINGLEUSE_KI1B"],["189","T___SINGLEUSE_QNHI"],["0","T___SINGLEUSE_43KA"],["419","T___SINGLEUSE_YRU7"],["484","T___SINGLEUSE_E6D7"],["217","T___SINGLEUSE_ZEKA"],["148","T___SINGLEUSE_0L75"],["117","T___SINGLEUSE_GA13"],["217","T___SINGLEUSE_THUG"],["217","T___SINGLEUSE_CO7A"],["217","T___SINGLEUSE_A0LF"],["217","T___SINGLEUSE_166C"],["101","T___SINGLEUSE_OOU3"],["85","T___SINGLEUSE_2FPP"],["217","T___SINGLEUSE_2S21"],["217","T___SINGLEUSE_OQ6P"],["354","T___SINGLEUSE_590R"],["314","T___SINGLEUSE_Z78U"],["217","T___SINGLEUSE_LLOZ"],["217","T___SINGLEUSE_232C"],["455","T___SINGLEUSE_JFR7"],["437","T___SINGLEUSE_3MDX"],["17","T___SINGLEUSE_F9I5"],["217","T___SINGLEUSE_9L8R"],["17","T___SINGLEUSE_1NKF"],["217","T___SINGLEUSE_4E84"],["217","T___SINGLEUSE_YTAB"],["230","T___SINGLEUSE_RWCE"],["282","T___SINGLEUSE_PHFD"],["386","T___SINGLEUSE_H6UX"],["217","T___SINGLEUSE_20H3"],["69","T___SINGLEUSE_M5X7"],["35","T___SINGLEUSE_6GPV"]]}
|
|
@ -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_6EXA","T___SINGLEUSE_570K","T___SINGLEUSE_G2S2","T___SINGLEUSE_B2Q6","T___SINGLEUSE_OP6C","T___SINGLEUSE_1F9T","T___SINGLEUSE_QAZ3","T___SINGLEUSE_DONW","T___SINGLEUSE_4X8X","T___SINGLEUSE_FPXE","T___SINGLEUSE_51AZ","T___SINGLEUSE_DJ62","T___SINGLEUSE_5W6Y","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_4E84","T___SINGLEUSE_YTAB","T___SINGLEUSE_RWCE","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_W4YT","T___SINGLEUSE_SM6H","T___SINGLEUSE_8KB4","T___SINGLEUSE_P4TL","T___SINGLEUSE_CBZ9","T___SINGLEUSE_WQXQ","T___SINGLEUSE_QXG5","T___SINGLEUSE_MBQT","T___SINGLEUSE_978V","T___SINGLEUSE_H8OI","T___SINGLEUSE_6EKV","T___SINGLEUSE_RK9Z","T___SINGLEUSE_UBFH","T___SINGLEUSE_6EXA","T___SINGLEUSE_570K","T___SINGLEUSE_G2S2","T___SINGLEUSE_B2Q6","T___SINGLEUSE_OP6C","T___SINGLEUSE_1F9T","T___SINGLEUSE_QAZ3","T___SINGLEUSE_DONW","T___SINGLEUSE_4X8X","T___SINGLEUSE_FPXE","T___SINGLEUSE_51AZ","T___SINGLEUSE_DJ62","T___SINGLEUSE_5W6Y","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_4E84","T___SINGLEUSE_YTAB","T___SINGLEUSE_RWCE","T___SINGLEUSE_PHFD","T___SINGLEUSE_H6UX","T___SINGLEUSE_20H3","T___SINGLEUSE_M5X7","T___SINGLEUSE_6GPV"]}
|
|
@ -1 +1 @@
|
|||
{"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,76,65,83,84,32,76,65,80,32,66,65,84,0,83,68,66,10,82,69,83,10,83,68,67,76,0,79,86,69,82,65,76,76,32,66,65,84,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,2,176,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,80,79,87,69,82,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]}
|
||||
{"remap":"yes","languages":["Gb"],"characters":[68,65,83,72,10,66,79,84,83,10,73,78,69,82,84,73,65,0,65,80,80,83,32,67,65,76,73,66,82,65,84,73,79,78,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,76,65,83,84,32,76,65,80,32,66,65,84,0,83,68,66,10,82,69,83,10,83,68,67,76,0,79,86,69,82,65,76,76,32,66,65,84,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,2,176,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,65,80,80,83,48,0,65,80,80,83,49,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,80,79,87,69,82,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,67,85,82,0,73,78,86,0,73,84,83,0,82,50,68,0,83,67,83,0,83,68,67,0,76,86,0]}
|
|
@ -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,"RIGHT","LTR"],[1,"LEFT","LTR"],[1,"LEFT","LTR"],[4,"RIGHT","LTR"],[4,"RIGHT","LTR"],[2,"LEFT","LTR"],[2,"LEFT","LTR"],[8,"CENTER","LTR"],[8,"CENTER","LTR"],[8,"RIGHT","LTR"],[8,"RIGHT","LTR"],[2,"CENTER","LTR"],[2,"LEFT","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"],[4,"RIGHT","LTR"],[1,"LEFT","LTR"],[1,"CENTER","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,"RIGHT","LTR"],[1,"LEFT","LTR"],[1,"LEFT","LTR"],[4,"RIGHT","LTR"],[4,"RIGHT","LTR"],[2,"LEFT","LTR"],[2,"LEFT","LTR"],[8,"CENTER","LTR"],[8,"CENTER","LTR"],[8,"RIGHT","LTR"],[8,"RIGHT","LTR"],[2,"CENTER","LTR"],[2,"LEFT","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"],[4,"RIGHT","LTR"],[1,"LEFT","LTR"],[1,"CENTER","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,"getFont_lucon_TTF_80_4bpp":8},"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"],[6,"LEFT","LTR"],[6,"LEFT","LTR"],[6,"LEFT","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[6,"LEFT","LTR"],[6,"LEFT","LTR"],[6,"LEFT","LTR"],[2,"LEFT","LTR"],[7,"RIGHT","LTR"],[1,"LEFT","LTR"],[1,"RIGHT","LTR"],[1,"LEFT","LTR"],[1,"LEFT","LTR"],[4,"RIGHT","LTR"],[4,"RIGHT","LTR"],[2,"LEFT","LTR"],[2,"LEFT","LTR"],[8,"CENTER","LTR"],[8,"CENTER","LTR"],[8,"RIGHT","LTR"],[8,"RIGHT","LTR"],[2,"CENTER","LTR"],[2,"LEFT","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"],[4,"RIGHT","LTR"],[1,"LEFT","LTR"],[1,"CENTER","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"],[6,"LEFT","LTR"],[6,"LEFT","LTR"],[6,"LEFT","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[6,"LEFT","LTR"],[6,"LEFT","LTR"],[6,"LEFT","LTR"],[2,"LEFT","LTR"],[7,"RIGHT","LTR"],[1,"LEFT","LTR"],[1,"RIGHT","LTR"],[1,"LEFT","LTR"],[1,"LEFT","LTR"],[4,"RIGHT","LTR"],[4,"RIGHT","LTR"],[2,"LEFT","LTR"],[2,"LEFT","LTR"],[8,"CENTER","LTR"],[8,"CENTER","LTR"],[8,"RIGHT","LTR"],[8,"RIGHT","LTR"],[2,"CENTER","LTR"],[2,"LEFT","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"],[4,"RIGHT","LTR"],[1,"LEFT","LTR"],[1,"CENTER","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,"getFont_lucon_TTF_80_4bpp":8},"generate_font_format":"0"}
|
|
@ -64,6 +64,19 @@ enum TEXTS
|
|||
T_AUTOX,
|
||||
T_SKIDPAD,
|
||||
T_ACCEL,
|
||||
T___SINGLEUSE_W4YT,
|
||||
T___SINGLEUSE_SM6H,
|
||||
T___SINGLEUSE_8KB4,
|
||||
T___SINGLEUSE_P4TL,
|
||||
T___SINGLEUSE_CBZ9,
|
||||
T___SINGLEUSE_WQXQ,
|
||||
T___SINGLEUSE_QXG5,
|
||||
T___SINGLEUSE_MBQT,
|
||||
T___SINGLEUSE_978V,
|
||||
T___SINGLEUSE_H8OI,
|
||||
T___SINGLEUSE_6EKV,
|
||||
T___SINGLEUSE_RK9Z,
|
||||
T___SINGLEUSE_UBFH,
|
||||
T___SINGLEUSE_6EXA,
|
||||
T___SINGLEUSE_570K,
|
||||
T___SINGLEUSE_G2S2,
|
||||
|
|
|
@ -10,107 +10,120 @@ 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 = {
|
||||
524, // T_LV: "LV"
|
||||
404, // T_PDU: "PDU"
|
||||
516, // T_SCS: "SCS"
|
||||
520, // T_SDC: "SDC"
|
||||
512, // T_R2D: "R2D"
|
||||
509, // T_TS: "TS"
|
||||
504, // T_INV: "INV"
|
||||
392, // T_AMS: "AMS"
|
||||
235, // T_ERROR_AMS: "AMS ErrOr"
|
||||
200, // T_DEBUGVIEWFIELD_TITLE: "<>"
|
||||
200, // T_DRIVERVIEWFIELD_TITLE: "<>"
|
||||
200, // T_NUMBERSMALLWILDCARD: "<>"
|
||||
450, // T_FIELD_BBAL: "BBAL"
|
||||
383, // T_FIELD_TSVOLTVEH: "TSVVEH"
|
||||
376, // T_FIELD_TSVOLTBAT: "TSVBAT"
|
||||
420, // T_FIELD_LVSOC: "LVSOC"
|
||||
444, // T_FIELD_TSSOC: "TSSOC"
|
||||
465, // T_FIELD_MAXCELLTEMP: "TMAX"
|
||||
475, // T_FIELD_TIREFL: "TTFL"
|
||||
480, // T_FIELD_TIREFR: "TTFR"
|
||||
485, // T_FIELD_TIRERL: "TTRL"
|
||||
490, // T_FIELD_TIRERR: "TTRR"
|
||||
460, // T_FIELD_LAPCOUNT: "LAPS"
|
||||
305, // T_FIELD_INICHKSTATE: "ICSTATE"
|
||||
414, // T_FIELD_ERR: "ERROR"
|
||||
520, // T_FIELD_SDC: "SDC"
|
||||
321, // T_FIELD_INVRREADY: "INVRRDY"
|
||||
313, // T_FIELD_INVLREADY: "INVLRDY"
|
||||
345, // T_FIELD_R2DPROGRESS: "R2DPROG"
|
||||
329, // T_FIELD_ACTIVEMISSION: "MISSION"
|
||||
289, // T_FIELD_ASSTATE: "ASSTATE"
|
||||
361, // T_FIELD_TSSTATE: "TSSTATE"
|
||||
200, // T_NUMBERWILDCARD: "<>"
|
||||
200, // T_DEFAULTWILDCARD_CENTERED: "<>"
|
||||
200, // T_DEFAULTWILDCARD_RIGHTALIGNED: "<>"
|
||||
508, // T_FIELD_TSCURRENT: "ITS"
|
||||
495, // T_FIELD_MINCELLVOLT: "VMIN"
|
||||
438, // T_FIELD_SPEED: "SPEED"
|
||||
202, // T_INSPECTION_HUGE: "Inspection"
|
||||
280, // T_EBS_HUGE: "EBS Test"
|
||||
224, // T_TRACKDRIVE_HUGE: "Trackdrive"
|
||||
245, // T_AUTOX_HUGE: "Autocross"
|
||||
353, // T_SKIDPAD_HUGE: "Skidpad"
|
||||
146, // T_ACCEL_HUGE: "Acceleration"
|
||||
35, // T_INVALID_HUGE: "Invalid Mission!"
|
||||
116, // T_MANUAL: "Manual Driving"
|
||||
202, // T_INSPECTION: "Inspection"
|
||||
280, // T_EBS: "EBS Test"
|
||||
224, // T_TRACKDRIVE: "Trackdrive"
|
||||
245, // T_AUTOX: "Autocross"
|
||||
353, // T_SKIDPAD: "Skidpad"
|
||||
146, // T_ACCEL: "Acceleration"
|
||||
200, // T___SINGLEUSE_6EXA: "<>"
|
||||
512, // T___SINGLEUSE_570K: "R2D"
|
||||
255, // T___SINGLEUSE_G2S2: "PRECHARGE"
|
||||
268, // T___SINGLEUSE_B2Q6: "<>?"
|
||||
265, // T___SINGLEUSE_OP6C: "<>%"
|
||||
438, // T___SINGLEUSE_1F9T: "SPEED"
|
||||
432, // T___SINGLEUSE_QAZ3: "POWER"
|
||||
200, // T___SINGLEUSE_DONW: "<>"
|
||||
200, // T___SINGLEUSE_4X8X: "<>"
|
||||
265, // T___SINGLEUSE_FPXE: "<>%"
|
||||
265, // T___SINGLEUSE_51AZ: "<>%"
|
||||
185, // T___SINGLEUSE_DJ62: "OVERALL BAT"
|
||||
159, // T___SINGLEUSE_5W6Y: "LAST LAP BAT"
|
||||
197, // T___SINGLEUSE_C17G: "AS <>"
|
||||
390, // T___SINGLEUSE_XFW7: "\n\nAMS"
|
||||
396, // T___SINGLEUSE_N50J: "\n\nIMD"
|
||||
500, // T___SINGLEUSE_V38H: "ACC"
|
||||
470, // T___SINGLEUSE_XC1X: "TSMS"
|
||||
271, // T___SINGLEUSE_KI1B: "BSPD\nHVD"
|
||||
172, // T___SINGLEUSE_QNHI: "SDB\nRES\nSDCL"
|
||||
557, // T_LV: "LV"
|
||||
421, // T_PDU: "PDU"
|
||||
549, // T_SCS: "SCS"
|
||||
553, // T_SDC: "SDC"
|
||||
545, // T_R2D: "R2D"
|
||||
542, // T_TS: "TS"
|
||||
537, // T_INV: "INV"
|
||||
409, // T_AMS: "AMS"
|
||||
252, // T_ERROR_AMS: "AMS ErrOr"
|
||||
217, // T_DEBUGVIEWFIELD_TITLE: "<>"
|
||||
217, // T_DRIVERVIEWFIELD_TITLE: "<>"
|
||||
217, // T_NUMBERSMALLWILDCARD: "<>"
|
||||
479, // T_FIELD_BBAL: "BBAL"
|
||||
400, // T_FIELD_TSVOLTVEH: "TSVVEH"
|
||||
393, // T_FIELD_TSVOLTBAT: "TSVBAT"
|
||||
449, // T_FIELD_LVSOC: "LVSOC"
|
||||
473, // T_FIELD_TSSOC: "TSSOC"
|
||||
494, // T_FIELD_MAXCELLTEMP: "TMAX"
|
||||
504, // T_FIELD_TIREFL: "TTFL"
|
||||
509, // T_FIELD_TIREFR: "TTFR"
|
||||
514, // T_FIELD_TIRERL: "TTRL"
|
||||
519, // T_FIELD_TIRERR: "TTRR"
|
||||
489, // T_FIELD_LAPCOUNT: "LAPS"
|
||||
322, // T_FIELD_INICHKSTATE: "ICSTATE"
|
||||
443, // T_FIELD_ERR: "ERROR"
|
||||
553, // T_FIELD_SDC: "SDC"
|
||||
338, // T_FIELD_INVRREADY: "INVRRDY"
|
||||
330, // T_FIELD_INVLREADY: "INVLRDY"
|
||||
362, // T_FIELD_R2DPROGRESS: "R2DPROG"
|
||||
346, // T_FIELD_ACTIVEMISSION: "MISSION"
|
||||
306, // T_FIELD_ASSTATE: "ASSTATE"
|
||||
378, // T_FIELD_TSSTATE: "TSSTATE"
|
||||
217, // T_NUMBERWILDCARD: "<>"
|
||||
217, // T_DEFAULTWILDCARD_CENTERED: "<>"
|
||||
217, // T_DEFAULTWILDCARD_RIGHTALIGNED: "<>"
|
||||
541, // T_FIELD_TSCURRENT: "ITS"
|
||||
524, // T_FIELD_MINCELLVOLT: "VMIN"
|
||||
467, // T_FIELD_SPEED: "SPEED"
|
||||
219, // T_INSPECTION_HUGE: "Inspection"
|
||||
297, // T_EBS_HUGE: "EBS Test"
|
||||
241, // T_TRACKDRIVE_HUGE: "Trackdrive"
|
||||
262, // T_AUTOX_HUGE: "Autocross"
|
||||
370, // T_SKIDPAD_HUGE: "Skidpad"
|
||||
163, // T_ACCEL_HUGE: "Acceleration"
|
||||
52, // T_INVALID_HUGE: "Invalid Mission!"
|
||||
133, // T_MANUAL: "Manual Driving"
|
||||
219, // T_INSPECTION: "Inspection"
|
||||
297, // T_EBS: "EBS Test"
|
||||
241, // T_TRACKDRIVE: "Trackdrive"
|
||||
262, // T_AUTOX: "Autocross"
|
||||
370, // T_SKIDPAD: "Skidpad"
|
||||
163, // T_ACCEL: "Acceleration"
|
||||
431, // T___SINGLEUSE_W4YT: "APPS1"
|
||||
217, // T___SINGLEUSE_SM6H: "<>"
|
||||
217, // T___SINGLEUSE_8KB4: "<>"
|
||||
217, // T___SINGLEUSE_P4TL: "<>"
|
||||
533, // T___SINGLEUSE_CBZ9: "CUR"
|
||||
495, // T___SINGLEUSE_WQXQ: "MAX"
|
||||
525, // T___SINGLEUSE_QXG5: "MIN"
|
||||
217, // T___SINGLEUSE_MBQT: "<>"
|
||||
217, // T___SINGLEUSE_978V: "<>"
|
||||
217, // T___SINGLEUSE_H8OI: "<>"
|
||||
425, // T___SINGLEUSE_6EKV: "APPS0"
|
||||
217, // T___SINGLEUSE_RK9Z: "<>"
|
||||
18, // T___SINGLEUSE_UBFH: "APPS CALIBRATION"
|
||||
217, // T___SINGLEUSE_6EXA: "<>"
|
||||
545, // T___SINGLEUSE_570K: "R2D"
|
||||
272, // T___SINGLEUSE_G2S2: "PRECHARGE"
|
||||
285, // T___SINGLEUSE_B2Q6: "<>?"
|
||||
282, // T___SINGLEUSE_OP6C: "<>%"
|
||||
467, // T___SINGLEUSE_1F9T: "SPEED"
|
||||
461, // T___SINGLEUSE_QAZ3: "POWER"
|
||||
217, // T___SINGLEUSE_DONW: "<>"
|
||||
217, // T___SINGLEUSE_4X8X: "<>"
|
||||
282, // T___SINGLEUSE_FPXE: "<>%"
|
||||
282, // T___SINGLEUSE_51AZ: "<>%"
|
||||
202, // T___SINGLEUSE_DJ62: "OVERALL BAT"
|
||||
176, // T___SINGLEUSE_5W6Y: "LAST LAP BAT"
|
||||
214, // T___SINGLEUSE_C17G: "AS <>"
|
||||
407, // T___SINGLEUSE_XFW7: "\n\nAMS"
|
||||
413, // T___SINGLEUSE_N50J: "\n\nIMD"
|
||||
529, // T___SINGLEUSE_V38H: "ACC"
|
||||
499, // T___SINGLEUSE_XC1X: "TSMS"
|
||||
288, // T___SINGLEUSE_KI1B: "BSPD\nHVD"
|
||||
189, // T___SINGLEUSE_QNHI: "SDB\nRES\nSDCL"
|
||||
0, // T___SINGLEUSE_43KA: "DASH\nBOTS\nINERTIA"
|
||||
402, // T___SINGLEUSE_YRU7: "\n\nPDU"
|
||||
455, // T___SINGLEUSE_E6D7: "INIT"
|
||||
200, // T___SINGLEUSE_ZEKA: "<>"
|
||||
131, // T___SINGLEUSE_0L75: "Pressure Rear:"
|
||||
100, // T___SINGLEUSE_GA13: "Pressure Front:"
|
||||
200, // T___SINGLEUSE_THUG: "<>"
|
||||
200, // T___SINGLEUSE_CO7A: "<>"
|
||||
200, // T___SINGLEUSE_A0LF: "<>"
|
||||
200, // T___SINGLEUSE_166C: "<>"
|
||||
84, // T___SINGLEUSE_OOU3: "Pressure Acc B:"
|
||||
68, // T___SINGLEUSE_2FPP: "Pressure Acc A:"
|
||||
200, // T___SINGLEUSE_2S21: "<>"
|
||||
200, // T___SINGLEUSE_OQ6P: "<>"
|
||||
337, // T___SINGLEUSE_590R: "MSPEED:"
|
||||
297, // T___SINGLEUSE_Z78U: "DSPEED:"
|
||||
200, // T___SINGLEUSE_LLOZ: "<>"
|
||||
200, // T___SINGLEUSE_232C: "<>"
|
||||
426, // T___SINGLEUSE_JFR7: "MANG:"
|
||||
408, // T___SINGLEUSE_3MDX: "DANG:"
|
||||
419, // T___SINGLEUSE_YRU7: "\n\nPDU"
|
||||
484, // T___SINGLEUSE_E6D7: "INIT"
|
||||
217, // T___SINGLEUSE_ZEKA: "<>"
|
||||
148, // T___SINGLEUSE_0L75: "Pressure Rear:"
|
||||
117, // T___SINGLEUSE_GA13: "Pressure Front:"
|
||||
217, // T___SINGLEUSE_THUG: "<>"
|
||||
217, // T___SINGLEUSE_CO7A: "<>"
|
||||
217, // T___SINGLEUSE_A0LF: "<>"
|
||||
217, // T___SINGLEUSE_166C: "<>"
|
||||
101, // T___SINGLEUSE_OOU3: "Pressure Acc B:"
|
||||
85, // T___SINGLEUSE_2FPP: "Pressure Acc A:"
|
||||
217, // T___SINGLEUSE_2S21: "<>"
|
||||
217, // T___SINGLEUSE_OQ6P: "<>"
|
||||
354, // T___SINGLEUSE_590R: "MSPEED:"
|
||||
314, // T___SINGLEUSE_Z78U: "DSPEED:"
|
||||
217, // T___SINGLEUSE_LLOZ: "<>"
|
||||
217, // T___SINGLEUSE_232C: "<>"
|
||||
455, // T___SINGLEUSE_JFR7: "MANG:"
|
||||
437, // T___SINGLEUSE_3MDX: "DANG:"
|
||||
17, // T___SINGLEUSE_F9I5: ""
|
||||
200, // T___SINGLEUSE_9L8R: "<>"
|
||||
217, // T___SINGLEUSE_9L8R: "<>"
|
||||
17, // T___SINGLEUSE_1NKF: ""
|
||||
200, // T___SINGLEUSE_4E84: "<>"
|
||||
200, // T___SINGLEUSE_YTAB: "<>"
|
||||
213, // T___SINGLEUSE_RWCE: "PARAMETERS"
|
||||
265, // T___SINGLEUSE_PHFD: "<>%"
|
||||
369, // T___SINGLEUSE_H6UX: "BRAKES"
|
||||
200, // T___SINGLEUSE_20H3: "<>"
|
||||
52, // T___SINGLEUSE_M5X7: "Invalid Mission"
|
||||
18 // T___SINGLEUSE_6GPV: "Choose a mission"
|
||||
217, // T___SINGLEUSE_4E84: "<>"
|
||||
217, // T___SINGLEUSE_YTAB: "<>"
|
||||
230, // T___SINGLEUSE_RWCE: "PARAMETERS"
|
||||
282, // T___SINGLEUSE_PHFD: "<>%"
|
||||
386, // T___SINGLEUSE_H6UX: "BRAKES"
|
||||
217, // T___SINGLEUSE_20H3: "<>"
|
||||
69, // T___SINGLEUSE_M5X7: "Invalid Mission"
|
||||
35 // T___SINGLEUSE_6GPV: "Choose a mission"
|
||||
};
|
||||
|
|
|
@ -61,69 +61,73 @@ extern const touchgfx::TypedText::TypedTextData* const typedTextDatabaseArray[];
|
|||
TEXT_LOCATION_FLASH_PRAGMA
|
||||
KEEP extern const touchgfx::Unicode::UnicodeChar texts_all_languages[] TEXT_LOCATION_FLASH_ATTRIBUTE = {
|
||||
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"
|
||||
0x4c, 0x41, 0x53, 0x54, 0x20, 0x4c, 0x41, 0x50, 0x20, 0x42, 0x41, 0x54, 0x0, // @159 "LAST LAP BAT"
|
||||
0x53, 0x44, 0x42, 0xa, 0x52, 0x45, 0x53, 0xa, 0x53, 0x44, 0x43, 0x4c, 0x0, // @172 "SDB\nRES\nSDCL"
|
||||
0x4f, 0x56, 0x45, 0x52, 0x41, 0x4c, 0x4c, 0x20, 0x42, 0x41, 0x54, 0x0, // @185 "OVERALL BAT"
|
||||
0x41, 0x53, 0x20, 0x2, 0x0, // @197 "AS <>"
|
||||
0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0, // @202 "Inspection"
|
||||
0x50, 0x41, 0x52, 0x41, 0x4d, 0x45, 0x54, 0x45, 0x52, 0x53, 0x0, // @213 "PARAMETERS"
|
||||
0x54, 0x72, 0x61, 0x63, 0x6b, 0x64, 0x72, 0x69, 0x76, 0x65, 0x0, // @224 "Trackdrive"
|
||||
0x41, 0x4d, 0x53, 0x20, 0x45, 0x72, 0x72, 0x4f, 0x72, 0x0, // @235 "AMS ErrOr"
|
||||
0x41, 0x75, 0x74, 0x6f, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x0, // @245 "Autocross"
|
||||
0x50, 0x52, 0x45, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x0, // @255 "PRECHARGE"
|
||||
0x2, 0x25, 0x0, // @265 "<>%"
|
||||
0x2, 0xb0, 0x0, // @268 "<>?"
|
||||
0x42, 0x53, 0x50, 0x44, 0xa, 0x48, 0x56, 0x44, 0x0, // @271 "BSPD\nHVD"
|
||||
0x45, 0x42, 0x53, 0x20, 0x54, 0x65, 0x73, 0x74, 0x0, // @280 "EBS Test"
|
||||
0x41, 0x53, 0x53, 0x54, 0x41, 0x54, 0x45, 0x0, // @289 "ASSTATE"
|
||||
0x44, 0x53, 0x50, 0x45, 0x45, 0x44, 0x3a, 0x0, // @297 "DSPEED:"
|
||||
0x49, 0x43, 0x53, 0x54, 0x41, 0x54, 0x45, 0x0, // @305 "ICSTATE"
|
||||
0x49, 0x4e, 0x56, 0x4c, 0x52, 0x44, 0x59, 0x0, // @313 "INVLRDY"
|
||||
0x49, 0x4e, 0x56, 0x52, 0x52, 0x44, 0x59, 0x0, // @321 "INVRRDY"
|
||||
0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x0, // @329 "MISSION"
|
||||
0x4d, 0x53, 0x50, 0x45, 0x45, 0x44, 0x3a, 0x0, // @337 "MSPEED:"
|
||||
0x52, 0x32, 0x44, 0x50, 0x52, 0x4f, 0x47, 0x0, // @345 "R2DPROG"
|
||||
0x53, 0x6b, 0x69, 0x64, 0x70, 0x61, 0x64, 0x0, // @353 "Skidpad"
|
||||
0x54, 0x53, 0x53, 0x54, 0x41, 0x54, 0x45, 0x0, // @361 "TSSTATE"
|
||||
0x42, 0x52, 0x41, 0x4b, 0x45, 0x53, 0x0, // @369 "BRAKES"
|
||||
0x54, 0x53, 0x56, 0x42, 0x41, 0x54, 0x0, // @376 "TSVBAT"
|
||||
0x54, 0x53, 0x56, 0x56, 0x45, 0x48, 0x0, // @383 "TSVVEH"
|
||||
0xa, 0xa, 0x41, 0x4d, 0x53, 0x0, // @390 "\n\nAMS"
|
||||
0xa, 0xa, 0x49, 0x4d, 0x44, 0x0, // @396 "\n\nIMD"
|
||||
0xa, 0xa, 0x50, 0x44, 0x55, 0x0, // @402 "\n\nPDU"
|
||||
0x44, 0x41, 0x4e, 0x47, 0x3a, 0x0, // @408 "DANG:"
|
||||
0x45, 0x52, 0x52, 0x4f, 0x52, 0x0, // @414 "ERROR"
|
||||
0x4c, 0x56, 0x53, 0x4f, 0x43, 0x0, // @420 "LVSOC"
|
||||
0x4d, 0x41, 0x4e, 0x47, 0x3a, 0x0, // @426 "MANG:"
|
||||
0x50, 0x4f, 0x57, 0x45, 0x52, 0x0, // @432 "POWER"
|
||||
0x53, 0x50, 0x45, 0x45, 0x44, 0x0, // @438 "SPEED"
|
||||
0x54, 0x53, 0x53, 0x4f, 0x43, 0x0, // @444 "TSSOC"
|
||||
0x42, 0x42, 0x41, 0x4c, 0x0, // @450 "BBAL"
|
||||
0x49, 0x4e, 0x49, 0x54, 0x0, // @455 "INIT"
|
||||
0x4c, 0x41, 0x50, 0x53, 0x0, // @460 "LAPS"
|
||||
0x54, 0x4d, 0x41, 0x58, 0x0, // @465 "TMAX"
|
||||
0x54, 0x53, 0x4d, 0x53, 0x0, // @470 "TSMS"
|
||||
0x54, 0x54, 0x46, 0x4c, 0x0, // @475 "TTFL"
|
||||
0x54, 0x54, 0x46, 0x52, 0x0, // @480 "TTFR"
|
||||
0x54, 0x54, 0x52, 0x4c, 0x0, // @485 "TTRL"
|
||||
0x54, 0x54, 0x52, 0x52, 0x0, // @490 "TTRR"
|
||||
0x56, 0x4d, 0x49, 0x4e, 0x0, // @495 "VMIN"
|
||||
0x41, 0x43, 0x43, 0x0, // @500 "ACC"
|
||||
0x49, 0x4e, 0x56, 0x0, // @504 "INV"
|
||||
0x49, 0x54, 0x53, 0x0, // @508 "ITS"
|
||||
0x52, 0x32, 0x44, 0x0, // @512 "R2D"
|
||||
0x53, 0x43, 0x53, 0x0, // @516 "SCS"
|
||||
0x53, 0x44, 0x43, 0x0, // @520 "SDC"
|
||||
0x4c, 0x56, 0x0 // @524 "LV"
|
||||
0x41, 0x50, 0x50, 0x53, 0x20, 0x43, 0x41, 0x4c, 0x49, 0x42, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x0, // @18 "APPS CALIBRATION"
|
||||
0x43, 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x20, 0x61, 0x20, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0, // @35 "Choose a mission"
|
||||
0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x21, 0x0, // @52 "Invalid Mission!"
|
||||
0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0, // @69 "Invalid Mission"
|
||||
0x50, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, 0x65, 0x20, 0x41, 0x63, 0x63, 0x20, 0x41, 0x3a, 0x0, // @85 "Pressure Acc A:"
|
||||
0x50, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, 0x65, 0x20, 0x41, 0x63, 0x63, 0x20, 0x42, 0x3a, 0x0, // @101 "Pressure Acc B:"
|
||||
0x50, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, 0x65, 0x20, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x3a, 0x0, // @117 "Pressure Front:"
|
||||
0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x20, 0x44, 0x72, 0x69, 0x76, 0x69, 0x6e, 0x67, 0x0, // @133 "Manual Driving"
|
||||
0x50, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, 0x65, 0x20, 0x52, 0x65, 0x61, 0x72, 0x3a, 0x0, // @148 "Pressure Rear:"
|
||||
0x41, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0, // @163 "Acceleration"
|
||||
0x4c, 0x41, 0x53, 0x54, 0x20, 0x4c, 0x41, 0x50, 0x20, 0x42, 0x41, 0x54, 0x0, // @176 "LAST LAP BAT"
|
||||
0x53, 0x44, 0x42, 0xa, 0x52, 0x45, 0x53, 0xa, 0x53, 0x44, 0x43, 0x4c, 0x0, // @189 "SDB\nRES\nSDCL"
|
||||
0x4f, 0x56, 0x45, 0x52, 0x41, 0x4c, 0x4c, 0x20, 0x42, 0x41, 0x54, 0x0, // @202 "OVERALL BAT"
|
||||
0x41, 0x53, 0x20, 0x2, 0x0, // @214 "AS <>"
|
||||
0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0, // @219 "Inspection"
|
||||
0x50, 0x41, 0x52, 0x41, 0x4d, 0x45, 0x54, 0x45, 0x52, 0x53, 0x0, // @230 "PARAMETERS"
|
||||
0x54, 0x72, 0x61, 0x63, 0x6b, 0x64, 0x72, 0x69, 0x76, 0x65, 0x0, // @241 "Trackdrive"
|
||||
0x41, 0x4d, 0x53, 0x20, 0x45, 0x72, 0x72, 0x4f, 0x72, 0x0, // @252 "AMS ErrOr"
|
||||
0x41, 0x75, 0x74, 0x6f, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x0, // @262 "Autocross"
|
||||
0x50, 0x52, 0x45, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x0, // @272 "PRECHARGE"
|
||||
0x2, 0x25, 0x0, // @282 "<>%"
|
||||
0x2, 0xb0, 0x0, // @285 "<>?"
|
||||
0x42, 0x53, 0x50, 0x44, 0xa, 0x48, 0x56, 0x44, 0x0, // @288 "BSPD\nHVD"
|
||||
0x45, 0x42, 0x53, 0x20, 0x54, 0x65, 0x73, 0x74, 0x0, // @297 "EBS Test"
|
||||
0x41, 0x53, 0x53, 0x54, 0x41, 0x54, 0x45, 0x0, // @306 "ASSTATE"
|
||||
0x44, 0x53, 0x50, 0x45, 0x45, 0x44, 0x3a, 0x0, // @314 "DSPEED:"
|
||||
0x49, 0x43, 0x53, 0x54, 0x41, 0x54, 0x45, 0x0, // @322 "ICSTATE"
|
||||
0x49, 0x4e, 0x56, 0x4c, 0x52, 0x44, 0x59, 0x0, // @330 "INVLRDY"
|
||||
0x49, 0x4e, 0x56, 0x52, 0x52, 0x44, 0x59, 0x0, // @338 "INVRRDY"
|
||||
0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x0, // @346 "MISSION"
|
||||
0x4d, 0x53, 0x50, 0x45, 0x45, 0x44, 0x3a, 0x0, // @354 "MSPEED:"
|
||||
0x52, 0x32, 0x44, 0x50, 0x52, 0x4f, 0x47, 0x0, // @362 "R2DPROG"
|
||||
0x53, 0x6b, 0x69, 0x64, 0x70, 0x61, 0x64, 0x0, // @370 "Skidpad"
|
||||
0x54, 0x53, 0x53, 0x54, 0x41, 0x54, 0x45, 0x0, // @378 "TSSTATE"
|
||||
0x42, 0x52, 0x41, 0x4b, 0x45, 0x53, 0x0, // @386 "BRAKES"
|
||||
0x54, 0x53, 0x56, 0x42, 0x41, 0x54, 0x0, // @393 "TSVBAT"
|
||||
0x54, 0x53, 0x56, 0x56, 0x45, 0x48, 0x0, // @400 "TSVVEH"
|
||||
0xa, 0xa, 0x41, 0x4d, 0x53, 0x0, // @407 "\n\nAMS"
|
||||
0xa, 0xa, 0x49, 0x4d, 0x44, 0x0, // @413 "\n\nIMD"
|
||||
0xa, 0xa, 0x50, 0x44, 0x55, 0x0, // @419 "\n\nPDU"
|
||||
0x41, 0x50, 0x50, 0x53, 0x30, 0x0, // @425 "APPS0"
|
||||
0x41, 0x50, 0x50, 0x53, 0x31, 0x0, // @431 "APPS1"
|
||||
0x44, 0x41, 0x4e, 0x47, 0x3a, 0x0, // @437 "DANG:"
|
||||
0x45, 0x52, 0x52, 0x4f, 0x52, 0x0, // @443 "ERROR"
|
||||
0x4c, 0x56, 0x53, 0x4f, 0x43, 0x0, // @449 "LVSOC"
|
||||
0x4d, 0x41, 0x4e, 0x47, 0x3a, 0x0, // @455 "MANG:"
|
||||
0x50, 0x4f, 0x57, 0x45, 0x52, 0x0, // @461 "POWER"
|
||||
0x53, 0x50, 0x45, 0x45, 0x44, 0x0, // @467 "SPEED"
|
||||
0x54, 0x53, 0x53, 0x4f, 0x43, 0x0, // @473 "TSSOC"
|
||||
0x42, 0x42, 0x41, 0x4c, 0x0, // @479 "BBAL"
|
||||
0x49, 0x4e, 0x49, 0x54, 0x0, // @484 "INIT"
|
||||
0x4c, 0x41, 0x50, 0x53, 0x0, // @489 "LAPS"
|
||||
0x54, 0x4d, 0x41, 0x58, 0x0, // @494 "TMAX"
|
||||
0x54, 0x53, 0x4d, 0x53, 0x0, // @499 "TSMS"
|
||||
0x54, 0x54, 0x46, 0x4c, 0x0, // @504 "TTFL"
|
||||
0x54, 0x54, 0x46, 0x52, 0x0, // @509 "TTFR"
|
||||
0x54, 0x54, 0x52, 0x4c, 0x0, // @514 "TTRL"
|
||||
0x54, 0x54, 0x52, 0x52, 0x0, // @519 "TTRR"
|
||||
0x56, 0x4d, 0x49, 0x4e, 0x0, // @524 "VMIN"
|
||||
0x41, 0x43, 0x43, 0x0, // @529 "ACC"
|
||||
0x43, 0x55, 0x52, 0x0, // @533 "CUR"
|
||||
0x49, 0x4e, 0x56, 0x0, // @537 "INV"
|
||||
0x49, 0x54, 0x53, 0x0, // @541 "ITS"
|
||||
0x52, 0x32, 0x44, 0x0, // @545 "R2D"
|
||||
0x53, 0x43, 0x53, 0x0, // @549 "SCS"
|
||||
0x53, 0x44, 0x43, 0x0, // @553 "SDC"
|
||||
0x4c, 0x56, 0x0 // @557 "LV"
|
||||
};
|
||||
|
||||
TEXT_LOCATION_FLASH_PRAGMA
|
||||
|
|
|
@ -84,6 +84,19 @@ 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 },
|
||||
{ 6, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
|
||||
{ 6, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
|
||||
{ 6, touchgfx::LEFT, 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 },
|
||||
{ 6, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
|
||||
{ 6, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
|
||||
{ 6, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
|
||||
{ 2, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
|
||||
{ 7, touchgfx::RIGHT, touchgfx::TEXT_DIRECTION_LTR },
|
||||
{ 1, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
|
||||
{ 1, touchgfx::RIGHT, touchgfx::TEXT_DIRECTION_LTR },
|
||||
{ 1, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
|
||||
{ 1, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
|
||||
|
@ -190,6 +203,19 @@ 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 },
|
||||
{ 6, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
|
||||
{ 6, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
|
||||
{ 6, touchgfx::LEFT, 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 },
|
||||
{ 6, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
|
||||
{ 6, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
|
||||
{ 6, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
|
||||
{ 2, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
|
||||
{ 7, touchgfx::RIGHT, touchgfx::TEXT_DIRECTION_LTR },
|
||||
{ 1, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
|
||||
{ 1, touchgfx::RIGHT, touchgfx::TEXT_DIRECTION_LTR },
|
||||
{ 1, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
|
||||
{ 1, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
|
||||
|
|
|
@ -0,0 +1,40 @@
|
|||
#ifndef APPSPRESENTER_HPP
|
||||
#define APPSPRESENTER_HPP
|
||||
|
||||
#include <gui/model/ModelListener.hpp>
|
||||
#include <mvp/Presenter.hpp>
|
||||
|
||||
using namespace touchgfx;
|
||||
|
||||
class APPSView;
|
||||
|
||||
class APPSPresenter : public touchgfx::Presenter, public ModelListener {
|
||||
public:
|
||||
APPSPresenter(APPSView &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 ~APPSPresenter() {}
|
||||
|
||||
void nextScreen() override;
|
||||
void vehicleStateUpdated() override;
|
||||
void paramConfirmed() override;
|
||||
|
||||
private:
|
||||
APPSPresenter();
|
||||
|
||||
APPSView &view;
|
||||
};
|
||||
|
||||
#endif // APPSPRESENTER_HPP
|
|
@ -0,0 +1,45 @@
|
|||
#ifndef APPSVIEW_HPP
|
||||
#define APPSVIEW_HPP
|
||||
|
||||
#include "params.h"
|
||||
#include <gui/apps_screen/APPSPresenter.hpp>
|
||||
#include <gui_generated/apps_screen/APPSViewBase.hpp>
|
||||
|
||||
class APPSView : public APPSViewBase {
|
||||
public:
|
||||
static constexpr int FIELD_COUNT = 4;
|
||||
|
||||
APPSView();
|
||||
virtual ~APPSView() {}
|
||||
virtual void setupScreen();
|
||||
virtual void tearDownScreen();
|
||||
|
||||
void selectPrevField() override;
|
||||
void selectNextField() override;
|
||||
void decField() override;
|
||||
void incField() override;
|
||||
void confirmField() override;
|
||||
void switchPrecision() override;
|
||||
|
||||
void abxParamConfirmed(ParamType param);
|
||||
|
||||
void updateFieldValues();
|
||||
|
||||
void addGraphPoints(float apps0, float apps1);
|
||||
|
||||
protected:
|
||||
private:
|
||||
int selectedField;
|
||||
float precision = 0.001f;
|
||||
|
||||
bool fieldsDirty[FIELD_COUNT] = {false};
|
||||
ParamType fieldParams[FIELD_COUNT] = {PF_APPS0_MIN, PF_APPS0_MAX,
|
||||
PF_APPS1_MIN, PF_APPS1_MAX};
|
||||
touchgfx::TextAreaWithOneWildcard *fieldWidgets[FIELD_COUNT] = {nullptr};
|
||||
touchgfx::Box *fieldBackgrounds[FIELD_COUNT] = {nullptr};
|
||||
touchgfx::Unicode::UnicodeChar fieldBuffers[FIELD_COUNT][16];
|
||||
touchgfx::Unicode::UnicodeChar apps0Buffer[16];
|
||||
touchgfx::Unicode::UnicodeChar apps1Buffer[16];
|
||||
};
|
||||
|
||||
#endif // APPSVIEW_HPP
|
|
@ -0,0 +1,28 @@
|
|||
#include "stm32h7xx_hal.h"
|
||||
|
||||
#include <gui/apps_screen/APPSPresenter.hpp>
|
||||
#include <gui/apps_screen/APPSView.hpp>
|
||||
|
||||
APPSPresenter::APPSPresenter(APPSView &v) : view(v) {}
|
||||
|
||||
void APPSPresenter::activate() {}
|
||||
|
||||
void APPSPresenter::deactivate() {}
|
||||
|
||||
void APPSPresenter::nextScreen() {
|
||||
static_cast<FrontendApplication *>(Application::getInstance())
|
||||
->gotoSDCScreenNoTransition();
|
||||
}
|
||||
|
||||
void APPSPresenter::vehicleStateUpdated() {
|
||||
static uint32_t last_graph_update = 0;
|
||||
view.updateFieldValues();
|
||||
if (HAL_GetTick() - last_graph_update > 100) {
|
||||
view.addGraphPoints(vehicle_state.apps0_out, vehicle_state.apps1_out);
|
||||
last_graph_update = HAL_GetTick();
|
||||
}
|
||||
}
|
||||
|
||||
void APPSPresenter::paramConfirmed() {
|
||||
view.abxParamConfirmed(vehicle_state.last_param_confirmed);
|
||||
}
|
|
@ -0,0 +1,137 @@
|
|||
#include "params.h"
|
||||
#include "touchgfx/Color.hpp"
|
||||
#include "vehicle_state.h"
|
||||
#include <gui/apps_screen/APPSView.hpp>
|
||||
|
||||
APPSView::APPSView() : selectedField{-1} {
|
||||
for (size_t i = 0; i < FIELD_COUNT; i++) {
|
||||
fieldsDirty[i] = false;
|
||||
}
|
||||
fieldWidgets[0] = &apps0min;
|
||||
fieldWidgets[1] = &apps0max;
|
||||
fieldWidgets[2] = &apps1min;
|
||||
fieldWidgets[3] = &apps1max;
|
||||
fieldBackgrounds[0] = &apps0min_bg;
|
||||
fieldBackgrounds[1] = &apps0max_bg;
|
||||
fieldBackgrounds[2] = &apps1min_bg;
|
||||
fieldBackgrounds[3] = &apps1max_bg;
|
||||
params.apps0_min = vehicle_state.apps0_min;
|
||||
params.apps0_max = vehicle_state.apps0_max;
|
||||
params.apps1_min = vehicle_state.apps1_min;
|
||||
params.apps1_max = vehicle_state.apps1_max;
|
||||
}
|
||||
|
||||
void APPSView::setupScreen() { APPSViewBase::setupScreen(); }
|
||||
|
||||
void APPSView::tearDownScreen() { APPSViewBase::tearDownScreen(); }
|
||||
|
||||
void APPSView::selectPrevField() {
|
||||
if (selectedField != -1) {
|
||||
fieldBackgrounds[selectedField]->setVisible(false);
|
||||
fieldBackgrounds[selectedField]->invalidate();
|
||||
}
|
||||
|
||||
if (selectedField == -1) {
|
||||
selectedField = FIELD_COUNT - 1;
|
||||
} else {
|
||||
selectedField = (selectedField - 1) % FIELD_COUNT;
|
||||
}
|
||||
|
||||
fieldBackgrounds[selectedField]->setVisible(true);
|
||||
fieldBackgrounds[selectedField]->invalidate();
|
||||
}
|
||||
|
||||
void APPSView::selectNextField() {
|
||||
if (selectedField != -1) {
|
||||
fieldBackgrounds[selectedField]->setVisible(false);
|
||||
fieldBackgrounds[selectedField]->invalidate();
|
||||
}
|
||||
|
||||
selectedField = (selectedField + 1) % FIELD_COUNT;
|
||||
|
||||
fieldBackgrounds[selectedField]->setVisible(true);
|
||||
fieldBackgrounds[selectedField]->invalidate();
|
||||
}
|
||||
|
||||
void APPSView::decField() {
|
||||
if (selectedField == -1) {
|
||||
return;
|
||||
}
|
||||
fieldsDirty[selectedField] = true;
|
||||
params_dec(fieldParams[selectedField]);
|
||||
}
|
||||
|
||||
void APPSView::incField() {
|
||||
if (selectedField == -1) {
|
||||
return;
|
||||
}
|
||||
fieldsDirty[selectedField] = true;
|
||||
params_inc(fieldParams[selectedField]);
|
||||
}
|
||||
|
||||
void APPSView::confirmField() {
|
||||
if (selectedField == -1) {
|
||||
return;
|
||||
}
|
||||
params_broadcast(fieldParams[selectedField]);
|
||||
}
|
||||
|
||||
void APPSView::switchPrecision() {
|
||||
if (precision == 0.001f) {
|
||||
precision = 0.01f;
|
||||
} else {
|
||||
precision = 0.001f;
|
||||
}
|
||||
for (ParamType ¶m : fieldParams) {
|
||||
param_steps[param] = precision;
|
||||
}
|
||||
}
|
||||
|
||||
void APPSView::abxParamConfirmed(ParamType param) {
|
||||
for (size_t i = 0; i < FIELD_COUNT; i++) {
|
||||
if (fieldParams[i] == param) {
|
||||
fieldsDirty[i] = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void APPSView::updateFieldValues() {
|
||||
float values[FIELD_COUNT];
|
||||
values[0] = vehicle_state.apps0_min;
|
||||
values[1] = vehicle_state.apps0_max;
|
||||
values[2] = vehicle_state.apps1_min;
|
||||
values[3] = vehicle_state.apps1_max;
|
||||
for (size_t i = 0; i < FIELD_COUNT; i++) {
|
||||
auto &buf = fieldBuffers[i];
|
||||
if (fieldsDirty[i]) {
|
||||
values[i] = params.valuesFloat[fieldParams[i]];
|
||||
fieldWidgets[i]->setColor(
|
||||
touchgfx::Color::getColorFromRGB(0xff, 0x00, 0x00));
|
||||
} else {
|
||||
fieldWidgets[i]->setColor(
|
||||
touchgfx::Color::getColorFromRGB(0xff, 0xff, 0xff));
|
||||
}
|
||||
touchgfx::Unicode::snprintfFloat(buf, sizeof(buf) / sizeof(*buf), "%5.3f",
|
||||
values[i]);
|
||||
fieldWidgets[i]->setWildcard(buf);
|
||||
fieldWidgets[i]->invalidate();
|
||||
}
|
||||
|
||||
touchgfx::Unicode::snprintfFloat(apps0Buffer,
|
||||
sizeof(apps0Buffer) / sizeof(*apps0Buffer),
|
||||
"%5.3f", vehicle_state.apps0_volt);
|
||||
apps0cur.setWildcard(apps0Buffer);
|
||||
apps0cur.invalidate();
|
||||
touchgfx::Unicode::snprintfFloat(apps1Buffer,
|
||||
sizeof(apps1Buffer) / sizeof(*apps1Buffer),
|
||||
"%5.3f", vehicle_state.apps1_volt);
|
||||
apps1cur.setWildcard(apps1Buffer);
|
||||
apps1cur.invalidate();
|
||||
}
|
||||
|
||||
void APPSView::addGraphPoints(float apps0, float apps1) {
|
||||
apps0Graph.addDataPoint(apps0 * 100);
|
||||
apps1Graph.addDataPoint(apps1 * 100);
|
||||
apps0Graph.invalidate();
|
||||
apps1Graph.invalidate();
|
||||
}
|
|
@ -275,13 +275,30 @@ static_assert(sizeof(dataFieldDescs) / sizeof(dataFieldDescs[0]) ==
|
|||
|
||||
NamedFieldDescription paramFieldDescs[] = {
|
||||
[PF_BBAL] = {NamedFieldKind::Float, "BBAL", 2, 1, PARAM_FIELD(bbal)},
|
||||
[PF_SLIPREF] = {NamedFieldKind::Float, "SLIPREF", 2, 2,
|
||||
PARAM_FIELD(slipref)},
|
||||
[PF_MUMAX] = {NamedFieldKind::Float, "MUMAX", 2, 1, PARAM_FIELD(mumax)},
|
||||
[PF_ASRP] = {NamedFieldKind::Int, "ASR-P", 2, 0, PARAM_FIELD(asrp)},
|
||||
[PF_ASRON] = {NamedFieldKind::Int, "ASR-ON", 2, 0, PARAM_FIELD(asron)},
|
||||
[PF_ASRI] = {NamedFieldKind::Int, "ASR-I", 2, 0, PARAM_FIELD(asri)},
|
||||
[PF_PLIM] = {NamedFieldKind::Int, "PLIM", 2, 0, PARAM_FIELD(plim)},
|
||||
[PF_TORQUE] = {NamedFieldKind::Float, "TSCALE", 3, 1, PARAM_FIELD(torque)},
|
||||
[PF_SLIM] = {NamedFieldKind::Int, "SLIM", 2, 0, PARAM_FIELD(slim)},
|
||||
[PF_APPS0_MIN] = {NamedFieldKind::Float, "APPS0MIN", 3, 1,
|
||||
PARAM_FIELD(apps0_min)},
|
||||
[PF_APPS0_MAX] = {NamedFieldKind::Float, "APPS0MAX", 3, 1,
|
||||
PARAM_FIELD(apps0_max)},
|
||||
[PF_APPS1_MIN] = {NamedFieldKind::Float, "APPS1MIN", 3, 1,
|
||||
PARAM_FIELD(apps1_min)},
|
||||
[PF_APPS1_MAX] = {NamedFieldKind::Float, "APPS1MAX", 3, 1,
|
||||
PARAM_FIELD(apps1_max)},
|
||||
[PF_TV] = {NamedFieldKind::Int, "TV", 3, 0, PARAM_FIELD(tv)},
|
||||
[PF_TC] = {NamedFieldKind::Int, "TC", 3, 0, PARAM_FIELD(tc)},
|
||||
[PF_TC_SLIPREF] = {NamedFieldKind::Float, "TCSLIPREF", 3, 1,
|
||||
PARAM_FIELD(tc_slipref)},
|
||||
[PF_TC_MUMAX] = {NamedFieldKind::Float, "TCMUMAX", 3, 1,
|
||||
PARAM_FIELD(tc_mumax)},
|
||||
[PF_TC_P] = {NamedFieldKind::Float, "TCP", 3, 1, PARAM_FIELD(tc_p)},
|
||||
[PF_TC_I] = {NamedFieldKind::Float, "TCI", 3, 1, PARAM_FIELD(tc_i)},
|
||||
[PF_DRS_CLOSED] = {NamedFieldKind::Float, "DRSCLOSED", 3, 1,
|
||||
PARAM_FIELD(drs_closed)},
|
||||
[PF_DRS_OPEN] = {NamedFieldKind::Float, "DRSOPEN", 3, 1,
|
||||
PARAM_FIELD(drs_open)},
|
||||
[PF_MAP] = {NamedFieldKind::Int, "MAP", 3, 0, PARAM_FIELD(map)},
|
||||
};
|
||||
|
||||
static_assert(sizeof(paramFieldDescs) / sizeof(paramFieldDescs[0]) ==
|
||||
|
|
|
@ -11,7 +11,7 @@ void VehicleConfigPresenter::deactivate() {}
|
|||
|
||||
void VehicleConfigPresenter::nextScreen() {
|
||||
static_cast<FrontendApplication *>(Application::getInstance())
|
||||
->gotoSDCScreenNoTransition();
|
||||
->gotoAPPSScreenNoTransition();
|
||||
}
|
||||
|
||||
void VehicleConfigPresenter::paramConfirmed() {
|
||||
|
|
|
@ -216,6 +216,18 @@
|
|||
"ScreenTransitionType": "ScreenTransitionNone",
|
||||
"ActionComponent": "Endurance"
|
||||
}
|
||||
},
|
||||
{
|
||||
"InteractionName": "DummyChangeAPPSView",
|
||||
"Trigger": {
|
||||
"Type": "TriggerPhysicalButtonClicked",
|
||||
"ButtonKey": 248
|
||||
},
|
||||
"Action": {
|
||||
"Type": "ActionGotoScreen",
|
||||
"ScreenTransitionType": "ScreenTransitionNone",
|
||||
"ActionComponent": "APPS"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -1650,7 +1662,7 @@
|
|||
"X": 27,
|
||||
"Y": 2,
|
||||
"Width": 99,
|
||||
"Height": 25,
|
||||
"Height": 24,
|
||||
"TextId": "__SingleUse_QAZ3",
|
||||
"TextRotation": "0",
|
||||
"Color": {
|
||||
|
@ -1666,7 +1678,7 @@
|
|||
"X": 329,
|
||||
"Y": 2,
|
||||
"Width": 102,
|
||||
"Height": 25,
|
||||
"Height": 24,
|
||||
"TextId": "__SingleUse_1F9T",
|
||||
"TextRotation": "0",
|
||||
"Color": {
|
||||
|
@ -1821,7 +1833,7 @@
|
|||
"X": 8,
|
||||
"Y": 7,
|
||||
"Width": 203,
|
||||
"Height": 25,
|
||||
"Height": 24,
|
||||
"TextId": "__SingleUse_5W6Y",
|
||||
"TextRotation": "0",
|
||||
"Color": {
|
||||
|
@ -1905,6 +1917,414 @@
|
|||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Name": "APPS",
|
||||
"CanvasBufferSize": 7200,
|
||||
"Components": [
|
||||
{
|
||||
"Type": "DynamicGraph",
|
||||
"Name": "apps0Graph",
|
||||
"X": 11,
|
||||
"Y": 36,
|
||||
"Width": 458,
|
||||
"Height": 180,
|
||||
"DataSeed": -1468026350,
|
||||
"NumberOfValues": 50,
|
||||
"MaxY": 110.0,
|
||||
"MinY": -10.0,
|
||||
"Precision": "0.1",
|
||||
"LastIndex": 49,
|
||||
"XAxisScale": 1.0,
|
||||
"LabelSizeLeft": 40,
|
||||
"GraphType": "GraphWrapOverwrite",
|
||||
"VerticalFrontline": {
|
||||
"Type": "GraphVerticalFrontline",
|
||||
"Color": {
|
||||
"Red": 137,
|
||||
"Green": 224,
|
||||
"Blue": 13
|
||||
},
|
||||
"GapLineWidth": 1
|
||||
},
|
||||
"GraphDrawers": [
|
||||
{
|
||||
"Type": "LineDrawer",
|
||||
"LineWidth": 2,
|
||||
"FileNameImage": "",
|
||||
"Color": {
|
||||
"Red": 20,
|
||||
"Green": 151,
|
||||
"Blue": 197
|
||||
}
|
||||
}
|
||||
],
|
||||
"YAxisGrid": {
|
||||
"Type": "GraphGrid",
|
||||
"Color": {
|
||||
"Red": 255,
|
||||
"Green": 255,
|
||||
"Blue": 255
|
||||
},
|
||||
"Interval": 20.0,
|
||||
"LineWidth": 1
|
||||
},
|
||||
"YAxisLabel": {
|
||||
"Type": "GraphLabel",
|
||||
"Interval": 20.0,
|
||||
"DecimalSeparator": "Point",
|
||||
"TextColor": {
|
||||
"Red": 255,
|
||||
"Green": 255,
|
||||
"Blue": 255
|
||||
},
|
||||
"TextId": "__SingleUse_RK9Z",
|
||||
"TextRotation": "0",
|
||||
"Position": "Left"
|
||||
}
|
||||
},
|
||||
{
|
||||
"Type": "DynamicGraph",
|
||||
"Name": "apps1Graph",
|
||||
"X": 11,
|
||||
"Y": 36,
|
||||
"Width": 458,
|
||||
"Height": 180,
|
||||
"DataSeed": 484013386,
|
||||
"NumberOfValues": 50,
|
||||
"MaxY": 110.0,
|
||||
"MinY": -10.0,
|
||||
"Precision": "0.1",
|
||||
"LastIndex": 49,
|
||||
"XAxisScale": 1.0,
|
||||
"PaddingLeft": 40,
|
||||
"GraphType": "GraphWrapOverwrite",
|
||||
"GraphDrawers": [
|
||||
{
|
||||
"Type": "LineDrawer",
|
||||
"LineWidth": 2,
|
||||
"FileNameImage": "",
|
||||
"Color": {
|
||||
"Red": 196,
|
||||
"Green": 109,
|
||||
"Blue": 22
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"Type": "TextArea",
|
||||
"Name": "title",
|
||||
"X": 38,
|
||||
"Width": 405,
|
||||
"Height": 30,
|
||||
"TextId": "__SingleUse_UBFH",
|
||||
"TextRotation": "0",
|
||||
"Color": {
|
||||
"Red": 255,
|
||||
"Green": 255,
|
||||
"Blue": 255
|
||||
},
|
||||
"AutoSize": true
|
||||
},
|
||||
{
|
||||
"Type": "TextArea",
|
||||
"Name": "apps0",
|
||||
"X": 11,
|
||||
"Y": 247,
|
||||
"Width": 100,
|
||||
"Height": 24,
|
||||
"TextId": "__SingleUse_6EKV",
|
||||
"TextRotation": "0",
|
||||
"Color": {
|
||||
"Red": 20,
|
||||
"Green": 151,
|
||||
"Blue": 197
|
||||
},
|
||||
"AutoSize": true
|
||||
},
|
||||
{
|
||||
"Type": "TextArea",
|
||||
"Name": "apps1",
|
||||
"X": 11,
|
||||
"Y": 285,
|
||||
"Width": 100,
|
||||
"Height": 24,
|
||||
"TextId": "__SingleUse_W4YT",
|
||||
"TextRotation": "0",
|
||||
"Color": {
|
||||
"Red": 196,
|
||||
"Green": 109,
|
||||
"Blue": 22
|
||||
},
|
||||
"AutoSize": true
|
||||
},
|
||||
{
|
||||
"Type": "TextArea",
|
||||
"Name": "min",
|
||||
"X": 127,
|
||||
"Y": 216,
|
||||
"Width": 100,
|
||||
"Height": 24,
|
||||
"TextId": "__SingleUse_QXG5",
|
||||
"TextRotation": "0",
|
||||
"Color": {
|
||||
"Red": 255,
|
||||
"Green": 255,
|
||||
"Blue": 255
|
||||
}
|
||||
},
|
||||
{
|
||||
"Type": "TextArea",
|
||||
"Name": "max",
|
||||
"X": 250,
|
||||
"Y": 216,
|
||||
"Width": 100,
|
||||
"Height": 24,
|
||||
"TextId": "__SingleUse_WQXQ",
|
||||
"TextRotation": "0",
|
||||
"Color": {
|
||||
"Red": 255,
|
||||
"Green": 255,
|
||||
"Blue": 255
|
||||
}
|
||||
},
|
||||
{
|
||||
"Type": "TextArea",
|
||||
"Name": "cur",
|
||||
"X": 369,
|
||||
"Y": 216,
|
||||
"Width": 100,
|
||||
"Height": 24,
|
||||
"TextId": "__SingleUse_CBZ9",
|
||||
"TextRotation": "0",
|
||||
"Color": {
|
||||
"Red": 255,
|
||||
"Green": 255,
|
||||
"Blue": 255
|
||||
}
|
||||
},
|
||||
{
|
||||
"Type": "Box",
|
||||
"Name": "apps1max_bg",
|
||||
"X": 250,
|
||||
"Y": 278,
|
||||
"Width": 100,
|
||||
"Height": 38,
|
||||
"Visible": false,
|
||||
"Color": {
|
||||
"Red": 68,
|
||||
"Green": 68,
|
||||
"Blue": 68
|
||||
}
|
||||
},
|
||||
{
|
||||
"Type": "Box",
|
||||
"Name": "apps0max_bg",
|
||||
"X": 250,
|
||||
"Y": 240,
|
||||
"Width": 100,
|
||||
"Height": 38,
|
||||
"Visible": false,
|
||||
"Color": {
|
||||
"Red": 68,
|
||||
"Green": 68,
|
||||
"Blue": 68
|
||||
}
|
||||
},
|
||||
{
|
||||
"Type": "Box",
|
||||
"Name": "apps1min_bg",
|
||||
"X": 127,
|
||||
"Y": 278,
|
||||
"Width": 100,
|
||||
"Height": 38,
|
||||
"Visible": false,
|
||||
"Color": {
|
||||
"Red": 68,
|
||||
"Green": 68,
|
||||
"Blue": 68
|
||||
}
|
||||
},
|
||||
{
|
||||
"Type": "Box",
|
||||
"Name": "apps0min_bg",
|
||||
"X": 127,
|
||||
"Y": 240,
|
||||
"Width": 100,
|
||||
"Height": 38,
|
||||
"Visible": false,
|
||||
"Color": {
|
||||
"Red": 68,
|
||||
"Green": 68,
|
||||
"Blue": 68
|
||||
}
|
||||
},
|
||||
{
|
||||
"Type": "TextArea",
|
||||
"Name": "apps1cur",
|
||||
"X": 369,
|
||||
"Y": 278,
|
||||
"Width": 100,
|
||||
"Height": 38,
|
||||
"TextId": "__SingleUse_SM6H",
|
||||
"TextRotation": "0",
|
||||
"Color": {
|
||||
"Red": 255,
|
||||
"Green": 255,
|
||||
"Blue": 255
|
||||
},
|
||||
"Wildcard1": {}
|
||||
},
|
||||
{
|
||||
"Type": "TextArea",
|
||||
"Name": "apps0cur",
|
||||
"X": 369,
|
||||
"Y": 240,
|
||||
"Width": 100,
|
||||
"Height": 38,
|
||||
"TextId": "__SingleUse_8KB4",
|
||||
"TextRotation": "0",
|
||||
"Color": {
|
||||
"Red": 255,
|
||||
"Green": 255,
|
||||
"Blue": 255
|
||||
},
|
||||
"Wildcard1": {}
|
||||
},
|
||||
{
|
||||
"Type": "TextArea",
|
||||
"Name": "apps1max",
|
||||
"X": 250,
|
||||
"Y": 278,
|
||||
"Width": 100,
|
||||
"Height": 38,
|
||||
"TextId": "__SingleUse_H8OI",
|
||||
"TextRotation": "0",
|
||||
"Color": {
|
||||
"Red": 255,
|
||||
"Green": 255,
|
||||
"Blue": 255
|
||||
},
|
||||
"Wildcard1": {}
|
||||
},
|
||||
{
|
||||
"Type": "TextArea",
|
||||
"Name": "apps0max",
|
||||
"X": 250,
|
||||
"Y": 240,
|
||||
"Width": 100,
|
||||
"Height": 38,
|
||||
"TextId": "__SingleUse_978V",
|
||||
"TextRotation": "0",
|
||||
"Color": {
|
||||
"Red": 255,
|
||||
"Green": 255,
|
||||
"Blue": 255
|
||||
},
|
||||
"Wildcard1": {}
|
||||
},
|
||||
{
|
||||
"Type": "TextArea",
|
||||
"Name": "apps1min",
|
||||
"X": 127,
|
||||
"Y": 278,
|
||||
"Width": 100,
|
||||
"Height": 38,
|
||||
"TextId": "__SingleUse_P4TL",
|
||||
"TextRotation": "0",
|
||||
"Color": {
|
||||
"Red": 255,
|
||||
"Green": 255,
|
||||
"Blue": 255
|
||||
},
|
||||
"Wildcard1": {}
|
||||
},
|
||||
{
|
||||
"Type": "TextArea",
|
||||
"Name": "apps0min",
|
||||
"X": 127,
|
||||
"Y": 240,
|
||||
"Width": 100,
|
||||
"Height": 38,
|
||||
"TextId": "__SingleUse_MBQT",
|
||||
"TextRotation": "0",
|
||||
"Color": {
|
||||
"Red": 255,
|
||||
"Green": 255,
|
||||
"Blue": 255
|
||||
},
|
||||
"Wildcard1": {}
|
||||
}
|
||||
],
|
||||
"Interactions": [
|
||||
{
|
||||
"InteractionName": "SelectPrevField",
|
||||
"Trigger": {
|
||||
"Type": "TriggerPhysicalButtonClicked",
|
||||
"ButtonKey": 104
|
||||
},
|
||||
"Action": {
|
||||
"Type": "ActionCustom",
|
||||
"FunctionName": "selectPrevField"
|
||||
}
|
||||
},
|
||||
{
|
||||
"InteractionName": "SelectNextField",
|
||||
"Trigger": {
|
||||
"Type": "TriggerPhysicalButtonClicked",
|
||||
"ButtonKey": 108
|
||||
},
|
||||
"Action": {
|
||||
"Type": "ActionCustom",
|
||||
"FunctionName": "selectNextField"
|
||||
}
|
||||
},
|
||||
{
|
||||
"InteractionName": "DecField",
|
||||
"Trigger": {
|
||||
"Type": "TriggerPhysicalButtonClicked",
|
||||
"ButtonKey": 107
|
||||
},
|
||||
"Action": {
|
||||
"Type": "ActionCustom",
|
||||
"FunctionName": "decField"
|
||||
}
|
||||
},
|
||||
{
|
||||
"InteractionName": "IncField",
|
||||
"Trigger": {
|
||||
"Type": "TriggerPhysicalButtonClicked",
|
||||
"ButtonKey": 106
|
||||
},
|
||||
"Action": {
|
||||
"Type": "ActionCustom",
|
||||
"FunctionName": "incField"
|
||||
}
|
||||
},
|
||||
{
|
||||
"InteractionName": "ConfirmField",
|
||||
"Trigger": {
|
||||
"Type": "TriggerPhysicalButtonClicked",
|
||||
"ButtonKey": 54
|
||||
},
|
||||
"Action": {
|
||||
"Type": "ActionCustom",
|
||||
"FunctionName": "confirmField"
|
||||
}
|
||||
},
|
||||
{
|
||||
"InteractionName": "SwitchPrecision",
|
||||
"Trigger": {
|
||||
"Type": "TriggerPhysicalButtonClicked",
|
||||
"ButtonKey": 53
|
||||
},
|
||||
"Action": {
|
||||
"Type": "ActionCustom",
|
||||
"FunctionName": "switchPrecision"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"CustomContainerDefinitions": [
|
||||
|
|
Loading…
Reference in New Issue