Get started on driver view

This commit is contained in:
Jasper Blanckenburg 2023-03-15 18:43:38 +01:00
parent 641fa3b236
commit 5b6405cf29
47 changed files with 2137 additions and 30 deletions

View File

@ -3,6 +3,21 @@
#include "tx_port.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct {
int fl;
int fr;
int rl;
int rr;
} TireTemps;
void vehicle_thread_entry(ULONG hfdcan_addr);
#ifdef __cplusplus
}
#endif
#endif // __INC_VEHICLE_H

View File

@ -332,20 +332,25 @@ TouchGFX/generated/fonts/src/FontCache.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____40_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/GeneratedFont.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____40_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/Table_CHINN____20_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_lucon_TTF_50_4bpp.cpp \
TouchGFX/generated/fonts/src/Table_verdana_20_4bpp.cpp \
TouchGFX/generated/fonts/src/UnmappedDataFont.cpp \
TouchGFX/generated/gui_generated/src/ami_screen/AMIViewBase.cpp \
TouchGFX/generated/gui_generated/src/common/FrontendApplicationBase.cpp \
TouchGFX/generated/gui_generated/src/containers/MissionSelectElementBase.cpp \
TouchGFX/generated/gui_generated/src/containers/TireTempBase.cpp \
TouchGFX/generated/gui_generated/src/driverview_screen/DriverViewViewBase.cpp \
TouchGFX/generated/gui_generated/src/missionselect_screen/MissionSelectViewBase.cpp \
TouchGFX/generated/images/src/BitmapDatabase.cpp \
TouchGFX/generated/images/src/SVGDatabase.cpp \
@ -353,6 +358,7 @@ TouchGFX/generated/images/src/image_Fasttube_Logo.cpp \
TouchGFX/generated/images/src/image_Fasttube_Logo_small.cpp \
TouchGFX/generated/images/src/image_Fasttube_Logo_small_white.cpp \
TouchGFX/generated/images/src/image_Fasttube_Logo_white.cpp \
TouchGFX/generated/images/src/image_bat_bar_bg.cpp \
TouchGFX/generated/images/src/image_logo_dv_small.cpp \
TouchGFX/generated/images/src/image_logo_dv_small_white.cpp \
TouchGFX/generated/texts/src/LanguageGb.cpp \
@ -362,6 +368,9 @@ TouchGFX/gui/src/ami_screen/AMIPresenter.cpp \
TouchGFX/gui/src/ami_screen/AMIView.cpp \
TouchGFX/gui/src/common/FrontendApplication.cpp \
TouchGFX/gui/src/containers/MissionSelectElement.cpp \
TouchGFX/gui/src/containers/TireTemp.cpp \
TouchGFX/gui/src/driverview_screen/DriverViewPresenter.cpp \
TouchGFX/gui/src/driverview_screen/DriverViewView.cpp \
TouchGFX/gui/src/missionselect_screen/MissionSelectPresenter.cpp \
TouchGFX/gui/src/missionselect_screen/MissionSelectView.cpp \
TouchGFX/gui/src/model/Model.cpp \

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 B

View File

@ -51,6 +51,9 @@
</Text>
</TextGroup>
<TextGroup Id="Unsorted">
<Text Id="__SingleUse_20H3" Alignment="Center" TypographyId="Numbers">
<Translation Language="GB">&lt;value&gt;</Translation>
</Text>
<Text Id="__SingleUse_SDGP" Alignment="Left" TypographyId="Chinat_Large">
<Translation Language="GB">Current Mission:</Translation>
</Text>
@ -67,5 +70,6 @@
<Typography Id="Chinat_Large" Font="CHINN___.ttf" Size="30" Bpp="4" Direction="LTR" FallbackCharacter="?" />
<Typography Id="Chinat_Small" Font="CHINN___.ttf" Size="20" 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="?" WildcardCharacterRanges="0-9" />
</Typographies>
</TextDatabase>

View File

@ -0,0 +1,11 @@
48
49
50
51
52
53
54
55
56
57
63

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]],"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]],"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]],"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]],"generate_font_format":"0"}

View File

@ -0,0 +1,12 @@
AH:0 BA:1 FC:63 EC:0 FF:0 CF:1
48
49
50
51
52
53
54
55
56
57
63

View File

@ -17,6 +17,7 @@ struct Typography
static const touchgfx::FontId CHINAT_LARGE = 1;
static const touchgfx::FontId CHINAT_SMALL = 2;
static const touchgfx::FontId CHINAT_HUGE = 3;
static const touchgfx::FontId NUMBERS = 4;
};
struct TypographyFontIndex
@ -25,7 +26,8 @@ struct TypographyFontIndex
static const touchgfx::FontId CHINAT_LARGE = 1; // CHINN____30_4bpp
static const touchgfx::FontId CHINAT_SMALL = 2; // CHINN____20_4bpp
static const touchgfx::FontId CHINAT_HUGE = 3; // CHINN____40_4bpp
static const uint16_t NUMBER_OF_FONTS = 4;
static const touchgfx::FontId NUMBERS = 4; // lucon_TTF_50_4bpp
static const uint16_t NUMBER_OF_FONTS = 5;
};
class ApplicationFontProvider : public touchgfx::FontProvider

View File

@ -21,6 +21,9 @@ touchgfx::Font* ApplicationFontProvider::getFont(touchgfx::FontId typography)
case Typography::CHINAT_HUGE:
// CHINN____40_4bpp
return const_cast<touchgfx::Font*>(TypedTextDatabase::getFonts()[3]);
case Typography::NUMBERS:
// lucon_TTF_50_4bpp
return const_cast<touchgfx::Font*>(TypedTextDatabase::getFonts()[4]);
default:
return 0;
}

View File

@ -0,0 +1,329 @@
#include <touchgfx/hal/Types.hpp>
FONT_GLYPH_LOCATION_FLASH_PRAGMA
KEEP extern const uint8_t unicodes_lucon_TTF_50_4bpp_0[] FONT_GLYPH_LOCATION_FLASH_ATTRIBUTE = {
// Unicode: [0x0030]
0x00, 0x00, 0x00, 0x00, 0x61, 0xDA, 0xFF, 0xBD, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x60, 0xFE, 0xFF, 0xFF, 0xFF, 0xEF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFA, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xBF, 0x01, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xFF, 0xFF, 0xDF, 0xAA, 0xFC, 0xFF,
0xFF, 0x0B, 0x00, 0x00, 0x00, 0x00, 0xF7, 0xFF, 0xDF, 0x04, 0x00, 0x30, 0xFC, 0xFF, 0x9F, 0x00,
0x00, 0x00, 0x20, 0xFF, 0xFF, 0x1D, 0x00, 0x00, 0x00, 0xB1, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0xA0,
0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x20, 0xFE, 0xFF, 0x0C, 0x00, 0x00, 0xF3, 0xFF, 0xAF, 0x00,
0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x5F, 0x00, 0x00, 0xF9, 0xFF, 0x4F, 0x00, 0x00, 0x00, 0x00,
0x00, 0xF2, 0xFF, 0xBF, 0x00, 0x00, 0xFE, 0xFF, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF,
0xFF, 0x01, 0x40, 0xFF, 0xFF, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0x05, 0x80,
0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0xFF, 0x0A, 0xA0, 0xFF, 0xFF, 0x04,
0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xFF, 0xFF, 0x0C, 0xD0, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xFF, 0xFF, 0x0F, 0xF1, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xFE, 0xFF, 0x2F, 0xF2, 0xFF, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x4F,
0xF3, 0xFF, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x4F, 0xF3, 0xFF, 0xDF,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xFF, 0x5F, 0xF4, 0xFF, 0xDF, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xFB, 0xFF, 0x6F, 0xF4, 0xFF, 0xDF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xFB, 0xFF, 0x6F, 0xF3, 0xFF, 0xDF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xFF,
0x5F, 0xF3, 0xFF, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x4F, 0xF2, 0xFF,
0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x4F, 0xF0, 0xFF, 0xFF, 0x01, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x2F, 0xD0, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xFF, 0xFF, 0x0E, 0xA0, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xFF,
0xFF, 0x0C, 0x80, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0xFF, 0x09, 0x30,
0xFF, 0xFF, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0x05, 0x00, 0xFE, 0xFF, 0x0E,
0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x01, 0x00, 0xF9, 0xFF, 0x4F, 0x00, 0x00, 0x00,
0x00, 0x00, 0xF2, 0xFF, 0xBF, 0x00, 0x00, 0xF3, 0xFF, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8,
0xFF, 0x4F, 0x00, 0x00, 0xA0, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x20, 0xFE, 0xFF, 0x0C, 0x00,
0x00, 0x20, 0xFF, 0xFF, 0x1D, 0x00, 0x00, 0x00, 0xC1, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0xF7,
0xFF, 0xDF, 0x04, 0x00, 0x30, 0xFC, 0xFF, 0x9F, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xFF, 0xFF, 0xDF,
0xAA, 0xFC, 0xFF, 0xFF, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFA, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xBF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0xFE, 0xFF, 0xFF, 0xFF, 0xEF, 0x07, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0xDA, 0xFF, 0xBE, 0x16, 0x00, 0x00, 0x00, 0x00,
// Unicode: [0x0031]
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x72, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x30, 0xC8, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x94, 0xFD, 0xFF,
0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0xEA, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00,
0x00, 0x00, 0x00, 0x00, 0xB3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00,
0x00, 0xF7, 0xFF, 0xFF, 0xFF, 0x8C, 0xFE, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0xDF,
0x7A, 0x03, 0x00, 0xFD, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x02, 0x00, 0x00, 0x00,
0xFD, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0x0F,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0x0F, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xFD, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFF,
0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0x0F, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xFD, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD,
0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0x0F, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xFD, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xFD, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0x0F,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0x0F, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xFD, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFF,
0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0x0F, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x94, 0x99, 0x99,
0x99, 0x99, 0xFE, 0xFF, 0x9F, 0x99, 0x99, 0x99, 0x99, 0x05, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x09, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x09, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x09,
// Unicode: [0x0032]
0x00, 0x10, 0x84, 0xDA, 0xFE, 0xDE, 0x8B, 0x03, 0x00, 0x00, 0x00, 0x40, 0xFA, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xBF, 0x03, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00,
0x00, 0xF0, 0xFF, 0xFF, 0xCF, 0x9A, 0xEA, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0xF0, 0xEF, 0x49, 0x00,
0x00, 0x00, 0xD5, 0xFF, 0xFF, 0x4F, 0x00, 0xD0, 0x16, 0x00, 0x00, 0x00, 0x00, 0x10, 0xFD, 0xFF,
0xCF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF3, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xB0, 0xFF, 0xFF, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
0xFF, 0xFF, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0xFF, 0xFF, 0x0B, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0xFF, 0xFF, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x70, 0xFF, 0xFF, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xFF, 0xFF, 0x06, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF1, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xF7, 0xFF, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xFE, 0xFF, 0x3F, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xFF, 0xFF, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xF7, 0xFF, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0xFF, 0xFF, 0x1D, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF5, 0xFF, 0xDF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x50, 0xFF, 0xFF, 0x2D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF5, 0xFF, 0xCF, 0x01, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xFF, 0xFF, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xF4, 0xFF, 0xCF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xFE, 0xFF, 0x1C, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xD1, 0xFF, 0xDF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xFB, 0xFF, 0x2E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0x05, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0xFF, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
0xFD, 0xFF, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0xFF, 0xFF, 0x09, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xFB, 0xFF, 0xEF, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x02, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x09, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x09, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x09, 0xFD, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x09,
// Unicode: [0x0033]
0x00, 0x41, 0xA7, 0xEC, 0xFE, 0xDE, 0x7A, 0x02, 0x00, 0x00, 0x00, 0x90, 0xFE, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xAF, 0x01, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3E, 0x00,
0x00, 0xC0, 0xFF, 0xFF, 0xBD, 0xAA, 0xFC, 0xFF, 0xFF, 0xEF, 0x02, 0x00, 0xC0, 0xAF, 0x15, 0x00,
0x00, 0x10, 0xF9, 0xFF, 0xFF, 0x0A, 0x00, 0x50, 0x01, 0x00, 0x00, 0x00, 0x00, 0x70, 0xFF, 0xFF,
0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x6F, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xF7, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF5,
0xFF, 0x8F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF5, 0xFF, 0x7F, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xF6, 0xFF, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xFA, 0xFF, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xFF, 0xFF, 0x08, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xDF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
0xFB, 0xFF, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x42, 0xE9, 0xFF, 0xDF, 0x03, 0x00, 0x00,
0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF,
0xFF, 0x9F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8F, 0x01, 0x00,
0x00, 0x00, 0x00, 0x77, 0x87, 0xC9, 0xFF, 0xFF, 0xFF, 0x3D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x71, 0xFE, 0xFF, 0xEF, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB1, 0xFF, 0xFF,
0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xFD, 0xFF, 0x9F, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xF4, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0,
0xFF, 0xFF, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0xFF, 0xFF, 0x08, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x80, 0xFF, 0xFF, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0xFF, 0xFF, 0x08, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xF3, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xFF, 0xCF, 0x00,
0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0xFF, 0xFF, 0x4F, 0x00, 0xF4, 0x7B, 0x03, 0x00, 0x00,
0x40, 0xFC, 0xFF, 0xFF, 0x0A, 0x00, 0xF4, 0xFF, 0xEF, 0xAC, 0xBA, 0xFE, 0xFF, 0xFF, 0xBF, 0x00,
0x00, 0xF4, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x19, 0x00, 0x00, 0xF4, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x4B, 0x00, 0x00, 0x00, 0x20, 0x85, 0xDB, 0xFE, 0xEF, 0xAD, 0x37, 0x00, 0x00,
0x00, 0x00,
// Unicode: [0x0034]
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xF4, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x10, 0xFD, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0xFF, 0xFF,
0xFF, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0xFF, 0xFF, 0xFF, 0x04, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xFD, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x90, 0xFF, 0xEF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xF4, 0xFF, 0x6E, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xFD, 0xFF, 0x37,
0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0xFF, 0xCF, 0x30, 0xFF, 0xFF, 0x04,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0xFF, 0x2E, 0x30, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00,
0x00, 0x00, 0x10, 0xFD, 0xFF, 0x07, 0x30, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90,
0xFF, 0xCF, 0x00, 0x30, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0xFF, 0x2E, 0x00,
0x30, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0x00, 0x10, 0xFD, 0xFF, 0x07, 0x00, 0x30, 0xFF, 0xFF,
0x04, 0x00, 0x00, 0x00, 0x00, 0x90, 0xFF, 0xBF, 0x00, 0x00, 0x30, 0xFF, 0xFF, 0x04, 0x00, 0x00,
0x00, 0x00, 0xF4, 0xFF, 0x2E, 0x00, 0x00, 0x30, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0x10, 0xFD,
0xFF, 0x07, 0x00, 0x00, 0x30, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0x90, 0xFF, 0xBF, 0x00, 0x00,
0x00, 0x30, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0xF4, 0xFF, 0x2E, 0x00, 0x00, 0x00, 0x30, 0xFF,
0xFF, 0x04, 0x00, 0x00, 0x10, 0xFD, 0xFF, 0x06, 0x00, 0x00, 0x00, 0x30, 0xFF, 0xFF, 0x04, 0x00,
0x00, 0x90, 0xFF, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x30, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0xF3, 0xFF,
0x2E, 0x00, 0x00, 0x00, 0x00, 0x30, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0xF4, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xF4, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xF4, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0x1F, 0x93, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xA9, 0xFF, 0xFF, 0x9B, 0x99, 0x19, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x30, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x30, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xFF, 0xFF,
0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xFF, 0xFF, 0x04, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x30, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x30, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xFF,
0xFF, 0x04, 0x00, 0x00,
// Unicode: [0x0035]
0xB0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xB0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x03, 0xB0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xB0, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xB0, 0xFF, 0x7F, 0x33, 0x33, 0x33, 0x33, 0x33,
0x33, 0x01, 0xB0, 0xFF, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xFF, 0x5F, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xFF, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xB0, 0xFF, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xFF, 0x5F, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xB0, 0xFF, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xFF,
0x5F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xFF, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xB0, 0xFF, 0xAF, 0x67, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xFF, 0xFF, 0xFF,
0xFF, 0x8D, 0x02, 0x00, 0x00, 0x00, 0xB0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xAF, 0x01, 0x00, 0x00,
0xB0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4D, 0x00, 0x00, 0x10, 0x00, 0x21, 0x64, 0xEA, 0xFF,
0xFF, 0xEF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xF8, 0xFF, 0xFF, 0x2E, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x30, 0xFE, 0xFF, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0xFF,
0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xFF, 0xFF, 0x08, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x60, 0xFF, 0xFF, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xFF, 0xFF, 0x0E,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xFF, 0xFF, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xFF, 0xFF, 0x1F, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x40, 0xFF, 0xFF, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF,
0xFF, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xF8, 0xFF, 0xEF, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0xFF, 0x7F, 0x00,
0xD6, 0x48, 0x00, 0x00, 0x10, 0xF8, 0xFF, 0xFF, 0x0C, 0x00, 0xF6, 0xFF, 0xCE, 0xAA, 0xFB, 0xFF,
0xFF, 0xDF, 0x01, 0x00, 0xF6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1B, 0x00, 0x00, 0xF6, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x6D, 0x00, 0x00, 0x00, 0x20, 0x96, 0xDB, 0xFF, 0xCE, 0x59, 0x00, 0x00,
0x00, 0x00,
// Unicode: [0x0036]
0x00, 0x00, 0x00, 0x00, 0x30, 0xB7, 0xFD, 0xEF, 0xAC, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x5E, 0x00, 0x00, 0x00, 0x00, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x90, 0xFF, 0xFF, 0xFF, 0xBD, 0xAA, 0xFD, 0xFF, 0x7F, 0x00,
0x00, 0x00, 0xF7, 0xFF, 0xFF, 0x3A, 0x00, 0x00, 0x10, 0xB6, 0x7F, 0x00, 0x00, 0x40, 0xFF, 0xFF,
0x5E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x05, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xF6, 0xFF, 0x8F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xFE, 0xFF, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF, 0xFF, 0x08,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xF1, 0xFF, 0xDF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xF4, 0xFF, 0x9F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0xFF, 0x7F, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xFF, 0x4F, 0x00, 0x30, 0xC9, 0xFE, 0xBD,
0x16, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x2F, 0x20, 0xFB, 0xFF, 0xFF, 0xFF, 0xEF, 0x06, 0x00, 0x00,
0xFD, 0xFF, 0x2F, 0xE3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0x00, 0x00, 0xFE, 0xFF, 0x3F, 0xFE,
0xEF, 0x8A, 0xA8, 0xFE, 0xFF, 0xFF, 0x09, 0x00, 0xFF, 0xFF, 0xDF, 0xFF, 0x19, 0x00, 0x00, 0x80,
0xFF, 0xFF, 0x6F, 0x00, 0xFF, 0xFF, 0xFF, 0x8F, 0x00, 0x00, 0x00, 0x00, 0xF7, 0xFF, 0xEF, 0x01,
0xFF, 0xFF, 0xFF, 0x0C, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0xFF, 0x04,
0x00, 0x00, 0x00, 0x00, 0x30, 0xFF, 0xFF, 0x0D, 0xFE, 0xFF, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xFC, 0xFF, 0x1F, 0xFD, 0xFF, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x4F,
0xFC, 0xFF, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF6, 0xFF, 0x5F, 0xFA, 0xFF, 0xAF, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xF5, 0xFF, 0x6F, 0xF7, 0xFF, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xF4, 0xFF, 0x5F, 0xF4, 0xFF, 0xCF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF5, 0xFF, 0x4F,
0xF1, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0xFF, 0x1F, 0xB0, 0xFF, 0xFF, 0x04,
0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xFF, 0x0C, 0x60, 0xFF, 0xFF, 0x0A, 0x00, 0x00, 0x00, 0x00,
0x10, 0xFF, 0xFF, 0x08, 0x00, 0xFE, 0xFF, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x90, 0xFF, 0xFF, 0x02,
0x00, 0xF6, 0xFF, 0xEF, 0x02, 0x00, 0x00, 0x00, 0xF5, 0xFF, 0x9F, 0x00, 0x00, 0xC0, 0xFF, 0xFF,
0x6E, 0x00, 0x00, 0x70, 0xFF, 0xFF, 0x1D, 0x00, 0x00, 0x20, 0xFD, 0xFF, 0xFF, 0xBE, 0xBA, 0xFE,
0xFF, 0xEF, 0x03, 0x00, 0x00, 0x00, 0xD2, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2D, 0x00, 0x00,
0x00, 0x00, 0x10, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20,
0xB7, 0xFE, 0xDE, 0x7B, 0x02, 0x00, 0x00, 0x00,
// Unicode: [0x0037]
0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0A, 0xF1, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0A, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x0A, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0A,
0x81, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0xFF, 0xFF, 0x06, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x70, 0xFF, 0xCF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xE1, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xFF, 0x0A, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xFF, 0xEF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xB0, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4,
0xFF, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0x05, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0xFF, 0xCF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xE1, 0xFF, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xFF,
0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xFF, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xF4, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0x0A,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xE1, 0xFF, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xF8, 0xFF, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xFF, 0xFF, 0x0C, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0xFF, 0xFF, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xF3, 0xFF, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFA,
0xFF, 0x8F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xFF, 0xFF, 0x2F, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xFF, 0xFF, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xF3, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF,
0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xCF, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xFF, 0xFF, 0x8F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x80, 0xFF, 0xFF, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xFF, 0xFF,
0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0xFF, 0xFF, 0x0D, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xF1, 0xFF, 0xFF, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
// Unicode: [0x0038]
0x00, 0x00, 0x00, 0x00, 0x83, 0xDB, 0xFE, 0xCE, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC3,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0x06, 0x00, 0x00, 0x00, 0xF6, 0xFF, 0xFF, 0xAE, 0xA9, 0xFD, 0xFF, 0xFF, 0x4F, 0x00,
0x00, 0x20, 0xFE, 0xFF, 0x5E, 0x00, 0x00, 0x30, 0xFD, 0xFF, 0xCF, 0x00, 0x00, 0x90, 0xFF, 0xFF,
0x03, 0x00, 0x00, 0x00, 0xD1, 0xFF, 0xFF, 0x02, 0x00, 0xE0, 0xFF, 0x9F, 0x00, 0x00, 0x00, 0x00,
0x40, 0xFF, 0xFF, 0x05, 0x00, 0xF2, 0xFF, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x06,
0x00, 0xF3, 0xFF, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0x06, 0x00, 0xF4, 0xFF, 0x6F,
0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x04, 0x00, 0xF2, 0xFF, 0xBF, 0x00, 0x00, 0x00, 0x00,
0x30, 0xFF, 0xEF, 0x01, 0x00, 0xD0, 0xFF, 0xFF, 0x06, 0x00, 0x00, 0x00, 0xA0, 0xFF, 0x9F, 0x00,
0x00, 0x80, 0xFF, 0xFF, 0x4F, 0x00, 0x00, 0x00, 0xF4, 0xFF, 0x2E, 0x00, 0x00, 0x10, 0xFE, 0xFF,
0xFF, 0x06, 0x00, 0x30, 0xFE, 0xFF, 0x06, 0x00, 0x00, 0x00, 0xF5, 0xFF, 0xFF, 0xBF, 0x02, 0xE5,
0xFF, 0x8F, 0x00, 0x00, 0x00, 0x00, 0x70, 0xFF, 0xFF, 0xFF, 0xBE, 0xFF, 0xFF, 0x07, 0x00, 0x00,
0x00, 0x00, 0x00, 0xF6, 0xFF, 0xFF, 0xFF, 0xFF, 0x4D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0,
0xFF, 0xFF, 0xFF, 0xFF, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF,
0xDF, 0x04, 0x00, 0x00, 0x00, 0x00, 0xE4, 0xFF, 0xEF, 0xFA, 0xFF, 0xFF, 0xFF, 0x8F, 0x00, 0x00,
0x00, 0x30, 0xFE, 0xFF, 0x2D, 0x30, 0xFC, 0xFF, 0xFF, 0xFF, 0x0A, 0x00, 0x00, 0xD1, 0xFF, 0xEF,
0x02, 0x00, 0x50, 0xFE, 0xFF, 0xFF, 0xAF, 0x00, 0x00, 0xF9, 0xFF, 0x5F, 0x00, 0x00, 0x00, 0xB1,
0xFF, 0xFF, 0xFF, 0x07, 0x20, 0xFF, 0xFF, 0x0A, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xFF, 0xFF, 0x1E,
0x80, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0xFF, 0xFF, 0x6F, 0xC0, 0xFF, 0xDF, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xAF, 0xF0, 0xFF, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xF6, 0xFF, 0xCF, 0xF1, 0xFF, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF1, 0xFF, 0xDF,
0xF1, 0xFF, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xCF, 0xE0, 0xFF, 0xEF, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xBF, 0xC0, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0x00,
0x00, 0xF4, 0xFF, 0x7F, 0x70, 0xFF, 0xFF, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xFF, 0x2F,
0x10, 0xFE, 0xFF, 0x9F, 0x00, 0x00, 0x00, 0x00, 0x90, 0xFF, 0xFF, 0x09, 0x00, 0xF7, 0xFF, 0xFF,
0x3B, 0x00, 0x00, 0x30, 0xFB, 0xFF, 0xDF, 0x01, 0x00, 0xA0, 0xFF, 0xFF, 0xFF, 0xAD, 0xA9, 0xFD,
0xFF, 0xFF, 0x2E, 0x00, 0x00, 0x00, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0x02, 0x00,
0x00, 0x00, 0x40, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40,
0xB8, 0xED, 0xEF, 0x9C, 0x05, 0x00, 0x00, 0x00,
// Unicode: [0x0039]
0x00, 0x00, 0x00, 0x20, 0xB6, 0xED, 0xEF, 0x7B, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD2, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x3D, 0x00, 0x00, 0x00, 0x00, 0x20, 0xFD, 0xFF, 0xEF, 0x9A, 0xEB, 0xFF, 0xFF,
0xEF, 0x02, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0xE6, 0xFF, 0xFF, 0x0C, 0x00,
0x00, 0x00, 0xF8, 0xFF, 0x5F, 0x00, 0x00, 0x00, 0x20, 0xFE, 0xFF, 0x7F, 0x00, 0x00, 0x10, 0xFE,
0xFF, 0x09, 0x00, 0x00, 0x00, 0x00, 0xF3, 0xFF, 0xEF, 0x01, 0x00, 0x70, 0xFF, 0xFF, 0x02, 0x00,
0x00, 0x00, 0x00, 0xA0, 0xFF, 0xFF, 0x06, 0x00, 0xC0, 0xFF, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00,
0x30, 0xFF, 0xFF, 0x0B, 0x00, 0xF1, 0xFF, 0x8F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF,
0x1F, 0x00, 0xF3, 0xFF, 0x6F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xFF, 0x5F, 0x00, 0xF4,
0xFF, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFA, 0xFF, 0x8F, 0x00, 0xF5, 0xFF, 0x5F, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xFF, 0xAF, 0x00, 0xF4, 0xFF, 0x6F, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xF9, 0xFF, 0xCF, 0x00, 0xF3, 0xFF, 0x9F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB,
0xFF, 0xEF, 0x00, 0xF1, 0xFF, 0xCF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0x00,
0xC0, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x40, 0xFF, 0xFF, 0xFF, 0x01, 0x60, 0xFF, 0xFF,
0x0B, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0xFE, 0xFF, 0x7F, 0x00, 0x00,
0x00, 0x00, 0xF7, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0xF5, 0xFF, 0xFF, 0x18, 0x00, 0x00, 0x91, 0xFF,
0xFD, 0xFF, 0xFF, 0x00, 0x00, 0x90, 0xFF, 0xFF, 0xEF, 0x8A, 0xA8, 0xFE, 0xEF, 0xF3, 0xFF, 0xEF,
0x00, 0x00, 0x00, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4E, 0xF1, 0xFF, 0xDF, 0x00, 0x00, 0x00,
0x60, 0xFE, 0xFF, 0xFF, 0xFF, 0xBF, 0x02, 0xF2, 0xFF, 0xCF, 0x00, 0x00, 0x00, 0x00, 0x61, 0xDB,
0xEF, 0x9D, 0x04, 0x00, 0xF3, 0xFF, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xF6, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF,
0x4F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x1F, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xFF, 0xFF, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x70, 0xFF, 0xFF, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xE1, 0xFF, 0xEF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF,
0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xFF, 0xFF, 0x0D, 0x00, 0x00,
0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE5, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0xF6, 0x6B,
0x01, 0x00, 0x00, 0x93, 0xFF, 0xFF, 0x8F, 0x00, 0x00, 0x00, 0x00, 0xF6, 0xFF, 0xDF, 0x9A, 0xDB,
0xFF, 0xFF, 0xFF, 0x09, 0x00, 0x00, 0x00, 0x00, 0xF6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8F,
0x00, 0x00, 0x00, 0x00, 0x00, 0xE5, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0x03, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x73, 0xCA, 0xFE, 0xEF, 0x8B, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
// Unicode: [0x003F]
0x00, 0x63, 0xB8, 0xEC, 0xFE, 0xEF, 0xCD, 0x79, 0x02, 0x00, 0x00, 0x00, 0xEB, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0x05, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xBF, 0x01, 0x00, 0xFF, 0xFF, 0xEF, 0xAC, 0x99, 0xBA, 0xFD, 0xFF, 0xFF, 0xFF, 0x1D, 0x00,
0xFF, 0xBF, 0x02, 0x00, 0x00, 0x00, 0x10, 0xD6, 0xFF, 0xFF, 0xAF, 0x00, 0xFF, 0x9F, 0x00, 0x00,
0x00, 0x00, 0x00, 0x10, 0xFB, 0xFF, 0xFF, 0x01, 0xFF, 0x9F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xF1, 0xFF, 0xFF, 0x05, 0xFF, 0x9F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xFF, 0xFF, 0x07,
0x77, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xA0, 0xFF, 0xFF, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xE1, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0xFF, 0x9F, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xFF, 0xFF, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xE4, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xFE,
0xFF, 0x6F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0xFF, 0xFF, 0x05, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0xFF, 0xFF, 0x3D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xF9, 0xFF, 0xBF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0x0A,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0xFF, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0x1D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50,
0xFF, 0xFF, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xFF, 0xEF, 0x01, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xCF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xF1, 0xFF, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF2,
0xFF, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC2, 0xCC, 0x8C, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x65, 0x66, 0x66, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC,
0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0x04, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00
};

View File

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

View File

@ -0,0 +1,37 @@
// Autogenerated, do not edit
#include <fonts/GeneratedFont.hpp>
FONT_TABLE_LOCATION_FLASH_PRAGMA
KEEP extern const touchgfx::GlyphNode glyphs_lucon_TTF_50_4bpp[] FONT_TABLE_LOCATION_FLASH_ATTRIBUTE = {
{ 0, 0x0030, 26, 38, 37, 2, 30, 0, 0, 0x00 },
{ 494, 0x0031, 25, 37, 37, 4, 30, 0, 0, 0x00 },
{ 975, 0x0032, 21, 37, 37, 4, 30, 0, 0, 0x00 },
{ 1382, 0x0033, 21, 38, 37, 5, 30, 0, 0, 0x00 },
{ 1800, 0x0034, 26, 36, 36, 2, 30, 0, 0, 0x00 },
{ 2268, 0x0035, 20, 37, 36, 6, 30, 0, 0, 0x00 },
{ 2638, 0x0036, 24, 38, 37, 4, 30, 0, 0, 0x00 },
{ 3094, 0x0037, 23, 36, 36, 4, 30, 0, 0, 0x00 },
{ 3526, 0x0038, 24, 38, 37, 3, 30, 0, 0, 0x00 },
{ 3982, 0x0039, 25, 38, 37, 3, 30, 0, 0, 0x00 },
{ 4476, 0x003F, 23, 37, 37, 4, 30, 0, 0, 0x00 }
};
// lucon_TTF_50_4bpp
FONT_TABLE_LOCATION_FLASH_PRAGMA
KEEP extern const touchgfx::GlyphNode glyphs_lucon_TTF_50_4bpp[] FONT_TABLE_LOCATION_FLASH_ATTRIBUTE;
FONT_GLYPH_LOCATION_FLASH_PRAGMA
KEEP extern const uint8_t unicodes_lucon_TTF_50_4bpp_0[] FONT_GLYPH_LOCATION_FLASH_ATTRIBUTE;
FONT_SEARCHTABLE_LOCATION_FLASH_PRAGMA
KEEP extern const uint8_t* const unicodes_lucon_TTF_50_4bpp[] FONT_SEARCHTABLE_LOCATION_FLASH_ATTRIBUTE = {
unicodes_lucon_TTF_50_4bpp_0
};
FONT_KERNING_LOCATION_FLASH_PRAGMA
KEEP extern const touchgfx::KerningNode kerning_lucon_TTF_50_4bpp[] FONT_KERNING_LOCATION_FLASH_ATTRIBUTE;
touchgfx::GeneratedFont& getFont_lucon_TTF_50_4bpp();
touchgfx::GeneratedFont& getFont_lucon_TTF_50_4bpp()
{
static touchgfx::GeneratedFont lucon_TTF_50_4bpp(glyphs_lucon_TTF_50_4bpp, 11, 51, 50, 0, 0, 4, 1, 0, 0, unicodes_lucon_TTF_50_4bpp, kerning_lucon_TTF_50_4bpp, 63, 0, 0, 0);
return lucon_TTF_50_4bpp;
}

View File

@ -26,6 +26,9 @@ public:
// AMI
void gotoAMIScreenNoTransition();
// DriverView
void gotoDriverViewScreenNoTransition();
protected:
touchgfx::Callback<FrontendApplicationBase> transitionCallback;
FrontendHeap& frontendHeap;
@ -36,6 +39,9 @@ protected:
// AMI
void gotoAMIScreenNoTransitionImpl();
// DriverView
void gotoDriverViewScreenNoTransitionImpl();
};
#endif // FRONTENDAPPLICATIONBASE_HPP

View File

@ -16,6 +16,8 @@
#include <gui/missionselect_screen/MissionSelectPresenter.hpp>
#include <gui/ami_screen/AMIView.hpp>
#include <gui/ami_screen/AMIPresenter.hpp>
#include <gui/driverview_screen/DriverViewView.hpp>
#include <gui/driverview_screen/DriverViewPresenter.hpp>
/**
@ -40,7 +42,8 @@ public:
*/
typedef touchgfx::meta::TypeList< MissionSelectView,
touchgfx::meta::TypeList< AMIView,
touchgfx::meta::Nil >
touchgfx::meta::TypeList< DriverViewView,
touchgfx::meta::Nil > >
> GeneratedViewTypes;
/**
@ -54,7 +57,8 @@ public:
*/
typedef touchgfx::meta::TypeList< MissionSelectPresenter,
touchgfx::meta::TypeList< AMIPresenter,
touchgfx::meta::Nil >
touchgfx::meta::TypeList< DriverViewPresenter,
touchgfx::meta::Nil > >
> GeneratedPresenterTypes;
/**

View File

@ -0,0 +1,34 @@
/*********************************************************************************/
/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/
/*********************************************************************************/
#ifndef TIRETEMPBASE_HPP
#define TIRETEMPBASE_HPP
#include <gui/common/FrontendApplication.hpp>
#include <touchgfx/containers/Container.hpp>
#include <touchgfx/widgets/Box.hpp>
#include <touchgfx/widgets/TextAreaWithWildcard.hpp>
class TireTempBase : public touchgfx::Container
{
public:
TireTempBase();
virtual ~TireTempBase();
virtual void initialize();
protected:
FrontendApplication& application() {
return *static_cast<FrontendApplication*>(touchgfx::Application::getInstance());
}
/*
* Member Declarations
*/
touchgfx::Box bg;
touchgfx::TextAreaWithOneWildcard value;
private:
};
#endif // TIRETEMPBASE_HPP

View File

@ -0,0 +1,57 @@
/*********************************************************************************/
/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/
/*********************************************************************************/
#ifndef DRIVERVIEWVIEWBASE_HPP
#define DRIVERVIEWVIEWBASE_HPP
#include <gui/common/FrontendApplication.hpp>
#include <mvp/View.hpp>
#include <gui/driverview_screen/DriverViewPresenter.hpp>
#include <touchgfx/widgets/Box.hpp>
#include <touchgfx/widgets/Image.hpp>
#include <gui/containers/TireTemp.hpp>
#include <touchgfx/widgets/canvas/Line.hpp>
#include <touchgfx/widgets/canvas/PainterRGB565.hpp>
#include <touchgfx/containers/progress_indicators/LineProgress.hpp>
class DriverViewViewBase : public touchgfx::View<DriverViewPresenter>
{
public:
DriverViewViewBase();
virtual ~DriverViewViewBase();
virtual void setupScreen();
protected:
FrontendApplication& application() {
return *static_cast<FrontendApplication*>(touchgfx::Application::getInstance());
}
/*
* Member Declarations
*/
touchgfx::Box __background;
touchgfx::Image logo;
TireTemp tireTempRR;
TireTemp tireTempFR;
TireTemp tireTempRL;
TireTemp tireTempFL;
touchgfx::Line ttDivVert;
touchgfx::PainterRGB565 ttDivVertPainter;
touchgfx::Line ttDivHoriz;
touchgfx::PainterRGB565 ttDivHorizPainter;
touchgfx::LineProgress tsVoltage;
touchgfx::PainterRGB565 tsVoltagePainter;
touchgfx::LineProgress lvVoltage;
touchgfx::PainterRGB565 lvVoltagePainter;
private:
/*
* Canvas Buffer Size
*/
static const uint32_t CANVAS_BUFFER_SIZE = 7200;
uint8_t canvasBuffer[CANVAS_BUFFER_SIZE];
};
#endif // DRIVERVIEWVIEWBASE_HPP

View File

@ -13,6 +13,8 @@
#include <gui/missionselect_screen/MissionSelectPresenter.hpp>
#include <gui/ami_screen/AMIView.hpp>
#include <gui/ami_screen/AMIPresenter.hpp>
#include <gui/driverview_screen/DriverViewView.hpp>
#include <gui/driverview_screen/DriverViewPresenter.hpp>
using namespace touchgfx;
@ -56,3 +58,16 @@ void FrontendApplicationBase::gotoAMIScreenNoTransitionImpl()
{
touchgfx::makeTransition<AMIView, AMIPresenter, touchgfx::NoTransition, Model >(&currentScreen, &currentPresenter, frontendHeap, &currentTransition, &model);
}
// DriverView
void FrontendApplicationBase::gotoDriverViewScreenNoTransition()
{
transitionCallback = touchgfx::Callback<FrontendApplicationBase>(this, &FrontendApplication::gotoDriverViewScreenNoTransitionImpl);
pendingScreenTransitionCallback = &transitionCallback;
}
void FrontendApplicationBase::gotoDriverViewScreenNoTransitionImpl()
{
touchgfx::makeTransition<DriverViewView, DriverViewPresenter, touchgfx::NoTransition, Model >(&currentScreen, &currentPresenter, frontendHeap, &currentTransition, &model);
}

View File

@ -0,0 +1,31 @@
/*********************************************************************************/
/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/
/*********************************************************************************/
#include <gui_generated/containers/TireTempBase.hpp>
#include <touchgfx/Color.hpp>
#include <texts/TextKeysAndLanguages.hpp>
TireTempBase::TireTempBase()
{
setWidth(75);
setHeight(75);
bg.setPosition(0, 0, 75, 75);
bg.setColor(touchgfx::Color::getColorFromRGB(0, 38, 255));
add(bg);
value.setPosition(0, 7, 75, 60);
value.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
value.setLinespacing(0);
value.setTypedText(touchgfx::TypedText(T___SINGLEUSE_20H3));
add(value);
}
TireTempBase::~TireTempBase()
{
}
void TireTempBase::initialize()
{
}

View File

@ -0,0 +1,89 @@
/*********************************************************************************/
/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/
/*********************************************************************************/
#include <gui_generated/driverview_screen/DriverViewViewBase.hpp>
#include <touchgfx/canvas_widget_renderer/CanvasWidgetRenderer.hpp>
#include <touchgfx/Color.hpp>
#include <images/BitmapDatabase.hpp>
DriverViewViewBase::DriverViewViewBase()
{
touchgfx::CanvasWidgetRenderer::setupBuffer(canvasBuffer, CANVAS_BUFFER_SIZE);
__background.setPosition(0, 0, 480, 320);
__background.setColor(touchgfx::Color::getColorFromRGB(0, 0, 0));
add(__background);
logo.setXY(160, 263);
logo.setBitmap(touchgfx::Bitmap(BITMAP_FASTTUBE_LOGO_SMALL_WHITE_ID));
add(logo);
tireTempRR.setXY(240, 167);
add(tireTempRR);
tireTempFR.setXY(240, 92);
add(tireTempFR);
tireTempRL.setXY(165, 167);
add(tireTempRL);
tireTempFL.setXY(165, 92);
add(tireTempFL);
ttDivVert.setPosition(239, 92, 3, 150);
ttDivVertPainter.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
ttDivVert.setPainter(ttDivVertPainter);
ttDivVert.setStart(0, 0);
ttDivVert.setEnd(0, 320);
ttDivVert.setLineWidth(10);
ttDivVert.setLineEndingStyle(touchgfx::Line::ROUND_CAP_ENDING);
add(ttDivVert);
ttDivHoriz.setPosition(165, 166, 150, 3);
ttDivHorizPainter.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
ttDivHoriz.setPainter(ttDivHorizPainter);
ttDivHoriz.setStart(0, 0);
ttDivHoriz.setEnd(480, 0);
ttDivHoriz.setLineWidth(10);
ttDivHoriz.setLineEndingStyle(touchgfx::Line::ROUND_CAP_ENDING);
add(ttDivHoriz);
tsVoltage.setXY(10, 92);
tsVoltage.setProgressIndicatorPosition(0, 0, 40, 150);
tsVoltage.setRange(0, 100);
tsVoltage.setBackground(touchgfx::Bitmap(BITMAP_BAT_BAR_BG_ID));
tsVoltagePainter.setColor(touchgfx::Color::getColorFromRGB(136, 255, 0));
tsVoltage.setPainter(tsVoltagePainter);
tsVoltage.setStart(9, 200);
tsVoltage.setEnd(9, 0);
tsVoltage.setLineWidth(100);
tsVoltage.setLineEndingStyle(touchgfx::Line::BUTT_CAP_ENDING);
tsVoltage.setValue(60);
add(tsVoltage);
lvVoltage.setXY(88, 92);
lvVoltage.setProgressIndicatorPosition(0, 0, 40, 150);
lvVoltage.setRange(0, 100);
lvVoltage.setBackground(touchgfx::Bitmap(BITMAP_BAT_BAR_BG_ID));
lvVoltagePainter.setColor(touchgfx::Color::getColorFromRGB(136, 255, 0));
lvVoltage.setPainter(lvVoltagePainter);
lvVoltage.setStart(9, 200);
lvVoltage.setEnd(9, 0);
lvVoltage.setLineWidth(100);
lvVoltage.setLineEndingStyle(touchgfx::Line::BUTT_CAP_ENDING);
lvVoltage.setValue(80);
add(lvVoltage);
}
DriverViewViewBase::~DriverViewViewBase()
{
touchgfx::CanvasWidgetRenderer::resetBuffer();
}
void DriverViewViewBase::setupScreen()
{
tireTempRR.initialize();
tireTempFR.initialize();
tireTempRL.initialize();
tireTempFL.initialize();
}

View File

@ -102,10 +102,19 @@ void MissionSelectViewBase::handleKeyEvent(uint8_t key)
if(254 == key)
{
//DummyChange
//DummyChangeAMI
//When hardware button 254 clicked change screen to AMI
//Go to AMI with no screen transition
application().gotoAMIScreenNoTransition();
}
if(253 == key)
{
//DummyChangeDriverView
//When hardware button 253 clicked change screen to DriverView
//Go to DriverView with no screen transition
application().gotoDriverViewScreenNoTransition();
}
}

View File

@ -6,12 +6,13 @@
#include <touchgfx/hal/Types.hpp>
#include <touchgfx/Bitmap.hpp>
const uint16_t BITMAP_FASTTUBE_LOGO_ID = 0;
const uint16_t BITMAP_FASTTUBE_LOGO_SMALL_ID = 1;
const uint16_t BITMAP_FASTTUBE_LOGO_SMALL_WHITE_ID = 2;
const uint16_t BITMAP_FASTTUBE_LOGO_WHITE_ID = 3;
const uint16_t BITMAP_LOGO_DV_SMALL_ID = 4;
const uint16_t BITMAP_LOGO_DV_SMALL_WHITE_ID = 5;
const uint16_t BITMAP_BAT_BAR_BG_ID = 0;
const uint16_t BITMAP_FASTTUBE_LOGO_ID = 1;
const uint16_t BITMAP_FASTTUBE_LOGO_SMALL_ID = 2;
const uint16_t BITMAP_FASTTUBE_LOGO_SMALL_WHITE_ID = 3;
const uint16_t BITMAP_FASTTUBE_LOGO_WHITE_ID = 4;
const uint16_t BITMAP_LOGO_DV_SMALL_ID = 5;
const uint16_t BITMAP_LOGO_DV_SMALL_WHITE_ID = 6;
namespace BitmapDatabase
{

View File

@ -1,17 +1,19 @@
// 4.21.2 0xf00b0e5c
// 4.21.2 0x4609d7b9
// Generated by imageconverter. Please, do not edit!
#include <images/BitmapDatabase.hpp>
#include <touchgfx/Bitmap.hpp>
extern const unsigned char image_fasttube_logo[]; // BITMAP_FASTTUBE_LOGO_ID = 0, Size: 480x165 pixels
extern const unsigned char image_fasttube_logo_small[]; // BITMAP_FASTTUBE_LOGO_SMALL_ID = 1, Size: 160x55 pixels
extern const unsigned char image_fasttube_logo_small_white[]; // BITMAP_FASTTUBE_LOGO_SMALL_WHITE_ID = 2, Size: 160x55 pixels
extern const unsigned char image_fasttube_logo_white[]; // BITMAP_FASTTUBE_LOGO_WHITE_ID = 3, Size: 480x165 pixels
extern const unsigned char image_logo_dv_small[]; // BITMAP_LOGO_DV_SMALL_ID = 4, Size: 160x55 pixels
extern const unsigned char image_logo_dv_small_white[]; // BITMAP_LOGO_DV_SMALL_WHITE_ID = 5, Size: 160x55 pixels
extern const unsigned char image_bat_bar_bg[]; // BITMAP_BAT_BAR_BG_ID = 0, Size: 40x150 pixels
extern const unsigned char image_fasttube_logo[]; // BITMAP_FASTTUBE_LOGO_ID = 1, Size: 480x165 pixels
extern const unsigned char image_fasttube_logo_small[]; // BITMAP_FASTTUBE_LOGO_SMALL_ID = 2, Size: 160x55 pixels
extern const unsigned char image_fasttube_logo_small_white[]; // BITMAP_FASTTUBE_LOGO_SMALL_WHITE_ID = 3, Size: 160x55 pixels
extern const unsigned char image_fasttube_logo_white[]; // BITMAP_FASTTUBE_LOGO_WHITE_ID = 4, Size: 480x165 pixels
extern const unsigned char image_logo_dv_small[]; // BITMAP_LOGO_DV_SMALL_ID = 5, Size: 160x55 pixels
extern const unsigned char image_logo_dv_small_white[]; // BITMAP_LOGO_DV_SMALL_WHITE_ID = 6, Size: 160x55 pixels
const touchgfx::Bitmap::BitmapData bitmap_database[] = {
{ image_bat_bar_bg, 0, 40, 150, 0, 0, 40, ((uint8_t)touchgfx::Bitmap::RGB565) >> 3, 150, ((uint8_t)touchgfx::Bitmap::RGB565) & 0x7 },
{ image_fasttube_logo, 0, 480, 165, 0, 0, 480, ((uint8_t)touchgfx::Bitmap::RGB565) >> 3, 165, ((uint8_t)touchgfx::Bitmap::RGB565) & 0x7 },
{ image_fasttube_logo_small, 0, 160, 55, 0, 0, 160, ((uint8_t)touchgfx::Bitmap::RGB565) >> 3, 55, ((uint8_t)touchgfx::Bitmap::RGB565) & 0x7 },
{ image_fasttube_logo_small_white, 0, 160, 55, 0, 0, 160, ((uint8_t)touchgfx::Bitmap::RGB565) >> 3, 55, ((uint8_t)touchgfx::Bitmap::RGB565) & 0x7 },

File diff suppressed because it is too large Load Diff

View File

@ -1 +1 @@
{"remap":"yes","language":"GB","language_index":0,"indices":[["95","T_INSPECTION_HUGE"],["127","T_EBS_HUGE"],["106","T_TRACKDRIVE_HUGE"],["117","T_AUTOX_HUGE"],["136","T_SKIDPAD_HUGE"],["82","T_ACCEL_HUGE"],["34","T_INVALID_HUGE"],["67","T_MANUAL"],["95","T_INSPECTION"],["127","T_EBS"],["106","T_TRACKDRIVE"],["117","T_AUTOX"],["136","T_SKIDPAD"],["82","T_ACCEL"],["17","T___SINGLEUSE_SDGP"],["51","T___SINGLEUSE_M5X7"],["0","T___SINGLEUSE_6GPV"]]}
{"remap":"yes","language":"GB","language_index":0,"indices":[["95","T_INSPECTION_HUGE"],["127","T_EBS_HUGE"],["106","T_TRACKDRIVE_HUGE"],["117","T_AUTOX_HUGE"],["138","T_SKIDPAD_HUGE"],["82","T_ACCEL_HUGE"],["34","T_INVALID_HUGE"],["67","T_MANUAL"],["95","T_INSPECTION"],["127","T_EBS"],["106","T_TRACKDRIVE"],["117","T_AUTOX"],["138","T_SKIDPAD"],["82","T_ACCEL"],["136","T___SINGLEUSE_20H3"],["17","T___SINGLEUSE_SDGP"],["51","T___SINGLEUSE_M5X7"],["0","T___SINGLEUSE_6GPV"]]}

View File

@ -1 +1 @@
{"languages":["GB"],"textids":["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_SDGP","T___SINGLEUSE_M5X7","T___SINGLEUSE_6GPV"]}
{"languages":["GB"],"textids":["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_20H3","T___SINGLEUSE_SDGP","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,84,114,97,99,107,100,114,105,118,101,0,65,117,116,111,99,114,111,115,115,0,69,66,83,32,84,101,115,116,0,83,107,105,100,112,97,100,0]}
{"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,84,114,97,99,107,100,114,105,118,101,0,65,117,116,111,99,114,111,115,115,0,69,66,83,32,84,101,115,116,0,2,0,83,107,105,100,112,97,100,0]}

View File

@ -1 +1 @@
{"databases":{"DEFAULT":[[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[1,"LEFT","LTR"],[2,"CENTER","LTR"],[1,"LEFT","LTR"]]},"database_list":["DEFAULT"],"fonts":{"getFont_verdana_20_4bpp":0,"getFont_CHINN____30_4bpp":1,"getFont_CHINN____20_4bpp":2,"getFont_CHINN____40_4bpp":3},"generate_font_format":"0"}
{"databases":{"DEFAULT":[[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"],[4,"CENTER","LTR"],[1,"LEFT","LTR"],[2,"CENTER","LTR"],[1,"LEFT","LTR"]]},"database_list":["DEFAULT"],"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},"generate_font_format":"0"}

View File

@ -26,6 +26,7 @@ enum TEXTS
T_AUTOX,
T_SKIDPAD,
T_ACCEL,
T___SINGLEUSE_20H3,
T___SINGLEUSE_SDGP,
T___SINGLEUSE_M5X7,
T___SINGLEUSE_6GPV,

View File

@ -14,7 +14,7 @@ KEEP extern const uint32_t indicesGb[] TEXT_LOCATION_FLASH_ATTRIBUTE = {
127, // T_EBS_HUGE: "EBS Test"
106, // T_TRACKDRIVE_HUGE: "Trackdrive"
117, // T_AUTOX_HUGE: "Autocross"
136, // T_SKIDPAD_HUGE: "Skidpad"
138, // T_SKIDPAD_HUGE: "Skidpad"
82, // T_ACCEL_HUGE: "Acceleration"
34, // T_INVALID_HUGE: "Invalid Mission!"
67, // T_MANUAL: "Manual Driving"
@ -22,8 +22,9 @@ KEEP extern const uint32_t indicesGb[] TEXT_LOCATION_FLASH_ATTRIBUTE = {
127, // T_EBS: "EBS Test"
106, // T_TRACKDRIVE: "Trackdrive"
117, // T_AUTOX: "Autocross"
136, // T_SKIDPAD: "Skidpad"
138, // T_SKIDPAD: "Skidpad"
82, // T_ACCEL: "Acceleration"
136, // T___SINGLEUSE_20H3: "<>"
17, // T___SINGLEUSE_SDGP: "Current Mission:"
51, // T___SINGLEUSE_M5X7: "Invalid Mission"
0 // T___SINGLEUSE_6GPV: "Choose a mission"

View File

@ -70,7 +70,8 @@ KEEP extern const touchgfx::Unicode::UnicodeChar texts_all_languages[] TEXT_LOCA
0x54, 0x72, 0x61, 0x63, 0x6b, 0x64, 0x72, 0x69, 0x76, 0x65, 0x0, // @106 "Trackdrive"
0x41, 0x75, 0x74, 0x6f, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x0, // @117 "Autocross"
0x45, 0x42, 0x53, 0x20, 0x54, 0x65, 0x73, 0x74, 0x0, // @127 "EBS Test"
0x53, 0x6b, 0x69, 0x64, 0x70, 0x61, 0x64, 0x0 // @136 "Skidpad"
0x2, 0x0, // @136 "<>"
0x53, 0x6b, 0x69, 0x64, 0x70, 0x61, 0x64, 0x0 // @138 "Skidpad"
};
TEXT_LOCATION_FLASH_PRAGMA

View File

@ -9,12 +9,14 @@ extern touchgfx::GeneratedFont& getFont_verdana_20_4bpp();
extern touchgfx::GeneratedFont& getFont_CHINN____30_4bpp();
extern touchgfx::GeneratedFont& getFont_CHINN____20_4bpp();
extern touchgfx::GeneratedFont& getFont_CHINN____40_4bpp();
extern touchgfx::GeneratedFont& getFont_lucon_TTF_50_4bpp();
const touchgfx::Font* touchgfx_fonts[] = {
&(getFont_verdana_20_4bpp()),
&(getFont_CHINN____30_4bpp()),
&(getFont_CHINN____20_4bpp()),
&(getFont_CHINN____40_4bpp())
&(getFont_CHINN____40_4bpp()),
&(getFont_lucon_TTF_50_4bpp())
};
extern const touchgfx::TypedText::TypedTextData typedText_database_DEFAULT[];
@ -36,6 +38,7 @@ 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 },
{ 4, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 1, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 1, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR }
@ -86,6 +89,9 @@ void resetFont(touchgfx::FontId fontId)
case 3:
touchgfx_fonts[3] = &(getFont_CHINN____40_4bpp());
break;
case 4:
touchgfx_fonts[4] = &(getFont_lucon_TTF_50_4bpp());
break;
}
}
} // namespace TypedTextDatabase

View File

@ -0,0 +1,24 @@
#ifndef TIRETEMP_HPP
#define TIRETEMP_HPP
#include <gui_generated/containers/TireTempBase.hpp>
#include <sys/_stdint.h>
class TireTemp : public TireTempBase {
public:
TireTemp();
virtual ~TireTemp() {}
virtual void initialize();
virtual void setTemp(int temp_in_celsius);
protected:
private:
unsigned temp;
Unicode::UnicodeChar valueBuffer[3];
void updateValueBuffer();
};
#endif // TIRETEMP_HPP

View File

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

View File

@ -0,0 +1,20 @@
#ifndef DRIVERVIEWVIEW_HPP
#define DRIVERVIEWVIEW_HPP
#include "vehicle.h"
#include <gui/driverview_screen/DriverViewPresenter.hpp>
#include <gui_generated/driverview_screen/DriverViewViewBase.hpp>
class DriverViewView : public DriverViewViewBase {
public:
DriverViewView();
virtual ~DriverViewView() {}
virtual void setupScreen();
virtual void tearDownScreen();
void setTireTemps(const TireTemps &temps);
protected:
};
#endif // DRIVERVIEWVIEW_HPP

View File

@ -2,6 +2,7 @@
#define MODEL_HPP
#include "stw_defines.h"
#include "vehicle.h"
class ModelListener;
class Model {
@ -14,12 +15,14 @@ public:
void setMission(Mission mission) { this->mission = mission; }
Mission getMission() { return mission; }
TireTemps getTireTemps() { return tireTemps; }
protected:
ModelListener *modelListener;
private:
Mission mission;
TireTemps tireTemps;
};
#endif // MODEL_HPP

View File

@ -13,6 +13,8 @@ public:
void bind(Model *m) { model = m; }
virtual void tireTempsUpdated(){};
protected:
Model *model;
};

View File

@ -0,0 +1,42 @@
#include "touchgfx/Color.hpp"
#include "touchgfx/Unicode.hpp"
#include <gui/containers/TireTemp.hpp>
TireTemp::TireTemp() : temp{0} { updateValueBuffer(); }
void TireTemp::initialize() { TireTempBase::initialize(); }
void TireTemp::setTemp(int temp_in_celsius) {
if (temp_in_celsius < 0) {
// No space for displaying negative values
temp_in_celsius = 0;
}
if (temp_in_celsius == temp) {
// No change
return;
}
temp = temp_in_celsius;
updateValueBuffer();
if (temp < 35) {
bg.setColor(touchgfx::Color::getColorFromRGB(0x05, 0x76, 0xb7));
} else if (temp < 40) {
bg.setColor(touchgfx::Color::getColorFromRGB(0x05, 0x76, 0x64));
} else if (temp < 50) {
bg.setColor(touchgfx::Color::getColorFromRGB(0x05, 0x95, 0x38));
} else if (temp < 60) {
bg.setColor(touchgfx::Color::getColorFromRGB(0xdd, 0x6e, 0x22));
} else {
bg.setColor(touchgfx::Color::getColorFromRGB(0xdd, 0x2f, 0x22));
}
value.invalidate();
bg.invalidate(); // TODO: Only invalidate if color changed
}
void TireTemp::updateValueBuffer() {
// Unicode::utoa(temp, valueBuffer, 3, 10);
Unicode::snprintf(valueBuffer,
sizeof(valueBuffer) / sizeof(Unicode::UnicodeChar), "%02u",
temp);
value.setWildcard(valueBuffer);
}

View File

@ -0,0 +1,13 @@
#include <gui/driverview_screen/DriverViewPresenter.hpp>
#include <gui/driverview_screen/DriverViewView.hpp>
DriverViewPresenter::DriverViewPresenter(DriverViewView &v) : view(v) {}
void DriverViewPresenter::activate() {}
void DriverViewPresenter::deactivate() {}
void DriverViewPresenter::tireTempsUpdated() {
view.setTireTemps(model->getTireTemps());
}

View File

@ -0,0 +1,14 @@
#include <gui/driverview_screen/DriverViewView.hpp>
DriverViewView::DriverViewView() {}
void DriverViewView::setupScreen() { DriverViewViewBase::setupScreen(); }
void DriverViewView::tearDownScreen() { DriverViewViewBase::tearDownScreen(); }
void DriverViewView::setTireTemps(const TireTemps &temps) {
tireTempFL.setTemp(temps.fl);
tireTempFR.setTemp(temps.fr);
tireTempRL.setTemp(temps.rl);
tireTempRR.setTemp(temps.rr);
}

View File

@ -51,7 +51,11 @@ void MissionSelectView::confirmMission() {
return;
}
presenter->confirmMission(selectedMission);
application().gotoAMIScreenNoTransition();
if (selectedMission == MISSION_MANUAL) {
application().gotoDriverViewScreenNoTransition();
} else {
application().gotoAMIScreenNoTransition();
}
}
void MissionSelectView::setSelectedMission(Mission mission) {

View File

@ -1,11 +1,42 @@
#include "main.h"
#include "stm32h7xx_hal.h"
#include "stm32h7xx_hal_gpio.h"
#include "stw_defines.h"
#include "tx_api.h"
#include "ui.h"
#include "vehicle.h"
#include <gui/model/Model.hpp>
#include <gui/model/ModelListener.hpp>
Model::Model() : modelListener(0) {}
void Model::tick() {}
void Model::tick() {
static int incs = 0;
if ((HAL_GetTick() / 10) % 5 == 0) {
tireTemps.fl++;
if (tireTemps.fl > 90) {
tireTemps.fl = 0;
}
if (incs % 2 == 0) {
tireTemps.fr++;
if (tireTemps.fr > 90) {
tireTemps.fr = 0;
}
}
if (incs % 3 == 0) {
tireTemps.rl++;
if (tireTemps.rl > 90) {
tireTemps.rl = 0;
}
}
if (incs % 4 == 0) {
tireTemps.rr++;
if (tireTemps.rr > 90) {
tireTemps.rr = 0;
}
}
incs++;
modelListener->tireTempsUpdated();
}
}

View File

@ -29,6 +29,11 @@
<ClCompile Include="..\..\gui\src\ami_screen\AMIPresenter.cpp"/>
<ClCompile Include="..\..\gui\src\ami_screen\AMIView.cpp"/>
<ClCompile Include="..\..\generated\gui_generated\src\ami_screen\AMIViewBase.cpp"/>
<ClCompile Include="..\..\gui\src\driverview_screen\DriverViewPresenter.cpp"/>
<ClCompile Include="..\..\gui\src\driverview_screen\DriverViewView.cpp"/>
<ClCompile Include="..\..\generated\gui_generated\src\driverview_screen\DriverViewViewBase.cpp"/>
<ClCompile Include="..\..\gui\src\containers\TireTemp.cpp"/>
<ClCompile Include="..\..\generated\gui_generated\src\containers\TireTempBase.cpp"/>
</ItemGroup>
<ItemGroup>
<None Include="$(ApplicationRoot)\assets\texts\texts.xml"/>
@ -187,6 +192,11 @@
<ClInclude Include="..\..\gui\include\gui\ami_screen\AMIPresenter.hpp"/>
<ClInclude Include="..\..\gui\include\gui\ami_screen\AMIView.hpp"/>
<ClInclude Include="..\..\generated\gui_generated\include\gui_generated\ami_screen\AMIViewBase.hpp"/>
<ClInclude Include="..\..\gui\include\gui\driverview_screen\DriverViewPresenter.hpp"/>
<ClInclude Include="..\..\gui\include\gui\driverview_screen\DriverViewView.hpp"/>
<ClInclude Include="..\..\generated\gui_generated\include\gui_generated\driverview_screen\DriverViewViewBase.hpp"/>
<ClInclude Include="..\..\gui\include\gui\containers\TireTemp.hpp"/>
<ClInclude Include="..\..\generated\gui_generated\include\gui_generated\containers\TireTempBase.hpp"/>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="$(ApplicationRoot)\generated\simulator\touchgfx.rc"/>

View File

@ -208,6 +208,18 @@
<Filter Include="Header Files\generated\gui_generated\ami_screen">
<UniqueIdentifier>77F28AAE-3934-EF19-59EB-A8E517D0F5C9</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\gui\driverview_screen">
<UniqueIdentifier>30EED47B-F7FB-D788-0CD0-C4D70D369D43</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\gui\driverview_screen">
<UniqueIdentifier>0C57E844-503D-A7B7-4A2C-AADDEBDA89E8</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\generated\gui_generated\driverview_screen">
<UniqueIdentifier>49CBB0FB-476F-BE17-982A-03A10420ED55</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\generated\gui_generated\driverview_screen">
<UniqueIdentifier>B2E02187-8256-B0BB-0B38-41E0CEB82DC4</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="$(TouchGFXReleasePath)\framework\source\platform\driver\touch\SDL2TouchController.cpp">
@ -264,6 +276,21 @@
<ClCompile Include="..\..\generated\gui_generated\src\ami_screen\AMIViewBase.cpp">
<Filter>Source Files\generated\gui_generated\ami_screen</Filter>
</ClCompile>
<ClCompile Include="..\..\gui\src\driverview_screen\DriverViewPresenter.cpp">
<Filter>Source Files\gui\driverview_screen</Filter>
</ClCompile>
<ClCompile Include="..\..\gui\src\driverview_screen\DriverViewView.cpp">
<Filter>Source Files\gui\driverview_screen</Filter>
</ClCompile>
<ClCompile Include="..\..\generated\gui_generated\src\driverview_screen\DriverViewViewBase.cpp">
<Filter>Source Files\generated\gui_generated\driverview_screen</Filter>
</ClCompile>
<ClCompile Include="..\..\gui\src\containers\TireTemp.cpp">
<Filter>Source Files\gui\containers</Filter>
</ClCompile>
<ClCompile Include="..\..\generated\gui_generated\src\containers\TireTempBase.cpp">
<Filter>Source Files\generated\gui_generated\containers</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<None Include="$(ApplicationRoot)\assets\texts\texts.xml">
@ -730,6 +757,21 @@
<ClInclude Include="..\..\generated\gui_generated\include\gui_generated\ami_screen\AMIViewBase.hpp">
<Filter>Header Files\generated\gui_generated\ami_screen</Filter>
</ClInclude>
<ClInclude Include="..\..\gui\include\gui\driverview_screen\DriverViewPresenter.hpp">
<Filter>Header Files\gui\driverview_screen</Filter>
</ClInclude>
<ClInclude Include="..\..\gui\include\gui\driverview_screen\DriverViewView.hpp">
<Filter>Header Files\gui\driverview_screen</Filter>
</ClInclude>
<ClInclude Include="..\..\generated\gui_generated\include\gui_generated\driverview_screen\DriverViewViewBase.hpp">
<Filter>Header Files\generated\gui_generated\driverview_screen</Filter>
</ClInclude>
<ClInclude Include="..\..\gui\include\gui\containers\TireTemp.hpp">
<Filter>Header Files\gui\containers</Filter>
</ClInclude>
<ClInclude Include="..\..\generated\gui_generated\include\gui_generated\containers\TireTempBase.hpp">
<Filter>Header Files\generated\gui_generated\containers</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="$(ApplicationRoot)\generated\simulator\touchgfx.rc">

View File

@ -145,7 +145,7 @@
}
},
{
"InteractionName": "DummyChange",
"InteractionName": "DummyChangeAMI",
"Trigger": {
"Type": "TriggerPhysicalButtonClicked",
"ButtonKey": 254
@ -155,6 +155,18 @@
"ScreenTransitionType": "ScreenTransitionNone",
"ActionComponent": "AMI"
}
},
{
"InteractionName": "DummyChangeDriverView",
"Trigger": {
"Type": "TriggerPhysicalButtonClicked",
"ButtonKey": 253
},
"Action": {
"Type": "ActionGotoScreen",
"ScreenTransitionType": "ScreenTransitionNone",
"ActionComponent": "DriverView"
}
}
]
},
@ -202,6 +214,130 @@
}
],
"Interactions": []
},
{
"Name": "DriverView",
"CanvasBufferSize": 7200,
"Components": [
{
"Type": "Image",
"Name": "logo",
"X": 160,
"Y": 263,
"Width": 160,
"Height": 55,
"RelativeFilename": "Fasttube_Logo_small_white.png"
},
{
"Type": "CustomContainerInstance",
"Name": "tireTempRR",
"X": 240,
"Y": 167,
"Width": 75,
"Height": 75,
"CustomContainerDefinitionName": "TireTemp"
},
{
"Type": "CustomContainerInstance",
"Name": "tireTempFR",
"X": 240,
"Y": 92,
"Width": 75,
"Height": 75,
"CustomContainerDefinitionName": "TireTemp"
},
{
"Type": "CustomContainerInstance",
"Name": "tireTempRL",
"X": 165,
"Y": 167,
"Width": 75,
"Height": 75,
"CustomContainerDefinitionName": "TireTemp"
},
{
"Type": "CustomContainerInstance",
"Name": "tireTempFL",
"X": 165,
"Y": 92,
"Width": 75,
"Height": 75,
"CustomContainerDefinitionName": "TireTemp"
},
{
"Type": "Line",
"Name": "ttDivVert",
"X": 239,
"Y": 92,
"Width": 3,
"Height": 150,
"Color": {
"Red": 255,
"Green": 255,
"Blue": 255
},
"EndY": 320.0,
"LineWidth": 10.0,
"LineEndingStyle": "Round"
},
{
"Type": "Line",
"Name": "ttDivHoriz",
"X": 165,
"Y": 166,
"Width": 150,
"Height": 3,
"Color": {
"Red": 255,
"Green": 255,
"Blue": 255
},
"EndX": 480.0,
"LineWidth": 10.0,
"LineEndingStyle": "Round"
},
{
"Type": "LineProgress",
"Name": "tsVoltage",
"X": 10,
"Y": 92,
"Width": 40,
"Height": 150,
"Color": {
"Red": 136,
"Green": 255
},
"StartX": 9.0,
"StartY": 200.0,
"EndX": 9.0,
"LineWidth": 100.0,
"LineEndingStyle": "Butt",
"FileNameBackground": "bat_bar_bg.png",
"ProgressRangeMax": 100,
"ProgressInitialValue": 60
},
{
"Type": "LineProgress",
"Name": "lvVoltage",
"X": 88,
"Y": 92,
"Width": 40,
"Height": 150,
"Color": {
"Red": 136,
"Green": 255
},
"StartX": 9.0,
"StartY": 200.0,
"EndX": 9.0,
"LineWidth": 100.0,
"LineEndingStyle": "Butt",
"FileNameBackground": "bat_bar_bg.png",
"ProgressRangeMax": 100,
"ProgressInitialValue": 80
}
],
"Interactions": []
}
],
"CustomContainerDefinitions": [
@ -248,6 +384,41 @@
}
],
"Interactions": []
},
{
"Name": "TireTemp",
"X": 135,
"Y": 215,
"Width": 75,
"Height": 75,
"Components": [
{
"Type": "Box",
"Name": "bg",
"Width": 75,
"Height": 75,
"Color": {
"Green": 38,
"Blue": 255
}
},
{
"Type": "TextArea",
"Name": "value",
"Y": 7,
"Width": 75,
"Height": 60,
"TextId": "__SingleUse_20H3",
"TextRotation": "0",
"Color": {
"Red": 255,
"Green": 255,
"Blue": 255
},
"Wildcard1": {}
}
],
"Interactions": []
}
],
"Name": "MyApplication",

BIN
assets/bat_bar_bg.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 B