diff --git a/Core/Inc/params.h b/Core/Inc/params.h index a3050e6..c73fe86 100644 --- a/Core/Inc/params.h +++ b/Core/Inc/params.h @@ -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); diff --git a/Core/Inc/vehicle_state.h b/Core/Inc/vehicle_state.h index 6389e17..6b3e864 100644 --- a/Core/Inc/vehicle_state.h +++ b/Core/Inc/vehicle_state.h @@ -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; diff --git a/Core/Src/params.c b/Core/Src/params.c index 8f8cdeb..47540ea 100644 --- a/Core/Src/params.c +++ b/Core/Src/params.c @@ -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); } diff --git a/Core/Src/vehicle.c b/Core/Src/vehicle.c index 13f78f6..ebca8cf 100644 --- a/Core/Src/vehicle.c +++ b/Core/Src/vehicle.c @@ -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; diff --git a/TouchGFX/assets/texts/texts.xml b/TouchGFX/assets/texts/texts.xml index ebf7234..cb00d6c 100644 --- a/TouchGFX/assets/texts/texts.xml +++ b/TouchGFX/assets/texts/texts.xml @@ -171,6 +171,45 @@ + + APPS1 + + + <value> + + + <value> + + + <value> + + + CUR + + + MAX + + + MIN + + + <value> + + + <value> + + + <value> + + + APPS0 + + + <> + + + APPS CALIBRATION + <value> @@ -334,7 +373,7 @@ - + diff --git a/TouchGFX/generated/gui_generated/include/gui_generated/apps_screen/APPSViewBase.hpp b/TouchGFX/generated/gui_generated/include/gui_generated/apps_screen/APPSViewBase.hpp new file mode 100644 index 0000000..ef70be9 --- /dev/null +++ b/TouchGFX/generated/gui_generated/include/gui_generated/apps_screen/APPSViewBase.hpp @@ -0,0 +1,99 @@ +/*********************************************************************************/ +/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/ +/*********************************************************************************/ +#ifndef APPSVIEWBASE_HPP +#define APPSVIEWBASE_HPP + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +class APPSViewBase : public touchgfx::View +{ +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(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 diff --git a/TouchGFX/generated/gui_generated/include/gui_generated/common/FrontendApplicationBase.hpp b/TouchGFX/generated/gui_generated/include/gui_generated/common/FrontendApplicationBase.hpp index 7efec65..dd8aea6 100644 --- a/TouchGFX/generated/gui_generated/include/gui_generated/common/FrontendApplicationBase.hpp +++ b/TouchGFX/generated/gui_generated/include/gui_generated/common/FrontendApplicationBase.hpp @@ -41,6 +41,9 @@ public: // Endurance void gotoEnduranceScreenNoTransition(); + // APPS + void gotoAPPSScreenNoTransition(); + protected: touchgfx::Callback transitionCallback; FrontendHeap& frontendHeap; @@ -66,6 +69,9 @@ protected: // Endurance void gotoEnduranceScreenNoTransitionImpl(); + + // APPS + void gotoAPPSScreenNoTransitionImpl(); }; #endif // FRONTENDAPPLICATIONBASE_HPP diff --git a/TouchGFX/generated/gui_generated/include/gui_generated/common/FrontendHeapBase.hpp b/TouchGFX/generated/gui_generated/include/gui_generated/common/FrontendHeapBase.hpp index 27b550c..9cda434 100644 --- a/TouchGFX/generated/gui_generated/include/gui_generated/common/FrontendHeapBase.hpp +++ b/TouchGFX/generated/gui_generated/include/gui_generated/common/FrontendHeapBase.hpp @@ -26,6 +26,8 @@ #include #include #include +#include +#include /** @@ -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; /** diff --git a/TouchGFX/generated/gui_generated/src/apps_screen/APPSViewBase.cpp b/TouchGFX/generated/gui_generated/src/apps_screen/APPSViewBase.cpp new file mode 100644 index 0000000..47571b4 --- /dev/null +++ b/TouchGFX/generated/gui_generated/src/apps_screen/APPSViewBase.cpp @@ -0,0 +1,216 @@ +/*********************************************************************************/ +/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/ +/*********************************************************************************/ +#include +#include +#include +#include + +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(); + + } +} diff --git a/TouchGFX/generated/gui_generated/src/common/FrontendApplicationBase.cpp b/TouchGFX/generated/gui_generated/src/common/FrontendApplicationBase.cpp index c3f1b51..7e7494c 100644 --- a/TouchGFX/generated/gui_generated/src/common/FrontendApplicationBase.cpp +++ b/TouchGFX/generated/gui_generated/src/common/FrontendApplicationBase.cpp @@ -23,6 +23,8 @@ #include #include #include +#include +#include using namespace touchgfx; @@ -132,3 +134,16 @@ void FrontendApplicationBase::gotoEnduranceScreenNoTransitionImpl() { touchgfx::makeTransition(¤tScreen, ¤tPresenter, frontendHeap, ¤tTransition, &model); } + +// APPS + +void FrontendApplicationBase::gotoAPPSScreenNoTransition() +{ + transitionCallback = touchgfx::Callback(this, &FrontendApplicationBase::gotoAPPSScreenNoTransitionImpl); + pendingScreenTransitionCallback = &transitionCallback; +} + +void FrontendApplicationBase::gotoAPPSScreenNoTransitionImpl() +{ + touchgfx::makeTransition(¤tScreen, ¤tPresenter, frontendHeap, ¤tTransition, &model); +} diff --git a/TouchGFX/generated/gui_generated/src/missionselect_screen/MissionSelectViewBase.cpp b/TouchGFX/generated/gui_generated/src/missionselect_screen/MissionSelectViewBase.cpp index 1909237..45a9fe3 100644 --- a/TouchGFX/generated/gui_generated/src/missionselect_screen/MissionSelectViewBase.cpp +++ b/TouchGFX/generated/gui_generated/src/missionselect_screen/MissionSelectViewBase.cpp @@ -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(); + + } } diff --git a/TouchGFX/generated/texts/cache/LanguageCpp_Gb.cache b/TouchGFX/generated/texts/cache/LanguageCpp_Gb.cache index b1022e1..c549590 100644 --- a/TouchGFX/generated/texts/cache/LanguageCpp_Gb.cache +++ b/TouchGFX/generated/texts/cache/LanguageCpp_Gb.cache @@ -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"]]} \ No newline at end of file +{"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"]]} \ No newline at end of file diff --git a/TouchGFX/generated/texts/cache/TextKeysAndLanguages.cache b/TouchGFX/generated/texts/cache/TextKeysAndLanguages.cache index b4283bf..23ae87d 100644 --- a/TouchGFX/generated/texts/cache/TextKeysAndLanguages.cache +++ b/TouchGFX/generated/texts/cache/TextKeysAndLanguages.cache @@ -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"]} \ No newline at end of file +{"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"]} \ No newline at end of file diff --git a/TouchGFX/generated/texts/cache/TextsCpp.cache b/TouchGFX/generated/texts/cache/TextsCpp.cache index bd7cf2a..7e70a3d 100644 --- a/TouchGFX/generated/texts/cache/TextsCpp.cache +++ b/TouchGFX/generated/texts/cache/TextsCpp.cache @@ -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]} \ No newline at end of file +{"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]} \ No newline at end of file diff --git a/TouchGFX/generated/texts/cache/TypedTextDatabaseCpp.cache b/TouchGFX/generated/texts/cache/TypedTextDatabaseCpp.cache index 91c7a22..d5dcba0 100644 --- a/TouchGFX/generated/texts/cache/TypedTextDatabaseCpp.cache +++ b/TouchGFX/generated/texts/cache/TypedTextDatabaseCpp.cache @@ -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"} \ No newline at end of file +{"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"} \ No newline at end of file diff --git a/TouchGFX/generated/texts/include/texts/TextKeysAndLanguages.hpp b/TouchGFX/generated/texts/include/texts/TextKeysAndLanguages.hpp index 8511136..43426b6 100644 --- a/TouchGFX/generated/texts/include/texts/TextKeysAndLanguages.hpp +++ b/TouchGFX/generated/texts/include/texts/TextKeysAndLanguages.hpp @@ -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, diff --git a/TouchGFX/generated/texts/src/LanguageGb.cpp b/TouchGFX/generated/texts/src/LanguageGb.cpp index 37c12fd..2ec0777 100644 --- a/TouchGFX/generated/texts/src/LanguageGb.cpp +++ b/TouchGFX/generated/texts/src/LanguageGb.cpp @@ -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" }; diff --git a/TouchGFX/generated/texts/src/Texts.cpp b/TouchGFX/generated/texts/src/Texts.cpp index e23b996..c78cca3 100644 --- a/TouchGFX/generated/texts/src/Texts.cpp +++ b/TouchGFX/generated/texts/src/Texts.cpp @@ -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 diff --git a/TouchGFX/generated/texts/src/TypedTextDatabase.cpp b/TouchGFX/generated/texts/src/TypedTextDatabase.cpp index c56ce92..18829e4 100644 --- a/TouchGFX/generated/texts/src/TypedTextDatabase.cpp +++ b/TouchGFX/generated/texts/src/TypedTextDatabase.cpp @@ -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 }, diff --git a/TouchGFX/gui/include/gui/apps_screen/APPSPresenter.hpp b/TouchGFX/gui/include/gui/apps_screen/APPSPresenter.hpp new file mode 100644 index 0000000..a45d406 --- /dev/null +++ b/TouchGFX/gui/include/gui/apps_screen/APPSPresenter.hpp @@ -0,0 +1,40 @@ +#ifndef APPSPRESENTER_HPP +#define APPSPRESENTER_HPP + +#include +#include + +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 diff --git a/TouchGFX/gui/include/gui/apps_screen/APPSView.hpp b/TouchGFX/gui/include/gui/apps_screen/APPSView.hpp new file mode 100644 index 0000000..58c3c54 --- /dev/null +++ b/TouchGFX/gui/include/gui/apps_screen/APPSView.hpp @@ -0,0 +1,45 @@ +#ifndef APPSVIEW_HPP +#define APPSVIEW_HPP + +#include "params.h" +#include +#include + +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 diff --git a/TouchGFX/gui/src/apps_screen/APPSPresenter.cpp b/TouchGFX/gui/src/apps_screen/APPSPresenter.cpp new file mode 100644 index 0000000..72a9f26 --- /dev/null +++ b/TouchGFX/gui/src/apps_screen/APPSPresenter.cpp @@ -0,0 +1,28 @@ +#include "stm32h7xx_hal.h" + +#include +#include + +APPSPresenter::APPSPresenter(APPSView &v) : view(v) {} + +void APPSPresenter::activate() {} + +void APPSPresenter::deactivate() {} + +void APPSPresenter::nextScreen() { + static_cast(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); +} diff --git a/TouchGFX/gui/src/apps_screen/APPSView.cpp b/TouchGFX/gui/src/apps_screen/APPSView.cpp new file mode 100644 index 0000000..c410998 --- /dev/null +++ b/TouchGFX/gui/src/apps_screen/APPSView.cpp @@ -0,0 +1,137 @@ +#include "params.h" +#include "touchgfx/Color.hpp" +#include "vehicle_state.h" +#include + +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(); +} diff --git a/TouchGFX/gui/src/common/NamedField.cpp b/TouchGFX/gui/src/common/NamedField.cpp index ce1e569..08eda2c 100644 --- a/TouchGFX/gui/src/common/NamedField.cpp +++ b/TouchGFX/gui/src/common/NamedField.cpp @@ -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]) == diff --git a/TouchGFX/gui/src/vehicleconfig_screen/VehicleConfigPresenter.cpp b/TouchGFX/gui/src/vehicleconfig_screen/VehicleConfigPresenter.cpp index e6203b3..3092b6f 100644 --- a/TouchGFX/gui/src/vehicleconfig_screen/VehicleConfigPresenter.cpp +++ b/TouchGFX/gui/src/vehicleconfig_screen/VehicleConfigPresenter.cpp @@ -11,7 +11,7 @@ void VehicleConfigPresenter::deactivate() {} void VehicleConfigPresenter::nextScreen() { static_cast(Application::getInstance()) - ->gotoSDCScreenNoTransition(); + ->gotoAPPSScreenNoTransition(); } void VehicleConfigPresenter::paramConfirmed() { diff --git a/TouchGFX/steering-wheel.touchgfx b/TouchGFX/steering-wheel.touchgfx index adafc69..ab8234a 100644 --- a/TouchGFX/steering-wheel.touchgfx +++ b/TouchGFX/steering-wheel.touchgfx @@ -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": [