Show initial checkup state & hydraulic pressures
This commit is contained in:
		@ -37,7 +37,6 @@ BUILD_DIR = build
 | 
			
		||||
# C sources
 | 
			
		||||
C_SOURCES =  \
 | 
			
		||||
AZURE_RTOS/App/app_azure_rtos.c \
 | 
			
		||||
Core/Lib/can-halal/can-halal.c \
 | 
			
		||||
Core/Src/app.c \
 | 
			
		||||
Core/Src/app_threadx.c \
 | 
			
		||||
Core/Src/hx8357d.c \
 | 
			
		||||
@ -334,15 +333,25 @@ build/main.cpp
 | 
			
		||||
# ASM sources
 | 
			
		||||
ASM_SOURCES =  \
 | 
			
		||||
Core/Src/tx_initialize_low_level.s \
 | 
			
		||||
Middlewares/ST/threadx/ports/cortex_m7/gnu/src/tx_misra.S \
 | 
			
		||||
Middlewares/ST/threadx/ports/cortex_m7/gnu/src/tx_misra.s \
 | 
			
		||||
Middlewares/ST/threadx/ports/cortex_m7/gnu/src/tx_thread_context_restore.S \
 | 
			
		||||
Middlewares/ST/threadx/ports/cortex_m7/gnu/src/tx_thread_context_restore.s \
 | 
			
		||||
Middlewares/ST/threadx/ports/cortex_m7/gnu/src/tx_thread_context_save.S \
 | 
			
		||||
Middlewares/ST/threadx/ports/cortex_m7/gnu/src/tx_thread_context_save.s \
 | 
			
		||||
Middlewares/ST/threadx/ports/cortex_m7/gnu/src/tx_thread_interrupt_control.S \
 | 
			
		||||
Middlewares/ST/threadx/ports/cortex_m7/gnu/src/tx_thread_interrupt_control.s \
 | 
			
		||||
Middlewares/ST/threadx/ports/cortex_m7/gnu/src/tx_thread_interrupt_disable.S \
 | 
			
		||||
Middlewares/ST/threadx/ports/cortex_m7/gnu/src/tx_thread_interrupt_disable.s \
 | 
			
		||||
Middlewares/ST/threadx/ports/cortex_m7/gnu/src/tx_thread_interrupt_restore.S \
 | 
			
		||||
Middlewares/ST/threadx/ports/cortex_m7/gnu/src/tx_thread_interrupt_restore.s \
 | 
			
		||||
Middlewares/ST/threadx/ports/cortex_m7/gnu/src/tx_thread_schedule.S \
 | 
			
		||||
Middlewares/ST/threadx/ports/cortex_m7/gnu/src/tx_thread_schedule.s \
 | 
			
		||||
Middlewares/ST/threadx/ports/cortex_m7/gnu/src/tx_thread_stack_build.S \
 | 
			
		||||
Middlewares/ST/threadx/ports/cortex_m7/gnu/src/tx_thread_stack_build.s \
 | 
			
		||||
Middlewares/ST/threadx/ports/cortex_m7/gnu/src/tx_thread_system_return.S \
 | 
			
		||||
Middlewares/ST/threadx/ports/cortex_m7/gnu/src/tx_thread_system_return.s \
 | 
			
		||||
Middlewares/ST/threadx/ports/cortex_m7/gnu/src/tx_timer_interrupt.S \
 | 
			
		||||
Middlewares/ST/threadx/ports/cortex_m7/gnu/src/tx_timer_interrupt.s \
 | 
			
		||||
startup_stm32h7a3xx.s
 | 
			
		||||
 | 
			
		||||
@ -355,7 +364,7 @@ PREFIX = arm-none-eabi-
 | 
			
		||||
POSTFIX = "
 | 
			
		||||
# The gcc compiler bin path can be either defined in make command via GCC_PATH variable (> make GCC_PATH=xxx)
 | 
			
		||||
# either it can be added to the PATH environment variable.
 | 
			
		||||
GCC_PATH="/home/jasper/.config/Code/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/arm-none-eabi-gcc/11.3.1-1.1.2/.content/bin
 | 
			
		||||
GCC_PATH="c:/Users/Jasper/AppData/Roaming/Code/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/arm-none-eabi-gcc/12.2.1-1.2.1/.content/bin
 | 
			
		||||
ifdef GCC_PATH
 | 
			
		||||
CXX = $(GCC_PATH)/$(PREFIX)g++$(POSTFIX)
 | 
			
		||||
CC = $(GCC_PATH)/$(PREFIX)gcc$(POSTFIX)
 | 
			
		||||
@ -414,7 +423,6 @@ AS_INCLUDES = \
 | 
			
		||||
C_INCLUDES =  \
 | 
			
		||||
-IAZURE_RTOS/App \
 | 
			
		||||
-ICore/Inc \
 | 
			
		||||
-ICore/Lib/can-halal \
 | 
			
		||||
-IDrivers/CMSIS/Device/ST/STM32H7xx/Include \
 | 
			
		||||
-IDrivers/CMSIS/Include \
 | 
			
		||||
-IDrivers/STM32H7xx_HAL_Driver/Inc \
 | 
			
		||||
@ -529,19 +537,19 @@ $(BUILD_DIR):
 | 
			
		||||
# flash
 | 
			
		||||
#######################################
 | 
			
		||||
flash: $(BUILD_DIR)/$(TARGET).elf
 | 
			
		||||
	"/home/jasper/.config/Code/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/openocd/0.11.0-5.1/.content/bin/openocd" -f ./openocd.cfg -c "program $(BUILD_DIR)/$(TARGET).elf verify reset exit"
 | 
			
		||||
	"C:/USERS/JASPER/APPDATA/ROAMING/CODE/USER/GLOBALSTORAGE/BMD.STM32-FOR-VSCODE/@XPACK-DEV-TOOLS/OPENOCD/0.12.0-1.1/.CONTENT/BIN/OPENOCD.EXE" -f ./openocd.cfg -c "program $(BUILD_DIR)/$(TARGET).elf verify reset exit"
 | 
			
		||||
 | 
			
		||||
#######################################
 | 
			
		||||
# erase
 | 
			
		||||
#######################################
 | 
			
		||||
erase: $(BUILD_DIR)/$(TARGET).elf
 | 
			
		||||
	"/home/jasper/.config/Code/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/openocd/0.11.0-5.1/.content/bin/openocd" -f ./openocd.cfg -c "init; reset halt; stm32h7x mass_erase 0; exit"
 | 
			
		||||
	"C:/USERS/JASPER/APPDATA/ROAMING/CODE/USER/GLOBALSTORAGE/BMD.STM32-FOR-VSCODE/@XPACK-DEV-TOOLS/OPENOCD/0.12.0-1.1/.CONTENT/BIN/OPENOCD.EXE" -f ./openocd.cfg -c "init; reset halt; stm32h7x mass_erase 0; exit"
 | 
			
		||||
 | 
			
		||||
#######################################
 | 
			
		||||
# clean up
 | 
			
		||||
#######################################
 | 
			
		||||
clean:
 | 
			
		||||
	-rm -fR $(BUILD_DIR)
 | 
			
		||||
	cmd /c rd /s /q $(BUILD_DIR)
 | 
			
		||||
 | 
			
		||||
#######################################
 | 
			
		||||
# custom makefile rules
 | 
			
		||||
 | 
			
		||||
@ -171,6 +171,36 @@
 | 
			
		||||
      </Text>
 | 
			
		||||
    </TextGroup>
 | 
			
		||||
    <TextGroup Id="Unsorted">
 | 
			
		||||
      <Text Id="__SingleUse_E6D7" Alignment="Left" TypographyId="Chinat_Large">
 | 
			
		||||
        <Translation Language="GB">INIT</Translation>
 | 
			
		||||
      </Text>
 | 
			
		||||
      <Text Id="__SingleUse_ZEKA" Alignment="Right" TypographyId="Chinat_Large">
 | 
			
		||||
        <Translation Language="GB"><value></Translation>
 | 
			
		||||
      </Text>
 | 
			
		||||
      <Text Id="__SingleUse_0L75" Alignment="Left" TypographyId="Chinat_Small">
 | 
			
		||||
        <Translation Language="GB">Pressure Rear:</Translation>
 | 
			
		||||
      </Text>
 | 
			
		||||
      <Text Id="__SingleUse_GA13" Alignment="Left" TypographyId="Chinat_Small">
 | 
			
		||||
        <Translation Language="GB">Pressure Front:</Translation>
 | 
			
		||||
      </Text>
 | 
			
		||||
      <Text Id="__SingleUse_THUG" Alignment="Right" TypographyId="Numbers_Small">
 | 
			
		||||
        <Translation Language="GB"><value></Translation>
 | 
			
		||||
      </Text>
 | 
			
		||||
      <Text Id="__SingleUse_CO7A" Alignment="Right" TypographyId="Numbers_Small">
 | 
			
		||||
        <Translation Language="GB"><value></Translation>
 | 
			
		||||
      </Text>
 | 
			
		||||
      <Text Id="__SingleUse_A0LF" Alignment="Right" TypographyId="Numbers_Small">
 | 
			
		||||
        <Translation Language="GB"><value></Translation>
 | 
			
		||||
      </Text>
 | 
			
		||||
      <Text Id="__SingleUse_166C" Alignment="Right" TypographyId="Numbers_Small">
 | 
			
		||||
        <Translation Language="GB"><value></Translation>
 | 
			
		||||
      </Text>
 | 
			
		||||
      <Text Id="__SingleUse_OOU3" Alignment="Left" TypographyId="Chinat_Small">
 | 
			
		||||
        <Translation Language="GB">Pressure Acc B:</Translation>
 | 
			
		||||
      </Text>
 | 
			
		||||
      <Text Id="__SingleUse_2FPP" Alignment="Left" TypographyId="Chinat_Small">
 | 
			
		||||
        <Translation Language="GB">Pressure Acc A:</Translation>
 | 
			
		||||
      </Text>
 | 
			
		||||
      <Text Id="__SingleUse_2S21" Alignment="Right" TypographyId="Numbers_Small">
 | 
			
		||||
        <Translation Language="GB"><value></Translation>
 | 
			
		||||
      </Text>
 | 
			
		||||
 | 
			
		||||
@ -3,6 +3,6 @@
 | 
			
		||||
touchgfx_path := ../Middlewares/ST/touchgfx
 | 
			
		||||
 | 
			
		||||
# Location of the TouchGFX Environment
 | 
			
		||||
touchgfx_env := C:/TouchGFX/4.22.0/env
 | 
			
		||||
touchgfx_env := ../../../../../TouchGFX/4.22.0/env
 | 
			
		||||
# Optional additional compiler flags
 | 
			
		||||
user_cflags := -DUSE_BPP=16 -std=gnu++1z -Wno-cast-qual -Wno-missing-declarations -Wno-format-truncation -Wno-unused-variable
 | 
			
		||||
 | 
			
		||||
@ -10,10 +10,11 @@
 | 
			
		||||
#include <touchgfx/widgets/Box.hpp>
 | 
			
		||||
#include <touchgfx/widgets/Image.hpp>
 | 
			
		||||
#include <touchgfx/widgets/TextArea.hpp>
 | 
			
		||||
#include <touchgfx/widgets/TextAreaWithWildcard.hpp>
 | 
			
		||||
#include <touchgfx/containers/Container.hpp>
 | 
			
		||||
#include <touchgfx/widgets/TextAreaWithWildcard.hpp>
 | 
			
		||||
#include <touchgfx/widgets/canvas/Shape.hpp>
 | 
			
		||||
#include <touchgfx/widgets/canvas/PainterRGB565.hpp>
 | 
			
		||||
#include <touchgfx/containers/progress_indicators/BoxProgress.hpp>
 | 
			
		||||
 | 
			
		||||
class AMIViewBase : public touchgfx::View<AMIPresenter>
 | 
			
		||||
{
 | 
			
		||||
@ -33,6 +34,7 @@ protected:
 | 
			
		||||
    touchgfx::Box __background;
 | 
			
		||||
    touchgfx::Image logo;
 | 
			
		||||
    touchgfx::TextArea currentMission;
 | 
			
		||||
    touchgfx::Container driving;
 | 
			
		||||
    touchgfx::TextArea textArea1;
 | 
			
		||||
    touchgfx::TextArea textArea2;
 | 
			
		||||
    touchgfx::TextAreaWithOneWildcard desiredAngle;
 | 
			
		||||
@ -64,6 +66,18 @@ protected:
 | 
			
		||||
    touchgfx::PainterRGB565 cone9Painter;
 | 
			
		||||
    touchgfx::Shape<3> ft;
 | 
			
		||||
    touchgfx::PainterRGB565 ftPainter;
 | 
			
		||||
    touchgfx::Container init;
 | 
			
		||||
    touchgfx::TextArea textArea8;
 | 
			
		||||
    touchgfx::TextArea textArea7;
 | 
			
		||||
    touchgfx::TextAreaWithOneWildcard pressRear;
 | 
			
		||||
    touchgfx::TextAreaWithOneWildcard pressFront;
 | 
			
		||||
    touchgfx::TextAreaWithOneWildcard pressB;
 | 
			
		||||
    touchgfx::TextAreaWithOneWildcard pressA;
 | 
			
		||||
    touchgfx::TextArea textArea6;
 | 
			
		||||
    touchgfx::TextArea textArea5;
 | 
			
		||||
    touchgfx::BoxProgress progressBar;
 | 
			
		||||
    touchgfx::TextArea initLabel;
 | 
			
		||||
    touchgfx::TextAreaWithOneWildcard progressLabel;
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -26,53 +26,55 @@ AMIViewBase::AMIViewBase()
 | 
			
		||||
    currentMission.setTypedText(touchgfx::TypedText(T_INVALID_HUGE));
 | 
			
		||||
    add(currentMission);
 | 
			
		||||
 | 
			
		||||
    driving.setPosition(0, 0, 480, 320);
 | 
			
		||||
    driving.setVisible(false);
 | 
			
		||||
    textArea1.setXY(273, 103);
 | 
			
		||||
    textArea1.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
 | 
			
		||||
    textArea1.setLinespacing(0);
 | 
			
		||||
    textArea1.setTypedText(touchgfx::TypedText(T___SINGLEUSE_3MDX));
 | 
			
		||||
    add(textArea1);
 | 
			
		||||
    driving.add(textArea1);
 | 
			
		||||
 | 
			
		||||
    textArea2.setXY(273, 135);
 | 
			
		||||
    textArea2.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
 | 
			
		||||
    textArea2.setLinespacing(0);
 | 
			
		||||
    textArea2.setTypedText(touchgfx::TypedText(T___SINGLEUSE_JFR7));
 | 
			
		||||
    add(textArea2);
 | 
			
		||||
    driving.add(textArea2);
 | 
			
		||||
 | 
			
		||||
    desiredAngle.setPosition(405, 104, 60, 23);
 | 
			
		||||
    desiredAngle.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
 | 
			
		||||
    desiredAngle.setLinespacing(0);
 | 
			
		||||
    desiredAngle.setTypedText(touchgfx::TypedText(T___SINGLEUSE_232C));
 | 
			
		||||
    add(desiredAngle);
 | 
			
		||||
    driving.add(desiredAngle);
 | 
			
		||||
 | 
			
		||||
    measuredAngle.setPosition(405, 136, 60, 23);
 | 
			
		||||
    measuredAngle.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
 | 
			
		||||
    measuredAngle.setLinespacing(0);
 | 
			
		||||
    measuredAngle.setTypedText(touchgfx::TypedText(T___SINGLEUSE_LLOZ));
 | 
			
		||||
    add(measuredAngle);
 | 
			
		||||
    driving.add(measuredAngle);
 | 
			
		||||
 | 
			
		||||
    measuredSpeed.setPosition(405, 199, 60, 23);
 | 
			
		||||
    measuredSpeed.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
 | 
			
		||||
    measuredSpeed.setLinespacing(0);
 | 
			
		||||
    measuredSpeed.setTypedText(touchgfx::TypedText(T___SINGLEUSE_2S21));
 | 
			
		||||
    add(measuredSpeed);
 | 
			
		||||
    driving.add(measuredSpeed);
 | 
			
		||||
 | 
			
		||||
    desiredSpeed.setPosition(405, 167, 60, 23);
 | 
			
		||||
    desiredSpeed.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
 | 
			
		||||
    desiredSpeed.setLinespacing(0);
 | 
			
		||||
    desiredSpeed.setTypedText(touchgfx::TypedText(T___SINGLEUSE_OQ6P));
 | 
			
		||||
    add(desiredSpeed);
 | 
			
		||||
    driving.add(desiredSpeed);
 | 
			
		||||
 | 
			
		||||
    textArea4.setXY(273, 198);
 | 
			
		||||
    textArea4.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
 | 
			
		||||
    textArea4.setLinespacing(0);
 | 
			
		||||
    textArea4.setTypedText(touchgfx::TypedText(T___SINGLEUSE_590R));
 | 
			
		||||
    add(textArea4);
 | 
			
		||||
    driving.add(textArea4);
 | 
			
		||||
 | 
			
		||||
    textArea3.setXY(273, 166);
 | 
			
		||||
    textArea3.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
 | 
			
		||||
    textArea3.setLinespacing(0);
 | 
			
		||||
    textArea3.setTypedText(touchgfx::TypedText(T___SINGLEUSE_Z78U));
 | 
			
		||||
    add(textArea3);
 | 
			
		||||
    driving.add(textArea3);
 | 
			
		||||
 | 
			
		||||
    map.setPosition(15, 103, 255, 202);
 | 
			
		||||
    cone0.setPosition(0, 0, 10, 10);
 | 
			
		||||
@ -195,7 +197,81 @@ AMIViewBase::AMIViewBase()
 | 
			
		||||
    ft.setShape(ftPoints);
 | 
			
		||||
    map.add(ft);
 | 
			
		||||
 | 
			
		||||
    add(map);
 | 
			
		||||
    driving.add(map);
 | 
			
		||||
 | 
			
		||||
    add(driving);
 | 
			
		||||
 | 
			
		||||
    init.setPosition(0, 0, 480, 320);
 | 
			
		||||
    textArea8.setXY(68, 247);
 | 
			
		||||
    textArea8.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
 | 
			
		||||
    textArea8.setLinespacing(0);
 | 
			
		||||
    textArea8.setTypedText(touchgfx::TypedText(T___SINGLEUSE_0L75));
 | 
			
		||||
    init.add(textArea8);
 | 
			
		||||
 | 
			
		||||
    textArea7.setXY(68, 215);
 | 
			
		||||
    textArea7.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
 | 
			
		||||
    textArea7.setLinespacing(0);
 | 
			
		||||
    textArea7.setTypedText(touchgfx::TypedText(T___SINGLEUSE_GA13));
 | 
			
		||||
    init.add(textArea7);
 | 
			
		||||
 | 
			
		||||
    pressRear.setPosition(352, 248, 60, 23);
 | 
			
		||||
    pressRear.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
 | 
			
		||||
    pressRear.setLinespacing(0);
 | 
			
		||||
    pressRear.setTypedText(touchgfx::TypedText(T___SINGLEUSE_THUG));
 | 
			
		||||
    init.add(pressRear);
 | 
			
		||||
 | 
			
		||||
    pressFront.setPosition(352, 216, 60, 23);
 | 
			
		||||
    pressFront.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
 | 
			
		||||
    pressFront.setLinespacing(0);
 | 
			
		||||
    pressFront.setTypedText(touchgfx::TypedText(T___SINGLEUSE_CO7A));
 | 
			
		||||
    init.add(pressFront);
 | 
			
		||||
 | 
			
		||||
    pressB.setPosition(352, 185, 60, 23);
 | 
			
		||||
    pressB.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
 | 
			
		||||
    pressB.setLinespacing(0);
 | 
			
		||||
    pressB.setTypedText(touchgfx::TypedText(T___SINGLEUSE_A0LF));
 | 
			
		||||
    init.add(pressB);
 | 
			
		||||
 | 
			
		||||
    pressA.setPosition(352, 153, 60, 23);
 | 
			
		||||
    pressA.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
 | 
			
		||||
    pressA.setLinespacing(0);
 | 
			
		||||
    pressA.setTypedText(touchgfx::TypedText(T___SINGLEUSE_166C));
 | 
			
		||||
    init.add(pressA);
 | 
			
		||||
 | 
			
		||||
    textArea6.setXY(68, 184);
 | 
			
		||||
    textArea6.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
 | 
			
		||||
    textArea6.setLinespacing(0);
 | 
			
		||||
    textArea6.setTypedText(touchgfx::TypedText(T___SINGLEUSE_OOU3));
 | 
			
		||||
    init.add(textArea6);
 | 
			
		||||
 | 
			
		||||
    textArea5.setXY(68, 152);
 | 
			
		||||
    textArea5.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
 | 
			
		||||
    textArea5.setLinespacing(0);
 | 
			
		||||
    textArea5.setTypedText(touchgfx::TypedText(T___SINGLEUSE_2FPP));
 | 
			
		||||
    init.add(textArea5);
 | 
			
		||||
 | 
			
		||||
    progressBar.setXY(12, 85);
 | 
			
		||||
    progressBar.setProgressIndicatorPosition(0, 0, 480, 55);
 | 
			
		||||
    progressBar.setRange(0, 100);
 | 
			
		||||
    progressBar.setDirection(touchgfx::AbstractDirectionProgress::RIGHT);
 | 
			
		||||
    progressBar.setBackground(touchgfx::Bitmap(BITMAP_PROG_HORIZ_BG_ID));
 | 
			
		||||
    progressBar.setColor(touchgfx::Color::getColorFromRGB(99, 186, 0));
 | 
			
		||||
    progressBar.setValue(0);
 | 
			
		||||
    init.add(progressBar);
 | 
			
		||||
 | 
			
		||||
    initLabel.setPosition(86, 83, 309, 37);
 | 
			
		||||
    initLabel.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
 | 
			
		||||
    initLabel.setLinespacing(0);
 | 
			
		||||
    initLabel.setTypedText(touchgfx::TypedText(T___SINGLEUSE_E6D7));
 | 
			
		||||
    init.add(initLabel);
 | 
			
		||||
 | 
			
		||||
    progressLabel.setPosition(165, 83, 226, 37);
 | 
			
		||||
    progressLabel.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
 | 
			
		||||
    progressLabel.setLinespacing(0);
 | 
			
		||||
    progressLabel.setTypedText(touchgfx::TypedText(T___SINGLEUSE_ZEKA));
 | 
			
		||||
    init.add(progressLabel);
 | 
			
		||||
 | 
			
		||||
    add(init);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
AMIViewBase::~AMIViewBase()
 | 
			
		||||
 | 
			
		||||
@ -21,7 +21,7 @@ DriverViewViewBase::DriverViewViewBase() :
 | 
			
		||||
    soc.setProgressIndicatorPosition(0, 0, 456, 33);
 | 
			
		||||
    soc.setRange(0, 100);
 | 
			
		||||
    soc.setBackground(touchgfx::Bitmap(BITMAP_PROG_HORIZ_BG_ID));
 | 
			
		||||
    socPainter.setColor(touchgfx::Color::getColorFromRGB(136, 255, 0));
 | 
			
		||||
    socPainter.setColor(touchgfx::Color::getColorFromRGB(99, 186, 0));
 | 
			
		||||
    soc.setPainter(socPainter);
 | 
			
		||||
    soc.setStart(0, 16);
 | 
			
		||||
    soc.setEnd(456, 16);
 | 
			
		||||
 | 
			
		||||
@ -1 +1 @@
 | 
			
		||||
{"remap":"yes","language":"GB","language_index":0,"indices":[["360","T_LV"],["344","T_PDU"],["352","T_SCS"],["356","T_SDC"],["348","T_R2D"],["341","T_TS"],["336","T_INV"],["332","T_AMS"],["111","T_ERROR_AMS"],["153","T_DEBUGVIEWFIELD_TITLE"],["153","T_DRIVERVIEWFIELD_TITLE"],["153","T_NUMBERSMALLWILDCARD"],["292","T_FIELD_BBAL"],["249","T_FIELD_TSVOLTVEH"],["242","T_FIELD_TSVOLTBAT"],["268","T_FIELD_LVSOC"],["286","T_FIELD_TSSOC"],["302","T_FIELD_MAXCELLTEMP"],["307","T_FIELD_TIREFL"],["312","T_FIELD_TIREFR"],["317","T_FIELD_TIRERL"],["322","T_FIELD_TIRERR"],["297","T_FIELD_LAPCOUNT"],["171","T_FIELD_INICHKSTATE"],["262","T_FIELD_ERR"],["356","T_FIELD_SDC"],["187","T_FIELD_INVRREADY"],["179","T_FIELD_INVLREADY"],["211","T_FIELD_R2DPROGRESS"],["195","T_FIELD_ACTIVEMISSION"],["155","T_FIELD_ASSTATE"],["227","T_FIELD_TSSTATE"],["153","T_NUMBERWILDCARD"],["153","T_DEFAULTWILDCARD_CENTERED"],["153","T_DEFAULTWILDCARD_RIGHTALIGNED"],["340","T_FIELD_TSCURRENT"],["327","T_FIELD_MINCELLVOLT"],["280","T_FIELD_SPEED"],["78","T_INSPECTION_HUGE"],["144","T_EBS_HUGE"],["100","T_TRACKDRIVE_HUGE"],["121","T_AUTOX_HUGE"],["219","T_SKIDPAD_HUGE"],["65","T_ACCEL_HUGE"],["17","T_INVALID_HUGE"],["50","T_MANUAL"],["78","T_INSPECTION"],["144","T_EBS"],["100","T_TRACKDRIVE"],["121","T_AUTOX"],["219","T_SKIDPAD"],["65","T_ACCEL"],["153","T___SINGLEUSE_2S21"],["153","T___SINGLEUSE_OQ6P"],["203","T___SINGLEUSE_590R"],["163","T___SINGLEUSE_Z78U"],["153","T___SINGLEUSE_LLOZ"],["153","T___SINGLEUSE_232C"],["274","T___SINGLEUSE_JFR7"],["256","T___SINGLEUSE_3MDX"],["16","T___SINGLEUSE_F9I5"],["153","T___SINGLEUSE_9L8R"],["16","T___SINGLEUSE_1NKF"],["153","T___SINGLEUSE_J5UH"],["348","T___SINGLEUSE_NGUK"],["153","T___SINGLEUSE_4E84"],["153","T___SINGLEUSE_YTAB"],["89","T___SINGLEUSE_RWCE"],["131","T___SINGLEUSE_HMH2"],["141","T___SINGLEUSE_PHFD"],["235","T___SINGLEUSE_H6UX"],["153","T___SINGLEUSE_20H3"],["34","T___SINGLEUSE_M5X7"],["0","T___SINGLEUSE_6GPV"]]}
 | 
			
		||||
{"remap":"yes","language":"GB","language_index":0,"indices":[["428","T_LV"],["412","T_PDU"],["420","T_SCS"],["424","T_SDC"],["416","T_R2D"],["409","T_TS"],["404","T_INV"],["400","T_AMS"],["174","T_ERROR_AMS"],["216","T_DEBUGVIEWFIELD_TITLE"],["216","T_DRIVERVIEWFIELD_TITLE"],["216","T_NUMBERSMALLWILDCARD"],["355","T_FIELD_BBAL"],["312","T_FIELD_TSVOLTVEH"],["305","T_FIELD_TSVOLTBAT"],["331","T_FIELD_LVSOC"],["349","T_FIELD_TSSOC"],["370","T_FIELD_MAXCELLTEMP"],["375","T_FIELD_TIREFL"],["380","T_FIELD_TIREFR"],["385","T_FIELD_TIRERL"],["390","T_FIELD_TIRERR"],["365","T_FIELD_LAPCOUNT"],["234","T_FIELD_INICHKSTATE"],["325","T_FIELD_ERR"],["424","T_FIELD_SDC"],["250","T_FIELD_INVRREADY"],["242","T_FIELD_INVLREADY"],["274","T_FIELD_R2DPROGRESS"],["258","T_FIELD_ACTIVEMISSION"],["218","T_FIELD_ASSTATE"],["290","T_FIELD_TSSTATE"],["216","T_NUMBERWILDCARD"],["216","T_DEFAULTWILDCARD_CENTERED"],["216","T_DEFAULTWILDCARD_RIGHTALIGNED"],["408","T_FIELD_TSCURRENT"],["395","T_FIELD_MINCELLVOLT"],["343","T_FIELD_SPEED"],["141","T_INSPECTION_HUGE"],["207","T_EBS_HUGE"],["163","T_TRACKDRIVE_HUGE"],["184","T_AUTOX_HUGE"],["282","T_SKIDPAD_HUGE"],["128","T_ACCEL_HUGE"],["17","T_INVALID_HUGE"],["98","T_MANUAL"],["141","T_INSPECTION"],["207","T_EBS"],["163","T_TRACKDRIVE"],["184","T_AUTOX"],["282","T_SKIDPAD"],["128","T_ACCEL"],["360","T___SINGLEUSE_E6D7"],["216","T___SINGLEUSE_ZEKA"],["113","T___SINGLEUSE_0L75"],["82","T___SINGLEUSE_GA13"],["216","T___SINGLEUSE_THUG"],["216","T___SINGLEUSE_CO7A"],["216","T___SINGLEUSE_A0LF"],["216","T___SINGLEUSE_166C"],["66","T___SINGLEUSE_OOU3"],["50","T___SINGLEUSE_2FPP"],["216","T___SINGLEUSE_2S21"],["216","T___SINGLEUSE_OQ6P"],["266","T___SINGLEUSE_590R"],["226","T___SINGLEUSE_Z78U"],["216","T___SINGLEUSE_LLOZ"],["216","T___SINGLEUSE_232C"],["337","T___SINGLEUSE_JFR7"],["319","T___SINGLEUSE_3MDX"],["16","T___SINGLEUSE_F9I5"],["216","T___SINGLEUSE_9L8R"],["16","T___SINGLEUSE_1NKF"],["216","T___SINGLEUSE_J5UH"],["416","T___SINGLEUSE_NGUK"],["216","T___SINGLEUSE_4E84"],["216","T___SINGLEUSE_YTAB"],["152","T___SINGLEUSE_RWCE"],["194","T___SINGLEUSE_HMH2"],["204","T___SINGLEUSE_PHFD"],["298","T___SINGLEUSE_H6UX"],["216","T___SINGLEUSE_20H3"],["34","T___SINGLEUSE_M5X7"],["0","T___SINGLEUSE_6GPV"]]}
 | 
			
		||||
@ -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_2S21","T___SINGLEUSE_OQ6P","T___SINGLEUSE_590R","T___SINGLEUSE_Z78U","T___SINGLEUSE_LLOZ","T___SINGLEUSE_232C","T___SINGLEUSE_JFR7","T___SINGLEUSE_3MDX","T___SINGLEUSE_F9I5","T___SINGLEUSE_9L8R","T___SINGLEUSE_1NKF","T___SINGLEUSE_J5UH","T___SINGLEUSE_NGUK","T___SINGLEUSE_4E84","T___SINGLEUSE_YTAB","T___SINGLEUSE_RWCE","T___SINGLEUSE_HMH2","T___SINGLEUSE_PHFD","T___SINGLEUSE_H6UX","T___SINGLEUSE_20H3","T___SINGLEUSE_M5X7","T___SINGLEUSE_6GPV"]}
 | 
			
		||||
{"languages":["GB"],"textids":["T_LV","T_PDU","T_SCS","T_SDC","T_R2D","T_TS","T_INV","T_AMS","T_ERROR_AMS","T_DEBUGVIEWFIELD_TITLE","T_DRIVERVIEWFIELD_TITLE","T_NUMBERSMALLWILDCARD","T_FIELD_BBAL","T_FIELD_TSVOLTVEH","T_FIELD_TSVOLTBAT","T_FIELD_LVSOC","T_FIELD_TSSOC","T_FIELD_MAXCELLTEMP","T_FIELD_TIREFL","T_FIELD_TIREFR","T_FIELD_TIRERL","T_FIELD_TIRERR","T_FIELD_LAPCOUNT","T_FIELD_INICHKSTATE","T_FIELD_ERR","T_FIELD_SDC","T_FIELD_INVRREADY","T_FIELD_INVLREADY","T_FIELD_R2DPROGRESS","T_FIELD_ACTIVEMISSION","T_FIELD_ASSTATE","T_FIELD_TSSTATE","T_NUMBERWILDCARD","T_DEFAULTWILDCARD_CENTERED","T_DEFAULTWILDCARD_RIGHTALIGNED","T_FIELD_TSCURRENT","T_FIELD_MINCELLVOLT","T_FIELD_SPEED","T_INSPECTION_HUGE","T_EBS_HUGE","T_TRACKDRIVE_HUGE","T_AUTOX_HUGE","T_SKIDPAD_HUGE","T_ACCEL_HUGE","T_INVALID_HUGE","T_MANUAL","T_INSPECTION","T_EBS","T_TRACKDRIVE","T_AUTOX","T_SKIDPAD","T_ACCEL","T___SINGLEUSE_E6D7","T___SINGLEUSE_ZEKA","T___SINGLEUSE_0L75","T___SINGLEUSE_GA13","T___SINGLEUSE_THUG","T___SINGLEUSE_CO7A","T___SINGLEUSE_A0LF","T___SINGLEUSE_166C","T___SINGLEUSE_OOU3","T___SINGLEUSE_2FPP","T___SINGLEUSE_2S21","T___SINGLEUSE_OQ6P","T___SINGLEUSE_590R","T___SINGLEUSE_Z78U","T___SINGLEUSE_LLOZ","T___SINGLEUSE_232C","T___SINGLEUSE_JFR7","T___SINGLEUSE_3MDX","T___SINGLEUSE_F9I5","T___SINGLEUSE_9L8R","T___SINGLEUSE_1NKF","T___SINGLEUSE_J5UH","T___SINGLEUSE_NGUK","T___SINGLEUSE_4E84","T___SINGLEUSE_YTAB","T___SINGLEUSE_RWCE","T___SINGLEUSE_HMH2","T___SINGLEUSE_PHFD","T___SINGLEUSE_H6UX","T___SINGLEUSE_20H3","T___SINGLEUSE_M5X7","T___SINGLEUSE_6GPV"]}
 | 
			
		||||
@ -1 +1 @@
 | 
			
		||||
{"remap":"yes","languages":["Gb"],"characters":[67,104,111,111,115,101,32,97,32,109,105,115,115,105,111,110,0,73,110,118,97,108,105,100,32,77,105,115,115,105,111,110,33,0,73,110,118,97,108,105,100,32,77,105,115,115,105,111,110,0,77,97,110,117,97,108,32,68,114,105,118,105,110,103,0,65,99,99,101,108,101,114,97,116,105,111,110,0,73,110,115,112,101,99,116,105,111,110,0,80,65,82,65,77,69,84,69,82,83,0,84,114,97,99,107,100,114,105,118,101,0,65,77,83,32,69,114,114,79,114,0,65,117,116,111,99,114,111,115,115,0,80,82,69,67,72,65,82,71,69,0,2,37,0,69,66,83,32,84,101,115,116,0,2,0,65,83,83,84,65,84,69,0,68,83,80,69,69,68,58,0,73,67,83,84,65,84,69,0,73,78,86,76,82,68,89,0,73,78,86,82,82,68,89,0,77,73,83,83,73,79,78,0,77,83,80,69,69,68,58,0,82,50,68,80,82,79,71,0,83,107,105,100,112,97,100,0,84,83,83,84,65,84,69,0,66,82,65,75,69,83,0,84,83,86,66,65,84,0,84,83,86,86,69,72,0,68,65,78,71,58,0,69,82,82,79,82,0,76,86,83,79,67,0,77,65,78,71,58,0,83,80,69,69,68,0,84,83,83,79,67,0,66,66,65,76,0,76,65,80,83,0,84,77,65,88,0,84,84,70,76,0,84,84,70,82,0,84,84,82,76,0,84,84,82,82,0,86,77,73,78,0,65,77,83,0,73,78,86,0,73,84,83,0,80,68,85,0,82,50,68,0,83,67,83,0,83,68,67,0,76,86,0]}
 | 
			
		||||
{"remap":"yes","languages":["Gb"],"characters":[67,104,111,111,115,101,32,97,32,109,105,115,115,105,111,110,0,73,110,118,97,108,105,100,32,77,105,115,115,105,111,110,33,0,73,110,118,97,108,105,100,32,77,105,115,115,105,111,110,0,80,114,101,115,115,117,114,101,32,65,99,99,32,65,58,0,80,114,101,115,115,117,114,101,32,65,99,99,32,66,58,0,80,114,101,115,115,117,114,101,32,70,114,111,110,116,58,0,77,97,110,117,97,108,32,68,114,105,118,105,110,103,0,80,114,101,115,115,117,114,101,32,82,101,97,114,58,0,65,99,99,101,108,101,114,97,116,105,111,110,0,73,110,115,112,101,99,116,105,111,110,0,80,65,82,65,77,69,84,69,82,83,0,84,114,97,99,107,100,114,105,118,101,0,65,77,83,32,69,114,114,79,114,0,65,117,116,111,99,114,111,115,115,0,80,82,69,67,72,65,82,71,69,0,2,37,0,69,66,83,32,84,101,115,116,0,2,0,65,83,83,84,65,84,69,0,68,83,80,69,69,68,58,0,73,67,83,84,65,84,69,0,73,78,86,76,82,68,89,0,73,78,86,82,82,68,89,0,77,73,83,83,73,79,78,0,77,83,80,69,69,68,58,0,82,50,68,80,82,79,71,0,83,107,105,100,112,97,100,0,84,83,83,84,65,84,69,0,66,82,65,75,69,83,0,84,83,86,66,65,84,0,84,83,86,86,69,72,0,68,65,78,71,58,0,69,82,82,79,82,0,76,86,83,79,67,0,77,65,78,71,58,0,83,80,69,69,68,0,84,83,83,79,67,0,66,66,65,76,0,73,78,73,84,0,76,65,80,83,0,84,77,65,88,0,84,84,70,76,0,84,84,70,82,0,84,84,82,76,0,84,84,82,82,0,86,77,73,78,0,65,77,83,0,73,78,86,0,73,84,83,0,80,68,85,0,82,50,68,0,83,67,83,0,83,68,67,0,76,86,0]}
 | 
			
		||||
@ -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"],[7,"RIGHT","LTR"],[7,"RIGHT","LTR"],[2,"LEFT","LTR"],[2,"LEFT","LTR"],[7,"RIGHT","LTR"],[7,"RIGHT","LTR"],[2,"LEFT","LTR"],[2,"LEFT","LTR"],[2,"CENTER","LTR"],[0,"LEFT","LTR"],[3,"CENTER","LTR"],[1,"RIGHT","LTR"],[1,"LEFT","LTR"],[4,"RIGHT","LTR"],[1,"LEFT","LTR"],[1,"CENTER","LTR"],[1,"LEFT","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[4,"CENTER","LTR"],[2,"CENTER","LTR"],[1,"LEFT","LTR"]],"DEFAULT":[[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[3,"CENTER","LTR"],[5,"LEFT","LTR"],[2,"CENTER","LTR"],[6,"LEFT","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[4,"CENTER","LTR"],[0,"CENTER","LTR"],[0,"RIGHT","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[7,"RIGHT","LTR"],[7,"RIGHT","LTR"],[2,"LEFT","LTR"],[2,"LEFT","LTR"],[7,"RIGHT","LTR"],[7,"RIGHT","LTR"],[2,"LEFT","LTR"],[2,"LEFT","LTR"],[2,"CENTER","LTR"],[0,"LEFT","LTR"],[3,"CENTER","LTR"],[1,"RIGHT","LTR"],[1,"LEFT","LTR"],[4,"RIGHT","LTR"],[1,"LEFT","LTR"],[1,"CENTER","LTR"],[1,"LEFT","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[4,"CENTER","LTR"],[2,"CENTER","LTR"],[1,"LEFT","LTR"]]},"database_list":["GB"],"fonts":{"getFont_verdana_20_4bpp":0,"getFont_CHINN____30_4bpp":1,"getFont_CHINN____20_4bpp":2,"getFont_CHINN____40_4bpp":3,"getFont_lucon_TTF_50_4bpp":4,"getFont_verdanab_20_4bpp":5,"getFont_lucon_TTF_33_4bpp":6,"getFont_lucon_TTF_20_4bpp":7},"generate_font_format":"0"}
 | 
			
		||||
{"databases":{"GB":[[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[3,"CENTER","LTR"],[5,"LEFT","LTR"],[2,"CENTER","LTR"],[6,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[4,"CENTER","LTR"],[0,"CENTER","LTR"],[0,"RIGHT","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[1,"LEFT","LTR"],[1,"RIGHT","LTR"],[2,"LEFT","LTR"],[2,"LEFT","LTR"],[7,"RIGHT","LTR"],[7,"RIGHT","LTR"],[7,"RIGHT","LTR"],[7,"RIGHT","LTR"],[2,"LEFT","LTR"],[2,"LEFT","LTR"],[7,"RIGHT","LTR"],[7,"RIGHT","LTR"],[2,"LEFT","LTR"],[2,"LEFT","LTR"],[7,"RIGHT","LTR"],[7,"RIGHT","LTR"],[2,"LEFT","LTR"],[2,"LEFT","LTR"],[2,"CENTER","LTR"],[0,"LEFT","LTR"],[3,"CENTER","LTR"],[1,"RIGHT","LTR"],[1,"LEFT","LTR"],[4,"RIGHT","LTR"],[1,"LEFT","LTR"],[1,"CENTER","LTR"],[1,"LEFT","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[4,"CENTER","LTR"],[2,"CENTER","LTR"],[1,"LEFT","LTR"]],"DEFAULT":[[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[3,"CENTER","LTR"],[5,"LEFT","LTR"],[2,"CENTER","LTR"],[6,"LEFT","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[4,"CENTER","LTR"],[0,"CENTER","LTR"],[0,"RIGHT","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[1,"LEFT","LTR"],[1,"RIGHT","LTR"],[2,"LEFT","LTR"],[2,"LEFT","LTR"],[7,"RIGHT","LTR"],[7,"RIGHT","LTR"],[7,"RIGHT","LTR"],[7,"RIGHT","LTR"],[2,"LEFT","LTR"],[2,"LEFT","LTR"],[7,"RIGHT","LTR"],[7,"RIGHT","LTR"],[2,"LEFT","LTR"],[2,"LEFT","LTR"],[7,"RIGHT","LTR"],[7,"RIGHT","LTR"],[2,"LEFT","LTR"],[2,"LEFT","LTR"],[2,"CENTER","LTR"],[0,"LEFT","LTR"],[3,"CENTER","LTR"],[1,"RIGHT","LTR"],[1,"LEFT","LTR"],[4,"RIGHT","LTR"],[1,"LEFT","LTR"],[1,"CENTER","LTR"],[1,"LEFT","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[4,"CENTER","LTR"],[2,"CENTER","LTR"],[1,"LEFT","LTR"]]},"database_list":["GB"],"fonts":{"getFont_verdana_20_4bpp":0,"getFont_CHINN____30_4bpp":1,"getFont_CHINN____20_4bpp":2,"getFont_CHINN____40_4bpp":3,"getFont_lucon_TTF_50_4bpp":4,"getFont_verdanab_20_4bpp":5,"getFont_lucon_TTF_33_4bpp":6,"getFont_lucon_TTF_20_4bpp":7},"generate_font_format":"0"}
 | 
			
		||||
@ -64,6 +64,16 @@ enum TEXTS
 | 
			
		||||
    T_AUTOX,
 | 
			
		||||
    T_SKIDPAD,
 | 
			
		||||
    T_ACCEL,
 | 
			
		||||
    T___SINGLEUSE_E6D7,
 | 
			
		||||
    T___SINGLEUSE_ZEKA,
 | 
			
		||||
    T___SINGLEUSE_0L75,
 | 
			
		||||
    T___SINGLEUSE_GA13,
 | 
			
		||||
    T___SINGLEUSE_THUG,
 | 
			
		||||
    T___SINGLEUSE_CO7A,
 | 
			
		||||
    T___SINGLEUSE_A0LF,
 | 
			
		||||
    T___SINGLEUSE_166C,
 | 
			
		||||
    T___SINGLEUSE_OOU3,
 | 
			
		||||
    T___SINGLEUSE_2FPP,
 | 
			
		||||
    T___SINGLEUSE_2S21,
 | 
			
		||||
    T___SINGLEUSE_OQ6P,
 | 
			
		||||
    T___SINGLEUSE_590R,
 | 
			
		||||
 | 
			
		||||
@ -10,78 +10,88 @@ 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 = {
 | 
			
		||||
    360, // T_LV: "LV"
 | 
			
		||||
    344, // T_PDU: "PDU"
 | 
			
		||||
    352, // T_SCS: "SCS"
 | 
			
		||||
    356, // T_SDC: "SDC"
 | 
			
		||||
    348, // T_R2D: "R2D"
 | 
			
		||||
    341, // T_TS: "TS"
 | 
			
		||||
    336, // T_INV: "INV"
 | 
			
		||||
    332, // T_AMS: "AMS"
 | 
			
		||||
    111, // T_ERROR_AMS: "AMS ErrOr"
 | 
			
		||||
    153, // T_DEBUGVIEWFIELD_TITLE: "<>"
 | 
			
		||||
    153, // T_DRIVERVIEWFIELD_TITLE: "<>"
 | 
			
		||||
    153, // T_NUMBERSMALLWILDCARD: "<>"
 | 
			
		||||
    292, // T_FIELD_BBAL: "BBAL"
 | 
			
		||||
    249, // T_FIELD_TSVOLTVEH: "TSVVEH"
 | 
			
		||||
    242, // T_FIELD_TSVOLTBAT: "TSVBAT"
 | 
			
		||||
    268, // T_FIELD_LVSOC: "LVSOC"
 | 
			
		||||
    286, // T_FIELD_TSSOC: "TSSOC"
 | 
			
		||||
    302, // T_FIELD_MAXCELLTEMP: "TMAX"
 | 
			
		||||
    307, // T_FIELD_TIREFL: "TTFL"
 | 
			
		||||
    312, // T_FIELD_TIREFR: "TTFR"
 | 
			
		||||
    317, // T_FIELD_TIRERL: "TTRL"
 | 
			
		||||
    322, // T_FIELD_TIRERR: "TTRR"
 | 
			
		||||
    297, // T_FIELD_LAPCOUNT: "LAPS"
 | 
			
		||||
    171, // T_FIELD_INICHKSTATE: "ICSTATE"
 | 
			
		||||
    262, // T_FIELD_ERR: "ERROR"
 | 
			
		||||
    356, // T_FIELD_SDC: "SDC"
 | 
			
		||||
    187, // T_FIELD_INVRREADY: "INVRRDY"
 | 
			
		||||
    179, // T_FIELD_INVLREADY: "INVLRDY"
 | 
			
		||||
    211, // T_FIELD_R2DPROGRESS: "R2DPROG"
 | 
			
		||||
    195, // T_FIELD_ACTIVEMISSION: "MISSION"
 | 
			
		||||
    155, // T_FIELD_ASSTATE: "ASSTATE"
 | 
			
		||||
    227, // T_FIELD_TSSTATE: "TSSTATE"
 | 
			
		||||
    153, // T_NUMBERWILDCARD: "<>"
 | 
			
		||||
    153, // T_DEFAULTWILDCARD_CENTERED: "<>"
 | 
			
		||||
    153, // T_DEFAULTWILDCARD_RIGHTALIGNED: "<>"
 | 
			
		||||
    340, // T_FIELD_TSCURRENT: "ITS"
 | 
			
		||||
    327, // T_FIELD_MINCELLVOLT: "VMIN"
 | 
			
		||||
    280, // T_FIELD_SPEED: "SPEED"
 | 
			
		||||
    78,  // T_INSPECTION_HUGE: "Inspection"
 | 
			
		||||
    144, // T_EBS_HUGE: "EBS Test"
 | 
			
		||||
    100, // T_TRACKDRIVE_HUGE: "Trackdrive"
 | 
			
		||||
    121, // T_AUTOX_HUGE: "Autocross"
 | 
			
		||||
    219, // T_SKIDPAD_HUGE: "Skidpad"
 | 
			
		||||
    65,  // T_ACCEL_HUGE: "Acceleration"
 | 
			
		||||
    428, // T_LV: "LV"
 | 
			
		||||
    412, // T_PDU: "PDU"
 | 
			
		||||
    420, // T_SCS: "SCS"
 | 
			
		||||
    424, // T_SDC: "SDC"
 | 
			
		||||
    416, // T_R2D: "R2D"
 | 
			
		||||
    409, // T_TS: "TS"
 | 
			
		||||
    404, // T_INV: "INV"
 | 
			
		||||
    400, // T_AMS: "AMS"
 | 
			
		||||
    174, // T_ERROR_AMS: "AMS ErrOr"
 | 
			
		||||
    216, // T_DEBUGVIEWFIELD_TITLE: "<>"
 | 
			
		||||
    216, // T_DRIVERVIEWFIELD_TITLE: "<>"
 | 
			
		||||
    216, // T_NUMBERSMALLWILDCARD: "<>"
 | 
			
		||||
    355, // T_FIELD_BBAL: "BBAL"
 | 
			
		||||
    312, // T_FIELD_TSVOLTVEH: "TSVVEH"
 | 
			
		||||
    305, // T_FIELD_TSVOLTBAT: "TSVBAT"
 | 
			
		||||
    331, // T_FIELD_LVSOC: "LVSOC"
 | 
			
		||||
    349, // T_FIELD_TSSOC: "TSSOC"
 | 
			
		||||
    370, // T_FIELD_MAXCELLTEMP: "TMAX"
 | 
			
		||||
    375, // T_FIELD_TIREFL: "TTFL"
 | 
			
		||||
    380, // T_FIELD_TIREFR: "TTFR"
 | 
			
		||||
    385, // T_FIELD_TIRERL: "TTRL"
 | 
			
		||||
    390, // T_FIELD_TIRERR: "TTRR"
 | 
			
		||||
    365, // T_FIELD_LAPCOUNT: "LAPS"
 | 
			
		||||
    234, // T_FIELD_INICHKSTATE: "ICSTATE"
 | 
			
		||||
    325, // T_FIELD_ERR: "ERROR"
 | 
			
		||||
    424, // T_FIELD_SDC: "SDC"
 | 
			
		||||
    250, // T_FIELD_INVRREADY: "INVRRDY"
 | 
			
		||||
    242, // T_FIELD_INVLREADY: "INVLRDY"
 | 
			
		||||
    274, // T_FIELD_R2DPROGRESS: "R2DPROG"
 | 
			
		||||
    258, // T_FIELD_ACTIVEMISSION: "MISSION"
 | 
			
		||||
    218, // T_FIELD_ASSTATE: "ASSTATE"
 | 
			
		||||
    290, // T_FIELD_TSSTATE: "TSSTATE"
 | 
			
		||||
    216, // T_NUMBERWILDCARD: "<>"
 | 
			
		||||
    216, // T_DEFAULTWILDCARD_CENTERED: "<>"
 | 
			
		||||
    216, // T_DEFAULTWILDCARD_RIGHTALIGNED: "<>"
 | 
			
		||||
    408, // T_FIELD_TSCURRENT: "ITS"
 | 
			
		||||
    395, // T_FIELD_MINCELLVOLT: "VMIN"
 | 
			
		||||
    343, // T_FIELD_SPEED: "SPEED"
 | 
			
		||||
    141, // T_INSPECTION_HUGE: "Inspection"
 | 
			
		||||
    207, // T_EBS_HUGE: "EBS Test"
 | 
			
		||||
    163, // T_TRACKDRIVE_HUGE: "Trackdrive"
 | 
			
		||||
    184, // T_AUTOX_HUGE: "Autocross"
 | 
			
		||||
    282, // T_SKIDPAD_HUGE: "Skidpad"
 | 
			
		||||
    128, // T_ACCEL_HUGE: "Acceleration"
 | 
			
		||||
    17,  // T_INVALID_HUGE: "Invalid Mission!"
 | 
			
		||||
    50,  // T_MANUAL: "Manual Driving"
 | 
			
		||||
    78,  // T_INSPECTION: "Inspection"
 | 
			
		||||
    144, // T_EBS: "EBS Test"
 | 
			
		||||
    100, // T_TRACKDRIVE: "Trackdrive"
 | 
			
		||||
    121, // T_AUTOX: "Autocross"
 | 
			
		||||
    219, // T_SKIDPAD: "Skidpad"
 | 
			
		||||
    65,  // T_ACCEL: "Acceleration"
 | 
			
		||||
    153, // T___SINGLEUSE_2S21: "<>"
 | 
			
		||||
    153, // T___SINGLEUSE_OQ6P: "<>"
 | 
			
		||||
    203, // T___SINGLEUSE_590R: "MSPEED:"
 | 
			
		||||
    163, // T___SINGLEUSE_Z78U: "DSPEED:"
 | 
			
		||||
    153, // T___SINGLEUSE_LLOZ: "<>"
 | 
			
		||||
    153, // T___SINGLEUSE_232C: "<>"
 | 
			
		||||
    274, // T___SINGLEUSE_JFR7: "MANG:"
 | 
			
		||||
    256, // T___SINGLEUSE_3MDX: "DANG:"
 | 
			
		||||
    98,  // T_MANUAL: "Manual Driving"
 | 
			
		||||
    141, // T_INSPECTION: "Inspection"
 | 
			
		||||
    207, // T_EBS: "EBS Test"
 | 
			
		||||
    163, // T_TRACKDRIVE: "Trackdrive"
 | 
			
		||||
    184, // T_AUTOX: "Autocross"
 | 
			
		||||
    282, // T_SKIDPAD: "Skidpad"
 | 
			
		||||
    128, // T_ACCEL: "Acceleration"
 | 
			
		||||
    360, // T___SINGLEUSE_E6D7: "INIT"
 | 
			
		||||
    216, // T___SINGLEUSE_ZEKA: "<>"
 | 
			
		||||
    113, // T___SINGLEUSE_0L75: "Pressure Rear:"
 | 
			
		||||
    82,  // T___SINGLEUSE_GA13: "Pressure Front:"
 | 
			
		||||
    216, // T___SINGLEUSE_THUG: "<>"
 | 
			
		||||
    216, // T___SINGLEUSE_CO7A: "<>"
 | 
			
		||||
    216, // T___SINGLEUSE_A0LF: "<>"
 | 
			
		||||
    216, // T___SINGLEUSE_166C: "<>"
 | 
			
		||||
    66,  // T___SINGLEUSE_OOU3: "Pressure Acc B:"
 | 
			
		||||
    50,  // T___SINGLEUSE_2FPP: "Pressure Acc A:"
 | 
			
		||||
    216, // T___SINGLEUSE_2S21: "<>"
 | 
			
		||||
    216, // T___SINGLEUSE_OQ6P: "<>"
 | 
			
		||||
    266, // T___SINGLEUSE_590R: "MSPEED:"
 | 
			
		||||
    226, // T___SINGLEUSE_Z78U: "DSPEED:"
 | 
			
		||||
    216, // T___SINGLEUSE_LLOZ: "<>"
 | 
			
		||||
    216, // T___SINGLEUSE_232C: "<>"
 | 
			
		||||
    337, // T___SINGLEUSE_JFR7: "MANG:"
 | 
			
		||||
    319, // T___SINGLEUSE_3MDX: "DANG:"
 | 
			
		||||
    16,  // T___SINGLEUSE_F9I5: ""
 | 
			
		||||
    153, // T___SINGLEUSE_9L8R: "<>"
 | 
			
		||||
    216, // T___SINGLEUSE_9L8R: "<>"
 | 
			
		||||
    16,  // T___SINGLEUSE_1NKF: ""
 | 
			
		||||
    153, // T___SINGLEUSE_J5UH: "<>"
 | 
			
		||||
    348, // T___SINGLEUSE_NGUK: "R2D"
 | 
			
		||||
    153, // T___SINGLEUSE_4E84: "<>"
 | 
			
		||||
    153, // T___SINGLEUSE_YTAB: "<>"
 | 
			
		||||
    89,  // T___SINGLEUSE_RWCE: "PARAMETERS"
 | 
			
		||||
    131, // T___SINGLEUSE_HMH2: "PRECHARGE"
 | 
			
		||||
    141, // T___SINGLEUSE_PHFD: "<>%"
 | 
			
		||||
    235, // T___SINGLEUSE_H6UX: "BRAKES"
 | 
			
		||||
    153, // T___SINGLEUSE_20H3: "<>"
 | 
			
		||||
    216, // T___SINGLEUSE_J5UH: "<>"
 | 
			
		||||
    416, // T___SINGLEUSE_NGUK: "R2D"
 | 
			
		||||
    216, // T___SINGLEUSE_4E84: "<>"
 | 
			
		||||
    216, // T___SINGLEUSE_YTAB: "<>"
 | 
			
		||||
    152, // T___SINGLEUSE_RWCE: "PARAMETERS"
 | 
			
		||||
    194, // T___SINGLEUSE_HMH2: "PRECHARGE"
 | 
			
		||||
    204, // T___SINGLEUSE_PHFD: "<>%"
 | 
			
		||||
    298, // T___SINGLEUSE_H6UX: "BRAKES"
 | 
			
		||||
    216, // T___SINGLEUSE_20H3: "<>"
 | 
			
		||||
    34,  // T___SINGLEUSE_M5X7: "Invalid Mission"
 | 
			
		||||
    0    // T___SINGLEUSE_6GPV: "Choose a mission"
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@ -63,52 +63,57 @@ KEEP extern const touchgfx::Unicode::UnicodeChar texts_all_languages[] TEXT_LOCA
 | 
			
		||||
    0x43, 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x20, 0x61, 0x20, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0, // @0 "Choose a mission"
 | 
			
		||||
    0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x21, 0x0, // @17 "Invalid Mission!"
 | 
			
		||||
    0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0, // @34 "Invalid Mission"
 | 
			
		||||
    0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x20, 0x44, 0x72, 0x69, 0x76, 0x69, 0x6e, 0x67, 0x0, // @50 "Manual Driving"
 | 
			
		||||
    0x41, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0, // @65 "Acceleration"
 | 
			
		||||
    0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0, // @78 "Inspection"
 | 
			
		||||
    0x50, 0x41, 0x52, 0x41, 0x4d, 0x45, 0x54, 0x45, 0x52, 0x53, 0x0, // @89 "PARAMETERS"
 | 
			
		||||
    0x54, 0x72, 0x61, 0x63, 0x6b, 0x64, 0x72, 0x69, 0x76, 0x65, 0x0, // @100 "Trackdrive"
 | 
			
		||||
    0x41, 0x4d, 0x53, 0x20, 0x45, 0x72, 0x72, 0x4f, 0x72, 0x0, // @111 "AMS ErrOr"
 | 
			
		||||
    0x41, 0x75, 0x74, 0x6f, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x0, // @121 "Autocross"
 | 
			
		||||
    0x50, 0x52, 0x45, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x0, // @131 "PRECHARGE"
 | 
			
		||||
    0x2, 0x25, 0x0, // @141 "<>%"
 | 
			
		||||
    0x45, 0x42, 0x53, 0x20, 0x54, 0x65, 0x73, 0x74, 0x0, // @144 "EBS Test"
 | 
			
		||||
    0x2, 0x0, // @153 "<>"
 | 
			
		||||
    0x41, 0x53, 0x53, 0x54, 0x41, 0x54, 0x45, 0x0, // @155 "ASSTATE"
 | 
			
		||||
    0x44, 0x53, 0x50, 0x45, 0x45, 0x44, 0x3a, 0x0, // @163 "DSPEED:"
 | 
			
		||||
    0x49, 0x43, 0x53, 0x54, 0x41, 0x54, 0x45, 0x0, // @171 "ICSTATE"
 | 
			
		||||
    0x49, 0x4e, 0x56, 0x4c, 0x52, 0x44, 0x59, 0x0, // @179 "INVLRDY"
 | 
			
		||||
    0x49, 0x4e, 0x56, 0x52, 0x52, 0x44, 0x59, 0x0, // @187 "INVRRDY"
 | 
			
		||||
    0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x0, // @195 "MISSION"
 | 
			
		||||
    0x4d, 0x53, 0x50, 0x45, 0x45, 0x44, 0x3a, 0x0, // @203 "MSPEED:"
 | 
			
		||||
    0x52, 0x32, 0x44, 0x50, 0x52, 0x4f, 0x47, 0x0, // @211 "R2DPROG"
 | 
			
		||||
    0x53, 0x6b, 0x69, 0x64, 0x70, 0x61, 0x64, 0x0, // @219 "Skidpad"
 | 
			
		||||
    0x54, 0x53, 0x53, 0x54, 0x41, 0x54, 0x45, 0x0, // @227 "TSSTATE"
 | 
			
		||||
    0x42, 0x52, 0x41, 0x4b, 0x45, 0x53, 0x0, // @235 "BRAKES"
 | 
			
		||||
    0x54, 0x53, 0x56, 0x42, 0x41, 0x54, 0x0, // @242 "TSVBAT"
 | 
			
		||||
    0x54, 0x53, 0x56, 0x56, 0x45, 0x48, 0x0, // @249 "TSVVEH"
 | 
			
		||||
    0x44, 0x41, 0x4e, 0x47, 0x3a, 0x0, // @256 "DANG:"
 | 
			
		||||
    0x45, 0x52, 0x52, 0x4f, 0x52, 0x0, // @262 "ERROR"
 | 
			
		||||
    0x4c, 0x56, 0x53, 0x4f, 0x43, 0x0, // @268 "LVSOC"
 | 
			
		||||
    0x4d, 0x41, 0x4e, 0x47, 0x3a, 0x0, // @274 "MANG:"
 | 
			
		||||
    0x53, 0x50, 0x45, 0x45, 0x44, 0x0, // @280 "SPEED"
 | 
			
		||||
    0x54, 0x53, 0x53, 0x4f, 0x43, 0x0, // @286 "TSSOC"
 | 
			
		||||
    0x42, 0x42, 0x41, 0x4c, 0x0, // @292 "BBAL"
 | 
			
		||||
    0x4c, 0x41, 0x50, 0x53, 0x0, // @297 "LAPS"
 | 
			
		||||
    0x54, 0x4d, 0x41, 0x58, 0x0, // @302 "TMAX"
 | 
			
		||||
    0x54, 0x54, 0x46, 0x4c, 0x0, // @307 "TTFL"
 | 
			
		||||
    0x54, 0x54, 0x46, 0x52, 0x0, // @312 "TTFR"
 | 
			
		||||
    0x54, 0x54, 0x52, 0x4c, 0x0, // @317 "TTRL"
 | 
			
		||||
    0x54, 0x54, 0x52, 0x52, 0x0, // @322 "TTRR"
 | 
			
		||||
    0x56, 0x4d, 0x49, 0x4e, 0x0, // @327 "VMIN"
 | 
			
		||||
    0x41, 0x4d, 0x53, 0x0, // @332 "AMS"
 | 
			
		||||
    0x49, 0x4e, 0x56, 0x0, // @336 "INV"
 | 
			
		||||
    0x49, 0x54, 0x53, 0x0, // @340 "ITS"
 | 
			
		||||
    0x50, 0x44, 0x55, 0x0, // @344 "PDU"
 | 
			
		||||
    0x52, 0x32, 0x44, 0x0, // @348 "R2D"
 | 
			
		||||
    0x53, 0x43, 0x53, 0x0, // @352 "SCS"
 | 
			
		||||
    0x53, 0x44, 0x43, 0x0, // @356 "SDC"
 | 
			
		||||
    0x4c, 0x56, 0x0 // @360 "LV"
 | 
			
		||||
    0x50, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, 0x65, 0x20, 0x41, 0x63, 0x63, 0x20, 0x41, 0x3a, 0x0, // @50 "Pressure Acc A:"
 | 
			
		||||
    0x50, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, 0x65, 0x20, 0x41, 0x63, 0x63, 0x20, 0x42, 0x3a, 0x0, // @66 "Pressure Acc B:"
 | 
			
		||||
    0x50, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, 0x65, 0x20, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x3a, 0x0, // @82 "Pressure Front:"
 | 
			
		||||
    0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x20, 0x44, 0x72, 0x69, 0x76, 0x69, 0x6e, 0x67, 0x0, // @98 "Manual Driving"
 | 
			
		||||
    0x50, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, 0x65, 0x20, 0x52, 0x65, 0x61, 0x72, 0x3a, 0x0, // @113 "Pressure Rear:"
 | 
			
		||||
    0x41, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0, // @128 "Acceleration"
 | 
			
		||||
    0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0, // @141 "Inspection"
 | 
			
		||||
    0x50, 0x41, 0x52, 0x41, 0x4d, 0x45, 0x54, 0x45, 0x52, 0x53, 0x0, // @152 "PARAMETERS"
 | 
			
		||||
    0x54, 0x72, 0x61, 0x63, 0x6b, 0x64, 0x72, 0x69, 0x76, 0x65, 0x0, // @163 "Trackdrive"
 | 
			
		||||
    0x41, 0x4d, 0x53, 0x20, 0x45, 0x72, 0x72, 0x4f, 0x72, 0x0, // @174 "AMS ErrOr"
 | 
			
		||||
    0x41, 0x75, 0x74, 0x6f, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x0, // @184 "Autocross"
 | 
			
		||||
    0x50, 0x52, 0x45, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x0, // @194 "PRECHARGE"
 | 
			
		||||
    0x2, 0x25, 0x0, // @204 "<>%"
 | 
			
		||||
    0x45, 0x42, 0x53, 0x20, 0x54, 0x65, 0x73, 0x74, 0x0, // @207 "EBS Test"
 | 
			
		||||
    0x2, 0x0, // @216 "<>"
 | 
			
		||||
    0x41, 0x53, 0x53, 0x54, 0x41, 0x54, 0x45, 0x0, // @218 "ASSTATE"
 | 
			
		||||
    0x44, 0x53, 0x50, 0x45, 0x45, 0x44, 0x3a, 0x0, // @226 "DSPEED:"
 | 
			
		||||
    0x49, 0x43, 0x53, 0x54, 0x41, 0x54, 0x45, 0x0, // @234 "ICSTATE"
 | 
			
		||||
    0x49, 0x4e, 0x56, 0x4c, 0x52, 0x44, 0x59, 0x0, // @242 "INVLRDY"
 | 
			
		||||
    0x49, 0x4e, 0x56, 0x52, 0x52, 0x44, 0x59, 0x0, // @250 "INVRRDY"
 | 
			
		||||
    0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x0, // @258 "MISSION"
 | 
			
		||||
    0x4d, 0x53, 0x50, 0x45, 0x45, 0x44, 0x3a, 0x0, // @266 "MSPEED:"
 | 
			
		||||
    0x52, 0x32, 0x44, 0x50, 0x52, 0x4f, 0x47, 0x0, // @274 "R2DPROG"
 | 
			
		||||
    0x53, 0x6b, 0x69, 0x64, 0x70, 0x61, 0x64, 0x0, // @282 "Skidpad"
 | 
			
		||||
    0x54, 0x53, 0x53, 0x54, 0x41, 0x54, 0x45, 0x0, // @290 "TSSTATE"
 | 
			
		||||
    0x42, 0x52, 0x41, 0x4b, 0x45, 0x53, 0x0, // @298 "BRAKES"
 | 
			
		||||
    0x54, 0x53, 0x56, 0x42, 0x41, 0x54, 0x0, // @305 "TSVBAT"
 | 
			
		||||
    0x54, 0x53, 0x56, 0x56, 0x45, 0x48, 0x0, // @312 "TSVVEH"
 | 
			
		||||
    0x44, 0x41, 0x4e, 0x47, 0x3a, 0x0, // @319 "DANG:"
 | 
			
		||||
    0x45, 0x52, 0x52, 0x4f, 0x52, 0x0, // @325 "ERROR"
 | 
			
		||||
    0x4c, 0x56, 0x53, 0x4f, 0x43, 0x0, // @331 "LVSOC"
 | 
			
		||||
    0x4d, 0x41, 0x4e, 0x47, 0x3a, 0x0, // @337 "MANG:"
 | 
			
		||||
    0x53, 0x50, 0x45, 0x45, 0x44, 0x0, // @343 "SPEED"
 | 
			
		||||
    0x54, 0x53, 0x53, 0x4f, 0x43, 0x0, // @349 "TSSOC"
 | 
			
		||||
    0x42, 0x42, 0x41, 0x4c, 0x0, // @355 "BBAL"
 | 
			
		||||
    0x49, 0x4e, 0x49, 0x54, 0x0, // @360 "INIT"
 | 
			
		||||
    0x4c, 0x41, 0x50, 0x53, 0x0, // @365 "LAPS"
 | 
			
		||||
    0x54, 0x4d, 0x41, 0x58, 0x0, // @370 "TMAX"
 | 
			
		||||
    0x54, 0x54, 0x46, 0x4c, 0x0, // @375 "TTFL"
 | 
			
		||||
    0x54, 0x54, 0x46, 0x52, 0x0, // @380 "TTFR"
 | 
			
		||||
    0x54, 0x54, 0x52, 0x4c, 0x0, // @385 "TTRL"
 | 
			
		||||
    0x54, 0x54, 0x52, 0x52, 0x0, // @390 "TTRR"
 | 
			
		||||
    0x56, 0x4d, 0x49, 0x4e, 0x0, // @395 "VMIN"
 | 
			
		||||
    0x41, 0x4d, 0x53, 0x0, // @400 "AMS"
 | 
			
		||||
    0x49, 0x4e, 0x56, 0x0, // @404 "INV"
 | 
			
		||||
    0x49, 0x54, 0x53, 0x0, // @408 "ITS"
 | 
			
		||||
    0x50, 0x44, 0x55, 0x0, // @412 "PDU"
 | 
			
		||||
    0x52, 0x32, 0x44, 0x0, // @416 "R2D"
 | 
			
		||||
    0x53, 0x43, 0x53, 0x0, // @420 "SCS"
 | 
			
		||||
    0x53, 0x44, 0x43, 0x0, // @424 "SDC"
 | 
			
		||||
    0x4c, 0x56, 0x0 // @428 "LV"
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
TEXT_LOCATION_FLASH_PRAGMA
 | 
			
		||||
 | 
			
		||||
@ -82,6 +82,16 @@ 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 },
 | 
			
		||||
    { 1, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
 | 
			
		||||
    { 1, touchgfx::RIGHT, touchgfx::TEXT_DIRECTION_LTR },
 | 
			
		||||
    { 2, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
 | 
			
		||||
    { 2, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
 | 
			
		||||
    { 7, touchgfx::RIGHT, touchgfx::TEXT_DIRECTION_LTR },
 | 
			
		||||
    { 7, touchgfx::RIGHT, touchgfx::TEXT_DIRECTION_LTR },
 | 
			
		||||
    { 7, touchgfx::RIGHT, touchgfx::TEXT_DIRECTION_LTR },
 | 
			
		||||
    { 7, touchgfx::RIGHT, touchgfx::TEXT_DIRECTION_LTR },
 | 
			
		||||
    { 2, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
 | 
			
		||||
    { 2, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
 | 
			
		||||
    { 7, touchgfx::RIGHT, touchgfx::TEXT_DIRECTION_LTR },
 | 
			
		||||
    { 7, touchgfx::RIGHT, touchgfx::TEXT_DIRECTION_LTR },
 | 
			
		||||
    { 2, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
 | 
			
		||||
@ -159,6 +169,16 @@ 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 },
 | 
			
		||||
    { 1, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
 | 
			
		||||
    { 1, touchgfx::RIGHT, touchgfx::TEXT_DIRECTION_LTR },
 | 
			
		||||
    { 2, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
 | 
			
		||||
    { 2, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
 | 
			
		||||
    { 7, touchgfx::RIGHT, touchgfx::TEXT_DIRECTION_LTR },
 | 
			
		||||
    { 7, touchgfx::RIGHT, touchgfx::TEXT_DIRECTION_LTR },
 | 
			
		||||
    { 7, touchgfx::RIGHT, touchgfx::TEXT_DIRECTION_LTR },
 | 
			
		||||
    { 7, touchgfx::RIGHT, touchgfx::TEXT_DIRECTION_LTR },
 | 
			
		||||
    { 2, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
 | 
			
		||||
    { 2, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
 | 
			
		||||
    { 7, touchgfx::RIGHT, touchgfx::TEXT_DIRECTION_LTR },
 | 
			
		||||
    { 7, touchgfx::RIGHT, touchgfx::TEXT_DIRECTION_LTR },
 | 
			
		||||
    { 2, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
 | 
			
		||||
 | 
			
		||||
@ -30,6 +30,8 @@ public:
 | 
			
		||||
  virtual void tearDownScreen();
 | 
			
		||||
 | 
			
		||||
  void setMission(Mission mission);
 | 
			
		||||
  void setASState(ASState state);
 | 
			
		||||
  void setIniChkState(IniChkState state);
 | 
			
		||||
 | 
			
		||||
  void updateDataFields();
 | 
			
		||||
  void setJetsonTimeout(bool timeout);
 | 
			
		||||
@ -38,11 +40,17 @@ public:
 | 
			
		||||
  void setConePositions(ConePosition *positions, size_t count);
 | 
			
		||||
 | 
			
		||||
protected:
 | 
			
		||||
  AMIDataField paField;
 | 
			
		||||
  AMIDataField pbField;
 | 
			
		||||
  AMIDataField pfField;
 | 
			
		||||
  AMIDataField prField;
 | 
			
		||||
 | 
			
		||||
  AMIDataField desiredAngleField;
 | 
			
		||||
  AMIDataField measuredAngleField;
 | 
			
		||||
  AMIDataField desiredSpeedField;
 | 
			
		||||
  AMIDataField measuredSpeedField;
 | 
			
		||||
 | 
			
		||||
  touchgfx::Unicode::UnicodeChar progressBuffer[16];
 | 
			
		||||
  touchgfx::Shape<3> cones[NUM_CONES] = {cone0, cone1, cone2, cone3, cone4,
 | 
			
		||||
                                         cone5, cone6, cone7, cone8, cone9};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@ -1,9 +1,12 @@
 | 
			
		||||
#include <gui/ami_screen/AMIPresenter.hpp>
 | 
			
		||||
#include <gui/ami_screen/AMIView.hpp>
 | 
			
		||||
 | 
			
		||||
#include "stm32h7xx_hal.h"
 | 
			
		||||
#include "vehicle_state.h"
 | 
			
		||||
 | 
			
		||||
#ifndef SIMULATOR
 | 
			
		||||
#include "stm32h7xx_hal.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
AMIPresenter::AMIPresenter(AMIView &v) : view(v) {}
 | 
			
		||||
 | 
			
		||||
void AMIPresenter::activate() { vehicleStateUpdated(); }
 | 
			
		||||
@ -12,6 +15,7 @@ void AMIPresenter::deactivate() {}
 | 
			
		||||
 | 
			
		||||
void AMIPresenter::vehicleStateUpdated() {
 | 
			
		||||
  view.setMission(vehicle_state.active_mission);
 | 
			
		||||
  view.setASState(vehicle_state.as_state);
 | 
			
		||||
  view.updateDataFields();
 | 
			
		||||
#ifndef SIMULATOR
 | 
			
		||||
  view.setJetsonTimeout(HAL_GetTick() - vehicle_state.last_jetson_msg > 500);
 | 
			
		||||
 | 
			
		||||
@ -1,3 +1,6 @@
 | 
			
		||||
#include <gui/ami_screen/AMIView.hpp>
 | 
			
		||||
 | 
			
		||||
#include "gui/containers/DriverViewStatusItem.hpp"
 | 
			
		||||
#include "gui_generated/ami_screen/AMIViewBase.hpp"
 | 
			
		||||
#include "stw_defines.h"
 | 
			
		||||
#include "texts/TextKeysAndLanguages.hpp"
 | 
			
		||||
@ -6,7 +9,6 @@
 | 
			
		||||
#include "touchgfx/Unicode.hpp"
 | 
			
		||||
#include "touchgfx/widgets/TextAreaWithWildcard.hpp"
 | 
			
		||||
#include "vehicle_state.h"
 | 
			
		||||
#include <gui/ami_screen/AMIView.hpp>
 | 
			
		||||
 | 
			
		||||
AMIDataField::AMIDataField(touchgfx::TextAreaWithOneWildcard &textArea,
 | 
			
		||||
                           const char *fmt)
 | 
			
		||||
@ -19,7 +21,9 @@ void AMIDataField::setValue(float value) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
AMIView::AMIView()
 | 
			
		||||
    : AMIViewBase(), desiredAngleField(desiredAngle, "%5.2f"),
 | 
			
		||||
    : AMIViewBase(), paField(pressA, "%5.1f"), pbField(pressB, "%5.1f"),
 | 
			
		||||
      pfField(pressFront, "%5.1f"), prField(pressRear, "%5.1f"),
 | 
			
		||||
      desiredAngleField(desiredAngle, "%5.2f"),
 | 
			
		||||
      measuredAngleField(measuredAngle, "%5.2f"),
 | 
			
		||||
      desiredSpeedField(desiredSpeed, "%5.1f"),
 | 
			
		||||
      measuredSpeedField(measuredSpeed, "%5.1f") {}
 | 
			
		||||
@ -57,7 +61,79 @@ void AMIView::setMission(Mission mission) {
 | 
			
		||||
  currentMission.invalidate();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void AMIView::setASState(ASState state) {
 | 
			
		||||
  if (state == AS_READY || state == AS_DRIVING) {
 | 
			
		||||
    init.setVisible(false);
 | 
			
		||||
    driving.setVisible(true);
 | 
			
		||||
  } else {
 | 
			
		||||
    init.setVisible(true);
 | 
			
		||||
    driving.setVisible(false);
 | 
			
		||||
  }
 | 
			
		||||
  init.invalidate();
 | 
			
		||||
  driving.invalidate();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void AMIView::setIniChkState(IniChkState state) {
 | 
			
		||||
  if (state == INICHK_ERROR) {
 | 
			
		||||
    progressBar.setColor(DriverViewStatusItem::COLOR_ERROR);
 | 
			
		||||
    progressBar.setValue(100);
 | 
			
		||||
  } else {
 | 
			
		||||
    if (state == INICHK_WAIT_TS) {
 | 
			
		||||
      progressBar.setColor(DriverViewStatusItem::COLOR_TS);
 | 
			
		||||
    } else {
 | 
			
		||||
      progressBar.setColor(DriverViewStatusItem::COLOR_OK);
 | 
			
		||||
    }
 | 
			
		||||
    float prog = ((float)vehicle_state.ini_chk_state) / INICHK_DONE;
 | 
			
		||||
    progressBar.setValue(prog * 100);
 | 
			
		||||
  }
 | 
			
		||||
  progressBar.invalidate();
 | 
			
		||||
 | 
			
		||||
  const char *label;
 | 
			
		||||
  switch (vehicle_state.ini_chk_state) {
 | 
			
		||||
  case INICHK_START:
 | 
			
		||||
    label = "START";
 | 
			
		||||
    break;
 | 
			
		||||
  case INICHK_WD_CHECK:
 | 
			
		||||
    label = "WD CHK";
 | 
			
		||||
    break;
 | 
			
		||||
  case INICHK_WD_OK:
 | 
			
		||||
    label = "WD OK";
 | 
			
		||||
    break;
 | 
			
		||||
  case INICHK_ASB_CHECK_1:
 | 
			
		||||
    label = "ASB CHK 1";
 | 
			
		||||
    break;
 | 
			
		||||
  case INICHK_ASB_CHECK_2:
 | 
			
		||||
    label = "ASB CHK 2";
 | 
			
		||||
    break;
 | 
			
		||||
  case INICHK_WAIT_TS:
 | 
			
		||||
    label = "WAIT TS";
 | 
			
		||||
    break;
 | 
			
		||||
  case INICHK_EBS_CHECK_A:
 | 
			
		||||
    label = "EBS CHK A";
 | 
			
		||||
    break;
 | 
			
		||||
  case INICHK_EBS_CHECK_B:
 | 
			
		||||
    label = "EBS CHK B";
 | 
			
		||||
    break;
 | 
			
		||||
  case INICHK_DONE:
 | 
			
		||||
    label = "DONE";
 | 
			
		||||
    break;
 | 
			
		||||
  case INICHK_ERROR:
 | 
			
		||||
    label = "ERROR";
 | 
			
		||||
    break;
 | 
			
		||||
  }
 | 
			
		||||
  touchgfx::Unicode::strncpy(progressBuffer, label,
 | 
			
		||||
                             sizeof(progressBuffer) / sizeof(*progressBuffer));
 | 
			
		||||
  progressLabel.setWildcard(progressBuffer);
 | 
			
		||||
  progressLabel.invalidate();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void AMIView::updateDataFields() {
 | 
			
		||||
  // TODO: Accumulator pressures aren't transmitted yet
 | 
			
		||||
  paField.setValue(0);
 | 
			
		||||
  pbField.setValue(0);
 | 
			
		||||
  pfField.setValue(vehicle_state.brake_press_f);
 | 
			
		||||
  prField.setValue(vehicle_state.brake_press_r);
 | 
			
		||||
 | 
			
		||||
  desiredAngleField.setValue(vehicle_state.desired_angle);
 | 
			
		||||
  measuredAngleField.setValue(vehicle_state.measured_angle);
 | 
			
		||||
  desiredSpeedField.setValue(vehicle_state.desired_speed);
 | 
			
		||||
 | 
			
		||||
@ -223,395 +223,588 @@
 | 
			
		||||
              "Blue": 31
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "Type": "TextArea",
 | 
			
		||||
            "Name": "textArea1",
 | 
			
		||||
            "X": 273,
 | 
			
		||||
            "Y": 103,
 | 
			
		||||
            "Width": 84,
 | 
			
		||||
            "Height": 24,
 | 
			
		||||
            "TextId": "__SingleUse_3MDX",
 | 
			
		||||
            "TextRotation": "0",
 | 
			
		||||
            "Color": {
 | 
			
		||||
              "Red": 255,
 | 
			
		||||
              "Green": 255,
 | 
			
		||||
              "Blue": 255
 | 
			
		||||
            },
 | 
			
		||||
            "AutoSize": true
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "Type": "TextArea",
 | 
			
		||||
            "Name": "textArea2",
 | 
			
		||||
            "X": 273,
 | 
			
		||||
            "Y": 135,
 | 
			
		||||
            "Width": 85,
 | 
			
		||||
            "Height": 24,
 | 
			
		||||
            "TextId": "__SingleUse_JFR7",
 | 
			
		||||
            "TextRotation": "0",
 | 
			
		||||
            "Color": {
 | 
			
		||||
              "Red": 255,
 | 
			
		||||
              "Green": 255,
 | 
			
		||||
              "Blue": 255
 | 
			
		||||
            },
 | 
			
		||||
            "AutoSize": true
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "Type": "TextArea",
 | 
			
		||||
            "Name": "desiredAngle",
 | 
			
		||||
            "X": 405,
 | 
			
		||||
            "Y": 104,
 | 
			
		||||
            "Width": 60,
 | 
			
		||||
            "Height": 23,
 | 
			
		||||
            "TextId": "__SingleUse_232C",
 | 
			
		||||
            "TextRotation": "0",
 | 
			
		||||
            "Color": {
 | 
			
		||||
              "Red": 255,
 | 
			
		||||
              "Green": 255,
 | 
			
		||||
              "Blue": 255
 | 
			
		||||
            },
 | 
			
		||||
            "Wildcard1": {}
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "Type": "TextArea",
 | 
			
		||||
            "Name": "measuredAngle",
 | 
			
		||||
            "X": 405,
 | 
			
		||||
            "Y": 136,
 | 
			
		||||
            "Width": 60,
 | 
			
		||||
            "Height": 23,
 | 
			
		||||
            "TextId": "__SingleUse_LLOZ",
 | 
			
		||||
            "TextRotation": "0",
 | 
			
		||||
            "Color": {
 | 
			
		||||
              "Red": 255,
 | 
			
		||||
              "Green": 255,
 | 
			
		||||
              "Blue": 255
 | 
			
		||||
            },
 | 
			
		||||
            "Wildcard1": {}
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "Type": "TextArea",
 | 
			
		||||
            "Name": "measuredSpeed",
 | 
			
		||||
            "X": 405,
 | 
			
		||||
            "Y": 199,
 | 
			
		||||
            "Width": 60,
 | 
			
		||||
            "Height": 23,
 | 
			
		||||
            "TextId": "__SingleUse_2S21",
 | 
			
		||||
            "TextRotation": "0",
 | 
			
		||||
            "Color": {
 | 
			
		||||
              "Red": 255,
 | 
			
		||||
              "Green": 255,
 | 
			
		||||
              "Blue": 255
 | 
			
		||||
            },
 | 
			
		||||
            "Wildcard1": {}
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "Type": "TextArea",
 | 
			
		||||
            "Name": "desiredSpeed",
 | 
			
		||||
            "X": 405,
 | 
			
		||||
            "Y": 167,
 | 
			
		||||
            "Width": 60,
 | 
			
		||||
            "Height": 23,
 | 
			
		||||
            "TextId": "__SingleUse_OQ6P",
 | 
			
		||||
            "TextRotation": "0",
 | 
			
		||||
            "Color": {
 | 
			
		||||
              "Red": 255,
 | 
			
		||||
              "Green": 255,
 | 
			
		||||
              "Blue": 255
 | 
			
		||||
            },
 | 
			
		||||
            "Wildcard1": {}
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "Type": "TextArea",
 | 
			
		||||
            "Name": "textArea4",
 | 
			
		||||
            "X": 273,
 | 
			
		||||
            "Y": 198,
 | 
			
		||||
            "Width": 129,
 | 
			
		||||
            "Height": 24,
 | 
			
		||||
            "TextId": "__SingleUse_590R",
 | 
			
		||||
            "TextRotation": "0",
 | 
			
		||||
            "Color": {
 | 
			
		||||
              "Red": 255,
 | 
			
		||||
              "Green": 255,
 | 
			
		||||
              "Blue": 255
 | 
			
		||||
            },
 | 
			
		||||
            "AutoSize": true
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "Type": "TextArea",
 | 
			
		||||
            "Name": "textArea3",
 | 
			
		||||
            "X": 273,
 | 
			
		||||
            "Y": 166,
 | 
			
		||||
            "Width": 128,
 | 
			
		||||
            "Height": 24,
 | 
			
		||||
            "TextId": "__SingleUse_Z78U",
 | 
			
		||||
            "TextRotation": "0",
 | 
			
		||||
            "Color": {
 | 
			
		||||
              "Red": 255,
 | 
			
		||||
              "Green": 255,
 | 
			
		||||
              "Blue": 255
 | 
			
		||||
            },
 | 
			
		||||
            "AutoSize": true
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "Type": "Container",
 | 
			
		||||
            "Name": "map",
 | 
			
		||||
            "X": 15,
 | 
			
		||||
            "Y": 103,
 | 
			
		||||
            "Width": 255,
 | 
			
		||||
            "Height": 202,
 | 
			
		||||
            "Name": "driving",
 | 
			
		||||
            "Width": 480,
 | 
			
		||||
            "Height": 320,
 | 
			
		||||
            "Visible": false,
 | 
			
		||||
            "Components": [
 | 
			
		||||
              {
 | 
			
		||||
                "Type": "Shape",
 | 
			
		||||
                "Name": "cone0",
 | 
			
		||||
                "Width": 10,
 | 
			
		||||
                "Height": 10,
 | 
			
		||||
                "Visible": false,
 | 
			
		||||
                "Color": {
 | 
			
		||||
                  "Red": 255,
 | 
			
		||||
                  "Green": 255
 | 
			
		||||
                },
 | 
			
		||||
                "Points": [
 | 
			
		||||
                  {},
 | 
			
		||||
                  {
 | 
			
		||||
                    "X": 10.0,
 | 
			
		||||
                    "Y": 5.0
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "Y": 10.0
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "XScale": 1.0,
 | 
			
		||||
                "YScale": 1.0
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "Type": "Shape",
 | 
			
		||||
                "Name": "cone1",
 | 
			
		||||
                "Width": 10,
 | 
			
		||||
                "Height": 10,
 | 
			
		||||
                "Visible": false,
 | 
			
		||||
                "Color": {
 | 
			
		||||
                  "Red": 255,
 | 
			
		||||
                  "Green": 255
 | 
			
		||||
                },
 | 
			
		||||
                "Points": [
 | 
			
		||||
                  {},
 | 
			
		||||
                  {
 | 
			
		||||
                    "X": 10.0,
 | 
			
		||||
                    "Y": 5.0
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "Y": 10.0
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "XScale": 1.0,
 | 
			
		||||
                "YScale": 1.0
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "Type": "Shape",
 | 
			
		||||
                "Name": "cone2",
 | 
			
		||||
                "Width": 10,
 | 
			
		||||
                "Height": 10,
 | 
			
		||||
                "Visible": false,
 | 
			
		||||
                "Color": {
 | 
			
		||||
                  "Red": 255,
 | 
			
		||||
                  "Green": 255
 | 
			
		||||
                },
 | 
			
		||||
                "Points": [
 | 
			
		||||
                  {},
 | 
			
		||||
                  {
 | 
			
		||||
                    "X": 10.0,
 | 
			
		||||
                    "Y": 5.0
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "Y": 10.0
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "XScale": 1.0,
 | 
			
		||||
                "YScale": 1.0
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "Type": "Shape",
 | 
			
		||||
                "Name": "cone3",
 | 
			
		||||
                "Width": 10,
 | 
			
		||||
                "Height": 10,
 | 
			
		||||
                "Visible": false,
 | 
			
		||||
                "Color": {
 | 
			
		||||
                  "Red": 255,
 | 
			
		||||
                  "Green": 255
 | 
			
		||||
                },
 | 
			
		||||
                "Points": [
 | 
			
		||||
                  {},
 | 
			
		||||
                  {
 | 
			
		||||
                    "X": 10.0,
 | 
			
		||||
                    "Y": 5.0
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "Y": 10.0
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "XScale": 1.0,
 | 
			
		||||
                "YScale": 1.0
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "Type": "Shape",
 | 
			
		||||
                "Name": "cone4",
 | 
			
		||||
                "Width": 10,
 | 
			
		||||
                "Height": 10,
 | 
			
		||||
                "Visible": false,
 | 
			
		||||
                "Color": {
 | 
			
		||||
                  "Red": 255,
 | 
			
		||||
                  "Green": 255
 | 
			
		||||
                },
 | 
			
		||||
                "Points": [
 | 
			
		||||
                  {},
 | 
			
		||||
                  {
 | 
			
		||||
                    "X": 10.0,
 | 
			
		||||
                    "Y": 5.0
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "Y": 10.0
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "XScale": 1.0,
 | 
			
		||||
                "YScale": 1.0
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "Type": "Shape",
 | 
			
		||||
                "Name": "cone5",
 | 
			
		||||
                "Width": 10,
 | 
			
		||||
                "Height": 10,
 | 
			
		||||
                "Visible": false,
 | 
			
		||||
                "Color": {
 | 
			
		||||
                  "Red": 255,
 | 
			
		||||
                  "Green": 255
 | 
			
		||||
                },
 | 
			
		||||
                "Points": [
 | 
			
		||||
                  {},
 | 
			
		||||
                  {
 | 
			
		||||
                    "X": 10.0,
 | 
			
		||||
                    "Y": 5.0
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "Y": 10.0
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "XScale": 1.0,
 | 
			
		||||
                "YScale": 1.0
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "Type": "Shape",
 | 
			
		||||
                "Name": "cone6",
 | 
			
		||||
                "Width": 10,
 | 
			
		||||
                "Height": 10,
 | 
			
		||||
                "Visible": false,
 | 
			
		||||
                "Color": {
 | 
			
		||||
                  "Red": 255,
 | 
			
		||||
                  "Green": 255
 | 
			
		||||
                },
 | 
			
		||||
                "Points": [
 | 
			
		||||
                  {},
 | 
			
		||||
                  {
 | 
			
		||||
                    "X": 10.0,
 | 
			
		||||
                    "Y": 5.0
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "Y": 10.0
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "XScale": 1.0,
 | 
			
		||||
                "YScale": 1.0
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "Type": "Shape",
 | 
			
		||||
                "Name": "cone7",
 | 
			
		||||
                "Width": 10,
 | 
			
		||||
                "Height": 10,
 | 
			
		||||
                "Visible": false,
 | 
			
		||||
                "Color": {
 | 
			
		||||
                  "Red": 255,
 | 
			
		||||
                  "Green": 255
 | 
			
		||||
                },
 | 
			
		||||
                "Points": [
 | 
			
		||||
                  {},
 | 
			
		||||
                  {
 | 
			
		||||
                    "X": 10.0,
 | 
			
		||||
                    "Y": 5.0
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "Y": 10.0
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "XScale": 1.0,
 | 
			
		||||
                "YScale": 1.0
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "Type": "Shape",
 | 
			
		||||
                "Name": "cone8",
 | 
			
		||||
                "Width": 10,
 | 
			
		||||
                "Height": 10,
 | 
			
		||||
                "Visible": false,
 | 
			
		||||
                "Color": {
 | 
			
		||||
                  "Red": 255,
 | 
			
		||||
                  "Green": 255
 | 
			
		||||
                },
 | 
			
		||||
                "Points": [
 | 
			
		||||
                  {},
 | 
			
		||||
                  {
 | 
			
		||||
                    "X": 10.0,
 | 
			
		||||
                    "Y": 5.0
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "Y": 10.0
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "XScale": 1.0,
 | 
			
		||||
                "YScale": 1.0
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "Type": "Shape",
 | 
			
		||||
                "Name": "cone9",
 | 
			
		||||
                "Width": 10,
 | 
			
		||||
                "Height": 10,
 | 
			
		||||
                "Visible": false,
 | 
			
		||||
                "Color": {
 | 
			
		||||
                  "Red": 255,
 | 
			
		||||
                  "Green": 255
 | 
			
		||||
                },
 | 
			
		||||
                "Points": [
 | 
			
		||||
                  {},
 | 
			
		||||
                  {
 | 
			
		||||
                    "X": 10.0,
 | 
			
		||||
                    "Y": 5.0
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "Y": 10.0
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "XScale": 1.0,
 | 
			
		||||
                "YScale": 1.0
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "Type": "Shape",
 | 
			
		||||
                "Name": "ft",
 | 
			
		||||
                "Y": 91,
 | 
			
		||||
                "Width": 20,
 | 
			
		||||
                "Height": 20,
 | 
			
		||||
                "Type": "TextArea",
 | 
			
		||||
                "Name": "textArea1",
 | 
			
		||||
                "X": 273,
 | 
			
		||||
                "Y": 103,
 | 
			
		||||
                "Width": 84,
 | 
			
		||||
                "Height": 24,
 | 
			
		||||
                "TextId": "__SingleUse_3MDX",
 | 
			
		||||
                "TextRotation": "0",
 | 
			
		||||
                "Color": {
 | 
			
		||||
                  "Red": 255,
 | 
			
		||||
                  "Green": 255,
 | 
			
		||||
                  "Blue": 255
 | 
			
		||||
                },
 | 
			
		||||
                "Points": [
 | 
			
		||||
                  {},
 | 
			
		||||
                "AutoSize": true
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "Type": "TextArea",
 | 
			
		||||
                "Name": "textArea2",
 | 
			
		||||
                "X": 273,
 | 
			
		||||
                "Y": 135,
 | 
			
		||||
                "Width": 85,
 | 
			
		||||
                "Height": 24,
 | 
			
		||||
                "TextId": "__SingleUse_JFR7",
 | 
			
		||||
                "TextRotation": "0",
 | 
			
		||||
                "Color": {
 | 
			
		||||
                  "Red": 255,
 | 
			
		||||
                  "Green": 255,
 | 
			
		||||
                  "Blue": 255
 | 
			
		||||
                },
 | 
			
		||||
                "AutoSize": true
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "Type": "TextArea",
 | 
			
		||||
                "Name": "desiredAngle",
 | 
			
		||||
                "X": 405,
 | 
			
		||||
                "Y": 104,
 | 
			
		||||
                "Width": 60,
 | 
			
		||||
                "Height": 23,
 | 
			
		||||
                "TextId": "__SingleUse_232C",
 | 
			
		||||
                "TextRotation": "0",
 | 
			
		||||
                "Color": {
 | 
			
		||||
                  "Red": 255,
 | 
			
		||||
                  "Green": 255,
 | 
			
		||||
                  "Blue": 255
 | 
			
		||||
                },
 | 
			
		||||
                "Wildcard1": {}
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "Type": "TextArea",
 | 
			
		||||
                "Name": "measuredAngle",
 | 
			
		||||
                "X": 405,
 | 
			
		||||
                "Y": 136,
 | 
			
		||||
                "Width": 60,
 | 
			
		||||
                "Height": 23,
 | 
			
		||||
                "TextId": "__SingleUse_LLOZ",
 | 
			
		||||
                "TextRotation": "0",
 | 
			
		||||
                "Color": {
 | 
			
		||||
                  "Red": 255,
 | 
			
		||||
                  "Green": 255,
 | 
			
		||||
                  "Blue": 255
 | 
			
		||||
                },
 | 
			
		||||
                "Wildcard1": {}
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "Type": "TextArea",
 | 
			
		||||
                "Name": "measuredSpeed",
 | 
			
		||||
                "X": 405,
 | 
			
		||||
                "Y": 199,
 | 
			
		||||
                "Width": 60,
 | 
			
		||||
                "Height": 23,
 | 
			
		||||
                "TextId": "__SingleUse_2S21",
 | 
			
		||||
                "TextRotation": "0",
 | 
			
		||||
                "Color": {
 | 
			
		||||
                  "Red": 255,
 | 
			
		||||
                  "Green": 255,
 | 
			
		||||
                  "Blue": 255
 | 
			
		||||
                },
 | 
			
		||||
                "Wildcard1": {}
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "Type": "TextArea",
 | 
			
		||||
                "Name": "desiredSpeed",
 | 
			
		||||
                "X": 405,
 | 
			
		||||
                "Y": 167,
 | 
			
		||||
                "Width": 60,
 | 
			
		||||
                "Height": 23,
 | 
			
		||||
                "TextId": "__SingleUse_OQ6P",
 | 
			
		||||
                "TextRotation": "0",
 | 
			
		||||
                "Color": {
 | 
			
		||||
                  "Red": 255,
 | 
			
		||||
                  "Green": 255,
 | 
			
		||||
                  "Blue": 255
 | 
			
		||||
                },
 | 
			
		||||
                "Wildcard1": {}
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "Type": "TextArea",
 | 
			
		||||
                "Name": "textArea4",
 | 
			
		||||
                "X": 273,
 | 
			
		||||
                "Y": 198,
 | 
			
		||||
                "Width": 129,
 | 
			
		||||
                "Height": 24,
 | 
			
		||||
                "TextId": "__SingleUse_590R",
 | 
			
		||||
                "TextRotation": "0",
 | 
			
		||||
                "Color": {
 | 
			
		||||
                  "Red": 255,
 | 
			
		||||
                  "Green": 255,
 | 
			
		||||
                  "Blue": 255
 | 
			
		||||
                },
 | 
			
		||||
                "AutoSize": true
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "Type": "TextArea",
 | 
			
		||||
                "Name": "textArea3",
 | 
			
		||||
                "X": 273,
 | 
			
		||||
                "Y": 166,
 | 
			
		||||
                "Width": 128,
 | 
			
		||||
                "Height": 24,
 | 
			
		||||
                "TextId": "__SingleUse_Z78U",
 | 
			
		||||
                "TextRotation": "0",
 | 
			
		||||
                "Color": {
 | 
			
		||||
                  "Red": 255,
 | 
			
		||||
                  "Green": 255,
 | 
			
		||||
                  "Blue": 255
 | 
			
		||||
                },
 | 
			
		||||
                "AutoSize": true
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "Type": "Container",
 | 
			
		||||
                "Name": "map",
 | 
			
		||||
                "X": 15,
 | 
			
		||||
                "Y": 103,
 | 
			
		||||
                "Width": 255,
 | 
			
		||||
                "Height": 202,
 | 
			
		||||
                "Components": [
 | 
			
		||||
                  {
 | 
			
		||||
                    "X": 20.0,
 | 
			
		||||
                    "Y": 10.0
 | 
			
		||||
                    "Type": "Shape",
 | 
			
		||||
                    "Name": "cone0",
 | 
			
		||||
                    "Width": 10,
 | 
			
		||||
                    "Height": 10,
 | 
			
		||||
                    "Visible": false,
 | 
			
		||||
                    "Color": {
 | 
			
		||||
                      "Red": 255,
 | 
			
		||||
                      "Green": 255
 | 
			
		||||
                    },
 | 
			
		||||
                    "Points": [
 | 
			
		||||
                      {},
 | 
			
		||||
                      {
 | 
			
		||||
                        "X": 10.0,
 | 
			
		||||
                        "Y": 5.0
 | 
			
		||||
                      },
 | 
			
		||||
                      {
 | 
			
		||||
                        "Y": 10.0
 | 
			
		||||
                      }
 | 
			
		||||
                    ],
 | 
			
		||||
                    "XScale": 1.0,
 | 
			
		||||
                    "YScale": 1.0
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "Y": 20.0
 | 
			
		||||
                    "Type": "Shape",
 | 
			
		||||
                    "Name": "cone1",
 | 
			
		||||
                    "Width": 10,
 | 
			
		||||
                    "Height": 10,
 | 
			
		||||
                    "Visible": false,
 | 
			
		||||
                    "Color": {
 | 
			
		||||
                      "Red": 255,
 | 
			
		||||
                      "Green": 255
 | 
			
		||||
                    },
 | 
			
		||||
                    "Points": [
 | 
			
		||||
                      {},
 | 
			
		||||
                      {
 | 
			
		||||
                        "X": 10.0,
 | 
			
		||||
                        "Y": 5.0
 | 
			
		||||
                      },
 | 
			
		||||
                      {
 | 
			
		||||
                        "Y": 10.0
 | 
			
		||||
                      }
 | 
			
		||||
                    ],
 | 
			
		||||
                    "XScale": 1.0,
 | 
			
		||||
                    "YScale": 1.0
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "Type": "Shape",
 | 
			
		||||
                    "Name": "cone2",
 | 
			
		||||
                    "Width": 10,
 | 
			
		||||
                    "Height": 10,
 | 
			
		||||
                    "Visible": false,
 | 
			
		||||
                    "Color": {
 | 
			
		||||
                      "Red": 255,
 | 
			
		||||
                      "Green": 255
 | 
			
		||||
                    },
 | 
			
		||||
                    "Points": [
 | 
			
		||||
                      {},
 | 
			
		||||
                      {
 | 
			
		||||
                        "X": 10.0,
 | 
			
		||||
                        "Y": 5.0
 | 
			
		||||
                      },
 | 
			
		||||
                      {
 | 
			
		||||
                        "Y": 10.0
 | 
			
		||||
                      }
 | 
			
		||||
                    ],
 | 
			
		||||
                    "XScale": 1.0,
 | 
			
		||||
                    "YScale": 1.0
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "Type": "Shape",
 | 
			
		||||
                    "Name": "cone3",
 | 
			
		||||
                    "Width": 10,
 | 
			
		||||
                    "Height": 10,
 | 
			
		||||
                    "Visible": false,
 | 
			
		||||
                    "Color": {
 | 
			
		||||
                      "Red": 255,
 | 
			
		||||
                      "Green": 255
 | 
			
		||||
                    },
 | 
			
		||||
                    "Points": [
 | 
			
		||||
                      {},
 | 
			
		||||
                      {
 | 
			
		||||
                        "X": 10.0,
 | 
			
		||||
                        "Y": 5.0
 | 
			
		||||
                      },
 | 
			
		||||
                      {
 | 
			
		||||
                        "Y": 10.0
 | 
			
		||||
                      }
 | 
			
		||||
                    ],
 | 
			
		||||
                    "XScale": 1.0,
 | 
			
		||||
                    "YScale": 1.0
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "Type": "Shape",
 | 
			
		||||
                    "Name": "cone4",
 | 
			
		||||
                    "Width": 10,
 | 
			
		||||
                    "Height": 10,
 | 
			
		||||
                    "Visible": false,
 | 
			
		||||
                    "Color": {
 | 
			
		||||
                      "Red": 255,
 | 
			
		||||
                      "Green": 255
 | 
			
		||||
                    },
 | 
			
		||||
                    "Points": [
 | 
			
		||||
                      {},
 | 
			
		||||
                      {
 | 
			
		||||
                        "X": 10.0,
 | 
			
		||||
                        "Y": 5.0
 | 
			
		||||
                      },
 | 
			
		||||
                      {
 | 
			
		||||
                        "Y": 10.0
 | 
			
		||||
                      }
 | 
			
		||||
                    ],
 | 
			
		||||
                    "XScale": 1.0,
 | 
			
		||||
                    "YScale": 1.0
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "Type": "Shape",
 | 
			
		||||
                    "Name": "cone5",
 | 
			
		||||
                    "Width": 10,
 | 
			
		||||
                    "Height": 10,
 | 
			
		||||
                    "Visible": false,
 | 
			
		||||
                    "Color": {
 | 
			
		||||
                      "Red": 255,
 | 
			
		||||
                      "Green": 255
 | 
			
		||||
                    },
 | 
			
		||||
                    "Points": [
 | 
			
		||||
                      {},
 | 
			
		||||
                      {
 | 
			
		||||
                        "X": 10.0,
 | 
			
		||||
                        "Y": 5.0
 | 
			
		||||
                      },
 | 
			
		||||
                      {
 | 
			
		||||
                        "Y": 10.0
 | 
			
		||||
                      }
 | 
			
		||||
                    ],
 | 
			
		||||
                    "XScale": 1.0,
 | 
			
		||||
                    "YScale": 1.0
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "Type": "Shape",
 | 
			
		||||
                    "Name": "cone6",
 | 
			
		||||
                    "Width": 10,
 | 
			
		||||
                    "Height": 10,
 | 
			
		||||
                    "Visible": false,
 | 
			
		||||
                    "Color": {
 | 
			
		||||
                      "Red": 255,
 | 
			
		||||
                      "Green": 255
 | 
			
		||||
                    },
 | 
			
		||||
                    "Points": [
 | 
			
		||||
                      {},
 | 
			
		||||
                      {
 | 
			
		||||
                        "X": 10.0,
 | 
			
		||||
                        "Y": 5.0
 | 
			
		||||
                      },
 | 
			
		||||
                      {
 | 
			
		||||
                        "Y": 10.0
 | 
			
		||||
                      }
 | 
			
		||||
                    ],
 | 
			
		||||
                    "XScale": 1.0,
 | 
			
		||||
                    "YScale": 1.0
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "Type": "Shape",
 | 
			
		||||
                    "Name": "cone7",
 | 
			
		||||
                    "Width": 10,
 | 
			
		||||
                    "Height": 10,
 | 
			
		||||
                    "Visible": false,
 | 
			
		||||
                    "Color": {
 | 
			
		||||
                      "Red": 255,
 | 
			
		||||
                      "Green": 255
 | 
			
		||||
                    },
 | 
			
		||||
                    "Points": [
 | 
			
		||||
                      {},
 | 
			
		||||
                      {
 | 
			
		||||
                        "X": 10.0,
 | 
			
		||||
                        "Y": 5.0
 | 
			
		||||
                      },
 | 
			
		||||
                      {
 | 
			
		||||
                        "Y": 10.0
 | 
			
		||||
                      }
 | 
			
		||||
                    ],
 | 
			
		||||
                    "XScale": 1.0,
 | 
			
		||||
                    "YScale": 1.0
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "Type": "Shape",
 | 
			
		||||
                    "Name": "cone8",
 | 
			
		||||
                    "Width": 10,
 | 
			
		||||
                    "Height": 10,
 | 
			
		||||
                    "Visible": false,
 | 
			
		||||
                    "Color": {
 | 
			
		||||
                      "Red": 255,
 | 
			
		||||
                      "Green": 255
 | 
			
		||||
                    },
 | 
			
		||||
                    "Points": [
 | 
			
		||||
                      {},
 | 
			
		||||
                      {
 | 
			
		||||
                        "X": 10.0,
 | 
			
		||||
                        "Y": 5.0
 | 
			
		||||
                      },
 | 
			
		||||
                      {
 | 
			
		||||
                        "Y": 10.0
 | 
			
		||||
                      }
 | 
			
		||||
                    ],
 | 
			
		||||
                    "XScale": 1.0,
 | 
			
		||||
                    "YScale": 1.0
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "Type": "Shape",
 | 
			
		||||
                    "Name": "cone9",
 | 
			
		||||
                    "Width": 10,
 | 
			
		||||
                    "Height": 10,
 | 
			
		||||
                    "Visible": false,
 | 
			
		||||
                    "Color": {
 | 
			
		||||
                      "Red": 255,
 | 
			
		||||
                      "Green": 255
 | 
			
		||||
                    },
 | 
			
		||||
                    "Points": [
 | 
			
		||||
                      {},
 | 
			
		||||
                      {
 | 
			
		||||
                        "X": 10.0,
 | 
			
		||||
                        "Y": 5.0
 | 
			
		||||
                      },
 | 
			
		||||
                      {
 | 
			
		||||
                        "Y": 10.0
 | 
			
		||||
                      }
 | 
			
		||||
                    ],
 | 
			
		||||
                    "XScale": 1.0,
 | 
			
		||||
                    "YScale": 1.0
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "Type": "Shape",
 | 
			
		||||
                    "Name": "ft",
 | 
			
		||||
                    "Y": 91,
 | 
			
		||||
                    "Width": 20,
 | 
			
		||||
                    "Height": 20,
 | 
			
		||||
                    "Color": {
 | 
			
		||||
                      "Red": 255,
 | 
			
		||||
                      "Green": 255,
 | 
			
		||||
                      "Blue": 255
 | 
			
		||||
                    },
 | 
			
		||||
                    "Points": [
 | 
			
		||||
                      {},
 | 
			
		||||
                      {
 | 
			
		||||
                        "X": 20.0,
 | 
			
		||||
                        "Y": 10.0
 | 
			
		||||
                      },
 | 
			
		||||
                      {
 | 
			
		||||
                        "Y": 20.0
 | 
			
		||||
                      }
 | 
			
		||||
                    ],
 | 
			
		||||
                    "XScale": 1.0,
 | 
			
		||||
                    "YScale": 1.0
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "XScale": 1.0,
 | 
			
		||||
                "YScale": 1.0
 | 
			
		||||
                ]
 | 
			
		||||
              }
 | 
			
		||||
            ]
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "Type": "Container",
 | 
			
		||||
            "Name": "init",
 | 
			
		||||
            "Width": 480,
 | 
			
		||||
            "Height": 320,
 | 
			
		||||
            "Components": [
 | 
			
		||||
              {
 | 
			
		||||
                "Type": "TextArea",
 | 
			
		||||
                "Name": "textArea8",
 | 
			
		||||
                "X": 68,
 | 
			
		||||
                "Y": 247,
 | 
			
		||||
                "Width": 255,
 | 
			
		||||
                "Height": 24,
 | 
			
		||||
                "TextId": "__SingleUse_0L75",
 | 
			
		||||
                "TextRotation": "0",
 | 
			
		||||
                "Color": {
 | 
			
		||||
                  "Red": 255,
 | 
			
		||||
                  "Green": 255,
 | 
			
		||||
                  "Blue": 255
 | 
			
		||||
                },
 | 
			
		||||
                "AutoSize": true
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "Type": "TextArea",
 | 
			
		||||
                "Name": "textArea7",
 | 
			
		||||
                "X": 68,
 | 
			
		||||
                "Y": 215,
 | 
			
		||||
                "Width": 273,
 | 
			
		||||
                "Height": 24,
 | 
			
		||||
                "TextId": "__SingleUse_GA13",
 | 
			
		||||
                "TextRotation": "0",
 | 
			
		||||
                "Color": {
 | 
			
		||||
                  "Red": 255,
 | 
			
		||||
                  "Green": 255,
 | 
			
		||||
                  "Blue": 255
 | 
			
		||||
                },
 | 
			
		||||
                "AutoSize": true
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "Type": "TextArea",
 | 
			
		||||
                "Name": "pressRear",
 | 
			
		||||
                "X": 352,
 | 
			
		||||
                "Y": 248,
 | 
			
		||||
                "Width": 60,
 | 
			
		||||
                "Height": 23,
 | 
			
		||||
                "TextId": "__SingleUse_THUG",
 | 
			
		||||
                "TextRotation": "0",
 | 
			
		||||
                "Color": {
 | 
			
		||||
                  "Red": 255,
 | 
			
		||||
                  "Green": 255,
 | 
			
		||||
                  "Blue": 255
 | 
			
		||||
                },
 | 
			
		||||
                "Wildcard1": {}
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "Type": "TextArea",
 | 
			
		||||
                "Name": "pressFront",
 | 
			
		||||
                "X": 352,
 | 
			
		||||
                "Y": 216,
 | 
			
		||||
                "Width": 60,
 | 
			
		||||
                "Height": 23,
 | 
			
		||||
                "TextId": "__SingleUse_CO7A",
 | 
			
		||||
                "TextRotation": "0",
 | 
			
		||||
                "Color": {
 | 
			
		||||
                  "Red": 255,
 | 
			
		||||
                  "Green": 255,
 | 
			
		||||
                  "Blue": 255
 | 
			
		||||
                },
 | 
			
		||||
                "Wildcard1": {}
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "Type": "TextArea",
 | 
			
		||||
                "Name": "pressB",
 | 
			
		||||
                "X": 352,
 | 
			
		||||
                "Y": 185,
 | 
			
		||||
                "Width": 60,
 | 
			
		||||
                "Height": 23,
 | 
			
		||||
                "TextId": "__SingleUse_A0LF",
 | 
			
		||||
                "TextRotation": "0",
 | 
			
		||||
                "Color": {
 | 
			
		||||
                  "Red": 255,
 | 
			
		||||
                  "Green": 255,
 | 
			
		||||
                  "Blue": 255
 | 
			
		||||
                },
 | 
			
		||||
                "Wildcard1": {}
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "Type": "TextArea",
 | 
			
		||||
                "Name": "pressA",
 | 
			
		||||
                "X": 352,
 | 
			
		||||
                "Y": 153,
 | 
			
		||||
                "Width": 60,
 | 
			
		||||
                "Height": 23,
 | 
			
		||||
                "TextId": "__SingleUse_166C",
 | 
			
		||||
                "TextRotation": "0",
 | 
			
		||||
                "Color": {
 | 
			
		||||
                  "Red": 255,
 | 
			
		||||
                  "Green": 255,
 | 
			
		||||
                  "Blue": 255
 | 
			
		||||
                },
 | 
			
		||||
                "Wildcard1": {}
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "Type": "TextArea",
 | 
			
		||||
                "Name": "textArea6",
 | 
			
		||||
                "X": 68,
 | 
			
		||||
                "Y": 184,
 | 
			
		||||
                "Width": 259,
 | 
			
		||||
                "Height": 24,
 | 
			
		||||
                "TextId": "__SingleUse_OOU3",
 | 
			
		||||
                "TextRotation": "0",
 | 
			
		||||
                "Color": {
 | 
			
		||||
                  "Red": 255,
 | 
			
		||||
                  "Green": 255,
 | 
			
		||||
                  "Blue": 255
 | 
			
		||||
                },
 | 
			
		||||
                "AutoSize": true
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "Type": "TextArea",
 | 
			
		||||
                "Name": "textArea5",
 | 
			
		||||
                "X": 68,
 | 
			
		||||
                "Y": 152,
 | 
			
		||||
                "Width": 256,
 | 
			
		||||
                "Height": 24,
 | 
			
		||||
                "TextId": "__SingleUse_2FPP",
 | 
			
		||||
                "TextRotation": "0",
 | 
			
		||||
                "Color": {
 | 
			
		||||
                  "Red": 255,
 | 
			
		||||
                  "Green": 255,
 | 
			
		||||
                  "Blue": 255
 | 
			
		||||
                },
 | 
			
		||||
                "AutoSize": true
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "Type": "BoxProgress",
 | 
			
		||||
                "Name": "progressBar",
 | 
			
		||||
                "X": 12,
 | 
			
		||||
                "Y": 85,
 | 
			
		||||
                "Width": 456,
 | 
			
		||||
                "Height": 33,
 | 
			
		||||
                "Color": {
 | 
			
		||||
                  "Red": 99,
 | 
			
		||||
                  "Green": 186
 | 
			
		||||
                },
 | 
			
		||||
                "Direction": "Right",
 | 
			
		||||
                "FileNameBackground": "prog_horiz_bg.png",
 | 
			
		||||
                "IndicatorPositionWidth": 480,
 | 
			
		||||
                "IndicatorPositionHeight": 55,
 | 
			
		||||
                "ProgressRangeMax": 100
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "Type": "TextArea",
 | 
			
		||||
                "Name": "initLabel",
 | 
			
		||||
                "X": 86,
 | 
			
		||||
                "Y": 83,
 | 
			
		||||
                "Width": 309,
 | 
			
		||||
                "Height": 37,
 | 
			
		||||
                "TextId": "__SingleUse_E6D7",
 | 
			
		||||
                "TextRotation": "0",
 | 
			
		||||
                "Color": {
 | 
			
		||||
                  "Red": 255,
 | 
			
		||||
                  "Green": 255,
 | 
			
		||||
                  "Blue": 255
 | 
			
		||||
                }
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "Type": "TextArea",
 | 
			
		||||
                "Name": "progressLabel",
 | 
			
		||||
                "X": 165,
 | 
			
		||||
                "Y": 83,
 | 
			
		||||
                "Width": 226,
 | 
			
		||||
                "Height": 37,
 | 
			
		||||
                "TextId": "__SingleUse_ZEKA",
 | 
			
		||||
                "TextRotation": "0",
 | 
			
		||||
                "Color": {
 | 
			
		||||
                  "Red": 255,
 | 
			
		||||
                  "Green": 255,
 | 
			
		||||
                  "Blue": 255
 | 
			
		||||
                },
 | 
			
		||||
                "Wildcard1": {}
 | 
			
		||||
              }
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
@ -636,8 +829,8 @@
 | 
			
		||||
                "Width": 456,
 | 
			
		||||
                "Height": 33,
 | 
			
		||||
                "Color": {
 | 
			
		||||
                  "Red": 136,
 | 
			
		||||
                  "Green": 255
 | 
			
		||||
                  "Red": 99,
 | 
			
		||||
                  "Green": 186
 | 
			
		||||
                },
 | 
			
		||||
                "StartY": 16.0,
 | 
			
		||||
                "EndY": 16.0,
 | 
			
		||||
@ -900,7 +1093,7 @@
 | 
			
		||||
                "X": 95,
 | 
			
		||||
                "Y": -2,
 | 
			
		||||
                "Width": 269,
 | 
			
		||||
                "Height": 37,
 | 
			
		||||
                "Height": 30,
 | 
			
		||||
                "Visible": false,
 | 
			
		||||
                "TextId": "__SingleUse_HMH2",
 | 
			
		||||
                "TextRotation": "0",
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user