Make DriverView fields more modular

This commit is contained in:
Jasper Blanckenburg 2023-03-20 19:35:30 +01:00
parent f0254b92ee
commit c8ee51a78f
31 changed files with 1554 additions and 109 deletions

View File

@ -369,6 +369,7 @@ TouchGFX/generated/texts/src/Texts.cpp \
TouchGFX/generated/texts/src/TypedTextDatabase.cpp \ TouchGFX/generated/texts/src/TypedTextDatabase.cpp \
TouchGFX/gui/src/ami_screen/AMIPresenter.cpp \ TouchGFX/gui/src/ami_screen/AMIPresenter.cpp \
TouchGFX/gui/src/ami_screen/AMIView.cpp \ TouchGFX/gui/src/ami_screen/AMIView.cpp \
TouchGFX/gui/src/common/DataField.cpp \
TouchGFX/gui/src/common/FrontendApplication.cpp \ TouchGFX/gui/src/common/FrontendApplication.cpp \
TouchGFX/gui/src/containers/DriverViewField.cpp \ TouchGFX/gui/src/containers/DriverViewField.cpp \
TouchGFX/gui/src/containers/MissionSelectElement.cpp \ TouchGFX/gui/src/containers/MissionSelectElement.cpp \

View File

@ -5,6 +5,72 @@
</Languages> </Languages>
<Texts> <Texts>
<TextGroup Id="DriverViewFields"> <TextGroup Id="DriverViewFields">
<Text Id="Field_BBal" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">BBAL</Translation>
</Text>
<Text Id="Field_TSVOLTVEH" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">TSVVEH</Translation>
</Text>
<Text Id="Field_TSVOLTBAT" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">TSVBAT</Translation>
</Text>
<Text Id="Field_LVSoC" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">LVSOC</Translation>
</Text>
<Text Id="Field_TSSoC" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">TSSOC</Translation>
</Text>
<Text Id="Field_MaxCellTemp" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">TMAX</Translation>
</Text>
<Text Id="Field_TireFL" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">TTFL</Translation>
</Text>
<Text Id="Field_TireFR" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">TTFR</Translation>
</Text>
<Text Id="Field_TireRL" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">TTRL</Translation>
</Text>
<Text Id="Field_TireRR" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">TTRR</Translation>
</Text>
<Text Id="Field_LapCount" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">LAPS</Translation>
</Text>
<Text Id="Field_IniChkState" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">ICSTATE</Translation>
</Text>
<Text Id="Field_Err" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">ERROR</Translation>
</Text>
<Text Id="Field_SDC" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">SDC</Translation>
</Text>
<Text Id="Field_INVRReady" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">INVRRDY</Translation>
</Text>
<Text Id="Field_INVLReady" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">INVLRDY</Translation>
</Text>
<Text Id="Field_R2DProgress" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">R2DPROG</Translation>
</Text>
<Text Id="Field_ActiveMission" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">MISSION</Translation>
</Text>
<Text Id="Field_ASState" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">ASSTATE</Translation>
</Text>
<Text Id="Field_TSState" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">TSSTATE</Translation>
</Text>
<Text Id="NumberWildcard" Alignment="Center" TypographyId="Numbers">
<Translation Language="GB">&lt;value&gt;</Translation>
</Text>
<Text Id="DefaultWildcard" Alignment="Center" TypographyId="Default">
<Translation Language="GB">&lt;value&gt;</Translation>
</Text>
<Text Id="Field_TSCurrent" Alignment="Center" TypographyId="Chinat_Small"> <Text Id="Field_TSCurrent" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">ITS</Translation> <Translation Language="GB">ITS</Translation>
</Text> </Text>
@ -62,9 +128,6 @@
</Text> </Text>
</TextGroup> </TextGroup>
<TextGroup Id="Unsorted"> <TextGroup Id="Unsorted">
<Text Id="__SingleUse_K26P" Alignment="Center" TypographyId="Numbers">
<Translation Language="GB">&lt;value&gt;</Translation>
</Text>
<Text Id="__SingleUse_0FBJ" Alignment="Center" TypographyId="Chinat_Small"> <Text Id="__SingleUse_0FBJ" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">FIELD</Translation> <Translation Language="GB">FIELD</Translation>
</Text> </Text>
@ -92,7 +155,7 @@
</TextGroup> </TextGroup>
</Texts> </Texts>
<Typographies> <Typographies>
<Typography Id="Default" Font="verdana.ttf" Size="20" Bpp="4" Direction="LTR" FallbackCharacter="?" /> <Typography Id="Default" Font="verdana.ttf" Size="20" Bpp="4" Direction="LTR" FallbackCharacter="?" WildcardCharacters="! &quot;" WildcardCharacterRanges="#-~" />
<Typography Id="Chinat_Large" Font="CHINN___.ttf" Size="30" Bpp="4" Direction="LTR" FallbackCharacter="?" /> <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_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="Chinat_Huge" Font="CHINN___.ttf" Size="40" Bpp="4" Direction="LTR" FallbackCharacter="?" />

View File

@ -1,19 +1,26 @@
32 32
50
63 63
65 65
66 66
67
68 68
69 69
70 70
71
72
73 73
76 76
77 77
78 78
79
80 80
82 82
83 83
84 84
86 86
88
89
97 97
99 99
100 100

View File

@ -1 +1,95 @@
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63 63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126

View File

@ -1,20 +1,27 @@
AH:0 BA:1 FC:63 EC:0 FF:0 CF:1 AH:0 BA:1 FC:63 EC:0 FF:0 CF:1
32 32
50
63 63
65 65
66 66
67
68 68
69 69
70 70
71
72
73 73
76 76
77 77
78 78
79
80 80
82 82
83 83
84 84
86 86
88
89
97 97
99 99
100 100

View File

@ -1,2 +1,96 @@
AH:0 BA:1 FC:63 EC:0 FF:0 CF:1 AH:0 BA:1 FC:63 EC:0 FF:0 CF:1
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63 63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126

View File

@ -4,6 +4,16 @@ FONT_GLYPH_LOCATION_FLASH_PRAGMA
KEEP extern const uint8_t unicodes_CHINN____20_4bpp_0[] FONT_GLYPH_LOCATION_FLASH_ATTRIBUTE = { KEEP extern const uint8_t unicodes_CHINN____20_4bpp_0[] FONT_GLYPH_LOCATION_FLASH_ATTRIBUTE = {
// Unicode: [0x0020, space] // Unicode: [0x0020, space]
// (Has no glyph data) // (Has no glyph data)
// Unicode: [0x0032, two]
0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xAE, 0x01, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x0B, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x32, 0x33,
0x33, 0x33, 0x33, 0x33, 0x33, 0x53, 0xFF, 0x4F, 0x00, 0x20, 0x33, 0x33, 0x33, 0x33, 0x33, 0x53,
0xFF, 0x4F, 0x20, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2F, 0xC0, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0A, 0xF4, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xAF, 0x01,
0xF6, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF6, 0xFF, 0x34, 0x33, 0x33, 0x33,
0x33, 0x33, 0x33, 0x03, 0xF6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xF6, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xF6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0x0F,
// 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,
@ -34,6 +44,16 @@ KEEP extern const uint8_t unicodes_CHINN____20_4bpp_0[] FONT_GLYPH_LOCATION_FLAS
0x44, 0x44, 0xFB, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0xF7, 0xFF, 0x44, 0x44, 0xFB, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0xF7, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2E, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2E, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x9E, 0x02, 0x9E, 0x02,
// Unicode: [0x0043, C]
0x00, 0xB5, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xCF, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0xF5, 0xFF,
0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x34, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0xFF, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF6, 0xFF, 0x44, 0x44, 0x44, 0x44,
0x44, 0x44, 0x44, 0x34, 0xF2, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0x70, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0x00, 0xC5, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xCF,
// Unicode: [0x0044, D] // Unicode: [0x0044, D]
0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0x5C, 0x00, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0x5C, 0x00, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x08, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4F, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0x08, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4F, 0xF7, 0xFF,
@ -64,6 +84,26 @@ KEEP extern const uint8_t unicodes_CHINN____20_4bpp_0[] FONT_GLYPH_LOCATION_FLAS
0x00, 0x00, 0x00, 0x00, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0xFF,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
// Unicode: [0x0047, G]
0x00, 0x93, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xCF, 0xF3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0xF6, 0xFF,
0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x34, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x43, 0x44, 0x44,
0x44, 0x34, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xCF, 0xF7, 0xFF, 0x00, 0x00,
0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xCF, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xCF,
0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xBF, 0xF6, 0xFF, 0x44, 0x44, 0x44, 0x44,
0x44, 0x44, 0xFC, 0xAF, 0xE1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x6F, 0x50, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0A, 0x00, 0xA3, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF,
0x6C, 0x00,
// Unicode: [0x0048, H]
0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xDF, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xF9, 0xDF, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xDF, 0xF7, 0xFF,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xDF, 0xF7, 0xFF, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44,
0xFB, 0xDF, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xF7, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF,
0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xDF, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xF9, 0xDF, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xDF, 0xF7, 0xFF,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xDF, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xF9, 0xDF,
// Unicode: [0x0049, I] // Unicode: [0x0049, I]
0xF7, 0xFF, 0xF7, 0xFF, 0xF7, 0xFF, 0xF7, 0xFF, 0xF7, 0xFF, 0xF7, 0xFF, 0xF7, 0xFF, 0xF7, 0xFF, 0xF7, 0xFF, 0xF7, 0xFF, 0xF7, 0xFF, 0xF7, 0xFF, 0xF7, 0xFF, 0xF7, 0xFF, 0xF7, 0xFF, 0xF7, 0xFF,
0xF7, 0xFF, 0xF7, 0xFF, 0xF7, 0xFF, 0xF7, 0xFF, 0xF7, 0xFF, 0xF7, 0xFF, 0xF7, 0xFF, 0xF7, 0xFF, 0xF7, 0xFF, 0xF7, 0xFF,
@ -97,6 +137,16 @@ KEEP extern const uint8_t unicodes_CHINN____20_4bpp_0[] FONT_GLYPH_LOCATION_FLAS
0xFF, 0x9F, 0xFF, 0x6F, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x40, 0xFE, 0xFF, 0xFF, 0x4F, 0xF7, 0xFF, 0xFF, 0x9F, 0xFF, 0x6F, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x40, 0xFE, 0xFF, 0xFF, 0x4F, 0xF7, 0xFF,
0x00, 0x00, 0x00, 0x00, 0xE3, 0xFF, 0xFF, 0x0C, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x20, 0xEA, 0x00, 0x00, 0x00, 0x00, 0xE3, 0xFF, 0xFF, 0x0C, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x20, 0xEA,
0xAE, 0x02, 0xAE, 0x02,
// Unicode: [0x004F, O]
0x00, 0xB3, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x5C, 0x00, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x07, 0xF2, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2F, 0xF6, 0xFF,
0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0xFE, 0x7F, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xFE, 0x8F, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x8F, 0xF7, 0xFF, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xFE, 0x8F, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x8F,
0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x8F, 0xF6, 0xFF, 0x44, 0x44, 0x44, 0x44,
0x44, 0x44, 0xFE, 0x7F, 0xF2, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x70, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x08, 0x00, 0xC5, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x5C, 0x00,
// Unicode: [0x0050, P] // Unicode: [0x0050, P]
0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x9D, 0x02, 0x00, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x9D, 0x02, 0x00, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x3E, 0x00, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3E, 0x00, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF,
@ -147,6 +197,26 @@ KEEP extern const uint8_t unicodes_CHINN____20_4bpp_0[] FONT_GLYPH_LOCATION_FLAS
0xDF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xC1, 0xFF, 0xFF, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xE9, 0x7D, 0x00, 0x00, 0x00, 0xC1, 0xFF, 0xFF, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xE9, 0x7D, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
// Unicode: [0x0058, X]
0xFA, 0xFF, 0x1C, 0x00, 0x00, 0x00, 0x30, 0xFE, 0xFF, 0x06, 0xB0, 0xFF, 0xBF, 0x00, 0x00, 0x00,
0xE2, 0xFF, 0x6F, 0x00, 0x00, 0xFB, 0xFF, 0x09, 0x00, 0x10, 0xFD, 0xFF, 0x07, 0x00, 0x00, 0xC1,
0xFF, 0x8F, 0x00, 0xC1, 0xFF, 0x8F, 0x00, 0x00, 0x00, 0x10, 0xFD, 0xFF, 0x06, 0xFA, 0xFF, 0x09,
0x00, 0x00, 0x00, 0x00, 0xD2, 0xFF, 0x9F, 0xFF, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xFF,
0xFF, 0xFF, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD2, 0xFF, 0x9F, 0xFF, 0xAF, 0x00, 0x00, 0x00,
0x00, 0x10, 0xFC, 0xFF, 0x07, 0xFB, 0xFF, 0x09, 0x00, 0x00, 0x00, 0xB0, 0xFF, 0x9F, 0x00, 0xD1,
0xFF, 0x7F, 0x00, 0x00, 0x00, 0xFA, 0xFF, 0x0B, 0x00, 0x20, 0xFE, 0xFF, 0x05, 0x00, 0x80, 0xFF,
0xDF, 0x01, 0x00, 0x00, 0xF4, 0xFF, 0x4F, 0x00, 0xF6, 0xFF, 0x2E, 0x00, 0x00, 0x00, 0x50, 0xFF,
0xEF, 0x03,
// Unicode: [0x0059, Y]
0xD1, 0xFF, 0x5F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x0B, 0x30, 0xFE, 0xFF, 0x03, 0x00, 0x00,
0x60, 0xFF, 0xDF, 0x01, 0x00, 0xF5, 0xFF, 0x2E, 0x00, 0x00, 0xF4, 0xFF, 0x2E, 0x00, 0x00, 0x70,
0xFF, 0xCF, 0x01, 0x20, 0xFE, 0xFF, 0x05, 0x00, 0x00, 0x00, 0xF9, 0xFF, 0x0A, 0xD1, 0xFF, 0x7F,
0x00, 0x00, 0x00, 0x00, 0xB0, 0xFF, 0x8F, 0xFB, 0xFF, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x10, 0xFD,
0xFF, 0xFF, 0xCF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE2, 0xFF, 0xFF, 0x2E, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x40, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xBF,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xFB, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xBF, 0x00, 0x00,
0x00, 0x00,
// Unicode: [0x0061, a] // Unicode: [0x0061, a]
0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x9E, 0x01, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x9E, 0x01, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0x0B, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x6F, 0x40, 0x44, 0xFF, 0xFF, 0xFF, 0x0B, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x6F, 0x40, 0x44,

View File

@ -2,10 +2,584 @@
FONT_GLYPH_LOCATION_FLASH_PRAGMA FONT_GLYPH_LOCATION_FLASH_PRAGMA
KEEP extern const uint8_t unicodes_verdana_20_4bpp_0[] FONT_GLYPH_LOCATION_FLASH_ATTRIBUTE = { KEEP extern const uint8_t unicodes_verdana_20_4bpp_0[] FONT_GLYPH_LOCATION_FLASH_ATTRIBUTE = {
// Unicode: [0x0020]
// (Has no glyph data)
// Unicode: [0x0021]
0xF2, 0x0F, 0xF2, 0x0F, 0xF1, 0x0F, 0xF1, 0x0E, 0xF1, 0x0E, 0xF0, 0x0D, 0xF0, 0x0D, 0xF0, 0x0D,
0xE0, 0x0C, 0xE0, 0x0C, 0x40, 0x04, 0x00, 0x00, 0xF1, 0x0E, 0xF1, 0x0E,
// Unicode: [0x0022]
0xF5, 0x0B, 0xF8, 0x08, 0xF4, 0x0A, 0xF7, 0x06, 0xF3, 0x09, 0xF6, 0x05, 0xF1, 0x07, 0xF5, 0x04,
0xF0, 0x06, 0xF4, 0x03, 0x80, 0x03, 0x82, 0x01,
// Unicode: [0x0023]
0x00, 0x00, 0x00, 0x8B, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x10, 0x3F, 0x00, 0x00, 0x00,
0x30, 0x1F, 0x50, 0x0E, 0x00, 0x00, 0x11, 0x81, 0x1C, 0x91, 0x1A, 0x01, 0x00, 0xFE, 0xFF, 0xFF,
0xFF, 0xFF, 0x7F, 0x00, 0x43, 0xF4, 0x46, 0xF5, 0x45, 0x24, 0x00, 0x00, 0xF4, 0x00, 0xE5, 0x00,
0x00, 0x00, 0x00, 0xB7, 0x00, 0xA9, 0x00, 0x00, 0x10, 0x11, 0x8B, 0x11, 0x7C, 0x11, 0x00, 0xF1,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x05, 0x40, 0x74, 0x4F, 0x84, 0x4D, 0x44, 0x01, 0x00, 0x80, 0x0B,
0x90, 0x09, 0x00, 0x00, 0x00, 0xC0, 0x07, 0xD0, 0x05, 0x00, 0x00, 0x00, 0xF1, 0x03, 0xF2, 0x01,
0x00, 0x00,
// Unicode: [0x0024]
0x00, 0x00, 0xF1, 0x01, 0x00, 0x00, 0x00, 0x00, 0xF1, 0x01, 0x00, 0x00, 0x00, 0x00, 0xF2, 0x02,
0x00, 0x00, 0x00, 0xD6, 0xFF, 0xEF, 0x7C, 0x00, 0xB0, 0xAF, 0xF6, 0x76, 0xCC, 0x00, 0xF4, 0x09,
0xF1, 0x01, 0x30, 0x00, 0xF6, 0x08, 0xF1, 0x01, 0x00, 0x00, 0xF2, 0x6E, 0xF2, 0x01, 0x00, 0x00,
0x50, 0xFE, 0xFF, 0x7B, 0x02, 0x00, 0x00, 0x50, 0xF9, 0xFE, 0x7F, 0x00, 0x00, 0x00, 0xF1, 0x31,
0xFE, 0x02, 0x00, 0x00, 0xF1, 0x01, 0xF9, 0x04, 0x44, 0x00, 0xF1, 0x01, 0xFC, 0x02, 0xF7, 0x9D,
0xF8, 0xD8, 0x7F, 0x00, 0x82, 0xDB, 0xFE, 0xAD, 0x03, 0x00, 0x00, 0x00, 0xF1, 0x01, 0x00, 0x00,
0x00, 0x00, 0xF1, 0x01, 0x00, 0x00, 0x00, 0x00, 0xF1, 0x01, 0x00, 0x00, 0x00, 0x00, 0x81, 0x00,
0x00, 0x00,
// Unicode: [0x0025]
0x30, 0xEB, 0xBE, 0x03, 0x00, 0x00, 0xF8, 0x02, 0x00, 0x00, 0xE1, 0x6D, 0xC5, 0x2E, 0x00, 0x10,
0x8E, 0x00, 0x00, 0x00, 0xF6, 0x05, 0x40, 0x7F, 0x00, 0x90, 0x1E, 0x00, 0x00, 0x00, 0xF8, 0x03,
0x20, 0x9F, 0x00, 0xF2, 0x07, 0x00, 0x00, 0x00, 0xF6, 0x04, 0x30, 0x8F, 0x00, 0xDA, 0x01, 0x00,
0x00, 0x00, 0xF2, 0x2B, 0xA2, 0x3F, 0x30, 0x6F, 0x00, 0x00, 0x00, 0x00, 0x50, 0xFE, 0xEF, 0x06,
0xC0, 0x0C, 0x70, 0xFD, 0x7D, 0x00, 0x00, 0x20, 0x02, 0x00, 0xF5, 0x04, 0xF8, 0x48, 0xF8, 0x08,
0x00, 0x00, 0x00, 0x00, 0xBD, 0x00, 0xCE, 0x00, 0xD0, 0x0D, 0x00, 0x00, 0x00, 0x60, 0x3F, 0x10,
0xAF, 0x00, 0xB0, 0x0F, 0x00, 0x00, 0x00, 0xE1, 0x0A, 0x10, 0xAF, 0x00, 0xB0, 0x0F, 0x00, 0x00,
0x00, 0xF7, 0x02, 0x00, 0xCE, 0x00, 0xD0, 0x0D, 0x00, 0x00, 0x10, 0x9E, 0x00, 0x00, 0xF8, 0x59,
0xF9, 0x07, 0x00, 0x00, 0x90, 0x1E, 0x00, 0x00, 0x70, 0xED, 0x7D, 0x00,
// Unicode: [0x0026]
0x00, 0xC7, 0xEF, 0x4B, 0x00, 0x00, 0x00, 0x80, 0xAF, 0x54, 0xFD, 0x04, 0x00, 0x00, 0xF1, 0x0D,
0x00, 0xF6, 0x09, 0x00, 0x00, 0xF2, 0x0C, 0x00, 0xF5, 0x08, 0x00, 0x00, 0xC0, 0x6F, 0x00, 0xFB,
0x02, 0x00, 0x00, 0x20, 0xFC, 0xDB, 0x3C, 0x20, 0x47, 0x00, 0x10, 0xDB, 0xEE, 0x04, 0x50, 0x8F,
0x00, 0xD1, 0x1C, 0xE3, 0x5F, 0x50, 0x6F, 0x00, 0xF8, 0x05, 0x20, 0xFD, 0x66, 0x4F, 0x00, 0xFC,
0x02, 0x00, 0xC1, 0xEF, 0x0D, 0x00, 0xFC, 0x05, 0x00, 0x10, 0xFB, 0x0B, 0x00, 0xF8, 0x1C, 0x00,
0x30, 0xDD, 0xAF, 0x00, 0xD1, 0xEF, 0x9A, 0xFB, 0x0A, 0xF9, 0x0A, 0x10, 0xD8, 0xEF, 0x5B, 0x00,
0xA0, 0xAF,
// Unicode: [0x0027]
0xF5, 0x0B, 0xF4, 0x0A, 0xF3, 0x09, 0xF2, 0x07, 0xF1, 0x06, 0x80, 0x03,
// Unicode: [0x0028]
0x00, 0x10, 0xFD, 0x04, 0x00, 0xB0, 0x5F, 0x00, 0x00, 0xF5, 0x09, 0x00, 0x00, 0xED, 0x01, 0x00,
0x50, 0x9F, 0x00, 0x00, 0xA0, 0x3F, 0x00, 0x00, 0xE0, 0x0D, 0x00, 0x00, 0xF1, 0x0A, 0x00, 0x00,
0xF2, 0x08, 0x00, 0x00, 0xF3, 0x07, 0x00, 0x00, 0xF2, 0x08, 0x00, 0x00, 0xF1, 0x0A, 0x00, 0x00,
0xE0, 0x0D, 0x00, 0x00, 0xA0, 0x3F, 0x00, 0x00, 0x50, 0x8F, 0x00, 0x00, 0x00, 0xED, 0x01, 0x00,
0x00, 0xF5, 0x09, 0x00, 0x00, 0xB0, 0x4F, 0x00, 0x00, 0x10, 0xED, 0x03,
// Unicode: [0x0029]
0xE3, 0x2E, 0x00, 0x00, 0x30, 0xCF, 0x00, 0x00, 0x00, 0xF7, 0x07, 0x00, 0x00, 0xD0, 0x1E, 0x00,
0x00, 0x70, 0x6F, 0x00, 0x00, 0x20, 0xBF, 0x00, 0x00, 0x00, 0xEC, 0x00, 0x00, 0x00, 0xF9, 0x02,
0x00, 0x00, 0xF7, 0x03, 0x00, 0x00, 0xF6, 0x04, 0x00, 0x00, 0xF7, 0x03, 0x00, 0x00, 0xF9, 0x02,
0x00, 0x00, 0xFC, 0x00, 0x00, 0x10, 0xBF, 0x00, 0x00, 0x70, 0x6F, 0x00, 0x00, 0xD1, 0x1E, 0x00,
0x00, 0xF9, 0x07, 0x00, 0x40, 0xCF, 0x00, 0x00, 0xE3, 0x2E, 0x00, 0x00,
// Unicode: [0x002A]
0x00, 0x00, 0xF4, 0x00, 0x00, 0x60, 0x00, 0xF3, 0x00, 0x51, 0xD2, 0x5D, 0xE3, 0x70, 0xBE, 0x00,
0xE7, 0xFD, 0xCD, 0x05, 0x00, 0x30, 0xFE, 0x1C, 0x00, 0x10, 0xE9, 0xFB, 0xEB, 0x07, 0xE2, 0x3B,
0xE3, 0x50, 0xDD, 0x40, 0x00, 0xF3, 0x00, 0x30, 0x00, 0x00, 0xD3, 0x00, 0x00,
// Unicode: [0x002B]
0x00, 0x00, 0x90, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x90, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0F,
0x00, 0x00, 0x00, 0x88, 0x88, 0xC8, 0x8F, 0x88, 0x88, 0x02, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x05, 0x00, 0x00, 0x90, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0F, 0x00, 0x00, 0x00, 0x00,
0x00, 0x90, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90,
0x0F, 0x00, 0x00, 0x00,
// Unicode: [0x002C]
0x00, 0x87, 0x04, 0x20, 0xFF, 0x03, 0x60, 0xBF, 0x00, 0xA0, 0x5F, 0x00, 0xE0, 0x0D, 0x00, 0xF3,
0x07, 0x00, 0xF6, 0x01, 0x00,
// Unicode: [0x002D]
0xB6, 0xBB, 0xBB, 0x07, 0xF8, 0xFF, 0xFF, 0x09,
// Unicode: [0x002E]
0xB6, 0x09, 0xF8, 0x0C, 0xF8, 0x0C,
// Unicode: [0x002F]
0x00, 0x00, 0x00, 0x80, 0x3F, 0x00, 0x00, 0x00, 0xD0, 0x0C, 0x00, 0x00, 0x00, 0xF4, 0x06, 0x00,
0x00, 0x00, 0xFA, 0x01, 0x00, 0x00, 0x10, 0xAF, 0x00, 0x00, 0x00, 0x70, 0x4F, 0x00, 0x00, 0x00,
0xD0, 0x0D, 0x00, 0x00, 0x00, 0xF3, 0x07, 0x00, 0x00, 0x00, 0xF9, 0x02, 0x00, 0x00, 0x10, 0xBE,
0x00, 0x00, 0x00, 0x60, 0x5F, 0x00, 0x00, 0x00, 0xC0, 0x0E, 0x00, 0x00, 0x00, 0xF2, 0x08, 0x00,
0x00, 0x00, 0xF8, 0x02, 0x00, 0x00, 0x00, 0xBE, 0x00, 0x00, 0x00, 0x50, 0x5F, 0x00, 0x00, 0x00,
0xB0, 0x1E, 0x00, 0x00, 0x00, 0xF2, 0x09, 0x00, 0x00, 0x00,
// Unicode: [0x0030]
0x00, 0xA3, 0xFE, 0x9D, 0x01, 0x00, 0x40, 0xFF, 0x9B, 0xFC, 0x1D, 0x00, 0xD0, 0x4F, 0x00, 0x80,
0x9F, 0x00, 0xF3, 0x0B, 0x00, 0x10, 0xEE, 0x00, 0xF7, 0x07, 0x00, 0x00, 0xFB, 0x03, 0xF9, 0x06,
0x00, 0x00, 0xFA, 0x05, 0xFA, 0x05, 0x00, 0x00, 0xF9, 0x05, 0xFA, 0x05, 0x00, 0x00, 0xF9, 0x05,
0xF9, 0x06, 0x00, 0x00, 0xFA, 0x05, 0xF7, 0x07, 0x00, 0x00, 0xFB, 0x03, 0xF3, 0x0B, 0x00, 0x10,
0xEF, 0x00, 0xD0, 0x4F, 0x00, 0x80, 0x9F, 0x00, 0x40, 0xFF, 0x9B, 0xFC, 0x1D, 0x00, 0x00, 0xA3,
0xFE, 0x9D, 0x01, 0x00,
// Unicode: [0x0031]
0x00, 0x10, 0x9F, 0x00, 0x00, 0x20, 0xB4, 0x9F, 0x00, 0x00, 0xF4, 0xFF, 0x9F, 0x00, 0x00, 0x41,
0x64, 0x9F, 0x00, 0x00, 0x00, 0x40, 0x9F, 0x00, 0x00, 0x00, 0x40, 0x9F, 0x00, 0x00, 0x00, 0x40,
0x9F, 0x00, 0x00, 0x00, 0x40, 0x9F, 0x00, 0x00, 0x00, 0x40, 0x9F, 0x00, 0x00, 0x00, 0x40, 0x9F,
0x00, 0x00, 0x00, 0x40, 0x9F, 0x00, 0x00, 0x00, 0x40, 0x9F, 0x00, 0x00, 0x72, 0x97, 0xCF, 0x77,
0x04, 0xF4, 0xFF, 0xFF, 0xFF, 0x09,
// Unicode: [0x0032]
0x50, 0xDA, 0xFF, 0x8D, 0x01, 0x00, 0xF1, 0xDF, 0xBA, 0xFE, 0x1D, 0x00, 0x91, 0x02, 0x00, 0xB1,
0x9F, 0x00, 0x00, 0x00, 0x00, 0x40, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x40, 0xAF, 0x00, 0x00, 0x00,
0x00, 0x90, 0x6F, 0x00, 0x00, 0x00, 0x00, 0xF4, 0x1D, 0x00, 0x00, 0x00, 0x30, 0xEE, 0x03, 0x00,
0x00, 0x00, 0xE4, 0x3E, 0x00, 0x00, 0x00, 0x50, 0xDF, 0x03, 0x00, 0x00, 0x00, 0xF8, 0x1C, 0x00,
0x00, 0x00, 0xB1, 0x9F, 0x00, 0x00, 0x00, 0x00, 0xF6, 0xAE, 0xAA, 0xAA, 0xAA, 0x04, 0xF6, 0xFF,
0xFF, 0xFF, 0xFF, 0x06,
// Unicode: [0x0033]
0x40, 0xC9, 0xFE, 0xAD, 0x04, 0x00, 0xE0, 0xDF, 0xAB, 0xFC, 0x6F, 0x00, 0x70, 0x02, 0x00, 0x60,
0xDF, 0x00, 0x00, 0x00, 0x00, 0x30, 0xBF, 0x00, 0x00, 0x00, 0x10, 0xC4, 0x3E, 0x00, 0x00, 0x00,
0xFF, 0x9F, 0x01, 0x00, 0x00, 0x00, 0xA9, 0xFC, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x60, 0xBF, 0x00,
0x00, 0x00, 0x00, 0x00, 0xFD, 0x02, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x03, 0x00, 0x00, 0x00, 0x10,
0xFE, 0x01, 0x85, 0x02, 0x00, 0xA1, 0xAF, 0x00, 0xF6, 0xCF, 0xBA, 0xFE, 0x1D, 0x00, 0x61, 0xDA,
0xEF, 0x7C, 0x01, 0x00,
// Unicode: [0x0034]
0x00, 0x00, 0x00, 0xA0, 0x9F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x9F, 0x00, 0x00, 0x00, 0x70, 0xBF,
0x9F, 0x00, 0x00, 0x00, 0xF5, 0x48, 0x9F, 0x00, 0x00, 0x40, 0xAF, 0x40, 0x9F, 0x00, 0x00, 0xE3,
0x0B, 0x40, 0x9F, 0x00, 0x20, 0xCE, 0x01, 0x40, 0x9F, 0x00, 0xD1, 0x1D, 0x00, 0x40, 0x9F, 0x00,
0xF4, 0x8A, 0x88, 0xA8, 0xCF, 0x68, 0xF4, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0x00, 0x00, 0x00, 0x40,
0x9F, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9F, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9F, 0x00, 0x00, 0x00,
0x00, 0x40, 0x9F, 0x00,
// Unicode: [0x0035]
0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x80, 0xCF, 0xAA, 0xAA, 0xAA, 0x02, 0x80, 0x5F, 0x00, 0x00,
0x00, 0x00, 0x80, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x80, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF,
0xFF, 0xAD, 0x03, 0x00, 0x70, 0xAB, 0xA9, 0xFD, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x70, 0xEF, 0x00,
0x00, 0x00, 0x00, 0x00, 0xFC, 0x03, 0x00, 0x00, 0x00, 0x00, 0xFB, 0x04, 0x00, 0x00, 0x00, 0x00,
0xFE, 0x02, 0x82, 0x02, 0x00, 0x90, 0xBF, 0x00, 0xF3, 0xDF, 0xBA, 0xFE, 0x2D, 0x00, 0x61, 0xDB,
0xFE, 0x8D, 0x01, 0x00,
// Unicode: [0x0036]
0x00, 0x10, 0xC7, 0xFE, 0x3E, 0x00, 0x00, 0xE4, 0xDF, 0xAB, 0x3C, 0x00, 0x30, 0xDF, 0x04, 0x00,
0x00, 0x00, 0xB0, 0x2E, 0x00, 0x00, 0x00, 0x00, 0xF3, 0x29, 0x86, 0x58, 0x01, 0x00, 0xF6, 0xFD,
0xFF, 0xFF, 0x3E, 0x00, 0xF9, 0x5C, 0x02, 0x92, 0xEF, 0x01, 0xFA, 0x05, 0x00, 0x00, 0xFA, 0x06,
0xF9, 0x05, 0x00, 0x00, 0xF6, 0x09, 0xF8, 0x07, 0x00, 0x00, 0xF6, 0x09, 0xF4, 0x0C, 0x00, 0x00,
0xF9, 0x06, 0xD0, 0x7F, 0x00, 0x30, 0xEF, 0x01, 0x30, 0xFE, 0x9C, 0xFB, 0x4E, 0x00, 0x00, 0x92,
0xFD, 0xAE, 0x02, 0x00,
// Unicode: [0x0037]
0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xA5, 0xAA, 0xAA, 0xAA, 0xFC, 0x07, 0x00, 0x00, 0x00, 0x00,
0xFA, 0x04, 0x00, 0x00, 0x00, 0x40, 0xAF, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x2F, 0x00, 0x00, 0x00,
0x00, 0xF6, 0x09, 0x00, 0x00, 0x00, 0x10, 0xEE, 0x01, 0x00, 0x00, 0x00, 0x80, 0x7F, 0x00, 0x00,
0x00, 0x00, 0xF2, 0x0D, 0x00, 0x00, 0x00, 0x00, 0xFA, 0x06, 0x00, 0x00, 0x00, 0x30, 0xCF, 0x00,
0x00, 0x00, 0x00, 0xC0, 0x4F, 0x00, 0x00, 0x00, 0x00, 0xF6, 0x0B, 0x00, 0x00, 0x00, 0x10, 0xFD,
0x02, 0x00, 0x00, 0x00,
// Unicode: [0x0038]
0x00, 0xB5, 0xFE, 0xAD, 0x03, 0x00, 0x90, 0xDF, 0x78, 0xE9, 0x6F, 0x00, 0xF3, 0x1C, 0x00, 0x30,
0xEF, 0x00, 0xF6, 0x09, 0x00, 0x00, 0xFD, 0x01, 0xF3, 0x2E, 0x00, 0x10, 0xDE, 0x00, 0x80, 0xEF,
0x38, 0xA1, 0x4F, 0x00, 0x00, 0xF8, 0xFF, 0xEE, 0x03, 0x00, 0x90, 0x6F, 0x62, 0xFC, 0x4E, 0x00,
0xF6, 0x08, 0x00, 0x50, 0xFE, 0x02, 0xFB, 0x03, 0x00, 0x00, 0xF9, 0x07, 0xFB, 0x05, 0x00, 0x00,
0xF9, 0x07, 0xF7, 0x1C, 0x00, 0x20, 0xFE, 0x02, 0xB0, 0xEF, 0x78, 0xE9, 0x6F, 0x00, 0x00, 0xC6,
0xFE, 0xAE, 0x03, 0x00,
// Unicode: [0x0039]
0x00, 0xB5, 0xFE, 0x8D, 0x01, 0x00, 0xA0, 0xEF, 0x9A, 0xFD, 0x1D, 0x00, 0xF6, 0x1C, 0x00, 0x80,
0x9F, 0x00, 0xFB, 0x04, 0x00, 0x00, 0xFD, 0x01, 0xFD, 0x02, 0x00, 0x00, 0xFA, 0x04, 0xFB, 0x04,
0x00, 0x00, 0xF9, 0x05, 0xF6, 0x5E, 0x01, 0x62, 0xFD, 0x06, 0x80, 0xFF, 0xFF, 0xEF, 0xFD, 0x05,
0x00, 0x72, 0x88, 0x15, 0xFC, 0x02, 0x00, 0x00, 0x00, 0x10, 0xDF, 0x00, 0x00, 0x00, 0x00, 0x90,
0x7F, 0x00, 0x00, 0x00, 0x10, 0xF8, 0x1D, 0x00, 0x70, 0xAC, 0xEB, 0xCF, 0x02, 0x00, 0x60, 0xFE,
0xBE, 0x06, 0x00, 0x00,
// Unicode: [0x003A]
0xF9, 0x0B, 0xF9, 0x0B, 0xB7, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xB7, 0x08, 0xF9, 0x0B, 0xF9, 0x0B,
// Unicode: [0x003B]
0x90, 0xBF, 0x00, 0x90, 0xBF, 0x00, 0x70, 0x8B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xAA, 0x03, 0x50, 0xEF, 0x00, 0x90, 0x8F,
0x00, 0xD0, 0x2F, 0x00, 0xF2, 0x0A, 0x00, 0xF6, 0x04, 0x00, 0xD9, 0x00, 0x00,
// Unicode: [0x003C]
0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x00, 0xC5, 0xBF, 0x00, 0x00, 0x10, 0xD7,
0xEF, 0x18, 0x00, 0x20, 0xE9, 0xCF, 0x05, 0x00, 0x40, 0xFB, 0x9F, 0x03, 0x00, 0x00, 0xF7, 0x8F,
0x01, 0x00, 0x00, 0x00, 0xC4, 0xEF, 0x28, 0x00, 0x00, 0x00, 0x00, 0xA3, 0xFF, 0x4A, 0x00, 0x00,
0x00, 0x00, 0x82, 0xFE, 0x6D, 0x01, 0x00, 0x00, 0x00, 0x61, 0xFD, 0x7E, 0x00, 0x00, 0x00, 0x00,
0x40, 0xBB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
// Unicode: [0x003D]
0x85, 0x88, 0x88, 0x88, 0x88, 0x88, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x88, 0x88, 0x88, 0x88, 0x88, 0xF9, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF,
// Unicode: [0x003E]
0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF6, 0x7E, 0x01, 0x00, 0x00, 0x00, 0x50, 0xFC, 0x9F, 0x03,
0x00, 0x00, 0x00, 0x30, 0xF9, 0xBF, 0x05, 0x00, 0x00, 0x00, 0x10, 0xD7, 0xDF, 0x17, 0x00, 0x00,
0x00, 0x00, 0xD5, 0xDF, 0x00, 0x00, 0x00, 0x61, 0xFC, 0x7E, 0x00, 0x00, 0x82, 0xFE, 0x6C, 0x00,
0x00, 0xA4, 0xFF, 0x4B, 0x00, 0x00, 0xC3, 0xEF, 0x29, 0x00, 0x00, 0x00, 0xD6, 0x17, 0x00, 0x00,
0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
// Unicode: [0x003F] // Unicode: [0x003F]
0x93, 0xEC, 0xDE, 0x29, 0x00, 0xF7, 0xAD, 0xDA, 0xEF, 0x02, 0x33, 0x00, 0x00, 0xF9, 0x0A, 0x00, 0x93, 0xEC, 0xDE, 0x29, 0x00, 0xF7, 0xAD, 0xDA, 0xEF, 0x02, 0x33, 0x00, 0x00, 0xF9, 0x0A, 0x00,
0x00, 0x00, 0xF3, 0x0C, 0x00, 0x00, 0x00, 0xF5, 0x0A, 0x00, 0x00, 0x10, 0xFD, 0x03, 0x00, 0x00, 0x00, 0x00, 0xF3, 0x0C, 0x00, 0x00, 0x00, 0xF5, 0x0A, 0x00, 0x00, 0x10, 0xFD, 0x03, 0x00, 0x00,
0xD5, 0x6F, 0x00, 0x00, 0xB0, 0xCF, 0x03, 0x00, 0x00, 0xE0, 0x0C, 0x00, 0x00, 0x00, 0xE0, 0x0C, 0xD5, 0x6F, 0x00, 0x00, 0xB0, 0xCF, 0x03, 0x00, 0x00, 0xE0, 0x0C, 0x00, 0x00, 0x00, 0xE0, 0x0C,
0x00, 0x00, 0x00, 0x40, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x40, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x0E, 0x00,
0x00, 0x00, 0xF0, 0x0E, 0x00, 0x00 0x00, 0x00, 0xF0, 0x0E, 0x00, 0x00,
// Unicode: [0x0040]
0x00, 0x00, 0x30, 0xC8, 0xFE, 0xBD, 0x17, 0x00, 0x00, 0x00, 0x10, 0xFA, 0x7C, 0x55, 0x96, 0xEE,
0x06, 0x00, 0x00, 0xD1, 0x4D, 0x00, 0x00, 0x00, 0x81, 0x7F, 0x00, 0x00, 0xDC, 0x01, 0xC4, 0xEF,
0xDA, 0x0B, 0xF6, 0x03, 0x60, 0x2F, 0x50, 0xDF, 0x78, 0xFA, 0x0B, 0xC0, 0x0A, 0xC0, 0x09, 0xD0,
0x1D, 0x00, 0xD0, 0x0B, 0x60, 0x0E, 0xF1, 0x05, 0xF3, 0x07, 0x00, 0xD0, 0x0B, 0x20, 0x3F, 0xF3,
0x02, 0xF5, 0x05, 0x00, 0xD0, 0x0B, 0x10, 0x4F, 0xF4, 0x02, 0xF3, 0x06, 0x00, 0xD0, 0x0B, 0x30,
0x3F, 0xF2, 0x03, 0xF1, 0x0B, 0x00, 0xD0, 0x0B, 0x50, 0x0E, 0xE0, 0x07, 0x90, 0x9F, 0x65, 0xFD,
0x0B, 0x90, 0x0A, 0x90, 0x0D, 0x10, 0xFA, 0xEF, 0xB6, 0xEF, 0xFE, 0x02, 0x20, 0x8E, 0x00, 0x10,
0x01, 0x10, 0x22, 0x12, 0x00, 0x00, 0xF5, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50,
0xDE, 0x37, 0x11, 0x42, 0x04, 0x00, 0x00, 0x00, 0x00, 0x81, 0xFD, 0xFF, 0xFF, 0x08, 0x00, 0x00,
0x00, 0x00, 0x00, 0x10, 0x33, 0x12, 0x00, 0x00, 0x00,
// Unicode: [0x0041]
0x00, 0x00, 0xA0, 0xFF, 0x05, 0x00, 0x00, 0x00, 0x00, 0xE1, 0xFE, 0x0A, 0x00, 0x00, 0x00, 0x00,
0xF6, 0xD7, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x81, 0x7F, 0x00, 0x00, 0x00, 0x20, 0xAF, 0x20,
0xCF, 0x00, 0x00, 0x00, 0x80, 0x5F, 0x00, 0xFB, 0x03, 0x00, 0x00, 0xE0, 0x0E, 0x00, 0xF6, 0x09,
0x00, 0x00, 0xF4, 0x08, 0x00, 0xE1, 0x0E, 0x00, 0x00, 0xFA, 0x9B, 0x99, 0xD9, 0x5F, 0x00, 0x10,
0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0x00, 0x60, 0x7F, 0x00, 0x00, 0x00, 0xFD, 0x02, 0xC0, 0x2F, 0x00,
0x00, 0x00, 0xF8, 0x07, 0xF3, 0x0B, 0x00, 0x00, 0x00, 0xF3, 0x0D, 0xF8, 0x06, 0x00, 0x00, 0x00,
0xC0, 0x3F,
// Unicode: [0x0042]
0xF1, 0xFF, 0xFF, 0xDF, 0x3A, 0x00, 0xF1, 0x9E, 0x99, 0xDA, 0xFF, 0x03, 0xF1, 0x0D, 0x00, 0x00,
0xF9, 0x09, 0xF1, 0x0D, 0x00, 0x00, 0xF6, 0x09, 0xF1, 0x0D, 0x00, 0x00, 0xFB, 0x03, 0xF1, 0x9E,
0x99, 0xEA, 0x4E, 0x00, 0xF1, 0xFF, 0xFF, 0xFF, 0xEF, 0x05, 0xF1, 0x0D, 0x00, 0x10, 0xE5, 0x4F,
0xF1, 0x0D, 0x00, 0x00, 0x40, 0xBF, 0xF1, 0x0D, 0x00, 0x00, 0x20, 0xDF, 0xF1, 0x0D, 0x00, 0x00,
0x30, 0xCF, 0xF1, 0x0D, 0x00, 0x00, 0xC1, 0x7F, 0xF1, 0x9E, 0x99, 0xBA, 0xFF, 0x0A, 0xF1, 0xFF,
0xFF, 0xEF, 0x5B, 0x00,
// Unicode: [0x0043]
0x00, 0x20, 0xC8, 0xFE, 0xBE, 0x16, 0x00, 0x00, 0xF7, 0xDF, 0xAA, 0xFC, 0xEF, 0x02, 0x70, 0xEF,
0x04, 0x00, 0x10, 0xE6, 0x03, 0xF2, 0x3F, 0x00, 0x00, 0x00, 0x10, 0x01, 0xF8, 0x09, 0x00, 0x00,
0x00, 0x00, 0x00, 0xFB, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0x03, 0x00, 0x00, 0x00, 0x00,
0x00, 0xFD, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8,
0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0x3F, 0x00, 0x00, 0x00, 0x10, 0x01, 0x80, 0xEF, 0x05,
0x00, 0x10, 0xE6, 0x03, 0x00, 0xF9, 0xDF, 0xAA, 0xFC, 0xEF, 0x02, 0x00, 0x30, 0xD9, 0xFE, 0xAD,
0x16, 0x00,
// Unicode: [0x0044]
0xF1, 0xFF, 0xEF, 0xCE, 0x38, 0x00, 0x00, 0xF1, 0x9E, 0xA9, 0xEB, 0xFF, 0x09, 0x00, 0xF1, 0x0D,
0x00, 0x00, 0xD5, 0xAF, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0x10, 0xFD, 0x06, 0xF1, 0x0D, 0x00, 0x00,
0x00, 0xF4, 0x0C, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0xE0, 0x1F, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0xC0,
0x3F, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0xC0, 0x3F, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0xE0, 0x1F, 0xF1,
0x0D, 0x00, 0x00, 0x00, 0xF4, 0x0B, 0xF1, 0x0D, 0x00, 0x00, 0x10, 0xFD, 0x05, 0xF1, 0x0D, 0x00,
0x00, 0xD4, 0x9F, 0x00, 0xF1, 0x9E, 0xA9, 0xEB, 0xFF, 0x08, 0x00, 0xF1, 0xFF, 0xFF, 0xCE, 0x38,
0x00, 0x00,
// Unicode: [0x0045]
0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0x08, 0xF1, 0xAE, 0xAA, 0xAA, 0xAA, 0x05, 0xF1, 0x0D, 0x00, 0x00,
0x00, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00, 0xF1, 0xAF,
0xAA, 0xAA, 0xAA, 0x05, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0x08, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00,
0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00, 0xF1, 0x0D, 0x00, 0x00,
0x00, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00, 0xF1, 0xAF, 0xAA, 0xAA, 0xAA, 0x05, 0xF1, 0xFF,
0xFF, 0xFF, 0xFF, 0x08,
// Unicode: [0x0046]
0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0x04, 0xF1, 0xAE, 0xAA, 0xAA, 0xAA, 0x02, 0xF1, 0x0D, 0x00, 0x00,
0x00, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00, 0xF1, 0xAF,
0xAA, 0xAA, 0x2A, 0x00, 0xF1, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00,
0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00, 0xF1, 0x0D, 0x00, 0x00,
0x00, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00, 0xF1, 0x0D,
0x00, 0x00, 0x00, 0x00,
// Unicode: [0x0047]
0x00, 0x10, 0xB7, 0xFE, 0xDE, 0x5A, 0x00, 0x00, 0xE6, 0xEF, 0xAB, 0xDB, 0xFF, 0x1E, 0x60, 0xEF,
0x05, 0x00, 0x00, 0x71, 0x1E, 0xE1, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x01, 0xF7, 0x09, 0x00, 0x00,
0x00, 0x00, 0x00, 0xFB, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0x03, 0x00, 0x70, 0xAA, 0xAA,
0x1A, 0xFD, 0x03, 0x00, 0xB0, 0xFF, 0xFF, 0x1F, 0xFB, 0x05, 0x00, 0x00, 0x00, 0xC0, 0x1F, 0xF7,
0x0A, 0x00, 0x00, 0x00, 0xC0, 0x1F, 0xF2, 0x4F, 0x00, 0x00, 0x00, 0xC0, 0x1F, 0x70, 0xFF, 0x07,
0x00, 0x00, 0xD2, 0x1F, 0x00, 0xF7, 0xEF, 0xAB, 0xDB, 0xFF, 0x1D, 0x00, 0x20, 0xB7, 0xFE, 0xCE,
0x49, 0x00,
// Unicode: [0x0048]
0xF1, 0x0D, 0x00, 0x00, 0x00, 0xFD, 0x01, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0xFD, 0x01, 0xF1, 0x0D,
0x00, 0x00, 0x00, 0xFD, 0x01, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0xFD, 0x01, 0xF1, 0x0D, 0x00, 0x00,
0x00, 0xFD, 0x01, 0xF1, 0xAF, 0xAA, 0xAA, 0xAA, 0xFE, 0x01, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x01, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0xFD, 0x01, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0xFD, 0x01, 0xF1,
0x0D, 0x00, 0x00, 0x00, 0xFD, 0x01, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0xFD, 0x01, 0xF1, 0x0D, 0x00,
0x00, 0x00, 0xFD, 0x01, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0xFD, 0x01, 0xF1, 0x0D, 0x00, 0x00, 0x00,
0xFD, 0x01,
// Unicode: [0x0049]
0xFA, 0xFF, 0xFF, 0x01, 0x74, 0xFD, 0x78, 0x01, 0x00, 0xFB, 0x03, 0x00, 0x00, 0xFB, 0x03, 0x00,
0x00, 0xFB, 0x03, 0x00, 0x00, 0xFB, 0x03, 0x00, 0x00, 0xFB, 0x03, 0x00, 0x00, 0xFB, 0x03, 0x00,
0x00, 0xFB, 0x03, 0x00, 0x00, 0xFB, 0x03, 0x00, 0x00, 0xFB, 0x03, 0x00, 0x00, 0xFB, 0x03, 0x00,
0x74, 0xFD, 0x78, 0x01, 0xFA, 0xFF, 0xFF, 0x01,
// Unicode: [0x004A]
0x00, 0xFB, 0xFF, 0x4F, 0x00, 0x85, 0xC8, 0x4F, 0x00, 0x00, 0xA0, 0x4F, 0x00, 0x00, 0xA0, 0x4F,
0x00, 0x00, 0xA0, 0x4F, 0x00, 0x00, 0xA0, 0x4F, 0x00, 0x00, 0xA0, 0x4F, 0x00, 0x00, 0xA0, 0x4F,
0x00, 0x00, 0xA0, 0x4F, 0x00, 0x00, 0xA0, 0x4F, 0x00, 0x00, 0xB0, 0x4F, 0x00, 0x00, 0xE1, 0x1F,
0xC8, 0xAA, 0xFE, 0x08, 0xD7, 0xEF, 0x5C, 0x00,
// Unicode: [0x004B]
0xEF, 0x00, 0x00, 0x00, 0xF7, 0x1C, 0xEF, 0x00, 0x00, 0x70, 0xCF, 0x01, 0xEF, 0x00, 0x00, 0xF6,
0x1C, 0x00, 0xEF, 0x00, 0x60, 0xCF, 0x01, 0x00, 0xEF, 0x00, 0xF5, 0x1C, 0x00, 0x00, 0xEF, 0x50,
0xCF, 0x01, 0x00, 0x00, 0xEF, 0xF4, 0x2F, 0x00, 0x00, 0x00, 0xFF, 0xEF, 0xAF, 0x00, 0x00, 0x00,
0xFF, 0x2A, 0xFD, 0x09, 0x00, 0x00, 0xEF, 0x00, 0xD2, 0x8F, 0x00, 0x00, 0xEF, 0x00, 0x30, 0xFE,
0x06, 0x00, 0xEF, 0x00, 0x00, 0xE3, 0x5F, 0x00, 0xEF, 0x00, 0x00, 0x40, 0xFF, 0x04, 0xEF, 0x00,
0x00, 0x00, 0xF5, 0x3E,
// Unicode: [0x004C]
0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00, 0xF1, 0x0D, 0x00, 0x00,
0x00, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00, 0xF1, 0x0D,
0x00, 0x00, 0x00, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00,
0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00, 0xF1, 0x0D, 0x00, 0x00,
0x00, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00, 0xF1, 0xAF, 0xAA, 0xAA, 0xAA, 0x02, 0xF1, 0xFF,
0xFF, 0xFF, 0xFF, 0x02,
// Unicode: [0x004D]
0xF1, 0xCF, 0x00, 0x00, 0x00, 0xE1, 0xEF, 0xF1, 0xFF, 0x05, 0x00, 0x00, 0xF8, 0xEF, 0xF1, 0xEC,
0x0C, 0x00, 0x10, 0xBE, 0xEF, 0xF1, 0x7C, 0x5F, 0x00, 0x70, 0x3F, 0xEF, 0xF1, 0x1C, 0xCE, 0x00,
0xE1, 0x0B, 0xEF, 0xF1, 0x0C, 0xF7, 0x05, 0xF6, 0x03, 0xEF, 0xF1, 0x0C, 0xE1, 0x0C, 0xBD, 0x00,
0xEF, 0xF1, 0x0C, 0x80, 0xAF, 0x3F, 0x00, 0xEF, 0xF1, 0x0C, 0x10, 0xFE, 0x0B, 0x00, 0xEF, 0xF1,
0x0C, 0x00, 0xF8, 0x04, 0x00, 0xEF, 0xF1, 0x0C, 0x00, 0x21, 0x00, 0x00, 0xEF, 0xF1, 0x0C, 0x00,
0x00, 0x00, 0x00, 0xEF, 0xF1, 0x0C, 0x00, 0x00, 0x00, 0x00, 0xEF, 0xF1, 0x0C, 0x00, 0x00, 0x00,
0x00, 0xEF,
// Unicode: [0x004E]
0xF1, 0xFF, 0x03, 0x00, 0x00, 0xFC, 0x01, 0xF1, 0xFE, 0x0C, 0x00, 0x00, 0xFC, 0x01, 0xF1, 0xAC,
0x5F, 0x00, 0x00, 0xFC, 0x01, 0xF1, 0x2C, 0xDF, 0x00, 0x00, 0xFC, 0x01, 0xF1, 0x0C, 0xF9, 0x06,
0x00, 0xFC, 0x01, 0xF1, 0x0C, 0xE1, 0x1E, 0x00, 0xFC, 0x01, 0xF1, 0x0C, 0x70, 0x8F, 0x00, 0xFC,
0x01, 0xF1, 0x0C, 0x00, 0xED, 0x02, 0xFC, 0x01, 0xF1, 0x0C, 0x00, 0xF6, 0x09, 0xFC, 0x01, 0xF1,
0x0C, 0x00, 0xC0, 0x3F, 0xFC, 0x01, 0xF1, 0x0C, 0x00, 0x40, 0xBF, 0xFC, 0x01, 0xF1, 0x0C, 0x00,
0x00, 0xFB, 0xFE, 0x01, 0xF1, 0x0C, 0x00, 0x00, 0xF3, 0xFF, 0x01, 0xF1, 0x0C, 0x00, 0x00, 0x90,
0xFF, 0x01,
// Unicode: [0x004F]
0x00, 0x40, 0xDA, 0xEF, 0x8C, 0x02, 0x00, 0x00, 0xF9, 0xCF, 0xAA, 0xFD, 0x6F, 0x00, 0x90, 0xDF,
0x03, 0x00, 0x50, 0xFE, 0x05, 0xF2, 0x2E, 0x00, 0x00, 0x00, 0xF5, 0x0D, 0xF8, 0x08, 0x00, 0x00,
0x00, 0xC0, 0x4F, 0xFB, 0x04, 0x00, 0x00, 0x00, 0x80, 0x7F, 0xFD, 0x03, 0x00, 0x00, 0x00, 0x60,
0x9F, 0xFD, 0x03, 0x00, 0x00, 0x00, 0x60, 0x9F, 0xFB, 0x04, 0x00, 0x00, 0x00, 0x80, 0x7F, 0xF8,
0x08, 0x00, 0x00, 0x00, 0xC0, 0x4F, 0xF2, 0x2E, 0x00, 0x00, 0x00, 0xF5, 0x0D, 0x90, 0xDF, 0x03,
0x00, 0x50, 0xFE, 0x05, 0x00, 0xF9, 0xCF, 0xAA, 0xFD, 0x6F, 0x00, 0x00, 0x40, 0xDA, 0xEF, 0x9D,
0x02, 0x00,
// Unicode: [0x0050]
0xF1, 0xFF, 0xFF, 0xAD, 0x03, 0x00, 0xF1, 0x9E, 0xA9, 0xFC, 0x7F, 0x00, 0xF1, 0x0D, 0x00, 0x40,
0xFF, 0x02, 0xF1, 0x0D, 0x00, 0x00, 0xFA, 0x06, 0xF1, 0x0D, 0x00, 0x00, 0xF9, 0x06, 0xF1, 0x0D,
0x00, 0x00, 0xFD, 0x03, 0xF1, 0x0D, 0x10, 0xB4, 0xBF, 0x00, 0xF1, 0xFF, 0xFF, 0xFF, 0x1B, 0x00,
0xF1, 0x9E, 0x99, 0x37, 0x00, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00, 0xF1, 0x0D, 0x00, 0x00,
0x00, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0x00, 0x00, 0xF1, 0x0D,
0x00, 0x00, 0x00, 0x00,
// Unicode: [0x0051]
0x00, 0x40, 0xDA, 0xEF, 0x8C, 0x02, 0x00, 0x00, 0xF9, 0xCF, 0xAA, 0xFD, 0x6F, 0x00, 0x90, 0xDF,
0x03, 0x00, 0x50, 0xFE, 0x05, 0xF2, 0x2E, 0x00, 0x00, 0x00, 0xF5, 0x0D, 0xF8, 0x08, 0x00, 0x00,
0x00, 0xC0, 0x4F, 0xFB, 0x04, 0x00, 0x00, 0x00, 0x80, 0x7F, 0xFD, 0x03, 0x00, 0x00, 0x00, 0x60,
0x9F, 0xFD, 0x03, 0x00, 0x00, 0x00, 0x60, 0x9F, 0xFB, 0x04, 0x00, 0x00, 0x00, 0x80, 0x7F, 0xF8,
0x08, 0x00, 0x00, 0x00, 0xC0, 0x4F, 0xF2, 0x2E, 0x00, 0x00, 0x00, 0xF5, 0x0D, 0x90, 0xDF, 0x03,
0x00, 0x50, 0xFE, 0x04, 0x00, 0xF9, 0xCF, 0xAA, 0xFD, 0x5E, 0x00, 0x00, 0x40, 0xDA, 0xFF, 0xCF,
0x02, 0x00, 0x00, 0x00, 0x00, 0x20, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x03, 0x10,
0x00, 0x00, 0x00, 0x00, 0xF6, 0xBE, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x60, 0xFD, 0xBE,
// Unicode: [0x0052]
0xF1, 0xFF, 0xFF, 0xBE, 0x06, 0x00, 0x00, 0xF1, 0x9E, 0xA9, 0xFC, 0x9F, 0x00, 0x00, 0xF1, 0x0D,
0x00, 0x30, 0xFE, 0x03, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0xFA, 0x07, 0x00, 0xF1, 0x0D, 0x00, 0x00,
0xF9, 0x06, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0xFD, 0x02, 0x00, 0xF1, 0x0D, 0x10, 0xA3, 0x9F, 0x00,
0x00, 0xF1, 0xFF, 0xFF, 0xEF, 0x07, 0x00, 0x00, 0xF1, 0x9E, 0xA9, 0xDF, 0x01, 0x00, 0x00, 0xF1,
0x0D, 0x00, 0xF8, 0x1C, 0x00, 0x00, 0xF1, 0x0D, 0x00, 0xA0, 0xBF, 0x00, 0x00, 0xF1, 0x0D, 0x00,
0x00, 0xFB, 0x0A, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0xC1, 0x9F, 0x00, 0xF1, 0x0D, 0x00, 0x00, 0x20,
0xFD, 0x08,
// Unicode: [0x0053]
0x00, 0xA4, 0xFD, 0xDF, 0x7B, 0x02, 0x80, 0xFF, 0xAC, 0xCA, 0xFF, 0x0E, 0xF4, 0x3E, 0x00, 0x00,
0x61, 0x0C, 0xF9, 0x07, 0x00, 0x00, 0x00, 0x00, 0xF7, 0x09, 0x00, 0x00, 0x00, 0x00, 0xF3, 0x8F,
0x03, 0x00, 0x00, 0x00, 0x50, 0xFE, 0xFF, 0xAD, 0x17, 0x00, 0x00, 0x50, 0xB8, 0xFE, 0xFF, 0x06,
0x00, 0x00, 0x00, 0x20, 0xF7, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x90, 0x7F, 0x03, 0x00, 0x00, 0x00,
0x90, 0x6F, 0xBA, 0x04, 0x00, 0x00, 0xE5, 0x2E, 0xFA, 0xEF, 0xAB, 0xDB, 0xEF, 0x05, 0x50, 0xC9,
0xFE, 0xCE, 0x28, 0x00,
// Unicode: [0x0054]
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x05, 0xAA, 0xAA, 0xEA, 0xBF, 0xAA, 0xAA, 0x03, 0x00, 0x00,
0xC0, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x2F,
0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x2F, 0x00, 0x00,
0x00, 0x00, 0x00, 0xC0, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x2F, 0x00, 0x00, 0x00, 0x00,
0x00, 0xC0, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0,
0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x2F, 0x00,
0x00, 0x00,
// Unicode: [0x0055]
0xF4, 0x0A, 0x00, 0x00, 0x00, 0xEF, 0xF4, 0x0A, 0x00, 0x00, 0x00, 0xEF, 0xF4, 0x0A, 0x00, 0x00,
0x00, 0xEF, 0xF4, 0x0A, 0x00, 0x00, 0x00, 0xEF, 0xF4, 0x0A, 0x00, 0x00, 0x00, 0xEF, 0xF4, 0x0A,
0x00, 0x00, 0x00, 0xEF, 0xF4, 0x0A, 0x00, 0x00, 0x00, 0xEF, 0xF4, 0x0A, 0x00, 0x00, 0x00, 0xEF,
0xF4, 0x0A, 0x00, 0x00, 0x10, 0xDF, 0xF3, 0x0B, 0x00, 0x00, 0x20, 0xCF, 0xF0, 0x1F, 0x00, 0x00,
0x70, 0x9F, 0x90, 0xAF, 0x01, 0x00, 0xE3, 0x4F, 0x10, 0xFC, 0xBE, 0xCA, 0xFF, 0x08, 0x00, 0x71,
0xEC, 0xEF, 0x4B, 0x00,
// Unicode: [0x0056]
0xF8, 0x08, 0x00, 0x00, 0x00, 0xB0, 0x3F, 0xF3, 0x0D, 0x00, 0x00, 0x00, 0xF2, 0x0D, 0xC0, 0x4F,
0x00, 0x00, 0x00, 0xF7, 0x07, 0x60, 0x9F, 0x00, 0x00, 0x00, 0xFD, 0x02, 0x10, 0xEF, 0x01, 0x00,
0x30, 0xBF, 0x00, 0x00, 0xFA, 0x05, 0x00, 0x90, 0x5F, 0x00, 0x00, 0xF4, 0x0B, 0x00, 0xE0, 0x0E,
0x00, 0x00, 0xE0, 0x2F, 0x00, 0xF5, 0x09, 0x00, 0x00, 0x80, 0x7F, 0x00, 0xFA, 0x03, 0x00, 0x00,
0x20, 0xDF, 0x10, 0xCF, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x73, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xF6,
0xC9, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xE1, 0xFE, 0x0A, 0x00, 0x00, 0x00, 0x00, 0xA0, 0xFF, 0x05,
0x00, 0x00,
// Unicode: [0x0057]
0xFE, 0x01, 0x00, 0x30, 0xFF, 0x01, 0x00, 0x20, 0xBF, 0xFA, 0x04, 0x00, 0x70, 0xFF, 0x04, 0x00,
0x60, 0x7F, 0xF6, 0x08, 0x00, 0xA0, 0xFE, 0x08, 0x00, 0xA0, 0x3F, 0xF2, 0x0C, 0x00, 0xE0, 0xD9,
0x0C, 0x00, 0xE0, 0x0E, 0xD0, 0x1F, 0x00, 0xF3, 0x95, 0x1F, 0x00, 0xF3, 0x0A, 0x90, 0x5F, 0x00,
0xF7, 0x51, 0x5F, 0x00, 0xF7, 0x06, 0x50, 0x9F, 0x00, 0xCB, 0x10, 0x9F, 0x00, 0xFA, 0x02, 0x10,
0xDF, 0x00, 0x8E, 0x00, 0xDC, 0x00, 0xDE, 0x00, 0x00, 0xFB, 0x42, 0x4F, 0x00, 0xF8, 0x32, 0x9F,
0x00, 0x00, 0xF7, 0x86, 0x1F, 0x00, 0xF4, 0x76, 0x5F, 0x00, 0x00, 0xF3, 0xCA, 0x0C, 0x00, 0xF0,
0xB9, 0x1F, 0x00, 0x00, 0xE0, 0xFE, 0x08, 0x00, 0xB0, 0xED, 0x0C, 0x00, 0x00, 0xA0, 0xFF, 0x04,
0x00, 0x70, 0xFF, 0x07, 0x00, 0x00, 0x60, 0xFF, 0x00, 0x00, 0x30, 0xFF, 0x03, 0x00,
// Unicode: [0x0058]
0xD0, 0x5F, 0x00, 0x00, 0x00, 0xF7, 0x0A, 0x30, 0xEF, 0x02, 0x00, 0x20, 0xDF, 0x01, 0x00, 0xF7,
0x0B, 0x00, 0xC0, 0x4F, 0x00, 0x00, 0xB0, 0x6F, 0x00, 0xF8, 0x08, 0x00, 0x00, 0x20, 0xEE, 0x42,
0xCF, 0x00, 0x00, 0x00, 0x00, 0xF5, 0xDC, 0x2E, 0x00, 0x00, 0x00, 0x00, 0x90, 0xFF, 0x05, 0x00,
0x00, 0x00, 0x00, 0x90, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0xF5, 0xEA, 0x3F, 0x00, 0x00, 0x00,
0x20, 0xDE, 0x41, 0xCF, 0x00, 0x00, 0x00, 0xC0, 0x4F, 0x00, 0xF9, 0x08, 0x00, 0x00, 0xF8, 0x08,
0x00, 0xD1, 0x4F, 0x00, 0x40, 0xCF, 0x00, 0x00, 0x40, 0xDF, 0x01, 0xD1, 0x2F, 0x00, 0x00, 0x00,
0xF8, 0x0A,
// Unicode: [0x0059]
0xF9, 0x08, 0x00, 0x00, 0x20, 0xDF, 0x01, 0xE1, 0x3F, 0x00, 0x00, 0xC0, 0x4F, 0x00, 0x50, 0xCF,
0x00, 0x00, 0xF6, 0x09, 0x00, 0x00, 0xFB, 0x06, 0x20, 0xEE, 0x01, 0x00, 0x00, 0xE2, 0x2E, 0xA0,
0x5F, 0x00, 0x00, 0x00, 0x60, 0xAF, 0xF5, 0x0A, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xEE, 0x01, 0x00,
0x00, 0x00, 0x00, 0xF3, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x2F, 0x00, 0x00, 0x00, 0x00,
0x00, 0xC0, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0,
0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x2F, 0x00,
0x00, 0x00,
// Unicode: [0x005A]
0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0x5F, 0xA4, 0xAA, 0xAA, 0xAA, 0xFA, 0x5F, 0x00, 0x00, 0x00, 0x00,
0xF8, 0x0A, 0x00, 0x00, 0x00, 0x60, 0xCF, 0x01, 0x00, 0x00, 0x00, 0xF4, 0x1D, 0x00, 0x00, 0x00,
0x20, 0xEE, 0x03, 0x00, 0x00, 0x00, 0xD1, 0x4F, 0x00, 0x00, 0x00, 0x00, 0xFB, 0x07, 0x00, 0x00,
0x00, 0x90, 0x9F, 0x00, 0x00, 0x00, 0x00, 0xF7, 0x0B, 0x00, 0x00, 0x00, 0x50, 0xDF, 0x01, 0x00,
0x00, 0x00, 0xE3, 0x2E, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xAD, 0xAA, 0xAA, 0xAA, 0x6A, 0xFC, 0xFF,
0xFF, 0xFF, 0xFF, 0x9F,
// Unicode: [0x005B]
0xFA, 0xFF, 0x6F, 0xFA, 0x66, 0x26, 0xFA, 0x00, 0x00, 0xFA, 0x00, 0x00, 0xFA, 0x00, 0x00, 0xFA,
0x00, 0x00, 0xFA, 0x00, 0x00, 0xFA, 0x00, 0x00, 0xFA, 0x00, 0x00, 0xFA, 0x00, 0x00, 0xFA, 0x00,
0x00, 0xFA, 0x00, 0x00, 0xFA, 0x00, 0x00, 0xFA, 0x00, 0x00, 0xFA, 0x00, 0x00, 0xFA, 0x00, 0x00,
0xFA, 0x00, 0x00, 0xFA, 0x56, 0x25, 0xFA, 0xFF, 0x6F,
// Unicode: [0x005C]
0xF2, 0x09, 0x00, 0x00, 0x00, 0xB0, 0x1E, 0x00, 0x00, 0x00, 0x50, 0x6F, 0x00, 0x00, 0x00, 0x00,
0xBE, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x02, 0x00, 0x00, 0x00, 0xF3, 0x08, 0x00, 0x00, 0x00, 0xC0,
0x0E, 0x00, 0x00, 0x00, 0x60, 0x5F, 0x00, 0x00, 0x00, 0x10, 0xAE, 0x00, 0x00, 0x00, 0x00, 0xF9,
0x01, 0x00, 0x00, 0x00, 0xF3, 0x07, 0x00, 0x00, 0x00, 0xD0, 0x0D, 0x00, 0x00, 0x00, 0x70, 0x4F,
0x00, 0x00, 0x00, 0x10, 0x9F, 0x00, 0x00, 0x00, 0x00, 0xEA, 0x01, 0x00, 0x00, 0x00, 0xF4, 0x06,
0x00, 0x00, 0x00, 0xD0, 0x0C, 0x00, 0x00, 0x00, 0x80, 0x3F,
// Unicode: [0x005D]
0xF5, 0xFF, 0xBF, 0x62, 0x66, 0xBF, 0x00, 0x00, 0xBE, 0x00, 0x00, 0xBE, 0x00, 0x00, 0xBE, 0x00,
0x00, 0xBE, 0x00, 0x00, 0xBE, 0x00, 0x00, 0xBE, 0x00, 0x00, 0xBE, 0x00, 0x00, 0xBE, 0x00, 0x00,
0xBE, 0x00, 0x00, 0xBE, 0x00, 0x00, 0xBE, 0x00, 0x00, 0xBE, 0x00, 0x00, 0xBE, 0x00, 0x00, 0xBE,
0x00, 0x00, 0xBE, 0x52, 0x55, 0xBF, 0xF5, 0xFF, 0xBF,
// Unicode: [0x005E]
0x00, 0x00, 0x50, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF3, 0x8F, 0x00, 0x00, 0x00, 0x00, 0x10,
0xDD, 0xF9, 0x05, 0x00, 0x00, 0x00, 0xB0, 0x3F, 0xC0, 0x2E, 0x00, 0x00, 0x00, 0xF8, 0x06, 0x20,
0xCE, 0x01, 0x00, 0x40, 0x9F, 0x00, 0x00, 0xF4, 0x09, 0x00, 0xE2, 0x1C, 0x00, 0x00, 0x80, 0x6F,
0x00, 0xEC, 0x02, 0x00, 0x00, 0x00, 0xFB, 0x03,
// Unicode: [0x005F]
0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0x30, 0x33, 0x33, 0x33, 0x33, 0x33, 0x23,
// Unicode: [0x0060]
0x84, 0x06, 0x00, 0xD1, 0x3F, 0x00, 0x30, 0xAF, 0x00, 0x00, 0xF6, 0x03,
// Unicode: [0x0061]
0x90, 0xEC, 0xEF, 0x7C, 0x00, 0xF0, 0xBD, 0xA9, 0xFE, 0x0A, 0x30, 0x00, 0x00, 0xD1, 0x2F, 0x00,
0x00, 0x00, 0xA1, 0x4F, 0x20, 0xC8, 0xFE, 0xFF, 0x4F, 0xE3, 0xBF, 0x68, 0xA5, 0x4F, 0xFC, 0x05,
0x00, 0x80, 0x4F, 0xEE, 0x00, 0x00, 0x80, 0x4F, 0xFD, 0x03, 0x00, 0xD5, 0x4F, 0xF6, 0xBF, 0xDB,
0xEF, 0x4F, 0x50, 0xFC, 0xAE, 0x83, 0x4F,
// Unicode: [0x0062]
0xF3, 0x0A, 0x00, 0x00, 0x00, 0x00, 0xF3, 0x0A, 0x00, 0x00, 0x00, 0x00, 0xF3, 0x0A, 0x00, 0x00,
0x00, 0x00, 0xF3, 0x0A, 0x00, 0x00, 0x00, 0x00, 0xF3, 0x2A, 0xEA, 0xCF, 0x04, 0x00, 0xF3, 0xFD,
0xBE, 0xFD, 0x5F, 0x00, 0xF3, 0x6E, 0x00, 0x60, 0xDF, 0x00, 0xF3, 0x0A, 0x00, 0x00, 0xFC, 0x03,
0xF3, 0x0A, 0x00, 0x00, 0xF9, 0x05, 0xF3, 0x0A, 0x00, 0x00, 0xF8, 0x06, 0xF3, 0x0A, 0x00, 0x00,
0xF9, 0x05, 0xF3, 0x0A, 0x00, 0x00, 0xFC, 0x01, 0xF3, 0x0A, 0x00, 0x80, 0xAF, 0x00, 0xF3, 0xEF,
0xAA, 0xFD, 0x1D, 0x00, 0xF3, 0xAC, 0xFD, 0x9E, 0x01, 0x00,
// Unicode: [0x0063]
0x00, 0xB4, 0xFE, 0xAD, 0x04, 0x70, 0xEF, 0x9A, 0xFB, 0x0D, 0xF4, 0x1D, 0x00, 0x20, 0x08, 0xFA,
0x05, 0x00, 0x00, 0x00, 0xFD, 0x01, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0xFD, 0x01,
0x00, 0x00, 0x00, 0xFA, 0x05, 0x00, 0x00, 0x00, 0xF5, 0x1D, 0x00, 0x20, 0x08, 0x90, 0xEF, 0x9A,
0xFB, 0x0D, 0x00, 0xB5, 0xFE, 0x9D, 0x03,
// Unicode: [0x0064]
0x00, 0x00, 0x00, 0x30, 0xAF, 0x00, 0x00, 0x00, 0x30, 0xAF, 0x00, 0x00, 0x00, 0x30, 0xAF, 0x00,
0x00, 0x00, 0x30, 0xAF, 0x00, 0xB4, 0xEE, 0x8B, 0xAF, 0x70, 0xFF, 0xAB, 0xFC, 0xAF, 0xF3, 0x2D,
0x00, 0x40, 0xAF, 0xF9, 0x06, 0x00, 0x30, 0xAF, 0xFD, 0x01, 0x00, 0x30, 0xAF, 0xFE, 0x00, 0x00,
0x30, 0xAF, 0xFD, 0x01, 0x00, 0x30, 0xAF, 0xFB, 0x04, 0x00, 0x30, 0xAF, 0xF6, 0x1C, 0x00, 0xB2,
0xAF, 0xC0, 0xEF, 0xCC, 0xEF, 0xAF, 0x10, 0xE9, 0xDF, 0x37, 0xAF,
// Unicode: [0x0065]
0x00, 0xB4, 0xFE, 0x9D, 0x02, 0x70, 0xDF, 0x89, 0xFA, 0x2E, 0xF3, 0x09, 0x00, 0x50, 0x9F, 0xFA,
0x12, 0x11, 0x11, 0xDE, 0xFD, 0xFF, 0xFF, 0xFF, 0xEF, 0xEE, 0x44, 0x44, 0x44, 0x44, 0xFD, 0x01,
0x00, 0x00, 0x00, 0xFA, 0x06, 0x00, 0x00, 0x00, 0xF4, 0x4E, 0x00, 0x00, 0x84, 0x70, 0xFF, 0x9C,
0xDA, 0xBF, 0x00, 0xA4, 0xFD, 0xCE, 0x28,
// Unicode: [0x0066]
0x00, 0x60, 0xEC, 0x9E, 0x00, 0xF7, 0x9D, 0x8A, 0x00, 0xEE, 0x01, 0x00, 0x10, 0xBF, 0x00, 0x00,
0xF5, 0xFF, 0xFF, 0x0F, 0x83, 0xDF, 0x88, 0x08, 0x10, 0xBF, 0x00, 0x00, 0x10, 0xBF, 0x00, 0x00,
0x10, 0xBF, 0x00, 0x00, 0x10, 0xBF, 0x00, 0x00, 0x10, 0xBF, 0x00, 0x00, 0x10, 0xBF, 0x00, 0x00,
0x10, 0xBF, 0x00, 0x00, 0x10, 0xBF, 0x00, 0x00, 0x10, 0xBF, 0x00, 0x00,
// Unicode: [0x0067]
0x00, 0xB4, 0xFE, 0x9C, 0xAF, 0x70, 0xFF, 0xAB, 0xFC, 0xAF, 0xF3, 0x2D, 0x00, 0x40, 0xAF, 0xF9,
0x06, 0x00, 0x30, 0xAF, 0xFD, 0x01, 0x00, 0x30, 0xAF, 0xFE, 0x00, 0x00, 0x30, 0xAF, 0xFD, 0x01,
0x00, 0x30, 0xAF, 0xFB, 0x04, 0x00, 0x30, 0xAF, 0xF6, 0x1B, 0x00, 0xA2, 0xAF, 0xC0, 0xEF, 0xCB,
0xEF, 0xAF, 0x10, 0xE9, 0xDF, 0x48, 0x9F, 0x00, 0x00, 0x00, 0x50, 0x7F, 0x20, 0x00, 0x00, 0xC1,
0x2F, 0xC0, 0xBE, 0xAA, 0xFE, 0x08, 0x80, 0xEC, 0xEF, 0x5B, 0x00,
// Unicode: [0x0068]
0xF3, 0x0A, 0x00, 0x00, 0x00, 0xF3, 0x0A, 0x00, 0x00, 0x00, 0xF3, 0x0A, 0x00, 0x00, 0x00, 0xF3,
0x0A, 0x00, 0x00, 0x00, 0xF3, 0x2A, 0xE9, 0xDF, 0x05, 0xF3, 0xED, 0xBE, 0xFC, 0x4F, 0xF3, 0x8F,
0x01, 0x60, 0xAF, 0xF3, 0x0A, 0x00, 0x00, 0xDF, 0xF3, 0x0A, 0x00, 0x00, 0xEE, 0xF3, 0x0A, 0x00,
0x00, 0xEE, 0xF3, 0x0A, 0x00, 0x00, 0xEE, 0xF3, 0x0A, 0x00, 0x00, 0xEE, 0xF3, 0x0A, 0x00, 0x00,
0xEE, 0xF3, 0x0A, 0x00, 0x00, 0xEE, 0xF3, 0x0A, 0x00, 0x00, 0xEE,
// Unicode: [0x0069]
0xF4, 0x0C, 0xD4, 0x0A, 0x00, 0x00, 0xF3, 0x0A, 0xF3, 0x0A, 0xF3, 0x0A, 0xF3, 0x0A, 0xF3, 0x0A,
0xF3, 0x0A, 0xF3, 0x0A, 0xF3, 0x0A, 0xF3, 0x0A, 0xF3, 0x0A, 0xF3, 0x0A,
// Unicode: [0x006A]
0x00, 0x00, 0xFD, 0x03, 0x00, 0x00, 0xDB, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x01,
0x00, 0x88, 0xFD, 0x01, 0x00, 0x00, 0xFB, 0x01, 0x00, 0x00, 0xFB, 0x01, 0x00, 0x00, 0xFB, 0x01,
0x00, 0x00, 0xFB, 0x01, 0x00, 0x00, 0xFB, 0x01, 0x00, 0x00, 0xFB, 0x01, 0x00, 0x00, 0xFB, 0x01,
0x00, 0x00, 0xFB, 0x01, 0x00, 0x00, 0xFB, 0x01, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x20, 0xDF, 0x00,
0xB8, 0xEA, 0x6F, 0x00, 0xE7, 0xDF, 0x06, 0x00,
// Unicode: [0x006B]
0xF2, 0x0B, 0x00, 0x00, 0x00, 0x00, 0xF2, 0x0B, 0x00, 0x00, 0x00, 0x00, 0xF2, 0x0B, 0x00, 0x00,
0x00, 0x00, 0xF2, 0x0B, 0x00, 0x00, 0x00, 0x00, 0xF2, 0x0B, 0x00, 0x70, 0xCF, 0x01, 0xF2, 0x0B,
0x00, 0xF6, 0x1C, 0x00, 0xF2, 0x0B, 0x60, 0xCF, 0x01, 0x00, 0xF2, 0x0B, 0xF5, 0x1C, 0x00, 0x00,
0xF2, 0x5B, 0xCF, 0x01, 0x00, 0x00, 0xF2, 0xFE, 0xAF, 0x00, 0x00, 0x00, 0xF2, 0x9F, 0xFC, 0x09,
0x00, 0x00, 0xF2, 0x0C, 0xD1, 0x7F, 0x00, 0x00, 0xF2, 0x0B, 0x20, 0xFD, 0x06, 0x00, 0xF2, 0x0B,
0x00, 0xE2, 0x5F, 0x00, 0xF2, 0x0B, 0x00, 0x30, 0xFE, 0x04,
// Unicode: [0x006C]
0xF3, 0x0A, 0xF3, 0x0A, 0xF3, 0x0A, 0xF3, 0x0A, 0xF3, 0x0A, 0xF3, 0x0A, 0xF3, 0x0A, 0xF3, 0x0A,
0xF3, 0x0A, 0xF3, 0x0A, 0xF3, 0x0A, 0xF3, 0x0A, 0xF3, 0x0A, 0xF3, 0x0A, 0xF3, 0x0A,
// Unicode: [0x006D]
0xF3, 0x2A, 0xEA, 0xBE, 0x03, 0xA3, 0xFE, 0x4C, 0x00, 0xF3, 0xFD, 0xBE, 0xFD, 0x8E, 0xEF, 0xCB,
0xFF, 0x02, 0xF3, 0x7F, 0x00, 0x90, 0xFF, 0x18, 0x00, 0xF9, 0x07, 0xF3, 0x0A, 0x00, 0x40, 0xAF,
0x00, 0x00, 0xF3, 0x0A, 0xF3, 0x0A, 0x00, 0x30, 0xAF, 0x00, 0x00, 0xF2, 0x0B, 0xF3, 0x0A, 0x00,
0x20, 0xAF, 0x00, 0x00, 0xF2, 0x0B, 0xF3, 0x0A, 0x00, 0x20, 0xAF, 0x00, 0x00, 0xF2, 0x0B, 0xF3,
0x0A, 0x00, 0x20, 0xAF, 0x00, 0x00, 0xF2, 0x0B, 0xF3, 0x0A, 0x00, 0x20, 0xAF, 0x00, 0x00, 0xF2,
0x0B, 0xF3, 0x0A, 0x00, 0x20, 0xAF, 0x00, 0x00, 0xF2, 0x0B, 0xF3, 0x0A, 0x00, 0x20, 0xAF, 0x00,
0x00, 0xF2, 0x0B,
// Unicode: [0x006E]
0xF3, 0x2A, 0xE9, 0xDF, 0x05, 0xF3, 0xFD, 0xBE, 0xFC, 0x4F, 0xF3, 0x8F, 0x01, 0x60, 0xAF, 0xF3,
0x0A, 0x00, 0x00, 0xDF, 0xF3, 0x0A, 0x00, 0x00, 0xEE, 0xF3, 0x0A, 0x00, 0x00, 0xEE, 0xF3, 0x0A,
0x00, 0x00, 0xEE, 0xF3, 0x0A, 0x00, 0x00, 0xEE, 0xF3, 0x0A, 0x00, 0x00, 0xEE, 0xF3, 0x0A, 0x00,
0x00, 0xEE, 0xF3, 0x0A, 0x00, 0x00, 0xEE,
// Unicode: [0x006F]
0x00, 0xC5, 0xEE, 0x6C, 0x00, 0x00, 0x90, 0xEF, 0xAA, 0xFD, 0x0A, 0x00, 0xF4, 0x1C, 0x00, 0xB1,
0x6F, 0x00, 0xFA, 0x04, 0x00, 0x20, 0xCF, 0x00, 0xFD, 0x00, 0x00, 0x00, 0xFD, 0x00, 0xEE, 0x00,
0x00, 0x00, 0xFC, 0x01, 0xFD, 0x01, 0x00, 0x00, 0xFE, 0x00, 0xFA, 0x04, 0x00, 0x20, 0xCF, 0x00,
0xF4, 0x1C, 0x00, 0xB1, 0x6F, 0x00, 0x90, 0xEF, 0x9A, 0xFD, 0x0B, 0x00, 0x00, 0xC5, 0xFE, 0x7C,
0x00, 0x00,
// Unicode: [0x0070]
0xF3, 0x2A, 0xEA, 0xCF, 0x05, 0x00, 0xF3, 0xFE, 0xBE, 0xFD, 0x5F, 0x00, 0xF3, 0x6E, 0x00, 0x60,
0xDF, 0x00, 0xF3, 0x0A, 0x00, 0x00, 0xFC, 0x03, 0xF3, 0x0A, 0x00, 0x00, 0xF9, 0x05, 0xF3, 0x0A,
0x00, 0x00, 0xF8, 0x06, 0xF3, 0x0A, 0x00, 0x00, 0xF9, 0x05, 0xF3, 0x0A, 0x00, 0x00, 0xFD, 0x01,
0xF3, 0x0A, 0x00, 0x80, 0xAF, 0x00, 0xF3, 0xDF, 0xAA, 0xFD, 0x1D, 0x00, 0xF3, 0x9B, 0xFD, 0x9D,
0x01, 0x00, 0xF3, 0x0A, 0x00, 0x00, 0x00, 0x00, 0xF3, 0x0A, 0x00, 0x00, 0x00, 0x00, 0xF3, 0x0A,
0x00, 0x00, 0x00, 0x00, 0xF3, 0x0A, 0x00, 0x00, 0x00, 0x00,
// Unicode: [0x0071]
0x00, 0xB5, 0xEE, 0x9C, 0xAF, 0x70, 0xEF, 0xAB, 0xFC, 0xAF, 0xF3, 0x2D, 0x00, 0x40, 0xAF, 0xF9,
0x05, 0x00, 0x30, 0xAF, 0xFD, 0x01, 0x00, 0x30, 0xAF, 0xFE, 0x00, 0x00, 0x30, 0xAF, 0xFD, 0x01,
0x00, 0x30, 0xAF, 0xFB, 0x04, 0x00, 0x30, 0xAF, 0xF6, 0x1C, 0x00, 0xB2, 0xAF, 0xC0, 0xEF, 0xCB,
0xDF, 0xAF, 0x10, 0xE9, 0xDF, 0x37, 0xAF, 0x00, 0x00, 0x00, 0x30, 0xAF, 0x00, 0x00, 0x00, 0x30,
0xAF, 0x00, 0x00, 0x00, 0x30, 0xAF, 0x00, 0x00, 0x00, 0x30, 0xAF,
// Unicode: [0x0072]
0xF3, 0x1A, 0xE9, 0x8F, 0xF3, 0xED, 0xCF, 0x9C, 0xF3, 0x9F, 0x01, 0x00, 0xF3, 0x0A, 0x00, 0x00,
0xF3, 0x0A, 0x00, 0x00, 0xF3, 0x0A, 0x00, 0x00, 0xF3, 0x0A, 0x00, 0x00, 0xF3, 0x0A, 0x00, 0x00,
0xF3, 0x0A, 0x00, 0x00, 0xF3, 0x0A, 0x00, 0x00, 0xF3, 0x0A, 0x00, 0x00,
// Unicode: [0x0073]
0x30, 0xEA, 0xDF, 0x7B, 0x01, 0xF4, 0xAE, 0xA8, 0xFE, 0x03, 0xFB, 0x03, 0x00, 0x50, 0x02, 0xFC,
0x02, 0x00, 0x00, 0x00, 0xF8, 0x9E, 0x25, 0x00, 0x00, 0x70, 0xFD, 0xFF, 0x6D, 0x00, 0x00, 0x20,
0x95, 0xFE, 0x04, 0x00, 0x00, 0x00, 0xF6, 0x08, 0x3A, 0x00, 0x00, 0xF7, 0x07, 0xFE, 0x9C, 0xB8,
0xDF, 0x01, 0x94, 0xFD, 0xCE, 0x17, 0x00,
// Unicode: [0x0074]
0x20, 0xAF, 0x00, 0x00, 0x20, 0xAF, 0x00, 0x00, 0x20, 0xAF, 0x00, 0x00, 0xF6, 0xFF, 0xFF, 0x7F,
0x93, 0xDF, 0x88, 0x48, 0x20, 0xAF, 0x00, 0x00, 0x20, 0xAF, 0x00, 0x00, 0x20, 0xAF, 0x00, 0x00,
0x20, 0xAF, 0x00, 0x00, 0x20, 0xAF, 0x00, 0x00, 0x20, 0xBF, 0x00, 0x00, 0x10, 0xEF, 0x01, 0x00,
0x00, 0xFA, 0x9D, 0x6A, 0x00, 0x91, 0xFD, 0x5D,
// Unicode: [0x0075]
0xF4, 0x08, 0x00, 0x00, 0xDF, 0xF4, 0x08, 0x00, 0x00, 0xDF, 0xF4, 0x08, 0x00, 0x00, 0xDF, 0xF4,
0x08, 0x00, 0x00, 0xDF, 0xF4, 0x08, 0x00, 0x00, 0xDF, 0xF4, 0x08, 0x00, 0x00, 0xDF, 0xF4, 0x09,
0x00, 0x00, 0xDF, 0xF3, 0x0A, 0x00, 0x00, 0xDF, 0xF1, 0x2E, 0x00, 0xB2, 0xDF, 0x90, 0xEF, 0xCB,
0xDF, 0xDF, 0x00, 0xE8, 0xDF, 0x17, 0xDF,
// Unicode: [0x0076]
0xF3, 0x0C, 0x00, 0x00, 0xD0, 0x1F, 0xC0, 0x3F, 0x00, 0x00, 0xF4, 0x09, 0x60, 0x8F, 0x00, 0x00,
0xFA, 0x03, 0x10, 0xEE, 0x00, 0x10, 0xCE, 0x00, 0x00, 0xF9, 0x05, 0x60, 0x6F, 0x00, 0x00, 0xF3,
0x0B, 0xC0, 0x1E, 0x00, 0x00, 0xC0, 0x2F, 0xF3, 0x09, 0x00, 0x00, 0x60, 0x7F, 0xF8, 0x03, 0x00,
0x00, 0x10, 0xDE, 0xCE, 0x00, 0x00, 0x00, 0x00, 0xF9, 0x6F, 0x00, 0x00, 0x00, 0x00, 0xF3, 0x1E,
0x00, 0x00,
// Unicode: [0x0077]
0xF1, 0x0D, 0x00, 0xA0, 0x2F, 0x00, 0x60, 0x6F, 0xC0, 0x2F, 0x00, 0xE1, 0x7F, 0x00, 0xA0, 0x2F,
0x80, 0x5F, 0x00, 0xF5, 0xCE, 0x00, 0xD0, 0x0D, 0x40, 0x9F, 0x00, 0xDA, 0xF7, 0x02, 0xF1, 0x09,
0x00, 0xCE, 0x00, 0x8E, 0xF2, 0x07, 0xF5, 0x06, 0x00, 0xFB, 0x41, 0x3F, 0xC0, 0x0C, 0xF8, 0x02,
0x00, 0xF7, 0x94, 0x0D, 0x80, 0x2F, 0xDC, 0x00, 0x00, 0xF3, 0xE8, 0x08, 0x30, 0x7F, 0x9F, 0x00,
0x00, 0xE0, 0xFE, 0x03, 0x00, 0xED, 0x5F, 0x00, 0x00, 0xA0, 0xDF, 0x00, 0x00, 0xF8, 0x1F, 0x00,
0x00, 0x60, 0x9F, 0x00, 0x00, 0xF3, 0x0C, 0x00,
// Unicode: [0x0078]
0xE1, 0x5F, 0x00, 0x00, 0xF4, 0x1C, 0x40, 0xEF, 0x02, 0x10, 0xEE, 0x02, 0x00, 0xF7, 0x0C, 0xB0,
0x4F, 0x00, 0x00, 0xA0, 0x8F, 0xF7, 0x07, 0x00, 0x00, 0x10, 0xFD, 0xAF, 0x00, 0x00, 0x00, 0x00,
0xF5, 0x2F, 0x00, 0x00, 0x00, 0x10, 0xED, 0xCF, 0x00, 0x00, 0x00, 0xA0, 0x5F, 0xF9, 0x08, 0x00,
0x00, 0xF7, 0x09, 0xD1, 0x5F, 0x00, 0x40, 0xCF, 0x00, 0x30, 0xEF, 0x02, 0xE2, 0x2E, 0x00, 0x00,
0xF6, 0x1C,
// Unicode: [0x0079]
0xF3, 0x0C, 0x00, 0x00, 0xD0, 0x1E, 0xC0, 0x3F, 0x00, 0x00, 0xF5, 0x09, 0x50, 0x9F, 0x00, 0x00,
0xFB, 0x03, 0x00, 0xEE, 0x01, 0x20, 0xBF, 0x00, 0x00, 0xF8, 0x07, 0x80, 0x5F, 0x00, 0x00, 0xF2,
0x0D, 0xE1, 0x0D, 0x00, 0x00, 0xB0, 0x4F, 0xF6, 0x07, 0x00, 0x00, 0x40, 0xAF, 0xFC, 0x01, 0x00,
0x00, 0x00, 0xFD, 0x9F, 0x00, 0x00, 0x00, 0x00, 0xF7, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xF3, 0x0C,
0x00, 0x00, 0x00, 0x00, 0xF8, 0x05, 0x00, 0x00, 0x00, 0x10, 0xEE, 0x00, 0x00, 0x00, 0x00, 0x60,
0x8F, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x2F, 0x00, 0x00, 0x00,
// Unicode: [0x007A]
0xE0, 0xFF, 0xFF, 0xFF, 0x8F, 0x70, 0x88, 0x88, 0xE8, 0x5F, 0x00, 0x00, 0x00, 0xF8, 0x09, 0x00,
0x00, 0x40, 0xCF, 0x00, 0x00, 0x00, 0xE2, 0x2E, 0x00, 0x00, 0x00, 0xFC, 0x04, 0x00, 0x00, 0x90,
0x7F, 0x00, 0x00, 0x00, 0xF6, 0x0B, 0x00, 0x00, 0x30, 0xDF, 0x01, 0x00, 0x00, 0xD1, 0xAF, 0x88,
0x88, 0x68, 0xF1, 0xFF, 0xFF, 0xFF, 0xBF,
// Unicode: [0x007B]
0x00, 0x00, 0x10, 0xD8, 0xDF, 0x00, 0x00, 0xC0, 0x9F, 0x46, 0x00, 0x00, 0xF5, 0x08, 0x00, 0x00,
0x00, 0xF7, 0x04, 0x00, 0x00, 0x00, 0xF8, 0x04, 0x00, 0x00, 0x00, 0xF8, 0x03, 0x00, 0x00, 0x00,
0xFA, 0x02, 0x00, 0x00, 0x20, 0xBF, 0x00, 0x00, 0x31, 0xD6, 0x2C, 0x00, 0x00, 0xF5, 0xAF, 0x00,
0x00, 0x00, 0x62, 0xF9, 0x1A, 0x00, 0x00, 0x00, 0x30, 0xAF, 0x00, 0x00, 0x00, 0x00, 0xFB, 0x01,
0x00, 0x00, 0x00, 0xF8, 0x03, 0x00, 0x00, 0x00, 0xF8, 0x04, 0x00, 0x00, 0x00, 0xF7, 0x04, 0x00,
0x00, 0x00, 0xF5, 0x08, 0x00, 0x00, 0x00, 0xD0, 0x8F, 0x45, 0x00, 0x00, 0x10, 0xD9, 0xDF,
// Unicode: [0x007C]
0xF5, 0x06, 0xF5, 0x06, 0xF5, 0x06, 0xF5, 0x06, 0xF5, 0x06, 0xF5, 0x06, 0xF5, 0x06, 0xF5, 0x06,
0xF5, 0x06, 0xF5, 0x06, 0xF5, 0x06, 0xF5, 0x06, 0xF5, 0x06, 0xF5, 0x06, 0xF5, 0x06, 0xF5, 0x06,
0xF5, 0x06, 0xF5, 0x06, 0xF5, 0x06,
// Unicode: [0x007D]
0xF3, 0xCE, 0x06, 0x00, 0x00, 0x51, 0xB6, 0x8F, 0x00, 0x00, 0x00, 0x00, 0xFD, 0x01, 0x00, 0x00,
0x00, 0xF9, 0x03, 0x00, 0x00, 0x00, 0xF8, 0x03, 0x00, 0x00, 0x00, 0xF8, 0x04, 0x00, 0x00, 0x00,
0xF6, 0x06, 0x00, 0x00, 0x00, 0xE1, 0x0C, 0x00, 0x00, 0x00, 0x40, 0xBE, 0x25, 0x00, 0x00, 0x00,
0xD2, 0xFF, 0x00, 0x00, 0x30, 0xDD, 0x57, 0x00, 0x00, 0xE1, 0x1D, 0x00, 0x00, 0x00, 0xF6, 0x06,
0x00, 0x00, 0x00, 0xF8, 0x04, 0x00, 0x00, 0x00, 0xF8, 0x03, 0x00, 0x00, 0x00, 0xF9, 0x03, 0x00,
0x00, 0x00, 0xFC, 0x01, 0x00, 0x51, 0xB6, 0x8F, 0x00, 0x00, 0xF3, 0xCE, 0x06, 0x00, 0x00,
// Unicode: [0x007E]
0x00, 0xD5, 0xCF, 0x04, 0x00, 0x20, 0x7F, 0x40, 0xDF, 0xD9, 0x6F, 0x00, 0x40, 0x5F, 0xA0, 0x1E,
0x10, 0xFC, 0x05, 0xA0, 0x1F, 0xF0, 0x0A, 0x00, 0xD2, 0xAF, 0xFB, 0x09, 0xF2, 0x07, 0x00, 0x20,
0xEA, 0x9E, 0x01
}; };

View File

@ -2,5 +2,109 @@
FONT_KERNING_LOCATION_FLASH_PRAGMA FONT_KERNING_LOCATION_FLASH_PRAGMA
KEEP extern const touchgfx::KerningNode kerning_verdana_20_4bpp[] FONT_KERNING_LOCATION_FLASH_ATTRIBUTE = { KEEP extern const touchgfx::KerningNode kerning_verdana_20_4bpp[] FONT_KERNING_LOCATION_FLASH_ATTRIBUTE = {
{ 0, 0 } { 0x004C, -1 }, // (First char = [0x004C, L], Second char = [0x0027, '], Kerning dist = -1)
{ 0x0066, 1 }, // (First char = [0x0066, f], Second char = [0x0029, )], Kerning dist = 1)
{ 0x002E, -1 }, // (First char = [0x002E, .], Second char = [0x002C, ,], Kerning dist = -1)
{ 0x0046, -2 }, // (First char = [0x0046, F], Second char = [0x002C, ,], Kerning dist = -2)
{ 0x0050, -2 }, // (First char = [0x0050, P], Second char = [0x002C, ,], Kerning dist = -2)
{ 0x0054, -2 }, // (First char = [0x0054, T], Second char = [0x002C, ,], Kerning dist = -2)
{ 0x0056, -2 }, // (First char = [0x0056, V], Second char = [0x002C, ,], Kerning dist = -2)
{ 0x0057, -2 }, // (First char = [0x0057, W], Second char = [0x002C, ,], Kerning dist = -2)
{ 0x0059, -2 }, // (First char = [0x0059, Y], Second char = [0x002C, ,], Kerning dist = -2)
{ 0x0066, -1 }, // (First char = [0x0066, f], Second char = [0x002C, ,], Kerning dist = -1)
{ 0x0072, -2 }, // (First char = [0x0072, r], Second char = [0x002C, ,], Kerning dist = -2)
{ 0x0076, -1 }, // (First char = [0x0076, v], Second char = [0x002C, ,], Kerning dist = -1)
{ 0x0077, -1 }, // (First char = [0x0077, w], Second char = [0x002C, ,], Kerning dist = -1)
{ 0x0079, -1 }, // (First char = [0x0079, y], Second char = [0x002C, ,], Kerning dist = -1)
{ 0x002E, -1 }, // (First char = [0x002E, .], Second char = [0x002D, -], Kerning dist = -1)
{ 0x004B, -1 }, // (First char = [0x004B, K], Second char = [0x002D, -], Kerning dist = -1)
{ 0x004C, -1 }, // (First char = [0x004C, L], Second char = [0x002D, -], Kerning dist = -1)
{ 0x0052, -1 }, // (First char = [0x0052, R], Second char = [0x002D, -], Kerning dist = -1)
{ 0x0054, -1 }, // (First char = [0x0054, T], Second char = [0x002D, -], Kerning dist = -1)
{ 0x0058, -1 }, // (First char = [0x0058, X], Second char = [0x002D, -], Kerning dist = -1)
{ 0x0059, -1 }, // (First char = [0x0059, Y], Second char = [0x002D, -], Kerning dist = -1)
{ 0x006B, -1 }, // (First char = [0x006B, k], Second char = [0x002D, -], Kerning dist = -1)
{ 0x0046, -2 }, // (First char = [0x0046, F], Second char = [0x002E, .], Kerning dist = -2)
{ 0x0050, -2 }, // (First char = [0x0050, P], Second char = [0x002E, .], Kerning dist = -2)
{ 0x0054, -2 }, // (First char = [0x0054, T], Second char = [0x002E, .], Kerning dist = -2)
{ 0x0056, -2 }, // (First char = [0x0056, V], Second char = [0x002E, .], Kerning dist = -2)
{ 0x0057, -2 }, // (First char = [0x0057, W], Second char = [0x002E, .], Kerning dist = -2)
{ 0x0059, -2 }, // (First char = [0x0059, Y], Second char = [0x002E, .], Kerning dist = -2)
{ 0x0066, -1 }, // (First char = [0x0066, f], Second char = [0x002E, .], Kerning dist = -1)
{ 0x0072, -2 }, // (First char = [0x0072, r], Second char = [0x002E, .], Kerning dist = -2)
{ 0x0076, -1 }, // (First char = [0x0076, v], Second char = [0x002E, .], Kerning dist = -1)
{ 0x0077, -1 }, // (First char = [0x0077, w], Second char = [0x002E, .], Kerning dist = -1)
{ 0x0079, -1 }, // (First char = [0x0079, y], Second char = [0x002E, .], Kerning dist = -1)
{ 0x0054, -2 }, // (First char = [0x0054, T], Second char = [0x003A, :], Kerning dist = -2)
{ 0x0056, -1 }, // (First char = [0x0056, V], Second char = [0x003A, :], Kerning dist = -1)
{ 0x0057, -1 }, // (First char = [0x0057, W], Second char = [0x003A, :], Kerning dist = -1)
{ 0x0059, -2 }, // (First char = [0x0059, Y], Second char = [0x003A, :], Kerning dist = -2)
{ 0x0054, -2 }, // (First char = [0x0054, T], Second char = [0x003B, ;], Kerning dist = -2)
{ 0x0056, -1 }, // (First char = [0x0056, V], Second char = [0x003B, ;], Kerning dist = -1)
{ 0x0057, -1 }, // (First char = [0x0057, W], Second char = [0x003B, ;], Kerning dist = -1)
{ 0x0059, -2 }, // (First char = [0x0059, Y], Second char = [0x003B, ;], Kerning dist = -2)
{ 0x0066, 1 }, // (First char = [0x0066, f], Second char = [0x003F, ?], Kerning dist = 1)
{ 0x0027, -1 }, // (First char = [0x0027, '], Second char = [0x0041, A], Kerning dist = -1)
{ 0x0046, -1 }, // (First char = [0x0046, F], Second char = [0x0041, A], Kerning dist = -1)
{ 0x0054, -1 }, // (First char = [0x0054, T], Second char = [0x0041, A], Kerning dist = -1)
{ 0x0059, -1 }, // (First char = [0x0059, Y], Second char = [0x0041, A], Kerning dist = -1)
{ 0x002D, -1 }, // (First char = [0x002D, -], Second char = [0x004A, J], Kerning dist = -1)
{ 0x004C, 1 }, // (First char = [0x004C, L], Second char = [0x004A, J], Kerning dist = 1)
{ 0x002D, -1 }, // (First char = [0x002D, -], Second char = [0x0054, T], Kerning dist = -1)
{ 0x0041, -1 }, // (First char = [0x0041, A], Second char = [0x0054, T], Kerning dist = -1)
{ 0x004C, -1 }, // (First char = [0x004C, L], Second char = [0x0054, T], Kerning dist = -1)
{ 0x0054, -1 }, // (First char = [0x0054, T], Second char = [0x0054, T], Kerning dist = -1)
{ 0x0065, -1 }, // (First char = [0x0065, e], Second char = [0x0054, T], Kerning dist = -1)
{ 0x004C, -1 }, // (First char = [0x004C, L], Second char = [0x0056, V], Kerning dist = -1)
{ 0x004C, -1 }, // (First char = [0x004C, L], Second char = [0x0057, W], Kerning dist = -1)
{ 0x002D, -1 }, // (First char = [0x002D, -], Second char = [0x0058, X], Kerning dist = -1)
{ 0x002D, -1 }, // (First char = [0x002D, -], Second char = [0x0059, Y], Kerning dist = -1)
{ 0x0041, -1 }, // (First char = [0x0041, A], Second char = [0x0059, Y], Kerning dist = -1)
{ 0x004C, -1 }, // (First char = [0x004C, L], Second char = [0x0059, Y], Kerning dist = -1)
{ 0x0066, 1 }, // (First char = [0x0066, f], Second char = [0x005C, \], Kerning dist = 1)
{ 0x0066, 1 }, // (First char = [0x0066, f], Second char = [0x005D, ]], Kerning dist = 1)
{ 0x0046, -1 }, // (First char = [0x0046, F], Second char = [0x0061, a], Kerning dist = -1)
{ 0x0054, -2 }, // (First char = [0x0054, T], Second char = [0x0061, a], Kerning dist = -2)
{ 0x0056, -1 }, // (First char = [0x0056, V], Second char = [0x0061, a], Kerning dist = -1)
{ 0x0057, -1 }, // (First char = [0x0057, W], Second char = [0x0061, a], Kerning dist = -1)
{ 0x0059, -1 }, // (First char = [0x0059, Y], Second char = [0x0061, a], Kerning dist = -1)
{ 0x0054, -2 }, // (First char = [0x0054, T], Second char = [0x0063, c], Kerning dist = -2)
{ 0x0059, -1 }, // (First char = [0x0059, Y], Second char = [0x0064, d], Kerning dist = -1)
{ 0x004B, -1 }, // (First char = [0x004B, K], Second char = [0x0065, e], Kerning dist = -1)
{ 0x0054, -2 }, // (First char = [0x0054, T], Second char = [0x0065, e], Kerning dist = -2)
{ 0x0056, -1 }, // (First char = [0x0056, V], Second char = [0x0065, e], Kerning dist = -1)
{ 0x0057, -1 }, // (First char = [0x0057, W], Second char = [0x0065, e], Kerning dist = -1)
{ 0x0059, -1 }, // (First char = [0x0059, Y], Second char = [0x0065, e], Kerning dist = -1)
{ 0x0054, -2 }, // (First char = [0x0054, T], Second char = [0x0067, g], Kerning dist = -2)
{ 0x0059, -1 }, // (First char = [0x0059, Y], Second char = [0x0067, g], Kerning dist = -1)
{ 0x0059, -1 }, // (First char = [0x0059, Y], Second char = [0x006D, m], Kerning dist = -1)
{ 0x0059, -1 }, // (First char = [0x0059, Y], Second char = [0x006E, n], Kerning dist = -1)
{ 0x004B, -1 }, // (First char = [0x004B, K], Second char = [0x006F, o], Kerning dist = -1)
{ 0x0054, -2 }, // (First char = [0x0054, T], Second char = [0x006F, o], Kerning dist = -2)
{ 0x0056, -1 }, // (First char = [0x0056, V], Second char = [0x006F, o], Kerning dist = -1)
{ 0x0057, -1 }, // (First char = [0x0057, W], Second char = [0x006F, o], Kerning dist = -1)
{ 0x0059, -1 }, // (First char = [0x0059, Y], Second char = [0x006F, o], Kerning dist = -1)
{ 0x0059, -1 }, // (First char = [0x0059, Y], Second char = [0x0070, p], Kerning dist = -1)
{ 0x0059, -1 }, // (First char = [0x0059, Y], Second char = [0x0071, q], Kerning dist = -1)
{ 0x0054, -2 }, // (First char = [0x0054, T], Second char = [0x0072, r], Kerning dist = -2)
{ 0x0059, -1 }, // (First char = [0x0059, Y], Second char = [0x0072, r], Kerning dist = -1)
{ 0x0054, -1 }, // (First char = [0x0054, T], Second char = [0x0073, s], Kerning dist = -1)
{ 0x0059, -1 }, // (First char = [0x0059, Y], Second char = [0x0073, s], Kerning dist = -1)
{ 0x0054, -2 }, // (First char = [0x0054, T], Second char = [0x0075, u], Kerning dist = -2)
{ 0x0059, -1 }, // (First char = [0x0059, Y], Second char = [0x0075, u], Kerning dist = -1)
{ 0x004B, -1 }, // (First char = [0x004B, K], Second char = [0x0076, v], Kerning dist = -1)
{ 0x004C, -1 }, // (First char = [0x004C, L], Second char = [0x0076, v], Kerning dist = -1)
{ 0x0054, -2 }, // (First char = [0x0054, T], Second char = [0x0076, v], Kerning dist = -2)
{ 0x0059, -1 }, // (First char = [0x0059, Y], Second char = [0x0076, v], Kerning dist = -1)
{ 0x004B, -1 }, // (First char = [0x004B, K], Second char = [0x0077, w], Kerning dist = -1)
{ 0x0054, -2 }, // (First char = [0x0054, T], Second char = [0x0077, w], Kerning dist = -2)
{ 0x004B, -1 }, // (First char = [0x004B, K], Second char = [0x0079, y], Kerning dist = -1)
{ 0x004C, -1 }, // (First char = [0x004C, L], Second char = [0x0079, y], Kerning dist = -1)
{ 0x0054, -2 }, // (First char = [0x0054, T], Second char = [0x0079, y], Kerning dist = -2)
{ 0x0056, -1 }, // (First char = [0x0056, V], Second char = [0x0079, y], Kerning dist = -1)
{ 0x0057, -1 }, // (First char = [0x0057, W], Second char = [0x0079, y], Kerning dist = -1)
{ 0x0058, -1 }, // (First char = [0x0058, X], Second char = [0x0079, y], Kerning dist = -1)
{ 0x005A, -1 }, // (First char = [0x005A, Z], Second char = [0x0079, y], Kerning dist = -1)
{ 0x0054, -1 }, // (First char = [0x0054, T], Second char = [0x007A, z], Kerning dist = -1)
{ 0x0066, 1 }, // (First char = [0x0066, f], Second char = [0x007D, }], Kerning dist = 1)
}; };

View File

@ -5,37 +5,44 @@
FONT_TABLE_LOCATION_FLASH_PRAGMA FONT_TABLE_LOCATION_FLASH_PRAGMA
KEEP extern const touchgfx::GlyphNode glyphs_CHINN____20_4bpp[] FONT_TABLE_LOCATION_FLASH_ATTRIBUTE = { KEEP extern const touchgfx::GlyphNode glyphs_CHINN____20_4bpp[] FONT_TABLE_LOCATION_FLASH_ATTRIBUTE = {
{ 0, 0x0020, 0, 0, 0, 0, 5, 0, 0, 0x00 }, // space { 0, 0x0020, 0, 0, 0, 0, 5, 0, 0, 0x00 }, // space
{ 0, 0x003F, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // question { 0, 0x0032, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // two
{ 130, 0x0041, 20, 13, 13, -1, 18, 0, 0, 0x00 }, // A { 130, 0x003F, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // question
{ 260, 0x0042, 20, 13, 13, 0, 21, 0, 0, 0x00 }, // B { 260, 0x0041, 20, 13, 13, -1, 18, 0, 0, 0x00 }, // A
{ 390, 0x0044, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // D { 390, 0x0042, 20, 13, 13, 0, 21, 0, 0, 0x00 }, // B
{ 520, 0x0045, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // E { 520, 0x0043, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // C
{ 650, 0x0046, 20, 13, 13, 0, 19, 0, 0, 0x00 }, // F { 650, 0x0044, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // D
{ 780, 0x0049, 4, 13, 13, 0, 5, 0, 0, 0x00 }, // I { 780, 0x0045, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // E
{ 806, 0x004C, 20, 13, 13, 0, 19, 0, 0, 0x00 }, // L { 910, 0x0046, 20, 13, 13, 0, 19, 0, 0, 0x00 }, // F
{ 936, 0x004D, 21, 13, 13, 0, 21, 0, 0, 0x00 }, // M { 1040, 0x0047, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // G
{ 1079, 0x004E, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // N { 1170, 0x0048, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // H
{ 1209, 0x0050, 21, 13, 13, 0, 20, 0, 0, 0x00 }, // P { 1300, 0x0049, 4, 13, 13, 0, 5, 0, 0, 0x00 }, // I
{ 1352, 0x0052, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // R { 1326, 0x004C, 20, 13, 13, 0, 19, 0, 0, 0x00 }, // L
{ 1482, 0x0053, 22, 13, 13, 0, 22, 0, 0, 0x00 }, // S { 1456, 0x004D, 21, 13, 13, 0, 21, 0, 0, 0x00 }, // M
{ 1625, 0x0054, 20, 13, 13, -1, 19, 0, 0, 0x00 }, // T { 1599, 0x004E, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // N
{ 1755, 0x0056, 20, 13, 13, -1, 18, 0, 0, 0x00 }, // V { 1729, 0x004F, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // O
{ 1885, 0x0061, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // a { 1859, 0x0050, 21, 13, 13, 0, 20, 0, 0, 0x00 }, // P
{ 2015, 0x0063, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // c { 2002, 0x0052, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // R
{ 2145, 0x0064, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // d { 2132, 0x0053, 22, 13, 13, 0, 22, 0, 0, 0x00 }, // S
{ 2275, 0x0065, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // e { 2275, 0x0054, 20, 13, 13, -1, 19, 0, 0, 0x00 }, // T
{ 2405, 0x0067, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // g { 2405, 0x0056, 20, 13, 13, -1, 18, 0, 0, 0x00 }, // V
{ 2535, 0x0069, 4, 13, 13, 0, 5, 0, 0, 0x00 }, // i { 2535, 0x0058, 19, 13, 13, 0, 19, 0, 0, 0x00 }, // X
{ 2561, 0x006B, 20, 13, 13, 0, 19, 0, 0, 0x00 }, // k { 2665, 0x0059, 19, 13, 13, -1, 18, 0, 0, 0x00 }, // Y
{ 2691, 0x006C, 15, 13, 13, 0, 14, 0, 0, 0x00 }, // l { 2795, 0x0061, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // a
{ 2795, 0x006E, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // n { 2925, 0x0063, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // c
{ 2925, 0x006F, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // o { 3055, 0x0064, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // d
{ 3055, 0x0070, 20, 13, 13, 0, 19, 0, 0, 0x00 }, // p { 3185, 0x0065, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // e
{ 3185, 0x0072, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // r { 3315, 0x0067, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // g
{ 3315, 0x0073, 22, 13, 13, 0, 22, 0, 0, 0x00 }, // s { 3445, 0x0069, 4, 13, 13, 0, 5, 0, 0, 0x00 }, // i
{ 3458, 0x0074, 20, 13, 13, -1, 19, 0, 0, 0x00 }, // t { 3471, 0x006B, 20, 13, 13, 0, 19, 0, 0, 0x00 }, // k
{ 3588, 0x0075, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // u { 3601, 0x006C, 15, 13, 13, 0, 14, 0, 0, 0x00 }, // l
{ 3718, 0x0076, 20, 13, 13, -1, 18, 0, 0, 0x00 } // v { 3705, 0x006E, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // n
{ 3835, 0x006F, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // o
{ 3965, 0x0070, 20, 13, 13, 0, 19, 0, 0, 0x00 }, // p
{ 4095, 0x0072, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // r
{ 4225, 0x0073, 22, 13, 13, 0, 22, 0, 0, 0x00 }, // s
{ 4368, 0x0074, 20, 13, 13, -1, 19, 0, 0, 0x00 }, // t
{ 4498, 0x0075, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // u
{ 4628, 0x0076, 20, 13, 13, -1, 18, 0, 0, 0x00 } // v
}; };
// CHINN____20_4bpp // CHINN____20_4bpp
@ -53,6 +60,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, 32, 20, 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, 39, 20, 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

@ -4,7 +4,101 @@
FONT_TABLE_LOCATION_FLASH_PRAGMA FONT_TABLE_LOCATION_FLASH_PRAGMA
KEEP extern const touchgfx::GlyphNode glyphs_verdana_20_4bpp[] FONT_TABLE_LOCATION_FLASH_ATTRIBUTE = { KEEP extern const touchgfx::GlyphNode glyphs_verdana_20_4bpp[] FONT_TABLE_LOCATION_FLASH_ATTRIBUTE = {
{ 0, 0x003F, 9, 14, 14, 1, 11, 0, 0, 0x00 } { 0, 0x0020, 0, 0, 0, 0, 7, 0, 0, 0x00 },
{ 0, 0x0021, 3, 14, 14, 2, 8, 0, 0, 0x00 },
{ 28, 0x0022, 7, 6, 15, 1, 9, 0, 0, 0x00 },
{ 52, 0x0023, 14, 14, 14, 1, 16, 0, 0, 0x00 },
{ 150, 0x0024, 11, 19, 15, 1, 13, 0, 0, 0x00 },
{ 264, 0x0025, 19, 14, 14, 1, 22, 0, 0, 0x00 },
{ 404, 0x0026, 14, 14, 14, 1, 15, 0, 0, 0x00 },
{ 502, 0x0027, 3, 6, 15, 1, 5, 0, 1, 0x00 },
{ 514, 0x0028, 7, 19, 15, 1, 9, 0, 0, 0x00 },
{ 590, 0x0029, 7, 19, 15, 1, 9, 1, 1, 0x00 },
{ 666, 0x002A, 10, 9, 15, 1, 13, 0, 0, 0x00 },
{ 711, 0x002B, 13, 12, 12, 2, 16, 0, 0, 0x00 },
{ 795, 0x002C, 5, 7, 3, 1, 7, 2, 12, 0x00 },
{ 816, 0x002D, 7, 2, 7, 1, 9, 14, 8, 0x00 },
{ 824, 0x002E, 3, 3, 3, 2, 7, 22, 11, 0x00 },
{ 830, 0x002F, 10, 18, 15, -1, 9, 0, 0, 0x00 },
{ 920, 0x0030, 11, 14, 14, 1, 13, 0, 0, 0x00 },
{ 1004, 0x0031, 9, 14, 14, 2, 13, 0, 0, 0x00 },
{ 1074, 0x0032, 11, 14, 14, 1, 13, 0, 0, 0x00 },
{ 1158, 0x0033, 11, 14, 14, 1, 13, 0, 0, 0x00 },
{ 1242, 0x0034, 12, 14, 14, 0, 13, 0, 0, 0x00 },
{ 1326, 0x0035, 11, 14, 14, 1, 13, 0, 0, 0x00 },
{ 1410, 0x0036, 11, 14, 14, 1, 13, 0, 0, 0x00 },
{ 1494, 0x0037, 11, 14, 14, 1, 13, 0, 0, 0x00 },
{ 1578, 0x0038, 11, 14, 14, 1, 13, 0, 0, 0x00 },
{ 1662, 0x0039, 11, 14, 14, 1, 13, 0, 0, 0x00 },
{ 1746, 0x003A, 3, 11, 11, 3, 9, 33, 4, 0x00 },
{ 1768, 0x003B, 5, 15, 11, 2, 9, 37, 4, 0x00 },
{ 1813, 0x003C, 12, 12, 12, 2, 16, 0, 0, 0x00 },
{ 1885, 0x003D, 12, 6, 9, 2, 16, 0, 0, 0x00 },
{ 1921, 0x003E, 12, 12, 12, 2, 16, 0, 0, 0x00 },
{ 1993, 0x003F, 9, 14, 14, 1, 11, 41, 1, 0x00 },
{ 2063, 0x0040, 18, 17, 14, 1, 20, 0, 0, 0x00 },
{ 2216, 0x0041, 14, 14, 14, 0, 14, 42, 4, 0x00 },
{ 2314, 0x0042, 12, 14, 14, 1, 14, 0, 0, 0x00 },
{ 2398, 0x0043, 13, 14, 14, 1, 14, 0, 0, 0x00 },
{ 2496, 0x0044, 14, 14, 14, 1, 15, 0, 0, 0x00 },
{ 2594, 0x0045, 11, 14, 14, 1, 13, 0, 0, 0x00 },
{ 2678, 0x0046, 11, 14, 14, 1, 12, 0, 0, 0x00 },
{ 2762, 0x0047, 14, 14, 14, 1, 16, 0, 0, 0x00 },
{ 2860, 0x0048, 13, 14, 14, 1, 15, 0, 0, 0x00 },
{ 2958, 0x0049, 7, 14, 14, 1, 8, 0, 0, 0x00 },
{ 3014, 0x004A, 8, 14, 14, 0, 9, 46, 2, 0x00 },
{ 3070, 0x004B, 12, 14, 14, 2, 14, 0, 0, 0x00 },
{ 3154, 0x004C, 11, 14, 14, 1, 11, 0, 0, 0x00 },
{ 3238, 0x004D, 14, 14, 14, 1, 17, 0, 0, 0x00 },
{ 3336, 0x004E, 13, 14, 14, 1, 15, 0, 0, 0x00 },
{ 3434, 0x004F, 14, 14, 14, 1, 16, 0, 0, 0x00 },
{ 3532, 0x0050, 11, 14, 14, 1, 12, 0, 0, 0x00 },
{ 3616, 0x0051, 14, 18, 14, 1, 16, 0, 0, 0x00 },
{ 3742, 0x0052, 13, 14, 14, 1, 14, 0, 0, 0x00 },
{ 3840, 0x0053, 12, 14, 14, 1, 14, 0, 0, 0x00 },
{ 3924, 0x0054, 13, 14, 14, 0, 12, 48, 5, 0x00 },
{ 4022, 0x0055, 12, 14, 14, 1, 15, 0, 0, 0x00 },
{ 4106, 0x0056, 14, 14, 14, 0, 14, 53, 1, 0x00 },
{ 4204, 0x0057, 18, 14, 14, 1, 20, 54, 1, 0x00 },
{ 4330, 0x0058, 13, 14, 14, 0, 14, 55, 1, 0x00 },
{ 4428, 0x0059, 13, 14, 14, 0, 12, 56, 3, 0x00 },
{ 4526, 0x005A, 12, 14, 14, 1, 14, 0, 0, 0x00 },
{ 4610, 0x005B, 6, 19, 15, 2, 9, 0, 0, 0x00 },
{ 4667, 0x005C, 10, 18, 15, 0, 9, 59, 1, 0x00 },
{ 4757, 0x005D, 6, 19, 15, 1, 9, 60, 1, 0x00 },
{ 4814, 0x005E, 13, 8, 15, 2, 16, 0, 0, 0x00 },
{ 4870, 0x005F, 14, 2, 254, -1, 13, 0, 0, 0x60 },
{ 4884, 0x0060, 5, 4, 16, 3, 13, 0, 0, 0x00 },
{ 4896, 0x0061, 10, 11, 11, 1, 12, 61, 5, 0x00 },
{ 4951, 0x0062, 11, 15, 15, 1, 12, 0, 0, 0x00 },
{ 5041, 0x0063, 9, 11, 11, 1, 10, 66, 1, 0x00 },
{ 5096, 0x0064, 10, 15, 15, 1, 12, 67, 1, 0x00 },
{ 5171, 0x0065, 10, 11, 11, 1, 12, 68, 5, 0x00 },
{ 5226, 0x0066, 8, 15, 15, 0, 7, 0, 0, 0x00 },
{ 5286, 0x0067, 10, 15, 11, 1, 12, 73, 2, 0x00 },
{ 5361, 0x0068, 10, 15, 15, 1, 13, 0, 0, 0x00 },
{ 5436, 0x0069, 3, 14, 14, 1, 5, 0, 0, 0x00 },
{ 5464, 0x006A, 7, 18, 14, -1, 7, 0, 0, 0x00 },
{ 5536, 0x006B, 11, 15, 15, 1, 12, 0, 0, 0x00 },
{ 5626, 0x006C, 3, 15, 15, 1, 5, 0, 0, 0x00 },
{ 5656, 0x006D, 17, 11, 11, 1, 19, 75, 1, 0x00 },
{ 5755, 0x006E, 10, 11, 11, 1, 13, 76, 1, 0x00 },
{ 5810, 0x006F, 11, 11, 11, 1, 12, 77, 5, 0x00 },
{ 5876, 0x0070, 11, 15, 11, 1, 12, 82, 1, 0x00 },
{ 5966, 0x0071, 10, 15, 11, 1, 12, 83, 1, 0x00 },
{ 6041, 0x0072, 8, 11, 11, 1, 9, 84, 2, 0x00 },
{ 6085, 0x0073, 9, 11, 11, 1, 10, 86, 2, 0x00 },
{ 6140, 0x0074, 8, 14, 14, 0, 8, 0, 0, 0x00 },
{ 6196, 0x0075, 10, 11, 11, 1, 13, 88, 2, 0x00 },
{ 6251, 0x0076, 12, 11, 11, 0, 12, 90, 4, 0x00 },
{ 6317, 0x0077, 16, 11, 11, 0, 16, 94, 2, 0x00 },
{ 6405, 0x0078, 12, 11, 11, 0, 12, 0, 0, 0x00 },
{ 6471, 0x0079, 12, 15, 11, 0, 12, 96, 7, 0x00 },
{ 6561, 0x007A, 10, 11, 11, 0, 11, 103, 1, 0x00 },
{ 6616, 0x007B, 10, 19, 15, 1, 13, 0, 0, 0x00 },
{ 6711, 0x007C, 3, 19, 15, 3, 9, 0, 0, 0x00 },
{ 6749, 0x007D, 10, 19, 15, 1, 13, 104, 1, 0x00 },
{ 6844, 0x007E, 14, 5, 9, 1, 16, 0, 0, 0x00 }
}; };
// verdana_20_4bpp // verdana_20_4bpp
@ -22,6 +116,6 @@ touchgfx::GeneratedFont& getFont_verdana_20_4bpp();
touchgfx::GeneratedFont& getFont_verdana_20_4bpp() touchgfx::GeneratedFont& getFont_verdana_20_4bpp()
{ {
static touchgfx::GeneratedFont verdana_20_4bpp(glyphs_verdana_20_4bpp, 1, 20, 20, 0, 0, 4, 1, 0, 0, unicodes_verdana_20_4bpp, kerning_verdana_20_4bpp, 63, 0, 0, 0); static touchgfx::GeneratedFont verdana_20_4bpp(glyphs_verdana_20_4bpp, 95, 24, 20, 0, 0, 4, 1, 1, 1, unicodes_verdana_20_4bpp, kerning_verdana_20_4bpp, 63, 0, 0, 0);
return verdana_20_4bpp; return verdana_20_4bpp;
} }

View File

@ -24,7 +24,7 @@ DriverViewFieldBase::DriverViewFieldBase()
value.setPosition(0, 20, 160, 57); value.setPosition(0, 20, 160, 57);
value.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255)); value.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
value.setLinespacing(0); value.setLinespacing(0);
value.setTypedText(touchgfx::TypedText(T___SINGLEUSE_K26P)); value.setTypedText(touchgfx::TypedText(T_NUMBERWILDCARD));
add(value); add(value);
} }

View File

@ -1 +1 @@
{"remap":"yes","language":"GB","language_index":0,"indices":[["169","T_FIELD_TSCURRENT"],["164","T_FIELD_MINCELLVOLT"],["152","T_FIELD_SPEED"],["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_K26P"],["146","T___SINGLEUSE_0FBJ"],["173","T___SINGLEUSE_4OBM"],["170","T___SINGLEUSE_PHFD"],["158","T___SINGLEUSE_H6UX"],["136","T___SINGLEUSE_20H3"],["17","T___SINGLEUSE_SDGP"],["51","T___SINGLEUSE_M5X7"],["0","T___SINGLEUSE_6GPV"]]} {"remap":"yes","language":"GB","language_index":0,"indices":[["252","T_FIELD_BBAL"],["209","T_FIELD_TSVOLTVEH"],["202","T_FIELD_TSVOLTBAT"],["228","T_FIELD_LVSOC"],["246","T_FIELD_TSSOC"],["262","T_FIELD_MAXCELLTEMP"],["267","T_FIELD_TIREFL"],["272","T_FIELD_TIREFR"],["277","T_FIELD_TIRERL"],["282","T_FIELD_TIRERR"],["257","T_FIELD_LAPCOUNT"],["146","T_FIELD_INICHKSTATE"],["216","T_FIELD_ERR"],["296","T_FIELD_SDC"],["162","T_FIELD_INVRREADY"],["154","T_FIELD_INVLREADY"],["178","T_FIELD_R2DPROGRESS"],["170","T_FIELD_ACTIVEMISSION"],["138","T_FIELD_ASSTATE"],["194","T_FIELD_TSSTATE"],["136","T_NUMBERWILDCARD"],["136","T_DEFAULTWILDCARD"],["292","T_FIELD_TSCURRENT"],["287","T_FIELD_MINCELLVOLT"],["234","T_FIELD_SPEED"],["95","T_INSPECTION_HUGE"],["127","T_EBS_HUGE"],["106","T_TRACKDRIVE_HUGE"],["117","T_AUTOX_HUGE"],["186","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"],["186","T_SKIDPAD"],["82","T_ACCEL"],["222","T___SINGLEUSE_0FBJ"],["300","T___SINGLEUSE_4OBM"],["293","T___SINGLEUSE_PHFD"],["240","T___SINGLEUSE_H6UX"],["136","T___SINGLEUSE_20H3"],["17","T___SINGLEUSE_SDGP"],["51","T___SINGLEUSE_M5X7"],["0","T___SINGLEUSE_6GPV"]]}

View File

@ -1 +1 @@
{"languages":["GB"],"textids":["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_K26P","T___SINGLEUSE_0FBJ","T___SINGLEUSE_4OBM","T___SINGLEUSE_PHFD","T___SINGLEUSE_H6UX","T___SINGLEUSE_20H3","T___SINGLEUSE_SDGP","T___SINGLEUSE_M5X7","T___SINGLEUSE_6GPV"]} {"languages":["GB"],"textids":["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","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_0FBJ","T___SINGLEUSE_4OBM","T___SINGLEUSE_PHFD","T___SINGLEUSE_H6UX","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,2,0,83,107,105,100,112,97,100,0,70,73,69,76,68,0,83,80,69,69,68,0,84,73,82,69,83,0,86,77,73,78,0,73,84,83,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,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,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,84,83,86,66,65,84,0,84,83,86,86,69,72,0,69,82,82,79,82,0,70,73,69,76,68,0,76,86,83,79,67,0,83,80,69,69,68,0,84,73,82,69,83,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,73,84,83,0,83,68,67,0,76,86,0]}

View File

@ -1 +1 @@
{"databases":{"DEFAULT":[[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"],[4,"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"} {"databases":{"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"],[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"],[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"],[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

@ -12,6 +12,28 @@ enum LANGUAGES
enum TEXTS enum TEXTS
{ {
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,
T_FIELD_TSCURRENT, T_FIELD_TSCURRENT,
T_FIELD_MINCELLVOLT, T_FIELD_MINCELLVOLT,
T_FIELD_SPEED, T_FIELD_SPEED,
@ -29,7 +51,6 @@ enum TEXTS
T_AUTOX, T_AUTOX,
T_SKIDPAD, T_SKIDPAD,
T_ACCEL, T_ACCEL,
T___SINGLEUSE_K26P,
T___SINGLEUSE_0FBJ, T___SINGLEUSE_0FBJ,
T___SINGLEUSE_4OBM, T___SINGLEUSE_4OBM,
T___SINGLEUSE_PHFD, T___SINGLEUSE_PHFD,

View File

@ -10,14 +10,36 @@ 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 = {
169, // T_FIELD_TSCURRENT: "ITS" 252, // T_FIELD_BBAL: "BBAL"
164, // T_FIELD_MINCELLVOLT: "VMIN" 209, // T_FIELD_TSVOLTVEH: "TSVVEH"
152, // T_FIELD_SPEED: "SPEED" 202, // T_FIELD_TSVOLTBAT: "TSVBAT"
228, // T_FIELD_LVSOC: "LVSOC"
246, // T_FIELD_TSSOC: "TSSOC"
262, // T_FIELD_MAXCELLTEMP: "TMAX"
267, // T_FIELD_TIREFL: "TTFL"
272, // T_FIELD_TIREFR: "TTFR"
277, // T_FIELD_TIRERL: "TTRL"
282, // T_FIELD_TIRERR: "TTRR"
257, // T_FIELD_LAPCOUNT: "LAPS"
146, // T_FIELD_INICHKSTATE: "ICSTATE"
216, // T_FIELD_ERR: "ERROR"
296, // T_FIELD_SDC: "SDC"
162, // T_FIELD_INVRREADY: "INVRRDY"
154, // T_FIELD_INVLREADY: "INVLRDY"
178, // T_FIELD_R2DPROGRESS: "R2DPROG"
170, // T_FIELD_ACTIVEMISSION: "MISSION"
138, // T_FIELD_ASSTATE: "ASSTATE"
194, // T_FIELD_TSSTATE: "TSSTATE"
136, // T_NUMBERWILDCARD: "<>"
136, // T_DEFAULTWILDCARD: "<>"
292, // T_FIELD_TSCURRENT: "ITS"
287, // T_FIELD_MINCELLVOLT: "VMIN"
234, // T_FIELD_SPEED: "SPEED"
95, // T_INSPECTION_HUGE: "Inspection" 95, // T_INSPECTION_HUGE: "Inspection"
127, // T_EBS_HUGE: "EBS Test" 127, // T_EBS_HUGE: "EBS Test"
106, // T_TRACKDRIVE_HUGE: "Trackdrive" 106, // T_TRACKDRIVE_HUGE: "Trackdrive"
117, // T_AUTOX_HUGE: "Autocross" 117, // T_AUTOX_HUGE: "Autocross"
138, // T_SKIDPAD_HUGE: "Skidpad" 186, // T_SKIDPAD_HUGE: "Skidpad"
82, // T_ACCEL_HUGE: "Acceleration" 82, // T_ACCEL_HUGE: "Acceleration"
34, // T_INVALID_HUGE: "Invalid Mission!" 34, // T_INVALID_HUGE: "Invalid Mission!"
67, // T_MANUAL: "Manual Driving" 67, // T_MANUAL: "Manual Driving"
@ -25,13 +47,12 @@ KEEP extern const uint32_t indicesGb[] TEXT_LOCATION_FLASH_ATTRIBUTE = {
127, // T_EBS: "EBS Test" 127, // T_EBS: "EBS Test"
106, // T_TRACKDRIVE: "Trackdrive" 106, // T_TRACKDRIVE: "Trackdrive"
117, // T_AUTOX: "Autocross" 117, // T_AUTOX: "Autocross"
138, // T_SKIDPAD: "Skidpad" 186, // T_SKIDPAD: "Skidpad"
82, // T_ACCEL: "Acceleration" 82, // T_ACCEL: "Acceleration"
136, // T___SINGLEUSE_K26P: "<>" 222, // T___SINGLEUSE_0FBJ: "FIELD"
146, // T___SINGLEUSE_0FBJ: "FIELD" 300, // T___SINGLEUSE_4OBM: "LV"
173, // T___SINGLEUSE_4OBM: "LV" 293, // T___SINGLEUSE_PHFD: "TS"
170, // T___SINGLEUSE_PHFD: "TS" 240, // T___SINGLEUSE_H6UX: "TIRES"
158, // T___SINGLEUSE_H6UX: "TIRES"
136, // T___SINGLEUSE_20H3: "<>" 136, // T___SINGLEUSE_20H3: "<>"
17, // T___SINGLEUSE_SDGP: "Current Mission:" 17, // T___SINGLEUSE_SDGP: "Current Mission:"
51, // T___SINGLEUSE_M5X7: "Invalid Mission" 51, // T___SINGLEUSE_M5X7: "Invalid Mission"

View File

@ -71,13 +71,33 @@ KEEP extern const touchgfx::Unicode::UnicodeChar texts_all_languages[] TEXT_LOCA
0x41, 0x75, 0x74, 0x6f, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x0, // @117 "Autocross" 0x41, 0x75, 0x74, 0x6f, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x0, // @117 "Autocross"
0x45, 0x42, 0x53, 0x20, 0x54, 0x65, 0x73, 0x74, 0x0, // @127 "EBS Test" 0x45, 0x42, 0x53, 0x20, 0x54, 0x65, 0x73, 0x74, 0x0, // @127 "EBS Test"
0x2, 0x0, // @136 "<>" 0x2, 0x0, // @136 "<>"
0x53, 0x6b, 0x69, 0x64, 0x70, 0x61, 0x64, 0x0, // @138 "Skidpad" 0x41, 0x53, 0x53, 0x54, 0x41, 0x54, 0x45, 0x0, // @138 "ASSTATE"
0x46, 0x49, 0x45, 0x4c, 0x44, 0x0, // @146 "FIELD" 0x49, 0x43, 0x53, 0x54, 0x41, 0x54, 0x45, 0x0, // @146 "ICSTATE"
0x53, 0x50, 0x45, 0x45, 0x44, 0x0, // @152 "SPEED" 0x49, 0x4e, 0x56, 0x4c, 0x52, 0x44, 0x59, 0x0, // @154 "INVLRDY"
0x54, 0x49, 0x52, 0x45, 0x53, 0x0, // @158 "TIRES" 0x49, 0x4e, 0x56, 0x52, 0x52, 0x44, 0x59, 0x0, // @162 "INVRRDY"
0x56, 0x4d, 0x49, 0x4e, 0x0, // @164 "VMIN" 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x0, // @170 "MISSION"
0x49, 0x54, 0x53, 0x0, // @169 "ITS" 0x52, 0x32, 0x44, 0x50, 0x52, 0x4f, 0x47, 0x0, // @178 "R2DPROG"
0x4c, 0x56, 0x0 // @173 "LV" 0x53, 0x6b, 0x69, 0x64, 0x70, 0x61, 0x64, 0x0, // @186 "Skidpad"
0x54, 0x53, 0x53, 0x54, 0x41, 0x54, 0x45, 0x0, // @194 "TSSTATE"
0x54, 0x53, 0x56, 0x42, 0x41, 0x54, 0x0, // @202 "TSVBAT"
0x54, 0x53, 0x56, 0x56, 0x45, 0x48, 0x0, // @209 "TSVVEH"
0x45, 0x52, 0x52, 0x4f, 0x52, 0x0, // @216 "ERROR"
0x46, 0x49, 0x45, 0x4c, 0x44, 0x0, // @222 "FIELD"
0x4c, 0x56, 0x53, 0x4f, 0x43, 0x0, // @228 "LVSOC"
0x53, 0x50, 0x45, 0x45, 0x44, 0x0, // @234 "SPEED"
0x54, 0x49, 0x52, 0x45, 0x53, 0x0, // @240 "TIRES"
0x54, 0x53, 0x53, 0x4f, 0x43, 0x0, // @246 "TSSOC"
0x42, 0x42, 0x41, 0x4c, 0x0, // @252 "BBAL"
0x4c, 0x41, 0x50, 0x53, 0x0, // @257 "LAPS"
0x54, 0x4d, 0x41, 0x58, 0x0, // @262 "TMAX"
0x54, 0x54, 0x46, 0x4c, 0x0, // @267 "TTFL"
0x54, 0x54, 0x46, 0x52, 0x0, // @272 "TTFR"
0x54, 0x54, 0x52, 0x4c, 0x0, // @277 "TTRL"
0x54, 0x54, 0x52, 0x52, 0x0, // @282 "TTRR"
0x56, 0x4d, 0x49, 0x4e, 0x0, // @287 "VMIN"
0x49, 0x54, 0x53, 0x0, // @292 "ITS"
0x53, 0x44, 0x43, 0x0, // @296 "SDC"
0x4c, 0x56, 0x0 // @300 "LV"
}; };
TEXT_LOCATION_FLASH_PRAGMA TEXT_LOCATION_FLASH_PRAGMA

View File

@ -27,13 +27,16 @@ const touchgfx::TypedText::TypedTextData typedText_database_DEFAULT[] TEXT_LOCAT
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR }, { 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR }, { 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR }, { 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 3, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR }, { 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 3, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR }, { 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 3, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR }, { 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 3, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR }, { 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 3, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR }, { 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 3, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR }, { 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 3, 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 }, { 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 },
@ -42,6 +45,24 @@ 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 },
{ 0, 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 },
{ 3, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 3, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 3, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 3, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 3, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 3, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 3, 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 },
{ 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 },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR }, { 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },

View File

@ -0,0 +1,36 @@
#ifndef DATAFIELD_HPP
#define DATAFIELD_HPP
#include "touchgfx/TypedText.hpp"
#include <stddef.h>
#include <stdint.h>
// We want to automatically count the number of data field types for the
// description array. This is wacky preprocessor magic that allows us to do just
// that. Unfortunately, it doesn't work with enum classes, so we have to use
// C-style enums.
#define CountedEnum(NAME, TYPE, ...) \
enum NAME : TYPE { __VA_ARGS__ }; \
constexpr size_t NAME##_COUNT = sizeof((int[]){__VA_ARGS__}) / sizeof(int);
CountedEnum(DataFieldType, size_t, DF_TSState, DF_ASState, DF_ActiveMission,
DF_R2DProgress, DF_INVLReady, DF_INVRReady, DF_SDC, DF_ERR,
DF_IniChkState, DF_LapCount, DF_TireTempFL, DF_TireTempFR,
DF_TireTempRL, DF_TireTempRR, DF_MinCellVolt, DF_MaxCellTemp,
DF_TSSoC, DF_LVSoC, DF_TSCurrent, DF_TSVoltageBat, DF_TSVoltageVeh,
DF_Speed, DF_BBal);
enum class DataFieldKind { Numeric, Bool, Text };
struct DataFieldDescription {
DataFieldKind kind;
touchgfx::TypedText title;
size_t int_digits;
size_t decimal_digits;
void* (*getValue)(void);
};
extern DataFieldDescription dataFieldDescs[];
#endif // DATAFIELD_HPP

View File

@ -5,6 +5,8 @@
#include "touchgfx/Unicode.hpp" #include "touchgfx/Unicode.hpp"
#include <gui_generated/containers/DriverViewFieldBase.hpp> #include <gui_generated/containers/DriverViewFieldBase.hpp>
#include "gui/common/DataField.hpp"
class DriverViewField : public DriverViewFieldBase { class DriverViewField : public DriverViewFieldBase {
public: public:
DriverViewField(); DriverViewField();
@ -12,16 +14,20 @@ public:
virtual void initialize(); virtual void initialize();
void setName(const touchgfx::TypedText &text); void setType(const DataFieldDescription &desc);
void setValue(float newValue); void setValue(float newValue);
void setPrecision(size_t intDigits, size_t decimalDigits); void setValue(const char *str);
void setValue(int boolValue);
protected: protected:
private: private:
Unicode::UnicodeChar valueBuffer[16]; Unicode::UnicodeChar valueBuffer[16];
DataFieldKind fieldKind;
size_t intDigits; size_t intDigits;
size_t decimalDigits; size_t decimalDigits;
float fieldValue; float floatValue;
int boolValue;
void updateValueBuffer(); void updateValueBuffer();
}; };

View File

@ -4,6 +4,8 @@
#include <gui/model/ModelListener.hpp> #include <gui/model/ModelListener.hpp>
#include <mvp/Presenter.hpp> #include <mvp/Presenter.hpp>
#include "gui/common/DataField.hpp"
using namespace touchgfx; using namespace touchgfx;
class DriverViewView; class DriverViewView;
@ -33,6 +35,8 @@ private:
DriverViewPresenter(); DriverViewPresenter();
DriverViewView &view; DriverViewView &view;
DataFieldType fields[3];
}; };
#endif // DRIVERVIEWPRESENTER_HPP #endif // DRIVERVIEWPRESENTER_HPP

View File

@ -1,6 +1,7 @@
#ifndef DRIVERVIEWVIEW_HPP #ifndef DRIVERVIEWVIEW_HPP
#define DRIVERVIEWVIEW_HPP #define DRIVERVIEWVIEW_HPP
#include "gui/common/DataField.hpp"
#include "vehicle.h" #include "vehicle.h"
#include <gui/driverview_screen/DriverViewPresenter.hpp> #include <gui/driverview_screen/DriverViewPresenter.hpp>
#include <gui_generated/driverview_screen/DriverViewViewBase.hpp> #include <gui_generated/driverview_screen/DriverViewViewBase.hpp>
@ -12,11 +13,17 @@ public:
virtual void setupScreen(); virtual void setupScreen();
virtual void tearDownScreen(); virtual void tearDownScreen();
void setFieldType(size_t i, const DataFieldDescription &desc);
void setFieldValue(size_t i, float value);
void setFieldValue(size_t i, const char *value);
void setFieldValue(size_t i, int value);
void setTireTemps(const TireTemps &temps); void setTireTemps(const TireTemps &temps);
void setTSSoC(uint8_t soc); void setTSSoC(uint8_t soc);
void setMinCellVolt(float v);
protected: protected:
private:
DriverViewField &getField(size_t i);
}; };
#endif // DRIVERVIEWVIEW_HPP #endif // DRIVERVIEWVIEW_HPP

View File

@ -0,0 +1,110 @@
#include "gui/common/DataField.hpp"
#include "texts/TextKeysAndLanguages.hpp"
#include "vehicle.h"
#define VEH_FIELD(FIELD) []() { return (void *)&vehicle_state.FIELD; }
#define VEH_BIT_FIELD(FIELD) \
[]() { \
static int x; \
x = vehicle_state.FIELD; \
return (void *)&x; \
}
void *get_sdc_text() {
if (vehicle_state.errors.sdc_bfl) {
return (void *)"BFL";
} else if (vehicle_state.errors.sdc_brl) {
return (void *)"BRL";
} else if (vehicle_state.errors.sdc_acc) {
return (void *)"ACC";
} else if (vehicle_state.errors.sdc_hvb) {
return (void *)"HVB";
} else {
return (void *)"CLOSED";
}
}
void *get_err_text() {
if (vehicle_state.errors.err_sdc) {
return (void *)"SDC";
} else if (vehicle_state.errors.err_ams) {
return (void *)"AMS";
} else if (vehicle_state.errors.err_pdu) {
return (void *)"PDU";
} else if (vehicle_state.errors.err_ini_chk) {
return (void *)"IniChk";
} else if (vehicle_state.errors.err_con_mon) {
return (void *)"ConMon";
} else if (vehicle_state.errors.err_scs) {
return (void *)"SCS";
} else if (vehicle_state.errors.err_sbspd) {
return (void *)"sBSPD";
} else if (vehicle_state.errors.err_appsp) {
return (void *)"APPSp";
} else if (vehicle_state.errors.err_as) {
return (void *)"AS";
} else if (vehicle_state.errors.err_ros) {
return (void *)"ROS";
} else if (vehicle_state.errors.err_res) {
return (void *)"RES";
} else if (vehicle_state.errors.err_invl) {
return (void *)"INVL";
} else if (vehicle_state.errors.err_invr) {
return (void *)"INVR";
} else {
return (void *)"NONE";
}
}
void *get_zero() {
static float zero = 0.0f;
return &zero;
}
DataFieldDescription dataFieldDescs[] = {
[DF_TSState] = {DataFieldKind::Numeric, T_FIELD_TSSTATE, 1, 0,
VEH_FIELD(ts_state)},
[DF_ASState] = {DataFieldKind::Numeric, T_FIELD_ASSTATE, 1, 0,
VEH_FIELD(as_state)},
[DF_ActiveMission] = {DataFieldKind::Numeric, T_FIELD_ACTIVEMISSION, 1, 0,
VEH_FIELD(active_mission)},
[DF_R2DProgress] = {DataFieldKind::Numeric, T_FIELD_R2DPROGRESS, 1, 0,
VEH_FIELD(r2d_progress)},
[DF_INVLReady] = {DataFieldKind::Bool, T_FIELD_INVLREADY, 0, 0,
VEH_BIT_FIELD(errors.invl_ready)},
[DF_INVRReady] = {DataFieldKind::Bool, T_FIELD_INVRREADY, 0, 0,
VEH_BIT_FIELD(errors.invr_ready)},
[DF_SDC] = {DataFieldKind::Text, T_FIELD_SDC, 0, 0, get_sdc_text},
[DF_ERR] = {DataFieldKind::Text, T_FIELD_ERR, 0, 0, get_err_text},
[DF_IniChkState] = {DataFieldKind::Numeric, T_FIELD_INICHKSTATE, 1, 0,
VEH_FIELD(ini_chk_state)},
[DF_LapCount] = {DataFieldKind::Numeric, T_FIELD_LAPCOUNT, 3, 0,
VEH_FIELD(lap_count)},
[DF_TireTempFL] = {DataFieldKind::Numeric, T_FIELD_TIREFL, 2, 1,
VEH_FIELD(tire_temps.fl)},
[DF_TireTempFR] = {DataFieldKind::Numeric, T_FIELD_TIREFR, 2, 1,
VEH_FIELD(tire_temps.fr)},
[DF_TireTempRL] = {DataFieldKind::Numeric, T_FIELD_TIRERL, 2, 1,
VEH_FIELD(tire_temps.rl)},
[DF_TireTempRR] = {DataFieldKind::Numeric, T_FIELD_TIRERR, 2, 1,
VEH_FIELD(tire_temps.rr)},
[DF_MinCellVolt] = {DataFieldKind::Numeric, T_FIELD_MINCELLVOLT, 1, 2,
VEH_FIELD(min_cell_volt)},
[DF_MaxCellTemp] = {DataFieldKind::Numeric, T_FIELD_MAXCELLTEMP, 2, 1,
VEH_FIELD(max_cell_temp)},
[DF_TSSoC] = {DataFieldKind::Numeric, T_FIELD_TSSOC, 3, 0, VEH_FIELD(soc)},
[DF_LVSoC] = {DataFieldKind::Numeric, T_FIELD_LVSOC, 3, 0, get_zero},
[DF_TSCurrent] = {DataFieldKind::Numeric, T_FIELD_TSCURRENT, 3, 0,
VEH_FIELD(ts_current)},
[DF_TSVoltageBat] = {DataFieldKind::Numeric, T_FIELD_TSVOLTBAT, 3, 1,
VEH_FIELD(ts_voltage_bat)},
[DF_TSVoltageVeh] = {DataFieldKind::Numeric, T_FIELD_TSVOLTVEH, 3, 1,
VEH_FIELD(ts_voltage_veh)},
[DF_Speed] = {DataFieldKind::Numeric, T_FIELD_SPEED, 3, 0, get_zero},
[DF_BBal] = {DataFieldKind::Numeric, T_FIELD_BBAL, 3, 1, get_zero},
};
static_assert(sizeof(dataFieldDescs) / sizeof(dataFieldDescs[0]) ==
DataFieldType_COUNT,
"Incorrect number of data field descriptions");

View File

@ -1,35 +1,72 @@
#include "gui/common/DataField.hpp"
#include "texts/TextKeysAndLanguages.hpp"
#include "touchgfx/Unicode.hpp" #include "touchgfx/Unicode.hpp"
#include <gui/containers/DriverViewField.hpp> #include <gui/containers/DriverViewField.hpp>
DriverViewField::DriverViewField() DriverViewField::DriverViewField()
: intDigits{0}, decimalDigits{0}, fieldValue{0} {} : intDigits{0}, decimalDigits{0}, floatValue{0}, boolValue{0} {}
void DriverViewField::initialize() { DriverViewFieldBase::initialize(); } void DriverViewField::initialize() { DriverViewFieldBase::initialize(); }
void DriverViewField::setName(const touchgfx::TypedText &text) { void DriverViewField::setType(const DataFieldDescription &desc) {
title.setTypedText(text); title.setTypedText(desc.title);
title.invalidate(); title.invalidate();
fieldKind = desc.kind;
switch (desc.kind) {
case DataFieldKind::Numeric:
value.setTypedText(T_NUMBERWILDCARD);
break;
case DataFieldKind::Bool:
case DataFieldKind::Text:
value.setTypedText(T_DEFAULTWILDCARD);
break;
} }
intDigits = desc.int_digits;
void DriverViewField::setValue(float newValue) { decimalDigits = desc.decimal_digits;
fieldValue = newValue;
updateValueBuffer(); updateValueBuffer();
} }
void DriverViewField::setPrecision(size_t intDigits, size_t decimalDigits) { void DriverViewField::setValue(float newValue) {
this->intDigits = intDigits; floatValue = newValue;
this->decimalDigits = decimalDigits; updateValueBuffer();
}
void DriverViewField::setValue(const char *str) {
Unicode::strncpy(valueBuffer, str,
sizeof(valueBuffer) / sizeof(Unicode::UnicodeChar));
value.setWildcard(valueBuffer);
value.invalidate();
}
void DriverViewField::setValue(int boolValue) {
this->boolValue = boolValue;
updateValueBuffer(); updateValueBuffer();
} }
void DriverViewField::updateValueBuffer() { void DriverViewField::updateValueBuffer() {
switch (fieldKind) {
case DataFieldKind::Numeric: {
size_t width = intDigits; size_t width = intDigits;
if (decimalDigits != 0) { if (decimalDigits != 0) {
width += decimalDigits + 1; // 1 digit for the decimal point width += decimalDigits + 1; // 1 digit for the decimal point
} }
float params[3] = {(float)width, (float)decimalDigits, fieldValue}; float params[3] = {(float)width, (float)decimalDigits, floatValue};
Unicode::snprintfFloats(valueBuffer, Unicode::snprintfFloats(valueBuffer,
sizeof(valueBuffer) / sizeof(Unicode::UnicodeChar), sizeof(valueBuffer) / sizeof(Unicode::UnicodeChar),
"%*.*f", params); "%*.*f", params);
value.setWildcard(valueBuffer); value.setWildcard(valueBuffer);
break;
}
case DataFieldKind::Bool: {
const char *str = boolValue ? "YES" : "NO";
Unicode::strncpy(valueBuffer, str,
sizeof(valueBuffer) / sizeof(valueBuffer[0]));
value.setWildcard(valueBuffer);
break;
}
case DataFieldKind::Text:
// This is updated directly in setValue()
break;
}
value.invalidate();
} }

View File

@ -1,15 +1,37 @@
#include <gui/driverview_screen/DriverViewPresenter.hpp> #include <gui/driverview_screen/DriverViewPresenter.hpp>
#include <gui/driverview_screen/DriverViewView.hpp> #include <gui/driverview_screen/DriverViewView.hpp>
#include "gui/common/DataField.hpp"
#include "vehicle.h" #include "vehicle.h"
DriverViewPresenter::DriverViewPresenter(DriverViewView &v) : view(v) {} DriverViewPresenter::DriverViewPresenter(DriverViewView &v)
: view(v), fields{DF_MinCellVolt, DF_Speed, DF_TSCurrent} {}
void DriverViewPresenter::activate() {} void DriverViewPresenter::activate() {
for (size_t i = 0; i < 3; i++) {
view.setFieldType(i, dataFieldDescs[fields[i]]);
}
}
void DriverViewPresenter::deactivate() {} void DriverViewPresenter::deactivate() {}
void DriverViewPresenter::vehicleStateUpdated() { void DriverViewPresenter::vehicleStateUpdated() {
view.setTireTemps(vehicle_state.tire_temps);
view.setTSSoC(vehicle_state.soc); view.setTSSoC(vehicle_state.soc);
view.setMinCellVolt(vehicle_state.min_cell_volt);
for (size_t i = 0; i < 3; i++) {
DataFieldType field = fields[i];
void *val = dataFieldDescs[field].getValue();
switch (dataFieldDescs[field].kind) {
case DataFieldKind::Numeric:
view.setFieldValue(i, *((float *)val));
break;
case DataFieldKind::Bool:
view.setFieldValue(i, *((int *)val));
break;
case DataFieldKind::Text:
view.setFieldValue(i, (const char *)val);
break;
}
}
} }

View File

@ -1,3 +1,4 @@
#include "gui/common/DataField.hpp"
#include "texts/TextKeysAndLanguages.hpp" #include "texts/TextKeysAndLanguages.hpp"
#include <gui/driverview_screen/DriverViewView.hpp> #include <gui/driverview_screen/DriverViewView.hpp>
@ -5,19 +6,29 @@ DriverViewView::DriverViewView() {}
void DriverViewView::setupScreen() { void DriverViewView::setupScreen() {
DriverViewViewBase::setupScreen(); DriverViewViewBase::setupScreen();
field1.setName(T_FIELD_MINCELLVOLT); field1.setType(dataFieldDescs[DF_MinCellVolt]);
field1.setValue(3.21); field2.setType(dataFieldDescs[DF_Speed]);
field1.setPrecision(1, 2); field3.setType(dataFieldDescs[DF_TSCurrent]);
field2.setName(T_FIELD_SPEED);
field2.setValue(42.0);
field2.setPrecision(3, 0);
field3.setName(T_FIELD_TSCURRENT);
field3.setValue(131.0);
field3.setPrecision(3, 0);
} }
void DriverViewView::tearDownScreen() { DriverViewViewBase::tearDownScreen(); } void DriverViewView::tearDownScreen() { DriverViewViewBase::tearDownScreen(); }
void DriverViewView::setFieldType(size_t i, const DataFieldDescription &desc) {
getField(i).setType(desc);
}
void DriverViewView::setFieldValue(size_t i, float value) {
getField(i).setValue(value);
}
void DriverViewView::setFieldValue(size_t i, const char *value) {
getField(i).setValue(value);
}
void DriverViewView::setFieldValue(size_t i, int value) {
getField(i).setValue(value);
}
void DriverViewView::setTireTemps(const TireTemps &temps) { void DriverViewView::setTireTemps(const TireTemps &temps) {
tireTempFL.setTemp(temps.fl); tireTempFL.setTemp(temps.fl);
tireTempFR.setTemp(temps.fr); tireTempFR.setTemp(temps.fr);
@ -30,7 +41,13 @@ void DriverViewView::setTSSoC(uint8_t soc) {
tsSoC.invalidate(); tsSoC.invalidate();
} }
void DriverViewView::setMinCellVolt(float v) { DriverViewField &DriverViewView::getField(size_t i) {
field1.setValue(v); switch (i) {
field1.invalidate(); case 0:
return field1;
case 1:
return field2;
default:
return field3;
}
} }

View File

@ -36,6 +36,7 @@
<ClCompile Include="..\..\generated\gui_generated\src\containers\TireTempBase.cpp"/> <ClCompile Include="..\..\generated\gui_generated\src\containers\TireTempBase.cpp"/>
<ClCompile Include="..\..\gui\src\containers\DriverViewField.cpp"/> <ClCompile Include="..\..\gui\src\containers\DriverViewField.cpp"/>
<ClCompile Include="..\..\generated\gui_generated\src\containers\DriverViewFieldBase.cpp"/> <ClCompile Include="..\..\generated\gui_generated\src\containers\DriverViewFieldBase.cpp"/>
<ClCompile Include="..\..\gui\src\common\DataField.cpp"/>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Include="$(ApplicationRoot)\assets\texts\texts.xml"/> <None Include="$(ApplicationRoot)\assets\texts\texts.xml"/>
@ -201,6 +202,7 @@
<ClInclude Include="..\..\generated\gui_generated\include\gui_generated\containers\TireTempBase.hpp"/> <ClInclude Include="..\..\generated\gui_generated\include\gui_generated\containers\TireTempBase.hpp"/>
<ClInclude Include="..\..\gui\include\gui\containers\DriverViewField.hpp"/> <ClInclude Include="..\..\gui\include\gui\containers\DriverViewField.hpp"/>
<ClInclude Include="..\..\generated\gui_generated\include\gui_generated\containers\DriverViewFieldBase.hpp"/> <ClInclude Include="..\..\generated\gui_generated\include\gui_generated\containers\DriverViewFieldBase.hpp"/>
<ClInclude Include="..\..\gui\include\gui\common\DataField.hpp"/>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ResourceCompile Include="$(ApplicationRoot)\generated\simulator\touchgfx.rc"/> <ResourceCompile Include="$(ApplicationRoot)\generated\simulator\touchgfx.rc"/>

View File

@ -297,6 +297,9 @@
<ClCompile Include="..\..\generated\gui_generated\src\containers\DriverViewFieldBase.cpp"> <ClCompile Include="..\..\generated\gui_generated\src\containers\DriverViewFieldBase.cpp">
<Filter>Source Files\generated\gui_generated\containers</Filter> <Filter>Source Files\generated\gui_generated\containers</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\gui\src\common\DataField.cpp">
<Filter>Source Files\gui\common</Filter>
</ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Include="$(ApplicationRoot)\assets\texts\texts.xml"> <None Include="$(ApplicationRoot)\assets\texts\texts.xml">
@ -784,6 +787,9 @@
<ClInclude Include="..\..\generated\gui_generated\include\gui_generated\containers\DriverViewFieldBase.hpp"> <ClInclude Include="..\..\generated\gui_generated\include\gui_generated\containers\DriverViewFieldBase.hpp">
<Filter>Header Files\generated\gui_generated\containers</Filter> <Filter>Header Files\generated\gui_generated\containers</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\..\gui\include\gui\common\DataField.hpp">
<Filter>Header Files\gui\common</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ResourceCompile Include="$(ApplicationRoot)\generated\simulator\touchgfx.rc"> <ResourceCompile Include="$(ApplicationRoot)\generated\simulator\touchgfx.rc">

View File

@ -526,7 +526,7 @@
"Y": 20, "Y": 20,
"Width": 160, "Width": 160,
"Height": 57, "Height": 57,
"TextId": "__SingleUse_K26P", "TextId": "NumberWildcard",
"TextRotation": "0", "TextRotation": "0",
"Color": { "Color": {
"Red": 255, "Red": 255,