Display steering angle, speed & cones in AMI

This commit is contained in:
Jasper Blanckenburg 2023-08-01 19:21:33 +02:00
parent 6d70d12148
commit 2b54a8ffe8
42 changed files with 1351 additions and 371 deletions

View File

@ -8,6 +8,8 @@ extern "C" {
#include "stw_defines.h" #include "stw_defines.h"
#include <stdint.h> #include <stdint.h>
#define NUM_CONES 12
typedef enum { typedef enum {
TS_INACTIVE = 0, TS_INACTIVE = 0,
TS_ACTIVE = 1, TS_ACTIVE = 1,
@ -88,6 +90,11 @@ typedef struct {
float bat_r; float bat_r;
} Temperatures; } Temperatures;
typedef struct {
uint16_t x;
uint16_t y;
} ConePosition;
typedef struct { typedef struct {
TSState ts_state; TSState ts_state;
ASState as_state; ASState as_state;
@ -151,6 +158,14 @@ typedef struct {
float brake_press_r; float brake_press_r;
float distance_total; float distance_total;
uint32_t last_jetson_msg;
uint32_t last_epsc_msg;
float desired_angle;
float measured_angle;
float desired_speed;
ConePosition cone_pos[NUM_CONES];
} VehicleState; } VehicleState;
extern VehicleState vehicle_state; extern VehicleState vehicle_state;

View File

@ -15,39 +15,51 @@
#define CAN_ID_AMS_SLAVE_PANIC 0x9 #define CAN_ID_AMS_SLAVE_PANIC 0x9
#define CAN_ID_AMS_STATUS 0xA #define CAN_ID_AMS_STATUS 0xA
#define CAN_ID_AMS_ERROR 0xC #define CAN_ID_AMS_ERROR 0xC
#define CAN_ID_JETSON_TX 0xE1
#define CAN_ID_ABX_DRIVER 0x101 #define CAN_ID_ABX_DRIVER 0x101
#define CAN_ID_ABX_TIMINGS 0x102 #define CAN_ID_ABX_TIMINGS 0x102
#define CAN_ID_ABX_BRAKE_T 0x105 #define CAN_ID_ABX_BRAKE_T 0x105
#define CAN_ID_CS_INTERNAL 0x108 #define CAN_ID_CS_INTERNAL 0x108
#define CAN_ID_ABX_MISC 0x109 #define CAN_ID_ABX_MISC 0x109
#define CAN_ID_EPSC_OUT 0x321
#define CAN_ID_MISSION_SELECTED 0x400 #define CAN_ID_MISSION_SELECTED 0x400
#define CAN_ID_STW_BUTTONS 0x401 #define CAN_ID_STW_BUTTONS 0x401
#define CAN_ID_STW_PARAM_SET 0x402 #define CAN_ID_STW_PARAM_SET 0x402
#define CAN_ID_AS_MISSION_FB 0x410 #define CAN_ID_AS_MISSION_FB 0x410
#define CAN_ID_STW_STATUS 0x412 #define CAN_ID_STW_STATUS 0x412
#define CAN_ID_STW_CONES_BASE 0x414
#define CAN_ID_STW_CONES_MASK 0x7FC
#define CAN_ID_SHUNT_CURRENT 0x521 #define CAN_ID_SHUNT_CURRENT 0x521
#define CAN_ID_SHUNT_VOLTAGE1 0x522 #define CAN_ID_SHUNT_VOLTAGE1 0x522
#define CAN_ID_SHUNT_VOLTAGE2 0x523 #define CAN_ID_SHUNT_VOLTAGE2 0x523
#define CAN_AMS_STATUS_VOLTAGE_FACTOR 1e-4 #define CAN_AMS_STATUS_VOLTAGE_FACTOR 1e-4
#define CAN_AMS_STATUS_TEMP_FACTOR 0.0625 #define CAN_AMS_STATUS_TEMP_FACTOR 0.0625
#define CAN_JETSON_TX_ANGLE_FACTOR 0.00784314f
#define CAN_JETSON_TX_SPEED_FACTOR (0.2 * 3.6)
#define CAN_ABX_DRIVER_SPEED_FACTOR (0.2 * 3.6) #define CAN_ABX_DRIVER_SPEED_FACTOR (0.2 * 3.6)
#define CAN_CS_INTERNAL_TEMP_FACTOR 0.01 #define CAN_CS_INTERNAL_TEMP_FACTOR 0.01
#define CAN_ABX_MISC_DISTANCE_TOTAL_FACTOR 0.01 #define CAN_ABX_MISC_DISTANCE_TOTAL_FACTOR 0.01
#define CAN_ABX_MISC_LV_BAT_VOLTAGE_FACTOR (15.0f / 255) #define CAN_ABX_MISC_LV_BAT_VOLTAGE_FACTOR (15.0f / 255)
#define CAN_EPSC_OUT_ANGLE_FACTOR 7.20721e-05f
void vehicle_thread_entry(ULONG hfdcan_addr) { void vehicle_thread_entry(ULONG hfdcan_addr) {
memset(&vehicle_state, 0, sizeof(vehicle_state)); memset(&vehicle_state, 0, sizeof(vehicle_state));
memset(&vehicle_state.cone_pos, 0xFF, sizeof(vehicle_state.cone_pos));
ftcan_init((void *)hfdcan_addr); ftcan_init((void *)hfdcan_addr);
ftcan_add_filter(CAN_ID_AMS_SLAVE_PANIC, 0x7FF); ftcan_add_filter(CAN_ID_AMS_SLAVE_PANIC, 0x7FF);
ftcan_add_filter(CAN_ID_AMS_STATUS, 0x7FF); ftcan_add_filter(CAN_ID_AMS_STATUS, 0x7FF);
ftcan_add_filter(CAN_ID_AMS_ERROR, 0x7FF); ftcan_add_filter(CAN_ID_AMS_ERROR, 0x7FF);
ftcan_add_filter(CAN_ID_JETSON_TX, 0x7FF);
ftcan_add_filter(CAN_ID_ABX_DRIVER, 0x7FF); ftcan_add_filter(CAN_ID_ABX_DRIVER, 0x7FF);
ftcan_add_filter(CAN_ID_ABX_TIMINGS, 0x7FF); ftcan_add_filter(CAN_ID_ABX_TIMINGS, 0x7FF);
ftcan_add_filter(CAN_ID_ABX_BRAKE_T, 0x7FF); ftcan_add_filter(CAN_ID_ABX_BRAKE_T, 0x7FF);
ftcan_add_filter(CAN_ID_CS_INTERNAL, 0x7FF); ftcan_add_filter(CAN_ID_CS_INTERNAL, 0x7FF);
ftcan_add_filter(CAN_ID_ABX_MISC, 0x7FF); ftcan_add_filter(CAN_ID_ABX_MISC, 0x7FF);
ftcan_add_filter(CAN_ID_EPSC_OUT, 0x7FF);
ftcan_add_filter(CAN_ID_AS_MISSION_FB, 0x7FF); ftcan_add_filter(CAN_ID_AS_MISSION_FB, 0x7FF);
ftcan_add_filter(CAN_ID_STW_STATUS, 0x7FF); ftcan_add_filter(CAN_ID_STW_STATUS, 0x7FF);
ftcan_add_filter(CAN_ID_STW_CONES_BASE, CAN_ID_STW_CONES_MASK);
ftcan_add_filter(CAN_ID_SHUNT_CURRENT, 0x7FF); ftcan_add_filter(CAN_ID_SHUNT_CURRENT, 0x7FF);
ftcan_add_filter(CAN_ID_SHUNT_VOLTAGE1, 0x7FF); ftcan_add_filter(CAN_ID_SHUNT_VOLTAGE1, 0x7FF);
ftcan_add_filter(CAN_ID_SHUNT_VOLTAGE2, 0x7FF); ftcan_add_filter(CAN_ID_SHUNT_VOLTAGE2, 0x7FF);
@ -78,12 +90,20 @@ void vehicle_broadcast_buttons(GPIO_PinState *button_states) {
void ftcan_msg_received_cb(uint16_t id, size_t datalen, const uint8_t *data) { void ftcan_msg_received_cb(uint16_t id, size_t datalen, const uint8_t *data) {
const uint8_t *ptr; const uint8_t *ptr;
if ((id & CAN_ID_STW_CONES_MASK) == CAN_ID_STW_CONES_BASE) {
size_t msg_num = id - CAN_ID_STW_CONES_BASE;
for (size_t i = 0; i < 4; i++) {
vehicle_state.cone_pos[msg_num * 4 + i].x = data[i * 2];
vehicle_state.cone_pos[msg_num * 4 + i].y = data[i * 2 + 1];
}
} else {
switch (id) { switch (id) {
case CAN_ID_AMS_SLAVE_PANIC: case CAN_ID_AMS_SLAVE_PANIC:
vehicle_state.last_ams_slave_panic.id = data[0]; vehicle_state.last_ams_slave_panic.id = data[0];
vehicle_state.last_ams_slave_panic.kind = data[1]; vehicle_state.last_ams_slave_panic.kind = data[1];
ptr = &data[2]; ptr = &data[2];
vehicle_state.last_ams_slave_panic.arg = ftcan_unmarshal_unsigned(&ptr, 4); vehicle_state.last_ams_slave_panic.arg =
ftcan_unmarshal_unsigned(&ptr, 4);
break; break;
case CAN_ID_AMS_STATUS: case CAN_ID_AMS_STATUS:
vehicle_state.ts_state = data[0] & 0x7F; vehicle_state.ts_state = data[0] & 0x7F;
@ -102,6 +122,13 @@ void ftcan_msg_received_cb(uint16_t id, size_t datalen, const uint8_t *data) {
vehicle_state.last_ams_error.kind = data[0]; vehicle_state.last_ams_error.kind = data[0];
vehicle_state.last_ams_error.arg = data[1]; vehicle_state.last_ams_error.arg = data[1];
break; break;
case CAN_ID_JETSON_TX:
vehicle_state.last_jetson_msg = HAL_GetTick();
vehicle_state.desired_speed =
((int8_t)data[1]) * CAN_JETSON_TX_SPEED_FACTOR;
vehicle_state.desired_angle =
((int8_t)data[2]) * CAN_JETSON_TX_ANGLE_FACTOR;
break;
case CAN_ID_ABX_DRIVER: case CAN_ID_ABX_DRIVER:
vehicle_state.brake_press_f = (data[1] | ((data[2] & 0x0F) << 8)) * 0.1; vehicle_state.brake_press_f = (data[1] | ((data[2] & 0x0F) << 8)) * 0.1;
vehicle_state.brake_press_r = ((data[2] >> 4) | (data[3] << 4)) * 0.1; vehicle_state.brake_press_r = ((data[2] >> 4) | (data[3] << 4)) * 0.1;
@ -131,7 +158,13 @@ void ftcan_msg_received_cb(uint16_t id, size_t datalen, const uint8_t *data) {
vehicle_state.distance_total = vehicle_state.distance_total =
(data[3] | (data[4] << 8)) * CAN_ABX_MISC_DISTANCE_TOTAL_FACTOR; (data[3] | (data[4] << 8)) * CAN_ABX_MISC_DISTANCE_TOTAL_FACTOR;
vehicle_state.soc_lv = data[5]; vehicle_state.soc_lv = data[5];
vehicle_state.lv_bat_voltage = data[6] * CAN_ABX_MISC_LV_BAT_VOLTAGE_FACTOR; vehicle_state.lv_bat_voltage =
data[6] * CAN_ABX_MISC_LV_BAT_VOLTAGE_FACTOR;
break;
case CAN_ID_EPSC_OUT:
vehicle_state.last_epsc_msg = HAL_GetTick();
vehicle_state.measured_angle =
((int16_t)((data[0] << 8) | (data[1]))) * CAN_EPSC_OUT_ANGLE_FACTOR;
break; break;
case CAN_ID_AS_MISSION_FB: case CAN_ID_AS_MISSION_FB:
vehicle_state.active_mission = data[0] & 0b111; vehicle_state.active_mission = data[0] & 0b111;
@ -180,5 +213,6 @@ void ftcan_msg_received_cb(uint16_t id, size_t datalen, const uint8_t *data) {
break; break;
} }
} }
}
tx_event_flags_set(&gui_update_events, GUI_UPDATE_VEHICLE_STATE, TX_OR); tx_event_flags_set(&gui_update_events, GUI_UPDATE_VEHICLE_STATE, TX_OR);
} }

View File

@ -247,6 +247,7 @@ TouchGFX/generated/fonts/src/FontCache.cpp \
TouchGFX/generated/fonts/src/Font_CHINN____20_4bpp_0.cpp \ TouchGFX/generated/fonts/src/Font_CHINN____20_4bpp_0.cpp \
TouchGFX/generated/fonts/src/Font_CHINN____30_4bpp_0.cpp \ TouchGFX/generated/fonts/src/Font_CHINN____30_4bpp_0.cpp \
TouchGFX/generated/fonts/src/Font_CHINN____40_4bpp_0.cpp \ TouchGFX/generated/fonts/src/Font_CHINN____40_4bpp_0.cpp \
TouchGFX/generated/fonts/src/Font_lucon_TTF_20_4bpp_0.cpp \
TouchGFX/generated/fonts/src/Font_lucon_TTF_33_4bpp_0.cpp \ TouchGFX/generated/fonts/src/Font_lucon_TTF_33_4bpp_0.cpp \
TouchGFX/generated/fonts/src/Font_lucon_TTF_50_4bpp_0.cpp \ TouchGFX/generated/fonts/src/Font_lucon_TTF_50_4bpp_0.cpp \
TouchGFX/generated/fonts/src/Font_verdana_20_4bpp_0.cpp \ TouchGFX/generated/fonts/src/Font_verdana_20_4bpp_0.cpp \
@ -255,6 +256,7 @@ TouchGFX/generated/fonts/src/GeneratedFont.cpp \
TouchGFX/generated/fonts/src/Kerning_CHINN____20_4bpp.cpp \ TouchGFX/generated/fonts/src/Kerning_CHINN____20_4bpp.cpp \
TouchGFX/generated/fonts/src/Kerning_CHINN____30_4bpp.cpp \ TouchGFX/generated/fonts/src/Kerning_CHINN____30_4bpp.cpp \
TouchGFX/generated/fonts/src/Kerning_CHINN____40_4bpp.cpp \ TouchGFX/generated/fonts/src/Kerning_CHINN____40_4bpp.cpp \
TouchGFX/generated/fonts/src/Kerning_lucon_TTF_20_4bpp.cpp \
TouchGFX/generated/fonts/src/Kerning_lucon_TTF_33_4bpp.cpp \ TouchGFX/generated/fonts/src/Kerning_lucon_TTF_33_4bpp.cpp \
TouchGFX/generated/fonts/src/Kerning_lucon_TTF_50_4bpp.cpp \ TouchGFX/generated/fonts/src/Kerning_lucon_TTF_50_4bpp.cpp \
TouchGFX/generated/fonts/src/Kerning_verdana_20_4bpp.cpp \ TouchGFX/generated/fonts/src/Kerning_verdana_20_4bpp.cpp \
@ -262,6 +264,7 @@ TouchGFX/generated/fonts/src/Kerning_verdanab_20_4bpp.cpp \
TouchGFX/generated/fonts/src/Table_CHINN____20_4bpp.cpp \ TouchGFX/generated/fonts/src/Table_CHINN____20_4bpp.cpp \
TouchGFX/generated/fonts/src/Table_CHINN____30_4bpp.cpp \ TouchGFX/generated/fonts/src/Table_CHINN____30_4bpp.cpp \
TouchGFX/generated/fonts/src/Table_CHINN____40_4bpp.cpp \ TouchGFX/generated/fonts/src/Table_CHINN____40_4bpp.cpp \
TouchGFX/generated/fonts/src/Table_lucon_TTF_20_4bpp.cpp \
TouchGFX/generated/fonts/src/Table_lucon_TTF_33_4bpp.cpp \ TouchGFX/generated/fonts/src/Table_lucon_TTF_33_4bpp.cpp \
TouchGFX/generated/fonts/src/Table_lucon_TTF_50_4bpp.cpp \ TouchGFX/generated/fonts/src/Table_lucon_TTF_50_4bpp.cpp \
TouchGFX/generated/fonts/src/Table_verdana_20_4bpp.cpp \ TouchGFX/generated/fonts/src/Table_verdana_20_4bpp.cpp \

View File

@ -171,6 +171,30 @@
</Text> </Text>
</TextGroup> </TextGroup>
<TextGroup Id="Unsorted"> <TextGroup Id="Unsorted">
<Text Id="__SingleUse_2S21" Alignment="Right" TypographyId="Numbers_Small">
<Translation Language="GB">&lt;value&gt;</Translation>
</Text>
<Text Id="__SingleUse_OQ6P" Alignment="Right" TypographyId="Numbers_Small">
<Translation Language="GB">&lt;value&gt;</Translation>
</Text>
<Text Id="__SingleUse_590R" Alignment="Left" TypographyId="Chinat_Small">
<Translation Language="GB">MSPEED:</Translation>
</Text>
<Text Id="__SingleUse_Z78U" Alignment="Left" TypographyId="Chinat_Small">
<Translation Language="GB">DSPEED:</Translation>
</Text>
<Text Id="__SingleUse_LLOZ" Alignment="Right" TypographyId="Numbers_Small">
<Translation Language="GB">&lt;value&gt;</Translation>
</Text>
<Text Id="__SingleUse_232C" Alignment="Right" TypographyId="Numbers_Small">
<Translation Language="GB">&lt;value&gt;</Translation>
</Text>
<Text Id="__SingleUse_JFR7" Alignment="Left" TypographyId="Chinat_Small">
<Translation Language="GB">MANG:</Translation>
</Text>
<Text Id="__SingleUse_3MDX" Alignment="Left" TypographyId="Chinat_Small">
<Translation Language="GB">DANG:</Translation>
</Text>
<Text Id="__SingleUse_F9I5" Alignment="Center" TypographyId="Chinat_Small"> <Text Id="__SingleUse_F9I5" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB"></Translation> <Translation Language="GB"></Translation>
</Text> </Text>
@ -207,9 +231,6 @@
<Text Id="__SingleUse_20H3" Alignment="Center" TypographyId="Numbers"> <Text Id="__SingleUse_20H3" Alignment="Center" TypographyId="Numbers">
<Translation Language="GB">&lt;value&gt;</Translation> <Translation Language="GB">&lt;value&gt;</Translation>
</Text> </Text>
<Text Id="__SingleUse_SDGP" Alignment="Left" TypographyId="Chinat_Large">
<Translation Language="GB">Current Mission:</Translation>
</Text>
<Text Id="__SingleUse_M5X7" Alignment="Center" TypographyId="Chinat_Small"> <Text Id="__SingleUse_M5X7" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">Invalid Mission</Translation> <Translation Language="GB">Invalid Mission</Translation>
</Text> </Text>
@ -225,6 +246,7 @@
<Typography Id="Chinat_Huge" Font="CHINN___.ttf" Size="40" Bpp="4" Direction="LTR" FallbackCharacter="?" /> <Typography Id="Chinat_Huge" Font="CHINN___.ttf" Size="40" Bpp="4" Direction="LTR" FallbackCharacter="?" />
<Typography Id="Numbers" Font="lucon.TTF" Size="50" Bpp="4" Direction="LTR" FallbackCharacter="?" WildcardCharacters=". ,-" WildcardCharacterRanges="0-9" /> <Typography Id="Numbers" Font="lucon.TTF" Size="50" Bpp="4" Direction="LTR" FallbackCharacter="?" WildcardCharacters=". ,-" WildcardCharacterRanges="0-9" />
<Typography Id="Default_Bold" Font="verdanab.ttf" Size="20" Bpp="4" Direction="LTR" FallbackCharacter="?" WildcardCharacters="! &quot;" WildcardCharacterRanges="#-~" /> <Typography Id="Default_Bold" Font="verdanab.ttf" Size="20" Bpp="4" Direction="LTR" FallbackCharacter="?" WildcardCharacters="! &quot;" WildcardCharacterRanges="#-~" />
<Typography Id="Numbers_Smaller" Font="lucon.TTF" Size="33" Bpp="4" Direction="LTR" FallbackCharacter="?" WildcardCharacters=".,-" WildcardCharacterRanges="0-9" /> <Typography Id="Numbers_Smaller" Font="lucon.TTF" Size="33" Bpp="4" Direction="LTR" FallbackCharacter="?" WildcardCharacters=" .,-" WildcardCharacterRanges="0-9" />
<Typography Id="Numbers_Small" Font="lucon.TTF" Size="20" Bpp="4" Direction="LTR" FallbackCharacter="?" WildcardCharacters=" .,-" WildcardCharacterRanges="0-9" />
</Typographies> </Typographies>
</TextDatabase> </TextDatabase>

View File

@ -11,6 +11,7 @@
55 55
56 56
57 57
58
63 63
65 65
66 66

View File

@ -10,7 +10,6 @@
55 55
56 56
57 57
58
63 63
65 65
66 66

View File

@ -0,0 +1,15 @@
32
44
45
46
48
49
50
51
52
53
54
55
56
57
63

View File

@ -1,3 +1,4 @@
32
44 44
45 45
46 46

View File

@ -1 +1 @@
{"typographies":[["Default","verdana.ttf",20,4],["Chinat_Large","CHINN___.ttf",30,4],["Chinat_Small","CHINN___.ttf",20,4],["Chinat_Huge","CHINN___.ttf",40,4],["Numbers","lucon.TTF",50,4],["Default_Bold","verdanab.ttf",20,4],["Numbers_Smaller","lucon.TTF",33,4]],"generate_font_format":"0"} {"typographies":[["Default","verdana.ttf",20,4],["Chinat_Large","CHINN___.ttf",30,4],["Chinat_Small","CHINN___.ttf",20,4],["Chinat_Huge","CHINN___.ttf",40,4],["Numbers","lucon.TTF",50,4],["Default_Bold","verdanab.ttf",20,4],["Numbers_Smaller","lucon.TTF",33,4],["Numbers_Small","lucon.TTF",20,4]],"generate_font_format":"0"}

View File

@ -1 +1 @@
{"typographies":[["Default","verdana.ttf",20,4],["Chinat_Large","CHINN___.ttf",30,4],["Chinat_Small","CHINN___.ttf",20,4],["Chinat_Huge","CHINN___.ttf",40,4],["Numbers","lucon.TTF",50,4],["Default_Bold","verdanab.ttf",20,4],["Numbers_Smaller","lucon.TTF",33,4]],"generate_font_format":"0"} {"typographies":[["Default","verdana.ttf",20,4],["Chinat_Large","CHINN___.ttf",30,4],["Chinat_Small","CHINN___.ttf",20,4],["Chinat_Huge","CHINN___.ttf",40,4],["Numbers","lucon.TTF",50,4],["Default_Bold","verdanab.ttf",20,4],["Numbers_Smaller","lucon.TTF",33,4],["Numbers_Small","lucon.TTF",20,4]],"generate_font_format":"0"}

View File

@ -12,6 +12,7 @@ AH:0 BA:1 FC:63 EC:0 FF:0 CF:1 FU:0
55 55
56 56
57 57
58
63 63
65 65
66 66

View File

@ -11,7 +11,6 @@ AH:0 BA:1 FC:63 EC:0 FF:0 CF:0 FU:0
55 55
56 56
57 57
58
63 63
65 65
66 66

View File

@ -0,0 +1,16 @@
AH:0 BA:1 FC:63 EC:0 FF:0 CF:1 FU:0
32
44
45
46
48
49
50
51
52
53
54
55
56
57
63

View File

@ -1,4 +1,5 @@
AH:0 BA:1 FC:63 EC:0 FF:0 CF:1 FU:0 AH:0 BA:1 FC:63 EC:0 FF:0 CF:0 FU:0
32
44 44
45 45
46 46

View File

@ -20,6 +20,7 @@ struct Typography
static const touchgfx::FontId NUMBERS = 4; static const touchgfx::FontId NUMBERS = 4;
static const touchgfx::FontId DEFAULT_BOLD = 5; static const touchgfx::FontId DEFAULT_BOLD = 5;
static const touchgfx::FontId NUMBERS_SMALLER = 6; static const touchgfx::FontId NUMBERS_SMALLER = 6;
static const touchgfx::FontId NUMBERS_SMALL = 7;
}; };
struct TypographyFontIndex struct TypographyFontIndex
@ -31,7 +32,8 @@ struct TypographyFontIndex
static const touchgfx::FontId NUMBERS = 4; // lucon_TTF_50_4bpp static const touchgfx::FontId NUMBERS = 4; // lucon_TTF_50_4bpp
static const touchgfx::FontId DEFAULT_BOLD = 5; // verdanab_20_4bpp static const touchgfx::FontId DEFAULT_BOLD = 5; // verdanab_20_4bpp
static const touchgfx::FontId NUMBERS_SMALLER = 6; // lucon_TTF_33_4bpp static const touchgfx::FontId NUMBERS_SMALLER = 6; // lucon_TTF_33_4bpp
static const uint16_t NUMBER_OF_FONTS = 7; static const touchgfx::FontId NUMBERS_SMALL = 7; // lucon_TTF_20_4bpp
static const uint16_t NUMBER_OF_FONTS = 8;
}; };
class ApplicationFontProvider : public touchgfx::FontProvider class ApplicationFontProvider : public touchgfx::FontProvider

View File

@ -30,6 +30,9 @@ touchgfx::Font* ApplicationFontProvider::getFont(touchgfx::FontId typography)
case Typography::NUMBERS_SMALLER: case Typography::NUMBERS_SMALLER:
// lucon_TTF_33_4bpp // lucon_TTF_33_4bpp
return const_cast<touchgfx::Font*>(TypedTextDatabase::getFonts()[6]); return const_cast<touchgfx::Font*>(TypedTextDatabase::getFonts()[6]);
case Typography::NUMBERS_SMALL:
// lucon_TTF_20_4bpp
return const_cast<touchgfx::Font*>(TypedTextDatabase::getFonts()[7]);
default: default:
return 0; return 0;
} }

View File

@ -112,6 +112,9 @@ KEEP extern const uint8_t unicodes_CHINN____20_4bpp_0[] FONT_GLYPH_LOCATION_FLAS
0x33, 0x53, 0xFF, 0x3F, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0E, 0xC0, 0xFF, 0x33, 0x53, 0xFF, 0x3F, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0E, 0xC0, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x05, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x05, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF,
0x3A, 0x00, 0x3A, 0x00,
// Unicode: [0x003A, colon]
0xF3, 0xFF, 0x0C, 0xF3, 0xFF, 0x0C, 0xF3, 0xFF, 0x0C, 0xD3, 0xDD, 0x0B, 0x00, 0x00, 0x00, 0xD3,
0xDD, 0x0A, 0xF3, 0xFF, 0x0C, 0xF3, 0xFF, 0x0C, 0xF3, 0xFF, 0x0C,
// Unicode: [0x003F, question] // Unicode: [0x003F, question]
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7D, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7D, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x1C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8F, 0x44, 0x44, 0xFF, 0xFF, 0xFF, 0x1C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8F, 0x44, 0x44,

View File

@ -198,11 +198,6 @@ KEEP extern const uint8_t unicodes_CHINN____30_4bpp_0[] FONT_GLYPH_LOCATION_FLAS
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0x00, 0x30, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0x00, 0x30, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x09, 0x00, 0x30, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x09, 0x00, 0x30, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCE, 0x39, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCE, 0x39, 0x00, 0x00,
// Unicode: [0x003A, colon]
0xFC, 0xFF, 0xFF, 0x03, 0xFC, 0xFF, 0xFF, 0x03, 0xFC, 0xFF, 0xFF, 0x03, 0xFC, 0xFF, 0xFF, 0x03,
0xFC, 0xFF, 0xFF, 0x03, 0xFC, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xEB, 0xEE, 0xEE, 0x03, 0xFC, 0xFF, 0xFF, 0x03, 0xFC, 0xFF, 0xFF, 0x03, 0xFC, 0xFF, 0xFF, 0x03,
0xFC, 0xFF, 0xFF, 0x03, 0xFC, 0xFF, 0xFF, 0x03,
// Unicode: [0x003F, question] // Unicode: [0x003F, question]
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0x8C, 0x02, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0x8C, 0x02, 0x00, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0xFF, 0xFF,

View File

@ -0,0 +1,80 @@
#include <touchgfx/hal/Types.hpp>
FONT_GLYPH_LOCATION_FLASH_PRAGMA
KEEP extern const uint8_t unicodes_lucon_TTF_20_4bpp_0[] FONT_GLYPH_LOCATION_FLASH_ATTRIBUTE = {
// Unicode: [0x0020]
// (Has no glyph data)
// Unicode: [0x002C]
0xE6, 0x7E, 0xF6, 0x7F, 0xF6, 0x7F, 0x40, 0x5F, 0x90, 0x1E, 0xD6, 0x04,
// Unicode: [0x002D]
0x22, 0x22, 0x22, 0x22, 0xFE, 0xFF, 0xFF, 0xFF, 0x55, 0x55, 0x55, 0x55,
// Unicode: [0x002E]
0xE6, 0x7E, 0xF6, 0x7F, 0xF6, 0x7F,
// Unicode: [0x0030]
0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0xC4, 0xFF, 0x4D, 0x00, 0x40, 0xDF, 0x66, 0xFD, 0x04, 0xD0,
0x2E, 0x00, 0xE1, 0x0D, 0xF5, 0x09, 0x00, 0x90, 0x5F, 0xF9, 0x06, 0x00, 0x50, 0xAF, 0xFC, 0x04,
0x00, 0x30, 0xCF, 0xFD, 0x02, 0x00, 0x20, 0xEF, 0xFE, 0x02, 0x00, 0x10, 0xEF, 0xFD, 0x03, 0x00,
0x20, 0xEF, 0xFB, 0x04, 0x00, 0x30, 0xCF, 0xF9, 0x06, 0x00, 0x50, 0x9F, 0xF4, 0x0A, 0x00, 0x90,
0x5F, 0xC0, 0x3F, 0x00, 0xE2, 0x0D, 0x30, 0xEE, 0x88, 0xEE, 0x03, 0x00, 0xA2, 0xEE, 0x3B, 0x00,
// Unicode: [0x0031]
0x00, 0x10, 0xA5, 0x08, 0x00, 0x00, 0x61, 0xFB, 0xFF, 0x09, 0x00, 0x00, 0xD3, 0x69, 0xF7, 0x09,
0x00, 0x00, 0x00, 0x00, 0xF5, 0x09, 0x00, 0x00, 0x00, 0x00, 0xF5, 0x09, 0x00, 0x00, 0x00, 0x00,
0xF5, 0x09, 0x00, 0x00, 0x00, 0x00, 0xF5, 0x09, 0x00, 0x00, 0x00, 0x00, 0xF5, 0x09, 0x00, 0x00,
0x00, 0x00, 0xF5, 0x09, 0x00, 0x00, 0x00, 0x00, 0xF5, 0x09, 0x00, 0x00, 0x00, 0x00, 0xF5, 0x09,
0x00, 0x00, 0x00, 0x00, 0xF5, 0x09, 0x00, 0x00, 0x00, 0x00, 0xF5, 0x09, 0x00, 0x00, 0x71, 0x77,
0xFA, 0x7C, 0x77, 0x03, 0xF3, 0xFF, 0xFF, 0xFF, 0xFF, 0x07,
// Unicode: [0x0032]
0x00, 0x00, 0x12, 0x00, 0x00, 0x80, 0xFD, 0xFF, 0x3B, 0x00, 0xF0, 0x6B, 0x96, 0xEF, 0x03, 0x20,
0x00, 0x00, 0xF8, 0x0A, 0x00, 0x00, 0x00, 0xF3, 0x0D, 0x00, 0x00, 0x00, 0xF3, 0x0C, 0x00, 0x00,
0x00, 0xF7, 0x09, 0x00, 0x00, 0x10, 0xEE, 0x02, 0x00, 0x00, 0xC1, 0x4F, 0x00, 0x00, 0x00, 0xFB,
0x05, 0x00, 0x00, 0xA0, 0x5F, 0x00, 0x00, 0x00, 0xF8, 0x06, 0x00, 0x00, 0x40, 0xBF, 0x00, 0x00,
0x00, 0xD1, 0x3F, 0x00, 0x00, 0x00, 0xF5, 0xBF, 0xBB, 0xBB, 0x09, 0xF5, 0xFF, 0xFF, 0xFF, 0x0C,
// Unicode: [0x0033]
0x00, 0x21, 0x01, 0x00, 0x00, 0xD5, 0xFF, 0xDF, 0x06, 0x00, 0xB7, 0x57, 0xE7, 0x6F, 0x00, 0x00,
0x00, 0x50, 0xCF, 0x00, 0x00, 0x00, 0x20, 0xBF, 0x00, 0x00, 0x00, 0x70, 0x7F, 0x00, 0x10, 0x32,
0xF7, 0x09, 0x00, 0x60, 0xFF, 0xAF, 0x00, 0x00, 0x20, 0x65, 0xFB, 0x2D, 0x00, 0x00, 0x00, 0x70,
0xBF, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x02, 0x00, 0x00, 0x00, 0xFC, 0x04, 0x00, 0x00, 0x00, 0xFE,
0x02, 0x01, 0x00, 0x80, 0xCF, 0x00, 0xCB, 0x88, 0xFB, 0x3E, 0x00, 0xC7, 0xFE, 0x9D, 0x02, 0x00,
// Unicode: [0x0034]
0x00, 0x00, 0x10, 0x9A, 0x00, 0x00, 0x00, 0xA0, 0xEF, 0x00, 0x00, 0x00, 0xF4, 0xEF, 0x00, 0x00,
0x10, 0xCD, 0xEE, 0x00, 0x00, 0x90, 0x3F, 0xED, 0x00, 0x00, 0xF3, 0x08, 0xED, 0x00, 0x00, 0xDD,
0x00, 0xED, 0x00, 0x80, 0x3F, 0x00, 0xED, 0x00, 0xF3, 0x09, 0x00, 0xED, 0x00, 0xEC, 0x23, 0x22,
0xEE, 0x22, 0xFE, 0xFF, 0xFF, 0xFF, 0xDF, 0x55, 0x55, 0x55, 0xEE, 0x45, 0x00, 0x00, 0x00, 0xED,
0x00, 0x00, 0x00, 0x00, 0xED, 0x00, 0x00, 0x00, 0x00, 0xED, 0x00,
// Unicode: [0x0035]
0xF1, 0xFF, 0xFF, 0xAF, 0x00, 0xF1, 0xBD, 0xBB, 0x7B, 0x00, 0xF1, 0x08, 0x00, 0x00, 0x00, 0xF1,
0x08, 0x00, 0x00, 0x00, 0xF1, 0x08, 0x00, 0x00, 0x00, 0xF1, 0x19, 0x00, 0x00, 0x00, 0xF1, 0xFF,
0x8D, 0x01, 0x00, 0x50, 0x75, 0xFD, 0x1C, 0x00, 0x00, 0x00, 0xA0, 0x9F, 0x00, 0x00, 0x00, 0x20,
0xEF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01, 0x00, 0x00, 0x30, 0xEF, 0x00, 0x00, 0x00, 0xA0, 0x9F,
0x00, 0xC5, 0x88, 0xFC, 0x1C, 0x00, 0xB3, 0xFE, 0x8D, 0x01, 0x00,
// Unicode: [0x0036]
0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x40, 0xFC, 0xFF, 0x2B, 0x00, 0xF6, 0x7D, 0x75, 0x2B, 0x30,
0xCF, 0x01, 0x00, 0x00, 0xA0, 0x3F, 0x00, 0x00, 0x00, 0xF1, 0x0D, 0x10, 0x01, 0x00, 0xF3, 0x3A,
0xFC, 0xBF, 0x02, 0xF5, 0xEC, 0x58, 0xF9, 0x1D, 0xF6, 0x6F, 0x00, 0x90, 0x8F, 0xF6, 0x0F, 0x00,
0x20, 0xDF, 0xF5, 0x0D, 0x00, 0x00, 0xEF, 0xF2, 0x0E, 0x00, 0x00, 0xEE, 0xE0, 0x2F, 0x00, 0x20,
0xBF, 0x80, 0xAF, 0x00, 0x90, 0x5F, 0x10, 0xFC, 0x7B, 0xFB, 0x0A, 0x00, 0x91, 0xFD, 0x7D, 0x00,
// Unicode: [0x0037]
0xCC, 0xCC, 0xCC, 0xCC, 0x08, 0xFF, 0xFF, 0xFF, 0xFF, 0x0A, 0x00, 0x00, 0x00, 0xF7, 0x04, 0x00,
0x00, 0x10, 0xBE, 0x00, 0x00, 0x00, 0x80, 0x2F, 0x00, 0x00, 0x00, 0xF2, 0x09, 0x00, 0x00, 0x00,
0xFA, 0x02, 0x00, 0x00, 0x30, 0x9F, 0x00, 0x00, 0x00, 0xB0, 0x2F, 0x00, 0x00, 0x00, 0xF4, 0x0A,
0x00, 0x00, 0x00, 0xFC, 0x04, 0x00, 0x00, 0x40, 0xEF, 0x00, 0x00, 0x00, 0xA0, 0x9F, 0x00, 0x00,
0x00, 0xE0, 0x5F, 0x00, 0x00, 0x00, 0xF2, 0x2F, 0x00, 0x00, 0x00,
// Unicode: [0x0038]
0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0xB3, 0xFF, 0xAF, 0x02, 0x20, 0xEE, 0x67, 0xFA, 0x0C, 0x80,
0x4F, 0x00, 0xC0, 0x1F, 0xA0, 0x2F, 0x00, 0x90, 0x1F, 0x80, 0x8F, 0x00, 0xD0, 0x0C, 0x10, 0xFE,
0x18, 0xE9, 0x03, 0x00, 0xE3, 0xEF, 0x2E, 0x00, 0x00, 0xEA, 0xFA, 0xBF, 0x01, 0x90, 0x5F, 0x30,
0xFD, 0x1D, 0xF2, 0x0B, 0x00, 0xD1, 0x7F, 0xF6, 0x07, 0x00, 0x50, 0xBF, 0xF6, 0x09, 0x00, 0x40,
0xAF, 0xF2, 0x2E, 0x00, 0xA0, 0x6F, 0x80, 0xEF, 0x89, 0xFC, 0x0B, 0x00, 0xC6, 0xFE, 0x7C, 0x00,
// Unicode: [0x0039]
0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0xD5, 0xFF, 0x5D, 0x00, 0x60, 0xCF, 0x76, 0xFE, 0x06, 0xE1,
0x0D, 0x00, 0xF2, 0x1E, 0xF6, 0x07, 0x00, 0xA0, 0x5F, 0xF8, 0x05, 0x00, 0x70, 0x9F, 0xF7, 0x07,
0x00, 0x80, 0xBF, 0xF4, 0x0C, 0x00, 0xC0, 0xCF, 0xB0, 0xAF, 0x33, 0xDA, 0xCF, 0x10, 0xFB, 0xFF,
0x5B, 0xBF, 0x00, 0x20, 0x24, 0x50, 0x9F, 0x00, 0x00, 0x00, 0x90, 0x6F, 0x00, 0x00, 0x00, 0xE1,
0x1E, 0x10, 0x00, 0x00, 0xFA, 0x07, 0xB0, 0x8B, 0xC8, 0xAF, 0x00, 0x60, 0xEC, 0xCE, 0x06, 0x00,
// Unicode: [0x003F]
0x00, 0x10, 0x12, 0x00, 0x00, 0xB4, 0xFE, 0xFF, 0xAE, 0x02, 0xF6, 0x68, 0x75, 0xFB, 0x2E, 0xF6,
0x01, 0x00, 0xB0, 0x8F, 0x52, 0x00, 0x00, 0x70, 0x8F, 0x00, 0x00, 0x00, 0xC0, 0x4F, 0x00, 0x00,
0x00, 0xF9, 0x09, 0x00, 0x00, 0xA0, 0x9F, 0x00, 0x00, 0x00, 0xF9, 0x07, 0x00, 0x00, 0x40, 0xAF,
0x00, 0x00, 0x00, 0x80, 0x5F, 0x00, 0x00, 0x00, 0x80, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x30, 0x23, 0x00, 0x00, 0x00, 0xE0, 0x8F, 0x00, 0x00, 0x00, 0xE0, 0x8F, 0x00, 0x00
};

View File

@ -2,6 +2,8 @@
FONT_GLYPH_LOCATION_FLASH_PRAGMA FONT_GLYPH_LOCATION_FLASH_PRAGMA
KEEP extern const uint8_t unicodes_lucon_TTF_33_4bpp_0[] FONT_GLYPH_LOCATION_FLASH_ATTRIBUTE = { KEEP extern const uint8_t unicodes_lucon_TTF_33_4bpp_0[] FONT_GLYPH_LOCATION_FLASH_ATTRIBUTE = {
// Unicode: [0x0020]
// (Has no glyph data)
// Unicode: [0x002C] // Unicode: [0x002C]
0xC5, 0xCC, 0x4C, 0xF7, 0xFF, 0x5F, 0xF7, 0xFF, 0x5F, 0xF7, 0xFF, 0x5F, 0xF7, 0xFF, 0x4F, 0x00, 0xC5, 0xCC, 0x4C, 0xF7, 0xFF, 0x5F, 0xF7, 0xFF, 0x5F, 0xF7, 0xFF, 0x5F, 0xF7, 0xFF, 0x4F, 0x00,
0xF8, 0x2F, 0x00, 0xFA, 0x0E, 0x10, 0xFE, 0x08, 0xD3, 0xDF, 0x01, 0xE6, 0x19, 0x00, 0xF8, 0x2F, 0x00, 0xFA, 0x0E, 0x10, 0xFE, 0x08, 0xD3, 0xDF, 0x01, 0xE6, 0x19, 0x00,

View File

@ -0,0 +1,6 @@
#include <touchgfx/Font.hpp>
FONT_KERNING_LOCATION_FLASH_PRAGMA
KEEP extern const touchgfx::KerningNode kerning_lucon_TTF_20_4bpp[] FONT_KERNING_LOCATION_FLASH_ATTRIBUTE = {
{ 0, 0 }
};

View File

@ -17,60 +17,61 @@ KEEP extern const touchgfx::GlyphNode glyphs_CHINN____20_4bpp[] FONT_TABLE_LOCAT
{ 1000, 0x0037, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // seven { 1000, 0x0037, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // seven
{ 1130, 0x0038, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // eight { 1130, 0x0038, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // eight
{ 1260, 0x0039, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // nine { 1260, 0x0039, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // nine
{ 1390, 0x003F, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // question { 1390, 0x003A, 5, 9, 9, 0, 6, 0, 0, 0x00 }, // colon
{ 1520, 0x0041, 20, 13, 13, -1, 18, 0, 0, 0x00 }, // A { 1417, 0x003F, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // question
{ 1650, 0x0042, 20, 13, 13, 0, 21, 0, 0, 0x00 }, // B { 1547, 0x0041, 20, 13, 13, -1, 18, 0, 0, 0x00 }, // A
{ 1780, 0x0043, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // C { 1677, 0x0042, 20, 13, 13, 0, 21, 0, 0, 0x00 }, // B
{ 1910, 0x0044, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // D { 1807, 0x0043, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // C
{ 2040, 0x0045, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // E { 1937, 0x0044, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // D
{ 2170, 0x0046, 20, 13, 13, 0, 19, 0, 0, 0x00 }, // F { 2067, 0x0045, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // E
{ 2300, 0x0047, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // G { 2197, 0x0046, 20, 13, 13, 0, 19, 0, 0, 0x00 }, // F
{ 2430, 0x0048, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // H { 2327, 0x0047, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // G
{ 2560, 0x0049, 4, 13, 13, 0, 5, 0, 0, 0x00 }, // I { 2457, 0x0048, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // H
{ 2586, 0x004A, 20, 13, 13, -1, 19, 0, 0, 0x00 }, // J { 2587, 0x0049, 4, 13, 13, 0, 5, 0, 0, 0x00 }, // I
{ 2716, 0x004B, 20, 13, 13, 0, 19, 0, 0, 0x00 }, // K { 2613, 0x004A, 20, 13, 13, -1, 19, 0, 0, 0x00 }, // J
{ 2846, 0x004C, 20, 13, 13, 0, 19, 0, 0, 0x00 }, // L { 2743, 0x004B, 20, 13, 13, 0, 19, 0, 0, 0x00 }, // K
{ 2976, 0x004D, 21, 13, 13, 0, 21, 0, 0, 0x00 }, // M { 2873, 0x004C, 20, 13, 13, 0, 19, 0, 0, 0x00 }, // L
{ 3119, 0x004E, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // N { 3003, 0x004D, 21, 13, 13, 0, 21, 0, 0, 0x00 }, // M
{ 3249, 0x004F, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // O { 3146, 0x004E, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // N
{ 3379, 0x0050, 21, 13, 13, 0, 20, 0, 0, 0x00 }, // P { 3276, 0x004F, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // O
{ 3522, 0x0051, 21, 13, 13, 0, 20, 0, 0, 0x00 }, // Q { 3406, 0x0050, 21, 13, 13, 0, 20, 0, 0, 0x00 }, // P
{ 3665, 0x0052, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // R { 3549, 0x0051, 21, 13, 13, 0, 20, 0, 0, 0x00 }, // Q
{ 3795, 0x0053, 22, 13, 13, 0, 22, 0, 0, 0x00 }, // S { 3692, 0x0052, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // R
{ 3938, 0x0054, 20, 13, 13, -1, 19, 0, 0, 0x00 }, // T { 3822, 0x0053, 22, 13, 13, 0, 22, 0, 0, 0x00 }, // S
{ 4068, 0x0055, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // U { 3965, 0x0054, 20, 13, 13, -1, 19, 0, 0, 0x00 }, // T
{ 4198, 0x0056, 20, 13, 13, -1, 18, 0, 0, 0x00 }, // V { 4095, 0x0055, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // U
{ 4328, 0x0057, 19, 13, 13, 0, 19, 0, 0, 0x00 }, // W { 4225, 0x0056, 20, 13, 13, -1, 18, 0, 0, 0x00 }, // V
{ 4458, 0x0058, 19, 13, 13, 0, 19, 0, 0, 0x00 }, // X { 4355, 0x0057, 19, 13, 13, 0, 19, 0, 0, 0x00 }, // W
{ 4588, 0x0059, 19, 13, 13, -1, 18, 0, 0, 0x00 }, // Y { 4485, 0x0058, 19, 13, 13, 0, 19, 0, 0, 0x00 }, // X
{ 4718, 0x005A, 22, 13, 13, 0, 22, 0, 0, 0x00 }, // Z { 4615, 0x0059, 19, 13, 13, -1, 18, 0, 0, 0x00 }, // Y
{ 4861, 0x005F, 10, 3, 255, 0, 10, 0, 0, 0x60 }, // underscore { 4745, 0x005A, 22, 13, 13, 0, 22, 0, 0, 0x00 }, // Z
{ 4876, 0x0061, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // a { 4888, 0x005F, 10, 3, 255, 0, 10, 0, 0, 0x60 }, // underscore
{ 5006, 0x0062, 20, 13, 13, 0, 21, 0, 0, 0x00 }, // b { 4903, 0x0061, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // a
{ 5136, 0x0063, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // c { 5033, 0x0062, 20, 13, 13, 0, 21, 0, 0, 0x00 }, // b
{ 5266, 0x0064, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // d { 5163, 0x0063, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // c
{ 5396, 0x0065, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // e { 5293, 0x0064, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // d
{ 5526, 0x0066, 20, 13, 13, 0, 19, 0, 0, 0x00 }, // f { 5423, 0x0065, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // e
{ 5656, 0x0067, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // g { 5553, 0x0066, 20, 13, 13, 0, 19, 0, 0, 0x00 }, // f
{ 5786, 0x0068, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // h { 5683, 0x0067, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // g
{ 5916, 0x0069, 4, 13, 13, 0, 5, 0, 0, 0x00 }, // i { 5813, 0x0068, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // h
{ 5942, 0x006A, 20, 13, 13, -1, 19, 0, 0, 0x00 }, // j { 5943, 0x0069, 4, 13, 13, 0, 5, 0, 0, 0x00 }, // i
{ 6072, 0x006B, 20, 13, 13, 0, 19, 0, 0, 0x00 }, // k { 5969, 0x006A, 20, 13, 13, -1, 19, 0, 0, 0x00 }, // j
{ 6202, 0x006C, 15, 13, 13, 0, 14, 0, 0, 0x00 }, // l { 6099, 0x006B, 20, 13, 13, 0, 19, 0, 0, 0x00 }, // k
{ 6306, 0x006D, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // m { 6229, 0x006C, 15, 13, 13, 0, 14, 0, 0, 0x00 }, // l
{ 6436, 0x006E, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // n { 6333, 0x006D, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // m
{ 6566, 0x006F, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // o { 6463, 0x006E, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // n
{ 6696, 0x0070, 20, 13, 13, 0, 19, 0, 0, 0x00 }, // p { 6593, 0x006F, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // o
{ 6826, 0x0071, 21, 13, 13, 0, 20, 0, 0, 0x00 }, // q { 6723, 0x0070, 20, 13, 13, 0, 19, 0, 0, 0x00 }, // p
{ 6969, 0x0072, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // r { 6853, 0x0071, 21, 13, 13, 0, 20, 0, 0, 0x00 }, // q
{ 7099, 0x0073, 22, 13, 13, 0, 22, 0, 0, 0x00 }, // s { 6996, 0x0072, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // r
{ 7242, 0x0074, 20, 13, 13, -1, 19, 0, 0, 0x00 }, // t { 7126, 0x0073, 22, 13, 13, 0, 22, 0, 0, 0x00 }, // s
{ 7372, 0x0075, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // u { 7269, 0x0074, 20, 13, 13, -1, 19, 0, 0, 0x00 }, // t
{ 7502, 0x0076, 20, 13, 13, -1, 18, 0, 0, 0x00 }, // v { 7399, 0x0075, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // u
{ 7632, 0x0077, 22, 13, 13, 0, 22, 0, 0, 0x00 }, // w { 7529, 0x0076, 20, 13, 13, -1, 18, 0, 0, 0x00 }, // v
{ 7775, 0x0078, 19, 13, 13, 0, 19, 0, 0, 0x00 }, // x { 7659, 0x0077, 22, 13, 13, 0, 22, 0, 0, 0x00 }, // w
{ 7905, 0x0079, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // y { 7802, 0x0078, 19, 13, 13, 0, 19, 0, 0, 0x00 }, // x
{ 8035, 0x007A, 22, 13, 13, 0, 22, 0, 0, 0x00 } // z { 7932, 0x0079, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // y
{ 8062, 0x007A, 22, 13, 13, 0, 22, 0, 0, 0x00 } // z
}; };
// CHINN____20_4bpp // CHINN____20_4bpp
@ -88,6 +89,6 @@ touchgfx::GeneratedFont& getFont_CHINN____20_4bpp();
touchgfx::GeneratedFont& getFont_CHINN____20_4bpp() touchgfx::GeneratedFont& getFont_CHINN____20_4bpp()
{ {
static touchgfx::GeneratedFont CHINN____20_4bpp(glyphs_CHINN____20_4bpp, 67, 24, 20, 0, 0, 4, 1, 1, 1, unicodes_CHINN____20_4bpp, kerning_CHINN____20_4bpp, 63, 0, 0, 0); static touchgfx::GeneratedFont CHINN____20_4bpp(glyphs_CHINN____20_4bpp, 68, 24, 20, 0, 0, 4, 1, 1, 1, unicodes_CHINN____20_4bpp, kerning_CHINN____20_4bpp, 63, 0, 0, 0);
return CHINN____20_4bpp; return CHINN____20_4bpp;
} }

View File

@ -16,60 +16,59 @@ KEEP extern const touchgfx::GlyphNode glyphs_CHINN____30_4bpp[] FONT_TABLE_LOCAT
{ 1975, 0x0037, 29, 20, 20, 0, 30, 0, 0, 0x00 }, // seven { 1975, 0x0037, 29, 20, 20, 0, 30, 0, 0, 0x00 }, // seven
{ 2275, 0x0038, 29, 20, 20, 0, 30, 0, 0, 0x00 }, // eight { 2275, 0x0038, 29, 20, 20, 0, 30, 0, 0, 0x00 }, // eight
{ 2575, 0x0039, 29, 20, 20, 0, 30, 0, 0, 0x00 }, // nine { 2575, 0x0039, 29, 20, 20, 0, 30, 0, 0, 0x00 }, // nine
{ 2875, 0x003A, 7, 14, 14, 1, 8, 0, 0, 0x00 }, // colon { 2875, 0x003F, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // question
{ 2931, 0x003F, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // question { 3175, 0x0041, 29, 20, 20, -1, 27, 0, 0, 0x00 }, // A
{ 3231, 0x0041, 29, 20, 20, -1, 27, 0, 0, 0x00 }, // A { 3475, 0x0042, 30, 20, 20, 0, 31, 0, 0, 0x00 }, // B
{ 3531, 0x0042, 30, 20, 20, 0, 31, 0, 0, 0x00 }, // B { 3775, 0x0043, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // C
{ 3831, 0x0043, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // C { 4075, 0x0044, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // D
{ 4131, 0x0044, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // D { 4375, 0x0045, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // E
{ 4431, 0x0045, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // E { 4675, 0x0046, 29, 20, 20, 0, 29, 0, 0, 0x00 }, // F
{ 4731, 0x0046, 29, 20, 20, 0, 29, 0, 0, 0x00 }, // F { 4975, 0x0047, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // G
{ 5031, 0x0047, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // G { 5275, 0x0048, 30, 20, 20, 0, 31, 0, 0, 0x00 }, // H
{ 5331, 0x0048, 30, 20, 20, 0, 31, 0, 0, 0x00 }, // H { 5575, 0x0049, 6, 20, 20, 0, 7, 0, 0, 0x00 }, // I
{ 5631, 0x0049, 6, 20, 20, 0, 7, 0, 0, 0x00 }, // I { 5635, 0x004A, 30, 20, 20, -1, 29, 0, 0, 0x00 }, // J
{ 5691, 0x004A, 30, 20, 20, -1, 29, 0, 0, 0x00 }, // J { 5935, 0x004B, 30, 20, 20, 0, 29, 0, 0, 0x00 }, // K
{ 5991, 0x004B, 30, 20, 20, 0, 29, 0, 0, 0x00 }, // K { 6235, 0x004C, 30, 20, 20, 0, 29, 0, 0, 0x00 }, // L
{ 6291, 0x004C, 30, 20, 20, 0, 29, 0, 0, 0x00 }, // L { 6535, 0x004D, 32, 20, 20, 0, 32, 0, 0, 0x00 }, // M
{ 6591, 0x004D, 32, 20, 20, 0, 32, 0, 0, 0x00 }, // M { 6855, 0x004E, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // N
{ 6911, 0x004E, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // N { 7155, 0x004F, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // O
{ 7211, 0x004F, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // O { 7455, 0x0050, 31, 20, 20, 0, 31, 0, 0, 0x00 }, // P
{ 7511, 0x0050, 31, 20, 20, 0, 31, 0, 0, 0x00 }, // P { 7775, 0x0051, 31, 20, 20, 0, 31, 0, 0, 0x00 }, // Q
{ 7831, 0x0051, 31, 20, 20, 0, 31, 0, 0, 0x00 }, // Q { 8095, 0x0052, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // R
{ 8151, 0x0052, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // R { 8395, 0x0053, 32, 20, 20, 0, 32, 0, 0, 0x00 }, // S
{ 8451, 0x0053, 32, 20, 20, 0, 32, 0, 0, 0x00 }, // S { 8715, 0x0054, 30, 20, 20, -1, 28, 0, 0, 0x00 }, // T
{ 8771, 0x0054, 30, 20, 20, -1, 28, 0, 0, 0x00 }, // T { 9015, 0x0055, 30, 20, 20, 0, 31, 0, 0, 0x00 }, // U
{ 9071, 0x0055, 30, 20, 20, 0, 31, 0, 0, 0x00 }, // U { 9315, 0x0056, 29, 20, 20, -1, 27, 0, 0, 0x00 }, // V
{ 9371, 0x0056, 29, 20, 20, -1, 27, 0, 0, 0x00 }, // V { 9615, 0x0057, 28, 20, 20, 0, 28, 0, 0, 0x00 }, // W
{ 9671, 0x0057, 28, 20, 20, 0, 28, 0, 0, 0x00 }, // W { 9895, 0x0058, 29, 20, 20, 0, 28, 0, 0, 0x00 }, // X
{ 9951, 0x0058, 29, 20, 20, 0, 28, 0, 0, 0x00 }, // X { 10195, 0x0059, 28, 20, 20, -1, 27, 0, 0, 0x00 }, // Y
{ 10251, 0x0059, 28, 20, 20, -1, 27, 0, 0, 0x00 }, // Y { 10475, 0x005A, 33, 20, 20, 0, 32, 0, 0, 0x00 }, // Z
{ 10531, 0x005A, 33, 20, 20, 0, 32, 0, 0, 0x00 }, // Z { 10815, 0x0061, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // a
{ 10871, 0x0061, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // a { 11115, 0x0062, 30, 20, 20, 0, 31, 0, 0, 0x00 }, // b
{ 11171, 0x0062, 30, 20, 20, 0, 31, 0, 0, 0x00 }, // b { 11415, 0x0063, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // c
{ 11471, 0x0063, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // c { 11715, 0x0064, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // d
{ 11771, 0x0064, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // d { 12015, 0x0065, 29, 20, 20, 0, 30, 0, 0, 0x00 }, // e
{ 12071, 0x0065, 29, 20, 20, 0, 30, 0, 0, 0x00 }, // e { 12315, 0x0066, 29, 20, 20, 0, 29, 0, 0, 0x00 }, // f
{ 12371, 0x0066, 29, 20, 20, 0, 29, 0, 0, 0x00 }, // f { 12615, 0x0067, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // g
{ 12671, 0x0067, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // g { 12915, 0x0068, 30, 20, 20, 0, 31, 0, 0, 0x00 }, // h
{ 12971, 0x0068, 30, 20, 20, 0, 31, 0, 0, 0x00 }, // h { 13215, 0x0069, 6, 20, 20, 0, 7, 0, 0, 0x00 }, // i
{ 13271, 0x0069, 6, 20, 20, 0, 7, 0, 0, 0x00 }, // i { 13275, 0x006A, 30, 20, 20, -1, 29, 0, 0, 0x00 }, // j
{ 13331, 0x006A, 30, 20, 20, -1, 29, 0, 0, 0x00 }, // j { 13575, 0x006B, 30, 20, 20, 0, 29, 0, 0, 0x00 }, // k
{ 13631, 0x006B, 30, 20, 20, 0, 29, 0, 0, 0x00 }, // k { 13875, 0x006C, 22, 20, 20, 0, 21, 0, 0, 0x00 }, // l
{ 13931, 0x006C, 22, 20, 20, 0, 21, 0, 0, 0x00 }, // l { 14095, 0x006D, 29, 20, 20, 0, 30, 0, 0, 0x00 }, // m
{ 14151, 0x006D, 29, 20, 20, 0, 30, 0, 0, 0x00 }, // m { 14395, 0x006E, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // n
{ 14451, 0x006E, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // n { 14695, 0x006F, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // o
{ 14751, 0x006F, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // o { 14995, 0x0070, 29, 20, 20, 0, 29, 0, 0, 0x00 }, // p
{ 15051, 0x0070, 29, 20, 20, 0, 29, 0, 0, 0x00 }, // p { 15295, 0x0071, 31, 20, 20, 0, 31, 0, 0, 0x00 }, // q
{ 15351, 0x0071, 31, 20, 20, 0, 31, 0, 0, 0x00 }, // q { 15615, 0x0072, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // r
{ 15671, 0x0072, 30, 20, 20, 0, 30, 0, 0, 0x00 }, // r { 15915, 0x0073, 32, 20, 20, 0, 32, 0, 0, 0x00 }, // s
{ 15971, 0x0073, 32, 20, 20, 0, 32, 0, 0, 0x00 }, // s { 16235, 0x0074, 30, 20, 20, -1, 28, 0, 0, 0x00 }, // t
{ 16291, 0x0074, 30, 20, 20, -1, 28, 0, 0, 0x00 }, // t { 16535, 0x0075, 30, 20, 20, 0, 31, 0, 0, 0x00 }, // u
{ 16591, 0x0075, 30, 20, 20, 0, 31, 0, 0, 0x00 }, // u { 16835, 0x0076, 29, 20, 20, -1, 27, 0, 0, 0x00 }, // v
{ 16891, 0x0076, 29, 20, 20, -1, 27, 0, 0, 0x00 }, // v { 17135, 0x0077, 33, 20, 20, 0, 33, 0, 0, 0x00 }, // w
{ 17191, 0x0077, 33, 20, 20, 0, 33, 0, 0, 0x00 }, // w { 17475, 0x0078, 29, 20, 20, 0, 28, 0, 0, 0x00 }, // x
{ 17531, 0x0078, 29, 20, 20, 0, 28, 0, 0, 0x00 }, // x { 17775, 0x0079, 30, 20, 20, 0, 31, 0, 0, 0x00 }, // y
{ 17831, 0x0079, 30, 20, 20, 0, 31, 0, 0, 0x00 }, // y { 18075, 0x007A, 33, 20, 20, 0, 32, 0, 0, 0x00 } // z
{ 18131, 0x007A, 33, 20, 20, 0, 32, 0, 0, 0x00 } // z
}; };
// CHINN____30_4bpp // CHINN____30_4bpp
@ -87,6 +86,6 @@ touchgfx::GeneratedFont& getFont_CHINN____30_4bpp();
touchgfx::GeneratedFont& getFont_CHINN____30_4bpp() touchgfx::GeneratedFont& getFont_CHINN____30_4bpp()
{ {
static touchgfx::GeneratedFont CHINN____30_4bpp(glyphs_CHINN____30_4bpp, 66, 30, 30, 0, 0, 4, 1, 1, 1, unicodes_CHINN____30_4bpp, kerning_CHINN____30_4bpp, 63, 0, 0, 0); static touchgfx::GeneratedFont CHINN____30_4bpp(glyphs_CHINN____30_4bpp, 65, 30, 30, 0, 0, 4, 1, 1, 1, unicodes_CHINN____30_4bpp, kerning_CHINN____30_4bpp, 63, 0, 0, 0);
return CHINN____30_4bpp; return CHINN____30_4bpp;
} }

View File

@ -0,0 +1,41 @@
// Autogenerated, do not edit
#include <fonts/GeneratedFont.hpp>
FONT_TABLE_LOCATION_FLASH_PRAGMA
KEEP extern const touchgfx::GlyphNode glyphs_lucon_TTF_20_4bpp[] FONT_TABLE_LOCATION_FLASH_ATTRIBUTE = {
{ 0, 0x0020, 0, 0, 0, 0, 12, 0, 0, 0x00 },
{ 0, 0x002C, 4, 6, 3, 4, 12, 0, 0, 0x00 },
{ 12, 0x002D, 8, 3, 8, 2, 12, 0, 0, 0x00 },
{ 24, 0x002E, 4, 3, 3, 4, 12, 0, 0, 0x00 },
{ 30, 0x0030, 10, 16, 16, 1, 12, 0, 0, 0x00 },
{ 110, 0x0031, 11, 15, 15, 1, 12, 0, 0, 0x00 },
{ 200, 0x0032, 9, 16, 16, 1, 12, 0, 0, 0x00 },
{ 280, 0x0033, 9, 16, 16, 2, 12, 0, 0, 0x00 },
{ 360, 0x0034, 10, 15, 15, 1, 12, 0, 0, 0x00 },
{ 435, 0x0035, 9, 15, 15, 2, 12, 0, 0, 0x00 },
{ 510, 0x0036, 10, 16, 16, 1, 12, 0, 0, 0x00 },
{ 590, 0x0037, 9, 15, 15, 2, 12, 0, 0, 0x00 },
{ 665, 0x0038, 10, 16, 16, 1, 12, 0, 0, 0x00 },
{ 745, 0x0039, 10, 16, 16, 1, 12, 0, 0, 0x00 },
{ 825, 0x003F, 10, 16, 16, 1, 12, 0, 0, 0x00 }
};
// lucon_TTF_20_4bpp
FONT_TABLE_LOCATION_FLASH_PRAGMA
KEEP extern const touchgfx::GlyphNode glyphs_lucon_TTF_20_4bpp[] FONT_TABLE_LOCATION_FLASH_ATTRIBUTE;
FONT_GLYPH_LOCATION_FLASH_PRAGMA
KEEP extern const uint8_t unicodes_lucon_TTF_20_4bpp_0[] FONT_GLYPH_LOCATION_FLASH_ATTRIBUTE;
FONT_SEARCHTABLE_LOCATION_FLASH_PRAGMA
KEEP extern const uint8_t* const unicodes_lucon_TTF_20_4bpp[] FONT_SEARCHTABLE_LOCATION_FLASH_ATTRIBUTE = {
unicodes_lucon_TTF_20_4bpp_0
};
FONT_KERNING_LOCATION_FLASH_PRAGMA
KEEP extern const touchgfx::KerningNode kerning_lucon_TTF_20_4bpp[] FONT_KERNING_LOCATION_FLASH_ATTRIBUTE;
touchgfx::GeneratedFont& getFont_lucon_TTF_20_4bpp();
touchgfx::GeneratedFont& getFont_lucon_TTF_20_4bpp()
{
static touchgfx::GeneratedFont lucon_TTF_20_4bpp(glyphs_lucon_TTF_20_4bpp, 15, 23, 20, 0, 0, 4, 1, 0, 0, unicodes_lucon_TTF_20_4bpp, kerning_lucon_TTF_20_4bpp, 63, 0, 0, 0);
return lucon_TTF_20_4bpp;
}

View File

@ -4,6 +4,7 @@
FONT_TABLE_LOCATION_FLASH_PRAGMA FONT_TABLE_LOCATION_FLASH_PRAGMA
KEEP extern const touchgfx::GlyphNode glyphs_lucon_TTF_33_4bpp[] FONT_TABLE_LOCATION_FLASH_ATTRIBUTE = { KEEP extern const touchgfx::GlyphNode glyphs_lucon_TTF_33_4bpp[] FONT_TABLE_LOCATION_FLASH_ATTRIBUTE = {
{ 0, 0x0020, 0, 0, 0, 0, 20, 0, 0, 0x00 },
{ 0, 0x002C, 6, 10, 5, 7, 20, 0, 0, 0x00 }, { 0, 0x002C, 6, 10, 5, 7, 20, 0, 0, 0x00 },
{ 30, 0x002D, 14, 3, 12, 3, 20, 0, 0, 0x00 }, { 30, 0x002D, 14, 3, 12, 3, 20, 0, 0, 0x00 },
{ 51, 0x002E, 6, 5, 5, 7, 20, 0, 0, 0x00 }, { 51, 0x002E, 6, 5, 5, 7, 20, 0, 0, 0x00 },
@ -35,6 +36,6 @@ touchgfx::GeneratedFont& getFont_lucon_TTF_33_4bpp();
touchgfx::GeneratedFont& getFont_lucon_TTF_33_4bpp() touchgfx::GeneratedFont& getFont_lucon_TTF_33_4bpp()
{ {
static touchgfx::GeneratedFont lucon_TTF_33_4bpp(glyphs_lucon_TTF_33_4bpp, 14, 38, 33, 0, 0, 4, 1, 0, 0, unicodes_lucon_TTF_33_4bpp, kerning_lucon_TTF_33_4bpp, 63, 0, 0, 0); static touchgfx::GeneratedFont lucon_TTF_33_4bpp(glyphs_lucon_TTF_33_4bpp, 15, 38, 33, 0, 0, 4, 1, 0, 0, unicodes_lucon_TTF_33_4bpp, kerning_lucon_TTF_33_4bpp, 63, 0, 0, 0);
return lucon_TTF_33_4bpp; return lucon_TTF_33_4bpp;
} }

View File

@ -10,6 +10,10 @@
#include <touchgfx/widgets/Box.hpp> #include <touchgfx/widgets/Box.hpp>
#include <touchgfx/widgets/Image.hpp> #include <touchgfx/widgets/Image.hpp>
#include <touchgfx/widgets/TextArea.hpp> #include <touchgfx/widgets/TextArea.hpp>
#include <touchgfx/widgets/TextAreaWithWildcard.hpp>
#include <touchgfx/containers/Container.hpp>
#include <touchgfx/widgets/canvas/Shape.hpp>
#include <touchgfx/widgets/canvas/PainterRGB565.hpp>
class AMIViewBase : public touchgfx::View<AMIPresenter> class AMIViewBase : public touchgfx::View<AMIPresenter>
{ {
@ -28,11 +32,47 @@ protected:
*/ */
touchgfx::Box __background; touchgfx::Box __background;
touchgfx::Image logo; touchgfx::Image logo;
touchgfx::TextArea title;
touchgfx::TextArea currentMission; touchgfx::TextArea currentMission;
touchgfx::TextArea textArea1;
touchgfx::TextArea textArea2;
touchgfx::TextAreaWithOneWildcard desiredAngle;
touchgfx::TextAreaWithOneWildcard measuredAngle;
touchgfx::TextAreaWithOneWildcard measuredSpeed;
touchgfx::TextAreaWithOneWildcard desiredSpeed;
touchgfx::TextArea textArea4;
touchgfx::TextArea textArea3;
touchgfx::Container map;
touchgfx::Shape<3> cone0;
touchgfx::PainterRGB565 cone0Painter;
touchgfx::Shape<3> cone1;
touchgfx::PainterRGB565 cone1Painter;
touchgfx::Shape<3> cone2;
touchgfx::PainterRGB565 cone2Painter;
touchgfx::Shape<3> cone3;
touchgfx::PainterRGB565 cone3Painter;
touchgfx::Shape<3> cone4;
touchgfx::PainterRGB565 cone4Painter;
touchgfx::Shape<3> cone5;
touchgfx::PainterRGB565 cone5Painter;
touchgfx::Shape<3> cone6;
touchgfx::PainterRGB565 cone6Painter;
touchgfx::Shape<3> cone7;
touchgfx::PainterRGB565 cone7Painter;
touchgfx::Shape<3> cone8;
touchgfx::PainterRGB565 cone8Painter;
touchgfx::Shape<3> cone9;
touchgfx::PainterRGB565 cone9Painter;
touchgfx::Shape<3> ft;
touchgfx::PainterRGB565 ftPainter;
private: private:
/*
* Canvas Buffer Size
*/
static const uint32_t CANVAS_BUFFER_SIZE = 7200;
uint8_t canvasBuffer[CANVAS_BUFFER_SIZE];
}; };
#endif // AMIVIEWBASE_HPP #endif // AMIVIEWBASE_HPP

View File

@ -17,9 +17,12 @@ public:
virtual void changeToStartScreen() virtual void changeToStartScreen()
{ {
gotoDriverViewScreenNoTransition(); gotoMissionSelectScreenNoTransition();
} }
// MissionSelect
void gotoMissionSelectScreenNoTransition();
// AMI // AMI
void gotoAMIScreenNoTransition(); void gotoAMIScreenNoTransition();
@ -37,6 +40,9 @@ protected:
FrontendHeap& frontendHeap; FrontendHeap& frontendHeap;
Model& model; Model& model;
// MissionSelect
void gotoMissionSelectScreenNoTransitionImpl();
// AMI // AMI
void gotoAMIScreenNoTransitionImpl(); void gotoAMIScreenNoTransitionImpl();

View File

@ -89,7 +89,7 @@ public:
virtual void gotoStartScreen(FrontendApplication& app) virtual void gotoStartScreen(FrontendApplication& app)
{ {
app.gotoDriverViewScreenNoTransition(); app.gotoMissionSelectScreenNoTransition();
} }
protected: protected:
FrontendHeapBase(touchgfx::AbstractPartition& presenters, touchgfx::AbstractPartition& views, touchgfx::AbstractPartition& transitions, FrontendApplication& app) FrontendHeapBase(touchgfx::AbstractPartition& presenters, touchgfx::AbstractPartition& views, touchgfx::AbstractPartition& transitions, FrontendApplication& app)

View File

@ -2,36 +2,205 @@
/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/ /********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/
/*********************************************************************************/ /*********************************************************************************/
#include <gui_generated/ami_screen/AMIViewBase.hpp> #include <gui_generated/ami_screen/AMIViewBase.hpp>
#include <touchgfx/canvas_widget_renderer/CanvasWidgetRenderer.hpp>
#include <touchgfx/Color.hpp> #include <touchgfx/Color.hpp>
#include <images/BitmapDatabase.hpp> #include <images/BitmapDatabase.hpp>
#include <texts/TextKeysAndLanguages.hpp> #include <texts/TextKeysAndLanguages.hpp>
AMIViewBase::AMIViewBase() AMIViewBase::AMIViewBase()
{ {
touchgfx::CanvasWidgetRenderer::setupBuffer(canvasBuffer, CANVAS_BUFFER_SIZE);
__background.setPosition(0, 0, 480, 320); __background.setPosition(0, 0, 480, 320);
__background.setColor(touchgfx::Color::getColorFromRGB(0, 0, 0)); __background.setColor(touchgfx::Color::getColorFromRGB(0, 0, 0));
add(__background); add(__background);
logo.setXY(160, 266); logo.setXY(160, 266);
logo.setBitmap(touchgfx::Bitmap(BITMAP_LOGO_DV_SMALL_WHITE_ID)); logo.setBitmap(touchgfx::Bitmap(BITMAP_LOGO_DV_SMALL_WHITE_ID));
logo.setVisible(false);
add(logo); add(logo);
title.setXY(42, 20); currentMission.setPosition(0, 15, 480, 49);
title.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255)); currentMission.setColor(touchgfx::Color::getColorFromRGB(197, 14, 31));
title.setLinespacing(0);
title.setTypedText(touchgfx::TypedText(T___SINGLEUSE_SDGP));
add(title);
currentMission.setPosition(0, 130, 480, 49);
currentMission.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
currentMission.setLinespacing(0); currentMission.setLinespacing(0);
currentMission.setTypedText(touchgfx::TypedText(T_INVALID_HUGE)); currentMission.setTypedText(touchgfx::TypedText(T_INVALID_HUGE));
add(currentMission); add(currentMission);
textArea1.setXY(273, 103);
textArea1.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
textArea1.setLinespacing(0);
textArea1.setTypedText(touchgfx::TypedText(T___SINGLEUSE_3MDX));
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);
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);
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);
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);
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);
textArea4.setXY(273, 198);
textArea4.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
textArea4.setLinespacing(0);
textArea4.setTypedText(touchgfx::TypedText(T___SINGLEUSE_590R));
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);
map.setPosition(15, 103, 255, 202);
cone0.setPosition(0, 0, 10, 10);
cone0.setOrigin(0.0f, 0.0f);
cone0.setScale(1.0f, 1.0f);
cone0.setAngle(0.0f);
cone0Painter.setColor(touchgfx::Color::getColorFromRGB(255, 255, 0));
cone0.setPainter(cone0Painter);
const touchgfx::AbstractShape::ShapePoint<float> cone0Points[3] = { { 0.0f, 0.0f }, { 10.0f, 5.0f }, { 0.0f, 10.0f } };
cone0.setShape(cone0Points);
cone0.setVisible(false);
map.add(cone0);
cone1.setPosition(0, 0, 10, 10);
cone1.setOrigin(0.0f, 0.0f);
cone1.setScale(1.0f, 1.0f);
cone1.setAngle(0.0f);
cone1Painter.setColor(touchgfx::Color::getColorFromRGB(255, 255, 0));
cone1.setPainter(cone1Painter);
const touchgfx::AbstractShape::ShapePoint<float> cone1Points[3] = { { 0.0f, 0.0f }, { 10.0f, 5.0f }, { 0.0f, 10.0f } };
cone1.setShape(cone1Points);
cone1.setVisible(false);
map.add(cone1);
cone2.setPosition(0, 0, 10, 10);
cone2.setOrigin(0.0f, 0.0f);
cone2.setScale(1.0f, 1.0f);
cone2.setAngle(0.0f);
cone2Painter.setColor(touchgfx::Color::getColorFromRGB(255, 255, 0));
cone2.setPainter(cone2Painter);
const touchgfx::AbstractShape::ShapePoint<float> cone2Points[3] = { { 0.0f, 0.0f }, { 10.0f, 5.0f }, { 0.0f, 10.0f } };
cone2.setShape(cone2Points);
cone2.setVisible(false);
map.add(cone2);
cone3.setPosition(0, 0, 10, 10);
cone3.setOrigin(0.0f, 0.0f);
cone3.setScale(1.0f, 1.0f);
cone3.setAngle(0.0f);
cone3Painter.setColor(touchgfx::Color::getColorFromRGB(255, 255, 0));
cone3.setPainter(cone3Painter);
const touchgfx::AbstractShape::ShapePoint<float> cone3Points[3] = { { 0.0f, 0.0f }, { 10.0f, 5.0f }, { 0.0f, 10.0f } };
cone3.setShape(cone3Points);
cone3.setVisible(false);
map.add(cone3);
cone4.setPosition(0, 0, 10, 10);
cone4.setOrigin(0.0f, 0.0f);
cone4.setScale(1.0f, 1.0f);
cone4.setAngle(0.0f);
cone4Painter.setColor(touchgfx::Color::getColorFromRGB(255, 255, 0));
cone4.setPainter(cone4Painter);
const touchgfx::AbstractShape::ShapePoint<float> cone4Points[3] = { { 0.0f, 0.0f }, { 10.0f, 5.0f }, { 0.0f, 10.0f } };
cone4.setShape(cone4Points);
cone4.setVisible(false);
map.add(cone4);
cone5.setPosition(0, 0, 10, 10);
cone5.setOrigin(0.0f, 0.0f);
cone5.setScale(1.0f, 1.0f);
cone5.setAngle(0.0f);
cone5Painter.setColor(touchgfx::Color::getColorFromRGB(255, 255, 0));
cone5.setPainter(cone5Painter);
const touchgfx::AbstractShape::ShapePoint<float> cone5Points[3] = { { 0.0f, 0.0f }, { 10.0f, 5.0f }, { 0.0f, 10.0f } };
cone5.setShape(cone5Points);
cone5.setVisible(false);
map.add(cone5);
cone6.setPosition(0, 0, 10, 10);
cone6.setOrigin(0.0f, 0.0f);
cone6.setScale(1.0f, 1.0f);
cone6.setAngle(0.0f);
cone6Painter.setColor(touchgfx::Color::getColorFromRGB(255, 255, 0));
cone6.setPainter(cone6Painter);
const touchgfx::AbstractShape::ShapePoint<float> cone6Points[3] = { { 0.0f, 0.0f }, { 10.0f, 5.0f }, { 0.0f, 10.0f } };
cone6.setShape(cone6Points);
cone6.setVisible(false);
map.add(cone6);
cone7.setPosition(0, 0, 10, 10);
cone7.setOrigin(0.0f, 0.0f);
cone7.setScale(1.0f, 1.0f);
cone7.setAngle(0.0f);
cone7Painter.setColor(touchgfx::Color::getColorFromRGB(255, 255, 0));
cone7.setPainter(cone7Painter);
const touchgfx::AbstractShape::ShapePoint<float> cone7Points[3] = { { 0.0f, 0.0f }, { 10.0f, 5.0f }, { 0.0f, 10.0f } };
cone7.setShape(cone7Points);
cone7.setVisible(false);
map.add(cone7);
cone8.setPosition(0, 0, 10, 10);
cone8.setOrigin(0.0f, 0.0f);
cone8.setScale(1.0f, 1.0f);
cone8.setAngle(0.0f);
cone8Painter.setColor(touchgfx::Color::getColorFromRGB(255, 255, 0));
cone8.setPainter(cone8Painter);
const touchgfx::AbstractShape::ShapePoint<float> cone8Points[3] = { { 0.0f, 0.0f }, { 10.0f, 5.0f }, { 0.0f, 10.0f } };
cone8.setShape(cone8Points);
cone8.setVisible(false);
map.add(cone8);
cone9.setPosition(0, 0, 10, 10);
cone9.setOrigin(0.0f, 0.0f);
cone9.setScale(1.0f, 1.0f);
cone9.setAngle(0.0f);
cone9Painter.setColor(touchgfx::Color::getColorFromRGB(255, 255, 0));
cone9.setPainter(cone9Painter);
const touchgfx::AbstractShape::ShapePoint<float> cone9Points[3] = { { 0.0f, 0.0f }, { 10.0f, 5.0f }, { 0.0f, 10.0f } };
cone9.setShape(cone9Points);
cone9.setVisible(false);
map.add(cone9);
ft.setPosition(0, 91, 20, 20);
ft.setOrigin(0.0f, 0.0f);
ft.setScale(1.0f, 1.0f);
ft.setAngle(0.0f);
ftPainter.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
ft.setPainter(ftPainter);
const touchgfx::AbstractShape::ShapePoint<float> ftPoints[3] = { { 0.0f, 0.0f }, { 20.0f, 10.0f }, { 0.0f, 20.0f } };
ft.setShape(ftPoints);
map.add(ft);
add(map);
} }
AMIViewBase::~AMIViewBase() AMIViewBase::~AMIViewBase()
{ {
touchgfx::CanvasWidgetRenderer::resetBuffer();
} }
void AMIViewBase::setupScreen() void AMIViewBase::setupScreen()

View File

@ -38,6 +38,19 @@ FrontendApplicationBase::FrontendApplicationBase(Model& m, FrontendHeap& heap)
* Screen Transition Declarations * Screen Transition Declarations
*/ */
// MissionSelect
void FrontendApplicationBase::gotoMissionSelectScreenNoTransition()
{
transitionCallback = touchgfx::Callback<FrontendApplicationBase>(this, &FrontendApplicationBase::gotoMissionSelectScreenNoTransitionImpl);
pendingScreenTransitionCallback = &transitionCallback;
}
void FrontendApplicationBase::gotoMissionSelectScreenNoTransitionImpl()
{
touchgfx::makeTransition<MissionSelectView, MissionSelectPresenter, touchgfx::NoTransition, Model >(&currentScreen, &currentPresenter, frontendHeap, &currentTransition, &model);
}
// AMI // AMI
void FrontendApplicationBase::gotoAMIScreenNoTransition() void FrontendApplicationBase::gotoAMIScreenNoTransition()

View File

@ -1 +1 @@
{"remap":"yes","language":"GB","language_index":0,"indices":[["349","T_LV"],["333","T_PDU"],["341","T_SCS"],["345","T_SDC"],["337","T_R2D"],["330","T_TS"],["325","T_INV"],["321","T_AMS"],["128","T_ERROR_AMS"],["170","T_DEBUGVIEWFIELD_TITLE"],["170","T_DRIVERVIEWFIELD_TITLE"],["170","T_NUMBERSMALLWILDCARD"],["281","T_FIELD_BBAL"],["250","T_FIELD_TSVOLTVEH"],["243","T_FIELD_TSVOLTBAT"],["263","T_FIELD_LVSOC"],["275","T_FIELD_TSSOC"],["291","T_FIELD_MAXCELLTEMP"],["296","T_FIELD_TIREFL"],["301","T_FIELD_TIREFR"],["306","T_FIELD_TIRERL"],["311","T_FIELD_TIRERR"],["286","T_FIELD_LAPCOUNT"],["180","T_FIELD_INICHKSTATE"],["257","T_FIELD_ERR"],["345","T_FIELD_SDC"],["196","T_FIELD_INVRREADY"],["188","T_FIELD_INVLREADY"],["212","T_FIELD_R2DPROGRESS"],["204","T_FIELD_ACTIVEMISSION"],["172","T_FIELD_ASSTATE"],["228","T_FIELD_TSSTATE"],["170","T_NUMBERWILDCARD"],["170","T_DEFAULTWILDCARD_CENTERED"],["170","T_DEFAULTWILDCARD_RIGHTALIGNED"],["329","T_FIELD_TSCURRENT"],["316","T_FIELD_MINCELLVOLT"],["269","T_FIELD_SPEED"],["95","T_INSPECTION_HUGE"],["161","T_EBS_HUGE"],["117","T_TRACKDRIVE_HUGE"],["138","T_AUTOX_HUGE"],["220","T_SKIDPAD_HUGE"],["82","T_ACCEL_HUGE"],["34","T_INVALID_HUGE"],["67","T_MANUAL"],["95","T_INSPECTION"],["161","T_EBS"],["117","T_TRACKDRIVE"],["138","T_AUTOX"],["220","T_SKIDPAD"],["82","T_ACCEL"],["16","T___SINGLEUSE_F9I5"],["170","T___SINGLEUSE_9L8R"],["16","T___SINGLEUSE_1NKF"],["170","T___SINGLEUSE_J5UH"],["337","T___SINGLEUSE_NGUK"],["170","T___SINGLEUSE_4E84"],["170","T___SINGLEUSE_YTAB"],["106","T___SINGLEUSE_RWCE"],["148","T___SINGLEUSE_HMH2"],["158","T___SINGLEUSE_PHFD"],["236","T___SINGLEUSE_H6UX"],["170","T___SINGLEUSE_20H3"],["17","T___SINGLEUSE_SDGP"],["51","T___SINGLEUSE_M5X7"],["0","T___SINGLEUSE_6GPV"]]} {"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"]]}

View File

@ -1 +1 @@
{"languages":["GB"],"textids":["T_LV","T_PDU","T_SCS","T_SDC","T_R2D","T_TS","T_INV","T_AMS","T_ERROR_AMS","T_DEBUGVIEWFIELD_TITLE","T_DRIVERVIEWFIELD_TITLE","T_NUMBERSMALLWILDCARD","T_FIELD_BBAL","T_FIELD_TSVOLTVEH","T_FIELD_TSVOLTBAT","T_FIELD_LVSOC","T_FIELD_TSSOC","T_FIELD_MAXCELLTEMP","T_FIELD_TIREFL","T_FIELD_TIREFR","T_FIELD_TIRERL","T_FIELD_TIRERR","T_FIELD_LAPCOUNT","T_FIELD_INICHKSTATE","T_FIELD_ERR","T_FIELD_SDC","T_FIELD_INVRREADY","T_FIELD_INVLREADY","T_FIELD_R2DPROGRESS","T_FIELD_ACTIVEMISSION","T_FIELD_ASSTATE","T_FIELD_TSSTATE","T_NUMBERWILDCARD","T_DEFAULTWILDCARD_CENTERED","T_DEFAULTWILDCARD_RIGHTALIGNED","T_FIELD_TSCURRENT","T_FIELD_MINCELLVOLT","T_FIELD_SPEED","T_INSPECTION_HUGE","T_EBS_HUGE","T_TRACKDRIVE_HUGE","T_AUTOX_HUGE","T_SKIDPAD_HUGE","T_ACCEL_HUGE","T_INVALID_HUGE","T_MANUAL","T_INSPECTION","T_EBS","T_TRACKDRIVE","T_AUTOX","T_SKIDPAD","T_ACCEL","T___SINGLEUSE_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_SDGP","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_2S21","T___SINGLEUSE_OQ6P","T___SINGLEUSE_590R","T___SINGLEUSE_Z78U","T___SINGLEUSE_LLOZ","T___SINGLEUSE_232C","T___SINGLEUSE_JFR7","T___SINGLEUSE_3MDX","T___SINGLEUSE_F9I5","T___SINGLEUSE_9L8R","T___SINGLEUSE_1NKF","T___SINGLEUSE_J5UH","T___SINGLEUSE_NGUK","T___SINGLEUSE_4E84","T___SINGLEUSE_YTAB","T___SINGLEUSE_RWCE","T___SINGLEUSE_HMH2","T___SINGLEUSE_PHFD","T___SINGLEUSE_H6UX","T___SINGLEUSE_20H3","T___SINGLEUSE_M5X7","T___SINGLEUSE_6GPV"]}

View File

@ -1 +1 @@
{"remap":"yes","languages":["Gb"],"characters":[67,104,111,111,115,101,32,97,32,109,105,115,115,105,111,110,0,67,117,114,114,101,110,116,32,77,105,115,115,105,111,110,58,0,73,110,118,97,108,105,100,32,77,105,115,115,105,111,110,33,0,73,110,118,97,108,105,100,32,77,105,115,115,105,111,110,0,77,97,110,117,97,108,32,68,114,105,118,105,110,103,0,65,99,99,101,108,101,114,97,116,105,111,110,0,73,110,115,112,101,99,116,105,111,110,0,80,65,82,65,77,69,84,69,82,83,0,84,114,97,99,107,100,114,105,118,101,0,65,77,83,32,69,114,114,79,114,0,65,117,116,111,99,114,111,115,115,0,80,82,69,67,72,65,82,71,69,0,2,37,0,69,66,83,32,84,101,115,116,0,2,0,65,83,83,84,65,84,69,0,73,67,83,84,65,84,69,0,73,78,86,76,82,68,89,0,73,78,86,82,82,68,89,0,77,73,83,83,73,79,78,0,82,50,68,80,82,79,71,0,83,107,105,100,112,97,100,0,84,83,83,84,65,84,69,0,66,82,65,75,69,83,0,84,83,86,66,65,84,0,84,83,86,86,69,72,0,69,82,82,79,82,0,76,86,83,79,67,0,83,80,69,69,68,0,84,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,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]}

View File

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

View File

@ -64,6 +64,14 @@ enum TEXTS
T_AUTOX, T_AUTOX,
T_SKIDPAD, T_SKIDPAD,
T_ACCEL, 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_F9I5,
T___SINGLEUSE_9L8R, T___SINGLEUSE_9L8R,
T___SINGLEUSE_1NKF, T___SINGLEUSE_1NKF,
@ -76,7 +84,6 @@ enum TEXTS
T___SINGLEUSE_PHFD, T___SINGLEUSE_PHFD,
T___SINGLEUSE_H6UX, T___SINGLEUSE_H6UX,
T___SINGLEUSE_20H3, T___SINGLEUSE_20H3,
T___SINGLEUSE_SDGP,
T___SINGLEUSE_M5X7, T___SINGLEUSE_M5X7,
T___SINGLEUSE_6GPV, T___SINGLEUSE_6GPV,
NUMBER_OF_TEXT_KEYS NUMBER_OF_TEXT_KEYS

View File

@ -10,71 +10,78 @@ KEEP extern const uint32_t indicesGb[] TEXT_LOCATION_FLASH_ATTRIBUTE;
// Remap all strings // Remap all strings
TEXT_LOCATION_FLASH_PRAGMA TEXT_LOCATION_FLASH_PRAGMA
KEEP extern const uint32_t indicesGb[] TEXT_LOCATION_FLASH_ATTRIBUTE = { KEEP extern const uint32_t indicesGb[] TEXT_LOCATION_FLASH_ATTRIBUTE = {
349, // T_LV: "LV" 360, // T_LV: "LV"
333, // T_PDU: "PDU" 344, // T_PDU: "PDU"
341, // T_SCS: "SCS" 352, // T_SCS: "SCS"
345, // T_SDC: "SDC" 356, // T_SDC: "SDC"
337, // T_R2D: "R2D" 348, // T_R2D: "R2D"
330, // T_TS: "TS" 341, // T_TS: "TS"
325, // T_INV: "INV" 336, // T_INV: "INV"
321, // T_AMS: "AMS" 332, // T_AMS: "AMS"
128, // T_ERROR_AMS: "AMS ErrOr" 111, // T_ERROR_AMS: "AMS ErrOr"
170, // T_DEBUGVIEWFIELD_TITLE: "<>" 153, // T_DEBUGVIEWFIELD_TITLE: "<>"
170, // T_DRIVERVIEWFIELD_TITLE: "<>" 153, // T_DRIVERVIEWFIELD_TITLE: "<>"
170, // T_NUMBERSMALLWILDCARD: "<>" 153, // T_NUMBERSMALLWILDCARD: "<>"
281, // T_FIELD_BBAL: "BBAL" 292, // T_FIELD_BBAL: "BBAL"
250, // T_FIELD_TSVOLTVEH: "TSVVEH" 249, // T_FIELD_TSVOLTVEH: "TSVVEH"
243, // T_FIELD_TSVOLTBAT: "TSVBAT" 242, // T_FIELD_TSVOLTBAT: "TSVBAT"
263, // T_FIELD_LVSOC: "LVSOC" 268, // T_FIELD_LVSOC: "LVSOC"
275, // T_FIELD_TSSOC: "TSSOC" 286, // T_FIELD_TSSOC: "TSSOC"
291, // T_FIELD_MAXCELLTEMP: "TMAX" 302, // T_FIELD_MAXCELLTEMP: "TMAX"
296, // T_FIELD_TIREFL: "TTFL" 307, // T_FIELD_TIREFL: "TTFL"
301, // T_FIELD_TIREFR: "TTFR" 312, // T_FIELD_TIREFR: "TTFR"
306, // T_FIELD_TIRERL: "TTRL" 317, // T_FIELD_TIRERL: "TTRL"
311, // T_FIELD_TIRERR: "TTRR" 322, // T_FIELD_TIRERR: "TTRR"
286, // T_FIELD_LAPCOUNT: "LAPS" 297, // T_FIELD_LAPCOUNT: "LAPS"
180, // T_FIELD_INICHKSTATE: "ICSTATE" 171, // T_FIELD_INICHKSTATE: "ICSTATE"
257, // T_FIELD_ERR: "ERROR" 262, // T_FIELD_ERR: "ERROR"
345, // T_FIELD_SDC: "SDC" 356, // T_FIELD_SDC: "SDC"
196, // T_FIELD_INVRREADY: "INVRRDY" 187, // T_FIELD_INVRREADY: "INVRRDY"
188, // T_FIELD_INVLREADY: "INVLRDY" 179, // T_FIELD_INVLREADY: "INVLRDY"
212, // T_FIELD_R2DPROGRESS: "R2DPROG" 211, // T_FIELD_R2DPROGRESS: "R2DPROG"
204, // T_FIELD_ACTIVEMISSION: "MISSION" 195, // T_FIELD_ACTIVEMISSION: "MISSION"
172, // T_FIELD_ASSTATE: "ASSTATE" 155, // T_FIELD_ASSTATE: "ASSTATE"
228, // T_FIELD_TSSTATE: "TSSTATE" 227, // T_FIELD_TSSTATE: "TSSTATE"
170, // T_NUMBERWILDCARD: "<>" 153, // T_NUMBERWILDCARD: "<>"
170, // T_DEFAULTWILDCARD_CENTERED: "<>" 153, // T_DEFAULTWILDCARD_CENTERED: "<>"
170, // T_DEFAULTWILDCARD_RIGHTALIGNED: "<>" 153, // T_DEFAULTWILDCARD_RIGHTALIGNED: "<>"
329, // T_FIELD_TSCURRENT: "ITS" 340, // T_FIELD_TSCURRENT: "ITS"
316, // T_FIELD_MINCELLVOLT: "VMIN" 327, // T_FIELD_MINCELLVOLT: "VMIN"
269, // T_FIELD_SPEED: "SPEED" 280, // T_FIELD_SPEED: "SPEED"
95, // T_INSPECTION_HUGE: "Inspection" 78, // T_INSPECTION_HUGE: "Inspection"
161, // T_EBS_HUGE: "EBS Test" 144, // T_EBS_HUGE: "EBS Test"
117, // T_TRACKDRIVE_HUGE: "Trackdrive" 100, // T_TRACKDRIVE_HUGE: "Trackdrive"
138, // T_AUTOX_HUGE: "Autocross" 121, // T_AUTOX_HUGE: "Autocross"
220, // T_SKIDPAD_HUGE: "Skidpad" 219, // T_SKIDPAD_HUGE: "Skidpad"
82, // T_ACCEL_HUGE: "Acceleration" 65, // T_ACCEL_HUGE: "Acceleration"
34, // T_INVALID_HUGE: "Invalid Mission!" 17, // T_INVALID_HUGE: "Invalid Mission!"
67, // T_MANUAL: "Manual Driving" 50, // T_MANUAL: "Manual Driving"
95, // T_INSPECTION: "Inspection" 78, // T_INSPECTION: "Inspection"
161, // T_EBS: "EBS Test" 144, // T_EBS: "EBS Test"
117, // T_TRACKDRIVE: "Trackdrive" 100, // T_TRACKDRIVE: "Trackdrive"
138, // T_AUTOX: "Autocross" 121, // T_AUTOX: "Autocross"
220, // T_SKIDPAD: "Skidpad" 219, // T_SKIDPAD: "Skidpad"
82, // T_ACCEL: "Acceleration" 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:"
16, // T___SINGLEUSE_F9I5: "" 16, // T___SINGLEUSE_F9I5: ""
170, // T___SINGLEUSE_9L8R: "<>" 153, // T___SINGLEUSE_9L8R: "<>"
16, // T___SINGLEUSE_1NKF: "" 16, // T___SINGLEUSE_1NKF: ""
170, // T___SINGLEUSE_J5UH: "<>" 153, // T___SINGLEUSE_J5UH: "<>"
337, // T___SINGLEUSE_NGUK: "R2D" 348, // T___SINGLEUSE_NGUK: "R2D"
170, // T___SINGLEUSE_4E84: "<>" 153, // T___SINGLEUSE_4E84: "<>"
170, // T___SINGLEUSE_YTAB: "<>" 153, // T___SINGLEUSE_YTAB: "<>"
106, // T___SINGLEUSE_RWCE: "PARAMETERS" 89, // T___SINGLEUSE_RWCE: "PARAMETERS"
148, // T___SINGLEUSE_HMH2: "PRECHARGE" 131, // T___SINGLEUSE_HMH2: "PRECHARGE"
158, // T___SINGLEUSE_PHFD: "<>%" 141, // T___SINGLEUSE_PHFD: "<>%"
236, // T___SINGLEUSE_H6UX: "BRAKES" 235, // T___SINGLEUSE_H6UX: "BRAKES"
170, // T___SINGLEUSE_20H3: "<>" 153, // T___SINGLEUSE_20H3: "<>"
17, // T___SINGLEUSE_SDGP: "Current Mission:" 34, // T___SINGLEUSE_M5X7: "Invalid Mission"
51, // T___SINGLEUSE_M5X7: "Invalid Mission"
0 // T___SINGLEUSE_6GPV: "Choose a mission" 0 // T___SINGLEUSE_6GPV: "Choose a mission"
}; };

View File

@ -61,51 +61,54 @@ extern const touchgfx::TypedText::TypedTextData* const typedTextDatabaseArray[];
TEXT_LOCATION_FLASH_PRAGMA TEXT_LOCATION_FLASH_PRAGMA
KEEP extern const touchgfx::Unicode::UnicodeChar texts_all_languages[] TEXT_LOCATION_FLASH_ATTRIBUTE = { KEEP extern const touchgfx::Unicode::UnicodeChar texts_all_languages[] TEXT_LOCATION_FLASH_ATTRIBUTE = {
0x43, 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x20, 0x61, 0x20, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0, // @0 "Choose a mission" 0x43, 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x20, 0x61, 0x20, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0, // @0 "Choose a mission"
0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x0, // @17 "Current Mission:" 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x21, 0x0, // @17 "Invalid Mission!"
0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x21, 0x0, // @34 "Invalid Mission!" 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0, // @34 "Invalid Mission"
0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0, // @51 "Invalid Mission" 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x20, 0x44, 0x72, 0x69, 0x76, 0x69, 0x6e, 0x67, 0x0, // @50 "Manual Driving"
0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x20, 0x44, 0x72, 0x69, 0x76, 0x69, 0x6e, 0x67, 0x0, // @67 "Manual Driving" 0x41, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0, // @65 "Acceleration"
0x41, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x0, // @82 "Acceleration" 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0, // @78 "Inspection"
0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0, // @95 "Inspection" 0x50, 0x41, 0x52, 0x41, 0x4d, 0x45, 0x54, 0x45, 0x52, 0x53, 0x0, // @89 "PARAMETERS"
0x50, 0x41, 0x52, 0x41, 0x4d, 0x45, 0x54, 0x45, 0x52, 0x53, 0x0, // @106 "PARAMETERS" 0x54, 0x72, 0x61, 0x63, 0x6b, 0x64, 0x72, 0x69, 0x76, 0x65, 0x0, // @100 "Trackdrive"
0x54, 0x72, 0x61, 0x63, 0x6b, 0x64, 0x72, 0x69, 0x76, 0x65, 0x0, // @117 "Trackdrive" 0x41, 0x4d, 0x53, 0x20, 0x45, 0x72, 0x72, 0x4f, 0x72, 0x0, // @111 "AMS ErrOr"
0x41, 0x4d, 0x53, 0x20, 0x45, 0x72, 0x72, 0x4f, 0x72, 0x0, // @128 "AMS ErrOr" 0x41, 0x75, 0x74, 0x6f, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x0, // @121 "Autocross"
0x41, 0x75, 0x74, 0x6f, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x0, // @138 "Autocross" 0x50, 0x52, 0x45, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x0, // @131 "PRECHARGE"
0x50, 0x52, 0x45, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x0, // @148 "PRECHARGE" 0x2, 0x25, 0x0, // @141 "<>%"
0x2, 0x25, 0x0, // @158 "<>%" 0x45, 0x42, 0x53, 0x20, 0x54, 0x65, 0x73, 0x74, 0x0, // @144 "EBS Test"
0x45, 0x42, 0x53, 0x20, 0x54, 0x65, 0x73, 0x74, 0x0, // @161 "EBS Test" 0x2, 0x0, // @153 "<>"
0x2, 0x0, // @170 "<>" 0x41, 0x53, 0x53, 0x54, 0x41, 0x54, 0x45, 0x0, // @155 "ASSTATE"
0x41, 0x53, 0x53, 0x54, 0x41, 0x54, 0x45, 0x0, // @172 "ASSTATE" 0x44, 0x53, 0x50, 0x45, 0x45, 0x44, 0x3a, 0x0, // @163 "DSPEED:"
0x49, 0x43, 0x53, 0x54, 0x41, 0x54, 0x45, 0x0, // @180 "ICSTATE" 0x49, 0x43, 0x53, 0x54, 0x41, 0x54, 0x45, 0x0, // @171 "ICSTATE"
0x49, 0x4e, 0x56, 0x4c, 0x52, 0x44, 0x59, 0x0, // @188 "INVLRDY" 0x49, 0x4e, 0x56, 0x4c, 0x52, 0x44, 0x59, 0x0, // @179 "INVLRDY"
0x49, 0x4e, 0x56, 0x52, 0x52, 0x44, 0x59, 0x0, // @196 "INVRRDY" 0x49, 0x4e, 0x56, 0x52, 0x52, 0x44, 0x59, 0x0, // @187 "INVRRDY"
0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x0, // @204 "MISSION" 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x0, // @195 "MISSION"
0x52, 0x32, 0x44, 0x50, 0x52, 0x4f, 0x47, 0x0, // @212 "R2DPROG" 0x4d, 0x53, 0x50, 0x45, 0x45, 0x44, 0x3a, 0x0, // @203 "MSPEED:"
0x53, 0x6b, 0x69, 0x64, 0x70, 0x61, 0x64, 0x0, // @220 "Skidpad" 0x52, 0x32, 0x44, 0x50, 0x52, 0x4f, 0x47, 0x0, // @211 "R2DPROG"
0x54, 0x53, 0x53, 0x54, 0x41, 0x54, 0x45, 0x0, // @228 "TSSTATE" 0x53, 0x6b, 0x69, 0x64, 0x70, 0x61, 0x64, 0x0, // @219 "Skidpad"
0x42, 0x52, 0x41, 0x4b, 0x45, 0x53, 0x0, // @236 "BRAKES" 0x54, 0x53, 0x53, 0x54, 0x41, 0x54, 0x45, 0x0, // @227 "TSSTATE"
0x54, 0x53, 0x56, 0x42, 0x41, 0x54, 0x0, // @243 "TSVBAT" 0x42, 0x52, 0x41, 0x4b, 0x45, 0x53, 0x0, // @235 "BRAKES"
0x54, 0x53, 0x56, 0x56, 0x45, 0x48, 0x0, // @250 "TSVVEH" 0x54, 0x53, 0x56, 0x42, 0x41, 0x54, 0x0, // @242 "TSVBAT"
0x45, 0x52, 0x52, 0x4f, 0x52, 0x0, // @257 "ERROR" 0x54, 0x53, 0x56, 0x56, 0x45, 0x48, 0x0, // @249 "TSVVEH"
0x4c, 0x56, 0x53, 0x4f, 0x43, 0x0, // @263 "LVSOC" 0x44, 0x41, 0x4e, 0x47, 0x3a, 0x0, // @256 "DANG:"
0x53, 0x50, 0x45, 0x45, 0x44, 0x0, // @269 "SPEED" 0x45, 0x52, 0x52, 0x4f, 0x52, 0x0, // @262 "ERROR"
0x54, 0x53, 0x53, 0x4f, 0x43, 0x0, // @275 "TSSOC" 0x4c, 0x56, 0x53, 0x4f, 0x43, 0x0, // @268 "LVSOC"
0x42, 0x42, 0x41, 0x4c, 0x0, // @281 "BBAL" 0x4d, 0x41, 0x4e, 0x47, 0x3a, 0x0, // @274 "MANG:"
0x4c, 0x41, 0x50, 0x53, 0x0, // @286 "LAPS" 0x53, 0x50, 0x45, 0x45, 0x44, 0x0, // @280 "SPEED"
0x54, 0x4d, 0x41, 0x58, 0x0, // @291 "TMAX" 0x54, 0x53, 0x53, 0x4f, 0x43, 0x0, // @286 "TSSOC"
0x54, 0x54, 0x46, 0x4c, 0x0, // @296 "TTFL" 0x42, 0x42, 0x41, 0x4c, 0x0, // @292 "BBAL"
0x54, 0x54, 0x46, 0x52, 0x0, // @301 "TTFR" 0x4c, 0x41, 0x50, 0x53, 0x0, // @297 "LAPS"
0x54, 0x54, 0x52, 0x4c, 0x0, // @306 "TTRL" 0x54, 0x4d, 0x41, 0x58, 0x0, // @302 "TMAX"
0x54, 0x54, 0x52, 0x52, 0x0, // @311 "TTRR" 0x54, 0x54, 0x46, 0x4c, 0x0, // @307 "TTFL"
0x56, 0x4d, 0x49, 0x4e, 0x0, // @316 "VMIN" 0x54, 0x54, 0x46, 0x52, 0x0, // @312 "TTFR"
0x41, 0x4d, 0x53, 0x0, // @321 "AMS" 0x54, 0x54, 0x52, 0x4c, 0x0, // @317 "TTRL"
0x49, 0x4e, 0x56, 0x0, // @325 "INV" 0x54, 0x54, 0x52, 0x52, 0x0, // @322 "TTRR"
0x49, 0x54, 0x53, 0x0, // @329 "ITS" 0x56, 0x4d, 0x49, 0x4e, 0x0, // @327 "VMIN"
0x50, 0x44, 0x55, 0x0, // @333 "PDU" 0x41, 0x4d, 0x53, 0x0, // @332 "AMS"
0x52, 0x32, 0x44, 0x0, // @337 "R2D" 0x49, 0x4e, 0x56, 0x0, // @336 "INV"
0x53, 0x43, 0x53, 0x0, // @341 "SCS" 0x49, 0x54, 0x53, 0x0, // @340 "ITS"
0x53, 0x44, 0x43, 0x0, // @345 "SDC" 0x50, 0x44, 0x55, 0x0, // @344 "PDU"
0x4c, 0x56, 0x0 // @349 "LV" 0x52, 0x32, 0x44, 0x0, // @348 "R2D"
0x53, 0x43, 0x53, 0x0, // @352 "SCS"
0x53, 0x44, 0x43, 0x0, // @356 "SDC"
0x4c, 0x56, 0x0 // @360 "LV"
}; };
TEXT_LOCATION_FLASH_PRAGMA TEXT_LOCATION_FLASH_PRAGMA

View File

@ -12,6 +12,7 @@ extern touchgfx::GeneratedFont& getFont_CHINN____40_4bpp();
extern touchgfx::GeneratedFont& getFont_lucon_TTF_50_4bpp(); extern touchgfx::GeneratedFont& getFont_lucon_TTF_50_4bpp();
extern touchgfx::GeneratedFont& getFont_verdanab_20_4bpp(); extern touchgfx::GeneratedFont& getFont_verdanab_20_4bpp();
extern touchgfx::GeneratedFont& getFont_lucon_TTF_33_4bpp(); extern touchgfx::GeneratedFont& getFont_lucon_TTF_33_4bpp();
extern touchgfx::GeneratedFont& getFont_lucon_TTF_20_4bpp();
const touchgfx::Font* touchgfx_fonts[] = { const touchgfx::Font* touchgfx_fonts[] = {
&(getFont_verdana_20_4bpp()), &(getFont_verdana_20_4bpp()),
@ -20,7 +21,8 @@ const touchgfx::Font* touchgfx_fonts[] = {
&(getFont_CHINN____40_4bpp()), &(getFont_CHINN____40_4bpp()),
&(getFont_lucon_TTF_50_4bpp()), &(getFont_lucon_TTF_50_4bpp()),
&(getFont_verdanab_20_4bpp()), &(getFont_verdanab_20_4bpp()),
&(getFont_lucon_TTF_33_4bpp()) &(getFont_lucon_TTF_33_4bpp()),
&(getFont_lucon_TTF_20_4bpp())
}; };
extern const touchgfx::TypedText::TypedTextData typedText_database_DEFAULT[]; extern const touchgfx::TypedText::TypedTextData typedText_database_DEFAULT[];
@ -80,6 +82,14 @@ const touchgfx::TypedText::TypedTextData typedText_database_GB[] TEXT_LOCATION_F
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR }, { 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR }, { 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR }, { 2, touchgfx::CENTER, 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 },
{ 2, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR }, { 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 0, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR }, { 0, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
{ 3, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR }, { 3, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
@ -92,7 +102,6 @@ const touchgfx::TypedText::TypedTextData typedText_database_GB[] TEXT_LOCATION_F
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR }, { 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR }, { 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 4, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR }, { 4, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 1, touchgfx::LEFT, 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::LEFT, touchgfx::TEXT_DIRECTION_LTR }
}; };
@ -150,6 +159,14 @@ const touchgfx::TypedText::TypedTextData typedText_database_DEFAULT[] TEXT_LOCAT
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR }, { 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR }, { 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR }, { 2, touchgfx::CENTER, 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 },
{ 2, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR }, { 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 0, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR }, { 0, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
{ 3, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR }, { 3, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
@ -162,7 +179,6 @@ const touchgfx::TypedText::TypedTextData typedText_database_DEFAULT[] TEXT_LOCAT
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR }, { 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR }, { 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 4, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR }, { 4, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 1, touchgfx::LEFT, 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::LEFT, touchgfx::TEXT_DIRECTION_LTR }
}; };
@ -221,6 +237,9 @@ void resetFont(touchgfx::FontId fontId)
case 6: case 6:
touchgfx_fonts[6] = &(getFont_lucon_TTF_33_4bpp()); touchgfx_fonts[6] = &(getFont_lucon_TTF_33_4bpp());
break; break;
case 7:
touchgfx_fonts[7] = &(getFont_lucon_TTF_20_4bpp());
break;
} }
} }
} // namespace TypedTextDatabase } // namespace TypedTextDatabase

View File

@ -2,9 +2,25 @@
#define AMIVIEW_HPP #define AMIVIEW_HPP
#include "stw_defines.h" #include "stw_defines.h"
#include "touchgfx/Unicode.hpp"
#include "touchgfx/widgets/TextArea.hpp"
#include "touchgfx/widgets/TextAreaWithWildcard.hpp"
#include "vehicle_state.h"
#include <gui/ami_screen/AMIPresenter.hpp> #include <gui/ami_screen/AMIPresenter.hpp>
#include <gui_generated/ami_screen/AMIViewBase.hpp> #include <gui_generated/ami_screen/AMIViewBase.hpp>
class AMIDataField {
public:
AMIDataField(touchgfx::TextAreaWithOneWildcard &textArea, const char *fmt);
void setValue(float value);
protected:
const char *fmt;
touchgfx::TextAreaWithOneWildcard &textArea;
touchgfx::Unicode::UnicodeChar buffer[16];
};
class AMIView : public AMIViewBase { class AMIView : public AMIViewBase {
public: public:
@ -15,7 +31,20 @@ public:
void setMission(Mission mission); void setMission(Mission mission);
void updateDataFields();
void setJetsonTimeout(bool timeout);
void setEPSCTimeout(bool timeout);
void setConePositions(ConePosition *positions, size_t count);
protected: protected:
AMIDataField desiredAngleField;
AMIDataField measuredAngleField;
AMIDataField desiredSpeedField;
AMIDataField measuredSpeedField;
touchgfx::Shape<3> cones[NUM_CONES] = {cone0, cone1, cone2, cone3, cone4,
cone5, cone6, cone7, cone8, cone9};
}; };
#endif // AMIVIEW_HPP #endif // AMIVIEW_HPP

View File

@ -1,6 +1,7 @@
#include <gui/ami_screen/AMIPresenter.hpp> #include <gui/ami_screen/AMIPresenter.hpp>
#include <gui/ami_screen/AMIView.hpp> #include <gui/ami_screen/AMIView.hpp>
#include "stm32h7xx_hal.h"
#include "vehicle_state.h" #include "vehicle_state.h"
AMIPresenter::AMIPresenter(AMIView &v) : view(v) {} AMIPresenter::AMIPresenter(AMIView &v) : view(v) {}
@ -11,4 +12,19 @@ void AMIPresenter::deactivate() {}
void AMIPresenter::vehicleStateUpdated() { void AMIPresenter::vehicleStateUpdated() {
view.setMission(vehicle_state.active_mission); view.setMission(vehicle_state.active_mission);
view.updateDataFields();
#ifndef SIMULATOR
view.setJetsonTimeout(HAL_GetTick() - vehicle_state.last_jetson_msg > 500);
view.setEPSCTimeout(HAL_GetTick() - vehicle_state.last_epsc_msg > 500);
#endif
size_t cone_count = 0;
for (; cone_count < NUM_CONES; cone_count++) {
// A cone position of 0xFF/0xFF indicates that there are no more cones
if (vehicle_state.cone_pos[cone_count].x == 0xFF &&
vehicle_state.cone_pos[cone_count].y == 0xFF) {
break;
}
}
view.setConePositions(vehicle_state.cone_pos, cone_count);
} }

View File

@ -1,10 +1,28 @@
#include "gui_generated/ami_screen/AMIViewBase.hpp"
#include "stw_defines.h" #include "stw_defines.h"
#include "texts/TextKeysAndLanguages.hpp" #include "texts/TextKeysAndLanguages.hpp"
#include "touchgfx/Color.hpp" #include "touchgfx/Color.hpp"
#include "touchgfx/TypedText.hpp" #include "touchgfx/TypedText.hpp"
#include "touchgfx/Unicode.hpp"
#include "touchgfx/widgets/TextAreaWithWildcard.hpp"
#include "vehicle_state.h"
#include <gui/ami_screen/AMIView.hpp> #include <gui/ami_screen/AMIView.hpp>
AMIView::AMIView() {} AMIDataField::AMIDataField(touchgfx::TextAreaWithOneWildcard &textArea,
const char *fmt)
: fmt(fmt), textArea(textArea) {}
void AMIDataField::setValue(float value) {
Unicode::snprintfFloat(buffer, sizeof(buffer) / sizeof(*buffer), fmt, value);
textArea.setWildcard(buffer);
textArea.invalidate();
}
AMIView::AMIView()
: AMIViewBase(), desiredAngleField(desiredAngle, "%5.2f"),
measuredAngleField(measuredAngle, "%5.2f"),
desiredSpeedField(desiredSpeed, "%5.1f"),
measuredSpeedField(measuredSpeed, "%5.1f") {}
void AMIView::setupScreen() { AMIViewBase::setupScreen(); } void AMIView::setupScreen() { AMIViewBase::setupScreen(); }
@ -34,8 +52,43 @@ void AMIView::setMission(Mission mission) {
case MISSION_NONE: case MISSION_NONE:
default: default:
currentMission.setTypedText(TypedText(T_INVALID_HUGE)); currentMission.setTypedText(TypedText(T_INVALID_HUGE));
currentMission.setColor(touchgfx::Color::getColorFromRGB(0xFF, 0, 0));
break; break;
} }
currentMission.invalidate(); currentMission.invalidate();
} }
void AMIView::updateDataFields() {
desiredAngleField.setValue(vehicle_state.desired_angle);
measuredAngleField.setValue(vehicle_state.measured_angle);
desiredSpeedField.setValue(vehicle_state.desired_speed);
measuredSpeedField.setValue(vehicle_state.speed);
}
void AMIView::setJetsonTimeout(bool timeout) {
if (timeout) {
desiredAngle.setColor(touchgfx::Color::getColorFromRGB(0xFF, 0, 0));
} else {
desiredAngle.setColor(touchgfx::Color::getColorFromRGB(0xFF, 0xFF, 0xFF));
}
}
void AMIView::setEPSCTimeout(bool timeout) {
if (timeout) {
measuredAngle.setColor(touchgfx::Color::getColorFromRGB(0xFF, 0, 0));
} else {
measuredAngle.setColor(touchgfx::Color::getColorFromRGB(0xFF, 0xFF, 0xFF));
}
}
void AMIView::setConePositions(ConePosition *cone_positions, size_t count) {
for (size_t i = 0; i < count; i++) {
cones[i].setX(cone_positions[i].x);
cones[i].setY(cone_positions[i].y);
cones[i].setVisible(true);
cones[i].invalidate();
}
for (size_t i = count; i < NUM_CONES; i++) {
cones[i].setVisible(false);
cones[i].invalidate();
}
}

View File

@ -197,6 +197,7 @@
}, },
{ {
"Name": "AMI", "Name": "AMI",
"CanvasBufferSize": 7200,
"Components": [ "Components": [
{ {
"Type": "Image", "Type": "Image",
@ -205,16 +206,31 @@
"Y": 266, "Y": 266,
"Width": 160, "Width": 160,
"Height": 39, "Height": 39,
"Visible": false,
"RelativeFilename": "logo_dv_small_white.png" "RelativeFilename": "logo_dv_small_white.png"
}, },
{ {
"Type": "TextArea", "Type": "TextArea",
"Name": "title", "Name": "currentMission",
"X": 42, "Y": 15,
"Y": 20, "Width": 480,
"Width": 396, "Height": 49,
"Height": 37, "TextId": "Invalid_Huge",
"TextId": "__SingleUse_SDGP", "TextRotation": "0",
"Color": {
"Red": 197,
"Green": 14,
"Blue": 31
}
},
{
"Type": "TextArea",
"Name": "textArea1",
"X": 273,
"Y": 103,
"Width": 84,
"Height": 24,
"TextId": "__SingleUse_3MDX",
"TextRotation": "0", "TextRotation": "0",
"Color": { "Color": {
"Red": 255, "Red": 255,
@ -225,17 +241,379 @@
}, },
{ {
"Type": "TextArea", "Type": "TextArea",
"Name": "currentMission", "Name": "textArea2",
"Y": 130, "X": 273,
"Width": 480, "Y": 135,
"Height": 49, "Width": 85,
"TextId": "Invalid_Huge", "Height": 24,
"TextId": "__SingleUse_JFR7",
"TextRotation": "0", "TextRotation": "0",
"Color": { "Color": {
"Red": 255, "Red": 255,
"Green": 255, "Green": 255,
"Blue": 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": [
{
"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,
"Color": {
"Red": 255,
"Green": 255,
"Blue": 255
},
"Points": [
{},
{
"X": 20.0,
"Y": 10.0
},
{
"Y": 20.0
}
],
"XScale": 1.0,
"YScale": 1.0
}
]
} }
], ],
"Interactions": [] "Interactions": []
@ -1325,7 +1703,7 @@
"Height": 480 "Height": 480
}, },
"SelectedColorDepth": 16, "SelectedColorDepth": 16,
"StartupScreenName": "DriverView", "StartupScreenName": "MissionSelect",
"SelectedStartupLanguage": "GB", "SelectedStartupLanguage": "GB",
"TouchGfxPath": "../Middlewares/ST/touchgfx", "TouchGfxPath": "../Middlewares/ST/touchgfx",
"UIPath": ".", "UIPath": ".",