From ff37c8503dba3d57cf0e021596040a961da65940 Mon Sep 17 00:00:00 2001 From: "Jasper v. Blanckenburg" Date: Tue, 21 Mar 2023 18:37:50 +0100 Subject: [PATCH] Add debug view --- STM32Make.make | 7 + TouchGFX/assets/texts/texts.xml | 21 +- .../fonts/UnicodeListCHINN____20_4.txt | 29 +- .../cache/Font_CHINN____20_4bppCpp.cache | 27 ++ .../fonts/src/Font_CHINN____20_4bpp_0.cpp | 252 ++++++++++++- .../fonts/src/Table_CHINN____20_4bpp.cpp | 105 ++++-- .../common/FrontendApplicationBase.hpp | 14 +- .../gui_generated/common/FrontendHeapBase.hpp | 10 +- .../containers/DebugViewItemBase.hpp | 33 ++ .../containers/DebugViewLineBase.hpp | 41 ++ .../containers/DriverViewFieldBase.hpp | 3 +- .../DriverViewFieldSelectionBase.hpp | 4 +- .../debugview_screen/DebugViewViewBase.hpp | 62 +++ .../src/common/FrontendApplicationBase.cpp | 28 ++ .../src/containers/DebugViewItemBase.cpp | 33 ++ .../src/containers/DebugViewLineBase.cpp | 49 +++ .../src/containers/DriverViewFieldBase.cpp | 2 +- .../DriverViewFieldSelectionBase.cpp | 2 +- .../debugview_screen/DebugViewViewBase.cpp | 62 +++ .../MissionSelectViewBase.cpp | 9 + .../texts/cache/LanguageCpp_Gb.cache | 2 +- .../texts/cache/TextKeysAndLanguages.cache | 2 +- TouchGFX/generated/texts/cache/TextsCpp.cache | 2 +- .../texts/cache/TypedTextDatabaseCpp.cache | 2 +- .../include/texts/TextKeysAndLanguages.hpp | 7 +- TouchGFX/generated/texts/src/LanguageGb.cpp | 39 +- TouchGFX/generated/texts/src/Texts.cpp | 32 +- .../generated/texts/src/TypedTextDatabase.cpp | 5 +- TouchGFX/gui/include/gui/common/DataField.hpp | 41 +- .../include/gui/containers/DebugViewItem.hpp | 20 + .../include/gui/containers/DebugViewLine.hpp | 27 ++ .../gui/containers/DriverViewField.hpp | 21 +- .../containers/DriverViewFieldSelection.hpp | 5 +- .../debugview_screen/DebugViewPresenter.hpp | 38 ++ .../gui/debugview_screen/DebugViewView.hpp | 21 ++ .../driverview_screen/DriverViewPresenter.hpp | 6 +- .../gui/driverview_screen/DriverViewView.hpp | 11 +- TouchGFX/gui/src/common/DataField.cpp | 356 +++++++++++++++--- TouchGFX/gui/src/containers/DebugViewItem.cpp | 19 + TouchGFX/gui/src/containers/DebugViewLine.cpp | 29 ++ .../gui/src/containers/DriverViewField.cpp | 77 +--- .../containers/DriverViewFieldSelection.cpp | 7 +- .../debugview_screen/DebugViewPresenter.cpp | 11 + .../src/debugview_screen/DebugViewView.cpp | 34 ++ .../driverview_screen/DriverViewPresenter.cpp | 23 +- .../src/driverview_screen/DriverViewView.cpp | 33 +- TouchGFX/simulator/msvs/Application.vcxproj | 14 + .../msvs/Application.vcxproj.filters | 54 +++ TouchGFX/steering-wheel.touchgfx | 161 +++++++- 49 files changed, 1603 insertions(+), 289 deletions(-) create mode 100644 TouchGFX/generated/gui_generated/include/gui_generated/containers/DebugViewItemBase.hpp create mode 100644 TouchGFX/generated/gui_generated/include/gui_generated/containers/DebugViewLineBase.hpp create mode 100644 TouchGFX/generated/gui_generated/include/gui_generated/debugview_screen/DebugViewViewBase.hpp create mode 100644 TouchGFX/generated/gui_generated/src/containers/DebugViewItemBase.cpp create mode 100644 TouchGFX/generated/gui_generated/src/containers/DebugViewLineBase.cpp create mode 100644 TouchGFX/generated/gui_generated/src/debugview_screen/DebugViewViewBase.cpp create mode 100644 TouchGFX/gui/include/gui/containers/DebugViewItem.hpp create mode 100644 TouchGFX/gui/include/gui/containers/DebugViewLine.hpp create mode 100644 TouchGFX/gui/include/gui/debugview_screen/DebugViewPresenter.hpp create mode 100644 TouchGFX/gui/include/gui/debugview_screen/DebugViewView.hpp create mode 100644 TouchGFX/gui/src/containers/DebugViewItem.cpp create mode 100644 TouchGFX/gui/src/containers/DebugViewLine.cpp create mode 100644 TouchGFX/gui/src/debugview_screen/DebugViewPresenter.cpp create mode 100644 TouchGFX/gui/src/debugview_screen/DebugViewView.cpp diff --git a/STM32Make.make b/STM32Make.make index 966ef63..b1582c0 100644 --- a/STM32Make.make +++ b/STM32Make.make @@ -350,10 +350,13 @@ TouchGFX/generated/fonts/src/Table_verdana_20_4bpp.cpp \ TouchGFX/generated/fonts/src/UnmappedDataFont.cpp \ TouchGFX/generated/gui_generated/src/ami_screen/AMIViewBase.cpp \ TouchGFX/generated/gui_generated/src/common/FrontendApplicationBase.cpp \ +TouchGFX/generated/gui_generated/src/containers/DebugViewItemBase.cpp \ +TouchGFX/generated/gui_generated/src/containers/DebugViewLineBase.cpp \ TouchGFX/generated/gui_generated/src/containers/DriverViewFieldBase.cpp \ TouchGFX/generated/gui_generated/src/containers/DriverViewFieldSelectionBase.cpp \ TouchGFX/generated/gui_generated/src/containers/MissionSelectElementBase.cpp \ TouchGFX/generated/gui_generated/src/containers/TireTempBase.cpp \ +TouchGFX/generated/gui_generated/src/debugview_screen/DebugViewViewBase.cpp \ TouchGFX/generated/gui_generated/src/driverview_screen/DriverViewViewBase.cpp \ TouchGFX/generated/gui_generated/src/missionselect_screen/MissionSelectViewBase.cpp \ TouchGFX/generated/images/src/BitmapDatabase.cpp \ @@ -372,10 +375,14 @@ TouchGFX/gui/src/ami_screen/AMIPresenter.cpp \ TouchGFX/gui/src/ami_screen/AMIView.cpp \ TouchGFX/gui/src/common/DataField.cpp \ TouchGFX/gui/src/common/FrontendApplication.cpp \ +TouchGFX/gui/src/containers/DebugViewItem.cpp \ +TouchGFX/gui/src/containers/DebugViewLine.cpp \ TouchGFX/gui/src/containers/DriverViewField.cpp \ TouchGFX/gui/src/containers/DriverViewFieldSelection.cpp \ TouchGFX/gui/src/containers/MissionSelectElement.cpp \ TouchGFX/gui/src/containers/TireTemp.cpp \ +TouchGFX/gui/src/debugview_screen/DebugViewPresenter.cpp \ +TouchGFX/gui/src/debugview_screen/DebugViewView.cpp \ TouchGFX/gui/src/driverview_screen/DriverViewPresenter.cpp \ TouchGFX/gui/src/driverview_screen/DriverViewView.cpp \ TouchGFX/gui/src/missionselect_screen/MissionSelectPresenter.cpp \ diff --git a/TouchGFX/assets/texts/texts.xml b/TouchGFX/assets/texts/texts.xml index d4566d5..8df08a4 100644 --- a/TouchGFX/assets/texts/texts.xml +++ b/TouchGFX/assets/texts/texts.xml @@ -4,7 +4,13 @@ - + + + <value> + + + <value> + BBAL @@ -68,7 +74,10 @@ <value> - + + <value> + + <value> @@ -128,12 +137,6 @@ - - ???? - - - FIELD - LV @@ -160,7 +163,7 @@ - + diff --git a/TouchGFX/generated/fonts/UnicodeListCHINN____20_4.txt b/TouchGFX/generated/fonts/UnicodeListCHINN____20_4.txt index f500b1d..1212a0c 100644 --- a/TouchGFX/generated/fonts/UnicodeListCHINN____20_4.txt +++ b/TouchGFX/generated/fonts/UnicodeListCHINN____20_4.txt @@ -1,5 +1,15 @@ 32 +46 +48 +49 50 +51 +52 +53 +54 +55 +56 +57 63 65 66 @@ -10,30 +20,47 @@ 71 72 73 +74 +75 76 77 78 79 80 +81 82 83 84 +85 86 +87 88 89 +90 +95 97 +98 99 100 101 +102 103 +104 105 +106 107 108 +109 110 111 112 +113 114 115 116 117 -118 \ No newline at end of file +118 +119 +120 +121 +122 \ No newline at end of file diff --git a/TouchGFX/generated/fonts/cache/Font_CHINN____20_4bppCpp.cache b/TouchGFX/generated/fonts/cache/Font_CHINN____20_4bppCpp.cache index f634ef2..9e6846d 100644 --- a/TouchGFX/generated/fonts/cache/Font_CHINN____20_4bppCpp.cache +++ b/TouchGFX/generated/fonts/cache/Font_CHINN____20_4bppCpp.cache @@ -1,6 +1,16 @@ AH:0 BA:1 FC:63 EC:0 FF:0 CF:1 32 +46 +48 +49 50 +51 +52 +53 +54 +55 +56 +57 63 65 66 @@ -11,30 +21,47 @@ AH:0 BA:1 FC:63 EC:0 FF:0 CF:1 71 72 73 +74 +75 76 77 78 79 80 +81 82 83 84 +85 86 +87 88 89 +90 +95 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 diff --git a/TouchGFX/generated/fonts/src/Font_CHINN____20_4bpp_0.cpp b/TouchGFX/generated/fonts/src/Font_CHINN____20_4bpp_0.cpp index aa39efa..2b96c92 100644 --- a/TouchGFX/generated/fonts/src/Font_CHINN____20_4bpp_0.cpp +++ b/TouchGFX/generated/fonts/src/Font_CHINN____20_4bpp_0.cpp @@ -4,6 +4,24 @@ FONT_GLYPH_LOCATION_FLASH_PRAGMA KEEP extern const uint8_t unicodes_CHINN____20_4bpp_0[] FONT_GLYPH_LOCATION_FLASH_ATTRIBUTE = { // Unicode: [0x0020, space] // (Has no glyph data) + // Unicode: [0x002E, period] + 0xD6, 0xDD, 0x07, 0xF7, 0xFF, 0x08, 0xF7, 0xFF, 0x08, 0xF7, 0xFF, 0x08, + // Unicode: [0x0030, zero] + 0x00, 0xB4, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0x3A, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xEF, 0x04, 0xF3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0D, 0xF6, 0xFF, + 0x33, 0x33, 0x33, 0x33, 0x33, 0x53, 0xFF, 0x2F, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, + 0xFF, 0x3F, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xFF, 0x4F, 0xF7, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x30, 0xFF, 0x4F, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xFF, 0x4F, + 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xFF, 0x3F, 0xF5, 0xFF, 0x55, 0x55, 0x55, 0x55, + 0x55, 0x75, 0xFF, 0x2F, 0xE1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0D, 0x50, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0xA3, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, + 0x3B, 0x00, + // Unicode: [0x0031, one] + 0x00, 0x40, 0xFB, 0x8D, 0x00, 0x00, 0xF6, 0xFF, 0xFF, 0x09, 0x70, 0xFF, 0xFF, 0xFF, 0x1F, 0xC1, + 0xFF, 0xAF, 0xFF, 0x3F, 0x10, 0xFC, 0x36, 0xFF, 0x4F, 0x00, 0x51, 0x30, 0xFF, 0x4F, 0x00, 0x00, + 0x30, 0xFF, 0x4F, 0x00, 0x00, 0x30, 0xFF, 0x4F, 0x00, 0x00, 0x30, 0xFF, 0x4F, 0x00, 0x00, 0x30, + 0xFF, 0x4F, 0x00, 0x00, 0x30, 0xFF, 0x4F, 0x00, 0x00, 0x30, 0xFF, 0x4F, 0x00, 0x00, 0x30, 0xFF, + 0x4F, // 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, @@ -14,6 +32,76 @@ KEEP extern const uint8_t unicodes_CHINN____20_4bpp_0[] FONT_GLYPH_LOCATION_FLAS 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: [0x0033, three] + 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0x3A, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0x05, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0E, 0x32, 0x33, + 0x33, 0x33, 0x33, 0x33, 0x33, 0x63, 0xFF, 0x3F, 0x53, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x75, + 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0C, 0xF8, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0A, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xFF, 0x4F, 0x42, 0x44, 0x44, 0x44, 0x44, 0x44, + 0x44, 0x74, 0xFF, 0x3F, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0D, 0xF7, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x04, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, + 0x3B, 0x00, + // Unicode: [0x0034, four] + 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xCF, 0x00, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xFB, 0xCF, 0x00, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xCF, 0x00, 0xF7, 0xFF, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xCF, 0x00, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, + 0xCF, 0x00, 0xF6, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xCF, 0x00, 0xF2, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, + 0x00, 0xD6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x32, 0x44, 0x44, 0x44, + 0x44, 0xFC, 0xCF, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xCF, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xCF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, + 0xCF, 0x00, + // Unicode: [0x0035, five] + 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0x07, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xF7, 0xFF, + 0x34, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x01, 0xF7, 0xFF, 0x77, 0x77, 0x77, 0x77, 0x77, 0x67, + 0x02, 0x00, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0x00, 0xF7, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x08, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xFF, 0x3F, 0x21, 0x22, 0x22, 0x22, 0x22, 0x22, + 0x22, 0x52, 0xFF, 0x3F, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0D, 0xF7, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0x03, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCE, + 0x17, 0x00, + // Unicode: [0x0036, six] + 0x00, 0xB4, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x09, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0x09, 0xF2, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x09, 0xF6, 0xEF, + 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x02, 0xF7, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4C, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x05, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1E, + 0xF7, 0xFF, 0x66, 0x66, 0x66, 0x66, 0x66, 0x86, 0xFF, 0x4F, 0xF6, 0xEF, 0x33, 0x33, 0x33, 0x33, + 0x33, 0x53, 0xFF, 0x4F, 0xF2, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1E, 0x70, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x05, 0x00, 0xD6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, + 0x3B, 0x00, + // Unicode: [0x0037, seven] + 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7D, 0x00, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0x0A, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2F, 0x31, 0x33, + 0x33, 0x33, 0x33, 0x33, 0x33, 0xB4, 0xFF, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xFD, + 0xFF, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xF9, 0xFF, 0xEF, 0x05, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xD4, 0xFF, 0xFF, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0xFF, 0xFF, 0x7E, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x40, 0xFD, 0xFF, 0xBF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x10, 0xFA, 0xFF, 0xEF, + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE5, 0xFF, 0xFF, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA1, + 0xFF, 0xFF, 0x5E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0xFE, 0xFF, 0xAF, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, + // Unicode: [0x0038, eight] + 0x00, 0xB4, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0x4B, 0x00, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0x06, 0xF3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1E, 0xF6, 0xFF, + 0x34, 0x33, 0x33, 0x33, 0x33, 0x73, 0xFF, 0x3F, 0xF5, 0xFF, 0x78, 0x77, 0x77, 0x77, 0x77, 0xA7, + 0xFF, 0x1F, 0xE1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0B, 0xB0, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x08, 0xF2, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1E, + 0xF6, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x40, 0xFF, 0x3F, 0xF6, 0xFF, 0x46, 0x44, 0x44, 0x44, + 0x44, 0x84, 0xFF, 0x3F, 0xE1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0D, 0x50, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0x04, 0x00, 0x92, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, + 0x29, 0x00, + // Unicode: [0x0039, nine] + 0x00, 0xC4, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0x3B, 0x00, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0x04, 0xF2, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0D, 0xF6, 0xFF, + 0x33, 0x33, 0x33, 0x33, 0x33, 0x53, 0xFF, 0x3F, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, + 0xFF, 0x4F, 0xF4, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4F, 0xC0, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4F, 0x20, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4F, + 0x00, 0x40, 0x66, 0x66, 0x66, 0x66, 0x66, 0x86, 0xFF, 0x4F, 0x20, 0x33, 0x33, 0x33, 0x33, 0x33, + 0x33, 0x53, 0xFF, 0x3F, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0E, 0xC0, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x05, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, + 0x3A, 0x00, // Unicode: [0x003F, question] 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, @@ -107,6 +195,26 @@ KEEP extern const uint8_t unicodes_CHINN____20_4bpp_0[] FONT_GLYPH_LOCATION_FLAS // 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, + // Unicode: [0x004A, J] + 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, 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, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xBF, + 0x82, 0x88, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xBF, 0xF2, 0xFF, 0x49, 0x44, 0x44, 0x44, + 0x44, 0x44, 0xFC, 0xBF, 0xB0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8F, 0x20, 0xFE, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1D, 0x00, 0xA2, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x9E, 0x01, + // Unicode: [0x004B, K] + 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x50, 0xFD, 0xFF, 0xFF, 0x2A, 0xF7, 0xFF, 0x00, 0x00, 0x40, 0xFC, + 0xFF, 0xFF, 0x3B, 0x00, 0xF7, 0xFF, 0x00, 0x20, 0xFA, 0xFF, 0xFF, 0x5D, 0x00, 0x00, 0xF7, 0xFF, + 0x00, 0xF8, 0xFF, 0xFF, 0x7E, 0x00, 0x00, 0x00, 0xF7, 0xFF, 0xC1, 0xFF, 0xFF, 0x9F, 0x01, 0x00, + 0x00, 0x00, 0xF7, 0xFF, 0xFA, 0xFF, 0xAF, 0x02, 0x00, 0x00, 0x00, 0x00, 0xF7, 0xFF, 0xFF, 0xFF, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0xFF, 0xFA, 0xFF, 0x9F, 0x02, 0x00, 0x00, 0x00, 0x00, + 0xF7, 0xFF, 0xD2, 0xFF, 0xFF, 0x8E, 0x01, 0x00, 0x00, 0x00, 0xF7, 0xFF, 0x10, 0xFA, 0xFF, 0xFF, + 0x6E, 0x00, 0x00, 0x00, 0xF7, 0xFF, 0x00, 0x30, 0xFB, 0xFF, 0xFF, 0x5D, 0x00, 0x00, 0xF7, 0xFF, + 0x00, 0x00, 0x40, 0xFC, 0xFF, 0xFF, 0x3C, 0x00, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x60, 0xFD, 0xFF, + 0xFF, 0x2A, // Unicode: [0x004C, L] 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, @@ -157,6 +265,16 @@ KEEP extern const uint8_t unicodes_CHINN____20_4bpp_0[] FONT_GLYPH_LOCATION_FLAS 0x03, 0x00, 0x00, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + // Unicode: [0x0051, Q] + 0x00, 0xC5, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0x3A, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0xF2, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0E, + 0x00, 0xF6, 0xFF, 0x44, 0x44, 0x44, 0x44, 0x44, 0x64, 0xFF, 0x3F, 0x00, 0xF7, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x40, 0xFF, 0x4F, 0x00, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xFF, + 0x4F, 0x00, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xFF, 0x4F, 0x00, 0xF7, 0xFF, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x40, 0xFF, 0x4F, 0x00, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, + 0xFF, 0x4F, 0x00, 0xF6, 0xFF, 0x44, 0x44, 0x44, 0x44, 0x44, 0x64, 0xFF, 0x6F, 0x02, 0xF3, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0A, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0x0A, 0x00, 0xC5, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0A, // Unicode: [0x0052, R] 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4C, 0x00, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x06, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xF7, 0xFF, @@ -187,6 +305,16 @@ KEEP extern const uint8_t unicodes_CHINN____20_4bpp_0[] FONT_GLYPH_LOCATION_FLAS 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF6, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF6, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF6, 0xFF, 0x01, 0x00, 0x00, 0x00, + // Unicode: [0x0055, U] + 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xEF, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xF8, 0xEF, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xEF, 0xF7, 0xFF, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xEF, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xF8, 0xEF, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xEF, 0xF7, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xF8, 0xEF, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xEF, + 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xEF, 0xF5, 0xFF, 0x44, 0x44, 0x44, 0x44, + 0x44, 0x44, 0xFA, 0xEF, 0xE1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0x50, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1D, 0x00, 0xB4, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x9E, 0x01, // Unicode: [0x0056, V] 0xF2, 0xFF, 0x0C, 0x00, 0x00, 0x00, 0x00, 0xD1, 0xFF, 0x1E, 0x90, 0xFF, 0x5F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x06, 0x10, 0xFE, 0xDF, 0x00, 0x00, 0x00, 0x20, 0xFE, 0xDF, 0x00, 0x00, 0xF7, @@ -197,6 +325,16 @@ 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, 0x00, 0xC1, 0xFF, 0xFF, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xE9, 0x7D, 0x00, 0x00, 0x00, 0x00, + // Unicode: [0x0057, W] + 0xFE, 0x8F, 0x00, 0x80, 0xED, 0x5C, 0x00, 0xD0, 0xFF, 0x0A, 0xFC, 0xBF, 0x00, 0xF9, 0xFF, 0xFF, + 0x05, 0xF0, 0xFF, 0x08, 0xFA, 0xDF, 0x20, 0xFF, 0xFF, 0xFF, 0x0C, 0xF2, 0xFF, 0x06, 0xF8, 0xFF, + 0x50, 0xFF, 0xEF, 0xFF, 0x1F, 0xF4, 0xFF, 0x04, 0xF6, 0xFF, 0x82, 0xFF, 0x8F, 0xFF, 0x4F, 0xF6, + 0xFF, 0x01, 0xF4, 0xFF, 0xB4, 0xFF, 0x3E, 0xFF, 0x6F, 0xF8, 0xEF, 0x00, 0xF2, 0xFF, 0xD6, 0xFF, + 0x0B, 0xFF, 0x9F, 0xFA, 0xCF, 0x00, 0xF0, 0xFF, 0xF9, 0xFF, 0x08, 0xFC, 0xCF, 0xFC, 0xAF, 0x00, + 0xD0, 0xFF, 0xFD, 0xFF, 0x05, 0xF9, 0xEF, 0xFE, 0x8F, 0x00, 0xA0, 0xFF, 0xFF, 0xFF, 0x02, 0xF5, + 0xFF, 0xFF, 0x6F, 0x00, 0x60, 0xFF, 0xFF, 0xCF, 0x00, 0xF1, 0xFF, 0xFF, 0x2F, 0x00, 0x10, 0xFD, + 0xFF, 0x5F, 0x00, 0x80, 0xFF, 0xFF, 0x0A, 0x00, 0x00, 0xB2, 0xDF, 0x06, 0x00, 0x00, 0xE8, 0x9E, + 0x01, 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, @@ -217,6 +355,18 @@ KEEP extern const uint8_t unicodes_CHINN____20_4bpp_0[] FONT_GLYPH_LOCATION_FLAS 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: [0x005A, Z] + 0xF3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8D, 0x00, 0xF3, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0B, 0xF3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x3F, 0x41, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x96, 0xFC, 0xFF, 0x5F, 0x00, 0x00, 0x00, 0x00, + 0x10, 0x84, 0xEB, 0xFF, 0xFF, 0xFF, 0x2F, 0x00, 0x00, 0x41, 0xA7, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0x08, 0x10, 0xC8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0x4A, 0x00, 0xD1, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xCF, 0x59, 0x02, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xBE, 0x47, 0x01, 0x00, + 0x00, 0x00, 0x00, 0xFB, 0xFF, 0xDF, 0x69, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x03, 0xF8, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0B, 0xD1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0x0B, 0x10, 0xD8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0B, + // Unicode: [0x005F, underscore] + 0x55, 0x55, 0x55, 0x55, 0x55, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Unicode: [0x0061, a] 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, @@ -227,6 +377,16 @@ KEEP extern const uint8_t unicodes_CHINN____20_4bpp_0[] FONT_GLYPH_LOCATION_FLAS 0x44, 0x44, 0xFC, 0xCF, 0xF5, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0xA0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0x00, 0xC6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, + // Unicode: [0x0062, b] + 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0x8C, 0x01, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0x1D, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8F, 0xF7, 0xFF, + 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0xFD, 0xBF, 0xF7, 0xFF, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, + 0xFD, 0xAF, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x6F, 0xF7, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xAF, + 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFA, 0xEF, 0xF7, 0xFF, 0x44, 0x44, 0x44, 0x44, + 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, + 0x9E, 0x02, // Unicode: [0x0063, 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, @@ -257,6 +417,16 @@ KEEP extern const uint8_t unicodes_CHINN____20_4bpp_0[] FONT_GLYPH_LOCATION_FLAS 0x44, 0x44, 0x44, 0x14, 0xF3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0xC4, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, + // Unicode: [0x0066, f] + 0x00, 0xA4, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0x1F, 0xF2, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xF6, 0xFF, + 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x04, 0xF7, 0xFF, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, + 0x44, 0x04, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xF7, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, + 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, // Unicode: [0x0067, 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, @@ -267,9 +437,29 @@ KEEP extern const uint8_t unicodes_CHINN____20_4bpp_0[] FONT_GLYPH_LOCATION_FLAS 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: [0x0068, 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: [0x0069, 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, + // Unicode: [0x006A, j] + 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, 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, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xBF, + 0x82, 0x88, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xBF, 0xF2, 0xFF, 0x49, 0x44, 0x44, 0x44, + 0x44, 0x44, 0xFC, 0xBF, 0xB0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8F, 0x20, 0xFE, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1D, 0x00, 0xA2, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x9E, 0x01, // Unicode: [0x006B, k] 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x50, 0xFD, 0xFF, 0xFF, 0x2A, 0xF7, 0xFF, 0x00, 0x00, 0x40, 0xFC, 0xFF, 0xFF, 0x3B, 0x00, 0xF7, 0xFF, 0x00, 0x20, 0xFA, 0xFF, 0xFF, 0x5D, 0x00, 0x00, 0xF7, 0xFF, @@ -288,6 +478,16 @@ KEEP extern const uint8_t unicodes_CHINN____20_4bpp_0[] FONT_GLYPH_LOCATION_FLAS 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF5, 0xFF, 0x44, 0x44, 0x44, 0x44, 0x44, 0x01, 0xE1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0xA3, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, + // Unicode: [0x006D, m] + 0x10, 0xE9, 0xAE, 0x01, 0x00, 0x00, 0x40, 0xEB, 0x7D, 0x00, 0xC0, 0xFF, 0xFF, 0x1D, 0x00, 0x00, + 0xF3, 0xFF, 0xFF, 0x07, 0xF4, 0xFF, 0xFF, 0x6F, 0x00, 0x00, 0xFB, 0xFF, 0xFF, 0x0E, 0xF7, 0xFF, + 0xFF, 0xCF, 0x00, 0x20, 0xFF, 0xFF, 0xFF, 0x2F, 0xF7, 0xFF, 0xFC, 0xFF, 0x02, 0x70, 0xFF, 0xBF, + 0xFF, 0x2F, 0xF7, 0xFF, 0xF6, 0xFF, 0x07, 0xC0, 0xFF, 0x6F, 0xFF, 0x2F, 0xF7, 0xFF, 0xE1, 0xFF, + 0x0C, 0xF2, 0xFF, 0x5A, 0xFF, 0x2F, 0xF7, 0xFF, 0xA0, 0xFF, 0x2F, 0xF7, 0xFF, 0x55, 0xFF, 0x2F, + 0xF7, 0xFF, 0x40, 0xFF, 0x6F, 0xFC, 0xEF, 0x50, 0xFF, 0x2F, 0xF7, 0xFF, 0x00, 0xFD, 0xDF, 0xFF, + 0x9F, 0x50, 0xFF, 0x2F, 0xF7, 0xFF, 0x00, 0xF7, 0xFF, 0xFF, 0x3F, 0x50, 0xFF, 0x2F, 0xF7, 0xFF, + 0x00, 0xC1, 0xFF, 0xFF, 0x09, 0x50, 0xFF, 0x2F, 0xF7, 0xFF, 0x00, 0x10, 0xEA, 0x8E, 0x00, 0x50, + 0xFF, 0x2F, // Unicode: [0x006E, n] 0x20, 0xEA, 0x9E, 0x01, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x7F, 0xE1, 0xFF, 0xFF, 0x2D, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x7F, 0xF6, 0xFF, 0xFF, 0xEF, 0x03, 0x00, 0x00, 0x00, 0xFF, 0x7F, 0xF7, 0xFF, @@ -318,6 +518,16 @@ KEEP extern const uint8_t unicodes_CHINN____20_4bpp_0[] FONT_GLYPH_LOCATION_FLAS 0x44, 0x34, 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, + // Unicode: [0x0071, q] + 0x00, 0xC5, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0x3A, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0xF2, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0E, + 0x00, 0xF6, 0xFF, 0x44, 0x44, 0x44, 0x44, 0x44, 0x64, 0xFF, 0x3F, 0x00, 0xF7, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x40, 0xFF, 0x4F, 0x00, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xFF, + 0x4F, 0x00, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xFF, 0x4F, 0x00, 0xF7, 0xFF, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x40, 0xFF, 0x4F, 0x00, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, + 0xFF, 0x4F, 0x00, 0xF6, 0xFF, 0x44, 0x44, 0x44, 0x44, 0x44, 0x64, 0xFF, 0x6F, 0x02, 0xF3, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0A, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0x0A, 0x00, 0xC5, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0A, // Unicode: [0x0072, r] 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7D, 0x00, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0A, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4F, 0xF7, 0xFF, @@ -367,5 +577,45 @@ KEEP extern const uint8_t unicodes_CHINN____20_4bpp_0[] FONT_GLYPH_LOCATION_FLAS 0x00, 0x00, 0xB0, 0xFF, 0x3F, 0xF7, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x30, 0xFF, 0xCF, 0xFE, 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, 0x00 + 0x00, 0x00, + // Unicode: [0x0077, w] + 0xFE, 0xAF, 0x00, 0x00, 0x91, 0xEE, 0x1A, 0x00, 0x00, 0xF9, 0xCF, 0xFB, 0xDF, 0x00, 0x00, 0xFC, + 0xFF, 0xDF, 0x00, 0x00, 0xFC, 0x9F, 0xF8, 0xFF, 0x01, 0x40, 0xFF, 0xFF, 0xFF, 0x05, 0x00, 0xFF, + 0x6F, 0xF5, 0xFF, 0x04, 0xA0, 0xFF, 0xEF, 0xFF, 0x0A, 0x30, 0xFF, 0x3F, 0xF2, 0xFF, 0x07, 0xE0, + 0xFF, 0x9B, 0xFF, 0x1E, 0x60, 0xFF, 0x1F, 0xE0, 0xFF, 0x0A, 0xF4, 0xFF, 0x56, 0xFF, 0x5F, 0x90, + 0xFF, 0x0C, 0xB0, 0xFF, 0x0C, 0xF9, 0xFF, 0x11, 0xFF, 0xAF, 0xD0, 0xFF, 0x09, 0x80, 0xFF, 0x1F, + 0xFE, 0xBF, 0x00, 0xFB, 0xEF, 0xF1, 0xFF, 0x06, 0x50, 0xFF, 0x7F, 0xFF, 0x7F, 0x00, 0xF6, 0xFF, + 0xF8, 0xFF, 0x03, 0x20, 0xFF, 0xEF, 0xFF, 0x2F, 0x00, 0xF2, 0xFF, 0xFE, 0xFF, 0x01, 0x00, 0xFD, + 0xFF, 0xFF, 0x0C, 0x00, 0xC0, 0xFF, 0xFF, 0xBF, 0x00, 0x00, 0xF5, 0xFF, 0xFF, 0x04, 0x00, 0x40, + 0xFF, 0xFF, 0x4F, 0x00, 0x00, 0x60, 0xED, 0x5C, 0x00, 0x00, 0x00, 0xC5, 0xCE, 0x05, 0x00, + // Unicode: [0x0078, 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: [0x0079, y] + 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xEF, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xF8, 0xEF, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xEF, 0xF7, 0xFF, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xEF, 0xF6, 0xFF, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, + 0xFA, 0xEF, 0xF2, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0x70, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0x00, 0xC5, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xEF, 0x42, 0x44, 0x44, 0x44, 0x44, 0x44, + 0x44, 0x44, 0xFA, 0xDF, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0xF7, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1D, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x8D, 0x01, + // Unicode: [0x007A, z] + 0xF3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8D, 0x00, 0xF3, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0B, 0xF3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x3F, 0x41, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x96, 0xFC, 0xFF, 0x5F, 0x00, 0x00, 0x00, 0x00, + 0x10, 0x84, 0xEB, 0xFF, 0xFF, 0xFF, 0x2F, 0x00, 0x00, 0x41, 0xA7, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0x08, 0x10, 0xC8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0x4A, 0x00, 0xD1, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xCF, 0x59, 0x02, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xBE, 0x47, 0x01, 0x00, + 0x00, 0x00, 0x00, 0xFB, 0xFF, 0xDF, 0x69, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x03, 0xF8, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0B, 0xD1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0x0B, 0x10, 0xD8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0B }; diff --git a/TouchGFX/generated/fonts/src/Table_CHINN____20_4bpp.cpp b/TouchGFX/generated/fonts/src/Table_CHINN____20_4bpp.cpp index 1bbd871..aa8b8f7 100644 --- a/TouchGFX/generated/fonts/src/Table_CHINN____20_4bpp.cpp +++ b/TouchGFX/generated/fonts/src/Table_CHINN____20_4bpp.cpp @@ -5,44 +5,71 @@ FONT_TABLE_LOCATION_FLASH_PRAGMA 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, 0x0032, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // two - { 130, 0x003F, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // question - { 260, 0x0041, 20, 13, 13, -1, 18, 0, 0, 0x00 }, // A - { 390, 0x0042, 20, 13, 13, 0, 21, 0, 0, 0x00 }, // B - { 520, 0x0043, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // C - { 650, 0x0044, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // D - { 780, 0x0045, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // E - { 910, 0x0046, 20, 13, 13, 0, 19, 0, 0, 0x00 }, // F - { 1040, 0x0047, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // G - { 1170, 0x0048, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // H - { 1300, 0x0049, 4, 13, 13, 0, 5, 0, 0, 0x00 }, // I - { 1326, 0x004C, 20, 13, 13, 0, 19, 0, 0, 0x00 }, // L - { 1456, 0x004D, 21, 13, 13, 0, 21, 0, 0, 0x00 }, // M - { 1599, 0x004E, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // N - { 1729, 0x004F, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // O - { 1859, 0x0050, 21, 13, 13, 0, 20, 0, 0, 0x00 }, // P - { 2002, 0x0052, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // R - { 2132, 0x0053, 22, 13, 13, 0, 22, 0, 0, 0x00 }, // S - { 2275, 0x0054, 20, 13, 13, -1, 19, 0, 0, 0x00 }, // T - { 2405, 0x0056, 20, 13, 13, -1, 18, 0, 0, 0x00 }, // V - { 2535, 0x0058, 19, 13, 13, 0, 19, 0, 0, 0x00 }, // X - { 2665, 0x0059, 19, 13, 13, -1, 18, 0, 0, 0x00 }, // Y - { 2795, 0x0061, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // a - { 2925, 0x0063, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // c - { 3055, 0x0064, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // d - { 3185, 0x0065, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // e - { 3315, 0x0067, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // g - { 3445, 0x0069, 4, 13, 13, 0, 5, 0, 0, 0x00 }, // i - { 3471, 0x006B, 20, 13, 13, 0, 19, 0, 0, 0x00 }, // k - { 3601, 0x006C, 15, 13, 13, 0, 14, 0, 0, 0x00 }, // l - { 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 + { 0, 0x002E, 5, 4, 4, 0, 5, 0, 0, 0x00 }, // period + { 12, 0x0030, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // zero + { 142, 0x0031, 10, 13, 13, 3, 20, 0, 0, 0x00 }, // one + { 207, 0x0032, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // two + { 337, 0x0033, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // three + { 467, 0x0034, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // four + { 597, 0x0035, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // five + { 727, 0x0036, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // six + { 857, 0x0037, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // seven + { 987, 0x0038, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // eight + { 1117, 0x0039, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // nine + { 1247, 0x003F, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // question + { 1377, 0x0041, 20, 13, 13, -1, 18, 0, 0, 0x00 }, // A + { 1507, 0x0042, 20, 13, 13, 0, 21, 0, 0, 0x00 }, // B + { 1637, 0x0043, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // C + { 1767, 0x0044, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // D + { 1897, 0x0045, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // E + { 2027, 0x0046, 20, 13, 13, 0, 19, 0, 0, 0x00 }, // F + { 2157, 0x0047, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // G + { 2287, 0x0048, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // H + { 2417, 0x0049, 4, 13, 13, 0, 5, 0, 0, 0x00 }, // I + { 2443, 0x004A, 20, 13, 13, -1, 19, 0, 0, 0x00 }, // J + { 2573, 0x004B, 20, 13, 13, 0, 19, 0, 0, 0x00 }, // K + { 2703, 0x004C, 20, 13, 13, 0, 19, 0, 0, 0x00 }, // L + { 2833, 0x004D, 21, 13, 13, 0, 21, 0, 0, 0x00 }, // M + { 2976, 0x004E, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // N + { 3106, 0x004F, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // O + { 3236, 0x0050, 21, 13, 13, 0, 20, 0, 0, 0x00 }, // P + { 3379, 0x0051, 21, 13, 13, 0, 20, 0, 0, 0x00 }, // Q + { 3522, 0x0052, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // R + { 3652, 0x0053, 22, 13, 13, 0, 22, 0, 0, 0x00 }, // S + { 3795, 0x0054, 20, 13, 13, -1, 19, 0, 0, 0x00 }, // T + { 3925, 0x0055, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // U + { 4055, 0x0056, 20, 13, 13, -1, 18, 0, 0, 0x00 }, // V + { 4185, 0x0057, 19, 13, 13, 0, 19, 0, 0, 0x00 }, // W + { 4315, 0x0058, 19, 13, 13, 0, 19, 0, 0, 0x00 }, // X + { 4445, 0x0059, 19, 13, 13, -1, 18, 0, 0, 0x00 }, // Y + { 4575, 0x005A, 22, 13, 13, 0, 22, 0, 0, 0x00 }, // Z + { 4718, 0x005F, 10, 3, 255, 0, 10, 0, 0, 0x60 }, // underscore + { 4733, 0x0061, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // a + { 4863, 0x0062, 20, 13, 13, 0, 21, 0, 0, 0x00 }, // b + { 4993, 0x0063, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // c + { 5123, 0x0064, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // d + { 5253, 0x0065, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // e + { 5383, 0x0066, 20, 13, 13, 0, 19, 0, 0, 0x00 }, // f + { 5513, 0x0067, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // g + { 5643, 0x0068, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // h + { 5773, 0x0069, 4, 13, 13, 0, 5, 0, 0, 0x00 }, // i + { 5799, 0x006A, 20, 13, 13, -1, 19, 0, 0, 0x00 }, // j + { 5929, 0x006B, 20, 13, 13, 0, 19, 0, 0, 0x00 }, // k + { 6059, 0x006C, 15, 13, 13, 0, 14, 0, 0, 0x00 }, // l + { 6163, 0x006D, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // m + { 6293, 0x006E, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // n + { 6423, 0x006F, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // o + { 6553, 0x0070, 20, 13, 13, 0, 19, 0, 0, 0x00 }, // p + { 6683, 0x0071, 21, 13, 13, 0, 20, 0, 0, 0x00 }, // q + { 6826, 0x0072, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // r + { 6956, 0x0073, 22, 13, 13, 0, 22, 0, 0, 0x00 }, // s + { 7099, 0x0074, 20, 13, 13, -1, 19, 0, 0, 0x00 }, // t + { 7229, 0x0075, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // u + { 7359, 0x0076, 20, 13, 13, -1, 18, 0, 0, 0x00 }, // v + { 7489, 0x0077, 22, 13, 13, 0, 22, 0, 0, 0x00 }, // w + { 7632, 0x0078, 19, 13, 13, 0, 19, 0, 0, 0x00 }, // x + { 7762, 0x0079, 20, 13, 13, 0, 20, 0, 0, 0x00 }, // y + { 7892, 0x007A, 22, 13, 13, 0, 22, 0, 0, 0x00 } // z }; // CHINN____20_4bpp @@ -60,6 +87,6 @@ touchgfx::GeneratedFont& getFont_CHINN____20_4bpp(); touchgfx::GeneratedFont& getFont_CHINN____20_4bpp() { - 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); + static touchgfx::GeneratedFont CHINN____20_4bpp(glyphs_CHINN____20_4bpp, 66, 24, 20, 0, 0, 4, 1, 1, 1, unicodes_CHINN____20_4bpp, kerning_CHINN____20_4bpp, 63, 0, 0, 0); return CHINN____20_4bpp; } diff --git a/TouchGFX/generated/gui_generated/include/gui_generated/common/FrontendApplicationBase.hpp b/TouchGFX/generated/gui_generated/include/gui_generated/common/FrontendApplicationBase.hpp index 0a0e096..65ea8ba 100644 --- a/TouchGFX/generated/gui_generated/include/gui_generated/common/FrontendApplicationBase.hpp +++ b/TouchGFX/generated/gui_generated/include/gui_generated/common/FrontendApplicationBase.hpp @@ -17,25 +17,37 @@ public: virtual void changeToStartScreen() { - gotoDriverViewScreenNoTransition(); + gotoMissionSelectScreenNoTransition(); } + // MissionSelect + void gotoMissionSelectScreenNoTransition(); + // AMI void gotoAMIScreenNoTransition(); // DriverView void gotoDriverViewScreenNoTransition(); + // DebugView + void gotoDebugViewScreenNoTransition(); + protected: touchgfx::Callback transitionCallback; FrontendHeap& frontendHeap; Model& model; + // MissionSelect + void gotoMissionSelectScreenNoTransitionImpl(); + // AMI void gotoAMIScreenNoTransitionImpl(); // DriverView void gotoDriverViewScreenNoTransitionImpl(); + + // DebugView + void gotoDebugViewScreenNoTransitionImpl(); }; #endif // FRONTENDAPPLICATIONBASE_HPP diff --git a/TouchGFX/generated/gui_generated/include/gui_generated/common/FrontendHeapBase.hpp b/TouchGFX/generated/gui_generated/include/gui_generated/common/FrontendHeapBase.hpp index a12a87c..6608dbd 100644 --- a/TouchGFX/generated/gui_generated/include/gui_generated/common/FrontendHeapBase.hpp +++ b/TouchGFX/generated/gui_generated/include/gui_generated/common/FrontendHeapBase.hpp @@ -18,6 +18,8 @@ #include #include #include +#include +#include /** @@ -43,7 +45,8 @@ public: typedef touchgfx::meta::TypeList< MissionSelectView, touchgfx::meta::TypeList< AMIView, touchgfx::meta::TypeList< DriverViewView, - touchgfx::meta::Nil > > + touchgfx::meta::TypeList< DebugViewView, + touchgfx::meta::Nil > > > > GeneratedViewTypes; /** @@ -58,7 +61,8 @@ public: typedef touchgfx::meta::TypeList< MissionSelectPresenter, touchgfx::meta::TypeList< AMIPresenter, touchgfx::meta::TypeList< DriverViewPresenter, - touchgfx::meta::Nil > > + touchgfx::meta::TypeList< DebugViewPresenter, + touchgfx::meta::Nil > > > > GeneratedPresenterTypes; /** @@ -81,7 +85,7 @@ public: virtual void gotoStartScreen(FrontendApplication& app) { - app.gotoDriverViewScreenNoTransition(); + app.gotoMissionSelectScreenNoTransition(); } protected: FrontendHeapBase(touchgfx::AbstractPartition& presenters, touchgfx::AbstractPartition& views, touchgfx::AbstractPartition& transitions, FrontendApplication& app) diff --git a/TouchGFX/generated/gui_generated/include/gui_generated/containers/DebugViewItemBase.hpp b/TouchGFX/generated/gui_generated/include/gui_generated/containers/DebugViewItemBase.hpp new file mode 100644 index 0000000..3190dfb --- /dev/null +++ b/TouchGFX/generated/gui_generated/include/gui_generated/containers/DebugViewItemBase.hpp @@ -0,0 +1,33 @@ +/*********************************************************************************/ +/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/ +/*********************************************************************************/ +#ifndef DEBUGVIEWITEMBASE_HPP +#define DEBUGVIEWITEMBASE_HPP + +#include +#include +#include + +class DebugViewItemBase : public touchgfx::Container +{ +public: + DebugViewItemBase(); + virtual ~DebugViewItemBase(); + virtual void initialize(); + +protected: + FrontendApplication& application() { + return *static_cast(touchgfx::Application::getInstance()); + } + + /* + * Member Declarations + */ + touchgfx::TextAreaWithOneWildcard label; + touchgfx::TextAreaWithOneWildcard value; + +private: + +}; + +#endif // DEBUGVIEWITEMBASE_HPP diff --git a/TouchGFX/generated/gui_generated/include/gui_generated/containers/DebugViewLineBase.hpp b/TouchGFX/generated/gui_generated/include/gui_generated/containers/DebugViewLineBase.hpp new file mode 100644 index 0000000..04d425c --- /dev/null +++ b/TouchGFX/generated/gui_generated/include/gui_generated/containers/DebugViewLineBase.hpp @@ -0,0 +1,41 @@ +/*********************************************************************************/ +/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/ +/*********************************************************************************/ +#ifndef DEBUGVIEWLINEBASE_HPP +#define DEBUGVIEWLINEBASE_HPP + +#include +#include +#include +#include +#include +#include + +class DebugViewLineBase : public touchgfx::Container +{ +public: + DebugViewLineBase(); + virtual ~DebugViewLineBase(); + virtual void initialize(); + +protected: + FrontendApplication& application() { + return *static_cast(touchgfx::Application::getInstance()); + } + + /* + * Member Declarations + */ + touchgfx::Box bg; + touchgfx::Line line1; + touchgfx::PainterRGB565 line1Painter; + touchgfx::Line line2; + touchgfx::PainterRGB565 line2Painter; + DebugViewItem item1; + DebugViewItem item2; + +private: + +}; + +#endif // DEBUGVIEWLINEBASE_HPP diff --git a/TouchGFX/generated/gui_generated/include/gui_generated/containers/DriverViewFieldBase.hpp b/TouchGFX/generated/gui_generated/include/gui_generated/containers/DriverViewFieldBase.hpp index 94e10c6..51abed4 100644 --- a/TouchGFX/generated/gui_generated/include/gui_generated/containers/DriverViewFieldBase.hpp +++ b/TouchGFX/generated/gui_generated/include/gui_generated/containers/DriverViewFieldBase.hpp @@ -7,7 +7,6 @@ #include #include #include -#include #include class DriverViewFieldBase : public touchgfx::Container @@ -26,7 +25,7 @@ protected: * Member Declarations */ touchgfx::BoxWithBorder box; - touchgfx::TextArea title; + touchgfx::TextAreaWithOneWildcard title; touchgfx::TextAreaWithOneWildcard value; private: diff --git a/TouchGFX/generated/gui_generated/include/gui_generated/containers/DriverViewFieldSelectionBase.hpp b/TouchGFX/generated/gui_generated/include/gui_generated/containers/DriverViewFieldSelectionBase.hpp index 363b007..481d035 100644 --- a/TouchGFX/generated/gui_generated/include/gui_generated/containers/DriverViewFieldSelectionBase.hpp +++ b/TouchGFX/generated/gui_generated/include/gui_generated/containers/DriverViewFieldSelectionBase.hpp @@ -7,7 +7,7 @@ #include #include #include -#include +#include #include #include @@ -27,7 +27,7 @@ protected: * Member Declarations */ touchgfx::Box bg; - touchgfx::TextArea name; + touchgfx::TextAreaWithOneWildcard name; touchgfx::Line line1; touchgfx::PainterRGB565 line1Painter; touchgfx::Line line2; diff --git a/TouchGFX/generated/gui_generated/include/gui_generated/debugview_screen/DebugViewViewBase.hpp b/TouchGFX/generated/gui_generated/include/gui_generated/debugview_screen/DebugViewViewBase.hpp new file mode 100644 index 0000000..16005ac --- /dev/null +++ b/TouchGFX/generated/gui_generated/include/gui_generated/debugview_screen/DebugViewViewBase.hpp @@ -0,0 +1,62 @@ +/*********************************************************************************/ +/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/ +/*********************************************************************************/ +#ifndef DEBUGVIEWVIEWBASE_HPP +#define DEBUGVIEWVIEWBASE_HPP + +#include +#include +#include +#include +#include +#include +#include +#include + +class DebugViewViewBase : public touchgfx::View +{ +public: + DebugViewViewBase(); + virtual ~DebugViewViewBase(); + virtual void setupScreen(); + + virtual void listUpdateItem(DebugViewLine& item, int16_t itemIndex) + { + // Override and implement this function in DebugView + } + +protected: + FrontendApplication& application() { + return *static_cast(touchgfx::Application::getInstance()); + } + + /* + * Member Declarations + */ + touchgfx::Box __background; + touchgfx::ScrollList list; + touchgfx::DrawableListItems listListItems; + touchgfx::Line line1; + touchgfx::PainterRGB565 line1Painter; + +private: + + /* + * Canvas Buffer Size + */ + static const uint32_t CANVAS_BUFFER_SIZE = 7200; + uint8_t canvasBuffer[CANVAS_BUFFER_SIZE]; + + /* + * Callback Declarations + */ + touchgfx::Callback updateItemCallback; + + /* + * Callback Handler Declarations + */ + void updateItemCallbackHandler(touchgfx::DrawableListItemsInterface* items, int16_t containerIndex, int16_t itemIndex); + +}; + +#endif // DEBUGVIEWVIEWBASE_HPP diff --git a/TouchGFX/generated/gui_generated/src/common/FrontendApplicationBase.cpp b/TouchGFX/generated/gui_generated/src/common/FrontendApplicationBase.cpp index a6b95a2..72676bf 100644 --- a/TouchGFX/generated/gui_generated/src/common/FrontendApplicationBase.cpp +++ b/TouchGFX/generated/gui_generated/src/common/FrontendApplicationBase.cpp @@ -15,6 +15,8 @@ #include #include #include +#include +#include using namespace touchgfx; @@ -33,6 +35,19 @@ FrontendApplicationBase::FrontendApplicationBase(Model& m, FrontendHeap& heap) * Screen Transition Declarations */ +// MissionSelect + +void FrontendApplicationBase::gotoMissionSelectScreenNoTransition() +{ + transitionCallback = touchgfx::Callback(this, &FrontendApplication::gotoMissionSelectScreenNoTransitionImpl); + pendingScreenTransitionCallback = &transitionCallback; +} + +void FrontendApplicationBase::gotoMissionSelectScreenNoTransitionImpl() +{ + touchgfx::makeTransition(¤tScreen, ¤tPresenter, frontendHeap, ¤tTransition, &model); +} + // AMI void FrontendApplicationBase::gotoAMIScreenNoTransition() @@ -58,3 +73,16 @@ void FrontendApplicationBase::gotoDriverViewScreenNoTransitionImpl() { touchgfx::makeTransition(¤tScreen, ¤tPresenter, frontendHeap, ¤tTransition, &model); } + +// DebugView + +void FrontendApplicationBase::gotoDebugViewScreenNoTransition() +{ + transitionCallback = touchgfx::Callback(this, &FrontendApplication::gotoDebugViewScreenNoTransitionImpl); + pendingScreenTransitionCallback = &transitionCallback; +} + +void FrontendApplicationBase::gotoDebugViewScreenNoTransitionImpl() +{ + touchgfx::makeTransition(¤tScreen, ¤tPresenter, frontendHeap, ¤tTransition, &model); +} diff --git a/TouchGFX/generated/gui_generated/src/containers/DebugViewItemBase.cpp b/TouchGFX/generated/gui_generated/src/containers/DebugViewItemBase.cpp new file mode 100644 index 0000000..f660efe --- /dev/null +++ b/TouchGFX/generated/gui_generated/src/containers/DebugViewItemBase.cpp @@ -0,0 +1,33 @@ +/*********************************************************************************/ +/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/ +/*********************************************************************************/ +#include +#include +#include + +DebugViewItemBase::DebugViewItemBase() +{ + setWidth(240); + setHeight(26); + label.setPosition(5, 0, 105, 25); + label.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255)); + label.setLinespacing(0); + label.setTypedText(touchgfx::TypedText(T_DEBUGVIEWFIELD_TITLE)); + add(label); + + value.setPosition(110, 0, 125, 25); + value.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255)); + value.setLinespacing(0); + value.setTypedText(touchgfx::TypedText(T_DEFAULTWILDCARD_RIGHTALIGNED)); + add(value); +} + +DebugViewItemBase::~DebugViewItemBase() +{ + +} + +void DebugViewItemBase::initialize() +{ + +} diff --git a/TouchGFX/generated/gui_generated/src/containers/DebugViewLineBase.cpp b/TouchGFX/generated/gui_generated/src/containers/DebugViewLineBase.cpp new file mode 100644 index 0000000..e534dcc --- /dev/null +++ b/TouchGFX/generated/gui_generated/src/containers/DebugViewLineBase.cpp @@ -0,0 +1,49 @@ +/*********************************************************************************/ +/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/ +/*********************************************************************************/ +#include +#include + +DebugViewLineBase::DebugViewLineBase() +{ + setWidth(480); + setHeight(26); + bg.setPosition(0, 0, 480, 26); + bg.setColor(touchgfx::Color::getColorFromRGB(0, 0, 0)); + add(bg); + + line1.setPosition(240, 0, 1, 26); + line1Painter.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255)); + line1.setPainter(line1Painter); + line1.setStart(0, 0); + line1.setEnd(0, 26); + line1.setLineWidth(10); + line1.setLineEndingStyle(touchgfx::Line::ROUND_CAP_ENDING); + add(line1); + + line2.setPosition(0, 25, 480, 1); + line2Painter.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255)); + line2.setPainter(line2Painter); + line2.setStart(0, 0); + line2.setEnd(480, 0); + line2.setLineWidth(10); + line2.setLineEndingStyle(touchgfx::Line::ROUND_CAP_ENDING); + add(line2); + + item1.setXY(0, 0); + add(item1); + + item2.setXY(240, 0); + add(item2); +} + +DebugViewLineBase::~DebugViewLineBase() +{ + +} + +void DebugViewLineBase::initialize() +{ + item1.initialize(); + item2.initialize(); +} diff --git a/TouchGFX/generated/gui_generated/src/containers/DriverViewFieldBase.cpp b/TouchGFX/generated/gui_generated/src/containers/DriverViewFieldBase.cpp index b9b226c..2873c2a 100644 --- a/TouchGFX/generated/gui_generated/src/containers/DriverViewFieldBase.cpp +++ b/TouchGFX/generated/gui_generated/src/containers/DriverViewFieldBase.cpp @@ -18,7 +18,7 @@ DriverViewFieldBase::DriverViewFieldBase() title.setPosition(0, 0, 160, 25); title.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255)); title.setLinespacing(0); - title.setTypedText(touchgfx::TypedText(T___SINGLEUSE_0FBJ)); + title.setTypedText(touchgfx::TypedText(T_DRIVERVIEWFIELD_TITLE)); add(title); value.setPosition(0, 20, 160, 57); diff --git a/TouchGFX/generated/gui_generated/src/containers/DriverViewFieldSelectionBase.cpp b/TouchGFX/generated/gui_generated/src/containers/DriverViewFieldSelectionBase.cpp index 4408afd..1602be5 100644 --- a/TouchGFX/generated/gui_generated/src/containers/DriverViewFieldSelectionBase.cpp +++ b/TouchGFX/generated/gui_generated/src/containers/DriverViewFieldSelectionBase.cpp @@ -16,7 +16,7 @@ DriverViewFieldSelectionBase::DriverViewFieldSelectionBase() name.setPosition(0, 0, 160, 25); name.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255)); name.setLinespacing(0); - name.setTypedText(touchgfx::TypedText(T___SINGLEUSE_PNKR)); + name.setTypedText(touchgfx::TypedText(T_DRIVERVIEWFIELD_TITLE)); add(name); line1.setPosition(0, 25, 160, 1); diff --git a/TouchGFX/generated/gui_generated/src/debugview_screen/DebugViewViewBase.cpp b/TouchGFX/generated/gui_generated/src/debugview_screen/DebugViewViewBase.cpp new file mode 100644 index 0000000..5f59243 --- /dev/null +++ b/TouchGFX/generated/gui_generated/src/debugview_screen/DebugViewViewBase.cpp @@ -0,0 +1,62 @@ +/*********************************************************************************/ +/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/ +/*********************************************************************************/ +#include +#include +#include + +DebugViewViewBase::DebugViewViewBase() : + updateItemCallback(this, &DebugViewViewBase::updateItemCallbackHandler) +{ + touchgfx::CanvasWidgetRenderer::setupBuffer(canvasBuffer, CANVAS_BUFFER_SIZE); + + __background.setPosition(0, 0, 480, 320); + __background.setColor(touchgfx::Color::getColorFromRGB(0, 0, 0)); + add(__background); + + list.setPosition(0, 4, 480, 312); + list.setHorizontal(false); + list.setCircular(true); + list.setEasingEquation(touchgfx::EasingEquations::backEaseOut); + list.setSwipeAcceleration(10); + list.setDragAcceleration(10); + list.setNumberOfItems(1); + list.setPadding(0, 0); + list.setSnapping(false); + list.setDrawableSize(26, 0); + list.setDrawables(listListItems, updateItemCallback); + add(list); + + line1.setPosition(0, 3, 480, 1); + line1Painter.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255)); + line1.setPainter(line1Painter); + line1.setStart(0, 0); + line1.setEnd(480, 0); + line1.setLineWidth(10); + line1.setLineEndingStyle(touchgfx::Line::ROUND_CAP_ENDING); + add(line1); +} + +DebugViewViewBase::~DebugViewViewBase() +{ + touchgfx::CanvasWidgetRenderer::resetBuffer(); +} + +void DebugViewViewBase::setupScreen() +{ + list.initialize(); + for (int i = 0; i < listListItems.getNumberOfDrawables(); i++) + { + listListItems[i].initialize(); + } +} + +void DebugViewViewBase::updateItemCallbackHandler(touchgfx::DrawableListItemsInterface* items, int16_t containerIndex, int16_t itemIndex) +{ + if (items == &listListItems) + { + touchgfx::Drawable* d = items->getDrawable(containerIndex); + DebugViewLine* cc = (DebugViewLine*)d; + listUpdateItem(*cc, itemIndex); + } +} diff --git a/TouchGFX/generated/gui_generated/src/missionselect_screen/MissionSelectViewBase.cpp b/TouchGFX/generated/gui_generated/src/missionselect_screen/MissionSelectViewBase.cpp index 43b99d2..6b23511 100644 --- a/TouchGFX/generated/gui_generated/src/missionselect_screen/MissionSelectViewBase.cpp +++ b/TouchGFX/generated/gui_generated/src/missionselect_screen/MissionSelectViewBase.cpp @@ -117,4 +117,13 @@ void MissionSelectViewBase::handleKeyEvent(uint8_t key) application().gotoDriverViewScreenNoTransition(); } + + if(252 == key) + { + //DummyChangeDebugView + //When hardware button 252 clicked change screen to DebugView + //Go to DebugView with no screen transition + application().gotoDebugViewScreenNoTransition(); + + } } diff --git a/TouchGFX/generated/texts/cache/LanguageCpp_Gb.cache b/TouchGFX/generated/texts/cache/LanguageCpp_Gb.cache index 4799ec6..db85824 100644 --- a/TouchGFX/generated/texts/cache/LanguageCpp_Gb.cache +++ b/TouchGFX/generated/texts/cache/LanguageCpp_Gb.cache @@ -1 +1 @@ -{"remap":"yes","language":"GB","language_index":0,"indices":[["257","T_FIELD_BBAL"],["209","T_FIELD_TSVOLTVEH"],["202","T_FIELD_TSVOLTBAT"],["228","T_FIELD_LVSOC"],["246","T_FIELD_TSSOC"],["267","T_FIELD_MAXCELLTEMP"],["272","T_FIELD_TIREFL"],["277","T_FIELD_TIREFR"],["282","T_FIELD_TIRERL"],["287","T_FIELD_TIRERR"],["262","T_FIELD_LAPCOUNT"],["146","T_FIELD_INICHKSTATE"],["216","T_FIELD_ERR"],["301","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"],["297","T_FIELD_TSCURRENT"],["292","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"],["252","T___SINGLEUSE_PNKR"],["222","T___SINGLEUSE_0FBJ"],["305","T___SINGLEUSE_4OBM"],["298","T___SINGLEUSE_PHFD"],["240","T___SINGLEUSE_H6UX"],["136","T___SINGLEUSE_20H3"],["17","T___SINGLEUSE_SDGP"],["51","T___SINGLEUSE_M5X7"],["0","T___SINGLEUSE_6GPV"]]} \ No newline at end of file +{"remap":"yes","language":"GB","language_index":0,"indices":[["136","T_DEBUGVIEWFIELD_TITLE"],["136","T_DRIVERVIEWFIELD_TITLE"],["246","T_FIELD_BBAL"],["209","T_FIELD_TSVOLTVEH"],["202","T_FIELD_TSVOLTBAT"],["222","T_FIELD_LVSOC"],["240","T_FIELD_TSSOC"],["256","T_FIELD_MAXCELLTEMP"],["261","T_FIELD_TIREFL"],["266","T_FIELD_TIREFR"],["271","T_FIELD_TIRERL"],["276","T_FIELD_TIRERR"],["251","T_FIELD_LAPCOUNT"],["146","T_FIELD_INICHKSTATE"],["216","T_FIELD_ERR"],["290","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_CENTERED"],["136","T_DEFAULTWILDCARD_RIGHTALIGNED"],["286","T_FIELD_TSCURRENT"],["281","T_FIELD_MINCELLVOLT"],["228","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"],["294","T___SINGLEUSE_4OBM"],["287","T___SINGLEUSE_PHFD"],["234","T___SINGLEUSE_H6UX"],["136","T___SINGLEUSE_20H3"],["17","T___SINGLEUSE_SDGP"],["51","T___SINGLEUSE_M5X7"],["0","T___SINGLEUSE_6GPV"]]} \ No newline at end of file diff --git a/TouchGFX/generated/texts/cache/TextKeysAndLanguages.cache b/TouchGFX/generated/texts/cache/TextKeysAndLanguages.cache index d7e50c4..486bcfc 100644 --- a/TouchGFX/generated/texts/cache/TextKeysAndLanguages.cache +++ b/TouchGFX/generated/texts/cache/TextKeysAndLanguages.cache @@ -1 +1 @@ -{"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_PNKR","T___SINGLEUSE_0FBJ","T___SINGLEUSE_4OBM","T___SINGLEUSE_PHFD","T___SINGLEUSE_H6UX","T___SINGLEUSE_20H3","T___SINGLEUSE_SDGP","T___SINGLEUSE_M5X7","T___SINGLEUSE_6GPV"]} \ No newline at end of file +{"languages":["GB"],"textids":["T_DEBUGVIEWFIELD_TITLE","T_DRIVERVIEWFIELD_TITLE","T_FIELD_BBAL","T_FIELD_TSVOLTVEH","T_FIELD_TSVOLTBAT","T_FIELD_LVSOC","T_FIELD_TSSOC","T_FIELD_MAXCELLTEMP","T_FIELD_TIREFL","T_FIELD_TIREFR","T_FIELD_TIRERL","T_FIELD_TIRERR","T_FIELD_LAPCOUNT","T_FIELD_INICHKSTATE","T_FIELD_ERR","T_FIELD_SDC","T_FIELD_INVRREADY","T_FIELD_INVLREADY","T_FIELD_R2DPROGRESS","T_FIELD_ACTIVEMISSION","T_FIELD_ASSTATE","T_FIELD_TSSTATE","T_NUMBERWILDCARD","T_DEFAULTWILDCARD_CENTERED","T_DEFAULTWILDCARD_RIGHTALIGNED","T_FIELD_TSCURRENT","T_FIELD_MINCELLVOLT","T_FIELD_SPEED","T_INSPECTION_HUGE","T_EBS_HUGE","T_TRACKDRIVE_HUGE","T_AUTOX_HUGE","T_SKIDPAD_HUGE","T_ACCEL_HUGE","T_INVALID_HUGE","T_MANUAL","T_INSPECTION","T_EBS","T_TRACKDRIVE","T_AUTOX","T_SKIDPAD","T_ACCEL","T___SINGLEUSE_4OBM","T___SINGLEUSE_PHFD","T___SINGLEUSE_H6UX","T___SINGLEUSE_20H3","T___SINGLEUSE_SDGP","T___SINGLEUSE_M5X7","T___SINGLEUSE_6GPV"]} \ No newline at end of file diff --git a/TouchGFX/generated/texts/cache/TextsCpp.cache b/TouchGFX/generated/texts/cache/TextsCpp.cache index 0c74b16..d7b969b 100644 --- a/TouchGFX/generated/texts/cache/TextsCpp.cache +++ b/TouchGFX/generated/texts/cache/TextsCpp.cache @@ -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,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,63,63,63,63,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]} \ No newline at end of file +{"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,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]} \ No newline at end of file diff --git a/TouchGFX/generated/texts/cache/TypedTextDatabaseCpp.cache b/TouchGFX/generated/texts/cache/TypedTextDatabaseCpp.cache index d7341d1..f5ce66d 100644 --- a/TouchGFX/generated/texts/cache/TypedTextDatabaseCpp.cache +++ b/TouchGFX/generated/texts/cache/TypedTextDatabaseCpp.cache @@ -1 +1 @@ -{"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"],[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"} \ No newline at end of file +{"databases":{"DEFAULT":[[0,"LEFT","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[4,"CENTER","LTR"],[0,"CENTER","LTR"],[0,"RIGHT","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[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"} \ No newline at end of file diff --git a/TouchGFX/generated/texts/include/texts/TextKeysAndLanguages.hpp b/TouchGFX/generated/texts/include/texts/TextKeysAndLanguages.hpp index 31058c4..dfccb67 100644 --- a/TouchGFX/generated/texts/include/texts/TextKeysAndLanguages.hpp +++ b/TouchGFX/generated/texts/include/texts/TextKeysAndLanguages.hpp @@ -12,6 +12,8 @@ enum LANGUAGES enum TEXTS { + T_DEBUGVIEWFIELD_TITLE, + T_DRIVERVIEWFIELD_TITLE, T_FIELD_BBAL, T_FIELD_TSVOLTVEH, T_FIELD_TSVOLTBAT, @@ -33,7 +35,8 @@ enum TEXTS T_FIELD_ASSTATE, T_FIELD_TSSTATE, T_NUMBERWILDCARD, - T_DEFAULTWILDCARD, + T_DEFAULTWILDCARD_CENTERED, + T_DEFAULTWILDCARD_RIGHTALIGNED, T_FIELD_TSCURRENT, T_FIELD_MINCELLVOLT, T_FIELD_SPEED, @@ -51,8 +54,6 @@ enum TEXTS T_AUTOX, T_SKIDPAD, T_ACCEL, - T___SINGLEUSE_PNKR, - T___SINGLEUSE_0FBJ, T___SINGLEUSE_4OBM, T___SINGLEUSE_PHFD, T___SINGLEUSE_H6UX, diff --git a/TouchGFX/generated/texts/src/LanguageGb.cpp b/TouchGFX/generated/texts/src/LanguageGb.cpp index 9b36fd4..8b86b88 100644 --- a/TouchGFX/generated/texts/src/LanguageGb.cpp +++ b/TouchGFX/generated/texts/src/LanguageGb.cpp @@ -10,20 +10,22 @@ KEEP extern const uint32_t indicesGb[] TEXT_LOCATION_FLASH_ATTRIBUTE; // Remap all strings TEXT_LOCATION_FLASH_PRAGMA KEEP extern const uint32_t indicesGb[] TEXT_LOCATION_FLASH_ATTRIBUTE = { - 257, // T_FIELD_BBAL: "BBAL" + 136, // T_DEBUGVIEWFIELD_TITLE: "<>" + 136, // T_DRIVERVIEWFIELD_TITLE: "<>" + 246, // T_FIELD_BBAL: "BBAL" 209, // T_FIELD_TSVOLTVEH: "TSVVEH" 202, // T_FIELD_TSVOLTBAT: "TSVBAT" - 228, // T_FIELD_LVSOC: "LVSOC" - 246, // T_FIELD_TSSOC: "TSSOC" - 267, // T_FIELD_MAXCELLTEMP: "TMAX" - 272, // T_FIELD_TIREFL: "TTFL" - 277, // T_FIELD_TIREFR: "TTFR" - 282, // T_FIELD_TIRERL: "TTRL" - 287, // T_FIELD_TIRERR: "TTRR" - 262, // T_FIELD_LAPCOUNT: "LAPS" + 222, // T_FIELD_LVSOC: "LVSOC" + 240, // T_FIELD_TSSOC: "TSSOC" + 256, // T_FIELD_MAXCELLTEMP: "TMAX" + 261, // T_FIELD_TIREFL: "TTFL" + 266, // T_FIELD_TIREFR: "TTFR" + 271, // T_FIELD_TIRERL: "TTRL" + 276, // T_FIELD_TIRERR: "TTRR" + 251, // T_FIELD_LAPCOUNT: "LAPS" 146, // T_FIELD_INICHKSTATE: "ICSTATE" 216, // T_FIELD_ERR: "ERROR" - 301, // T_FIELD_SDC: "SDC" + 290, // T_FIELD_SDC: "SDC" 162, // T_FIELD_INVRREADY: "INVRRDY" 154, // T_FIELD_INVLREADY: "INVLRDY" 178, // T_FIELD_R2DPROGRESS: "R2DPROG" @@ -31,10 +33,11 @@ KEEP extern const uint32_t indicesGb[] TEXT_LOCATION_FLASH_ATTRIBUTE = { 138, // T_FIELD_ASSTATE: "ASSTATE" 194, // T_FIELD_TSSTATE: "TSSTATE" 136, // T_NUMBERWILDCARD: "<>" - 136, // T_DEFAULTWILDCARD: "<>" - 297, // T_FIELD_TSCURRENT: "ITS" - 292, // T_FIELD_MINCELLVOLT: "VMIN" - 234, // T_FIELD_SPEED: "SPEED" + 136, // T_DEFAULTWILDCARD_CENTERED: "<>" + 136, // T_DEFAULTWILDCARD_RIGHTALIGNED: "<>" + 286, // T_FIELD_TSCURRENT: "ITS" + 281, // T_FIELD_MINCELLVOLT: "VMIN" + 228, // T_FIELD_SPEED: "SPEED" 95, // T_INSPECTION_HUGE: "Inspection" 127, // T_EBS_HUGE: "EBS Test" 106, // T_TRACKDRIVE_HUGE: "Trackdrive" @@ -49,11 +52,9 @@ KEEP extern const uint32_t indicesGb[] TEXT_LOCATION_FLASH_ATTRIBUTE = { 117, // T_AUTOX: "Autocross" 186, // T_SKIDPAD: "Skidpad" 82, // T_ACCEL: "Acceleration" - 252, // T___SINGLEUSE_PNKR: "????" - 222, // T___SINGLEUSE_0FBJ: "FIELD" - 305, // T___SINGLEUSE_4OBM: "LV" - 298, // T___SINGLEUSE_PHFD: "TS" - 240, // T___SINGLEUSE_H6UX: "TIRES" + 294, // T___SINGLEUSE_4OBM: "LV" + 287, // T___SINGLEUSE_PHFD: "TS" + 234, // T___SINGLEUSE_H6UX: "TIRES" 136, // T___SINGLEUSE_20H3: "<>" 17, // T___SINGLEUSE_SDGP: "Current Mission:" 51, // T___SINGLEUSE_M5X7: "Invalid Mission" diff --git a/TouchGFX/generated/texts/src/Texts.cpp b/TouchGFX/generated/texts/src/Texts.cpp index 92dcffe..2c055f7 100644 --- a/TouchGFX/generated/texts/src/Texts.cpp +++ b/TouchGFX/generated/texts/src/Texts.cpp @@ -82,23 +82,21 @@ KEEP extern const touchgfx::Unicode::UnicodeChar texts_all_languages[] TEXT_LOCA 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" - 0x3f, 0x3f, 0x3f, 0x3f, 0x0, // @252 "????" - 0x42, 0x42, 0x41, 0x4c, 0x0, // @257 "BBAL" - 0x4c, 0x41, 0x50, 0x53, 0x0, // @262 "LAPS" - 0x54, 0x4d, 0x41, 0x58, 0x0, // @267 "TMAX" - 0x54, 0x54, 0x46, 0x4c, 0x0, // @272 "TTFL" - 0x54, 0x54, 0x46, 0x52, 0x0, // @277 "TTFR" - 0x54, 0x54, 0x52, 0x4c, 0x0, // @282 "TTRL" - 0x54, 0x54, 0x52, 0x52, 0x0, // @287 "TTRR" - 0x56, 0x4d, 0x49, 0x4e, 0x0, // @292 "VMIN" - 0x49, 0x54, 0x53, 0x0, // @297 "ITS" - 0x53, 0x44, 0x43, 0x0, // @301 "SDC" - 0x4c, 0x56, 0x0 // @305 "LV" + 0x4c, 0x56, 0x53, 0x4f, 0x43, 0x0, // @222 "LVSOC" + 0x53, 0x50, 0x45, 0x45, 0x44, 0x0, // @228 "SPEED" + 0x54, 0x49, 0x52, 0x45, 0x53, 0x0, // @234 "TIRES" + 0x54, 0x53, 0x53, 0x4f, 0x43, 0x0, // @240 "TSSOC" + 0x42, 0x42, 0x41, 0x4c, 0x0, // @246 "BBAL" + 0x4c, 0x41, 0x50, 0x53, 0x0, // @251 "LAPS" + 0x54, 0x4d, 0x41, 0x58, 0x0, // @256 "TMAX" + 0x54, 0x54, 0x46, 0x4c, 0x0, // @261 "TTFL" + 0x54, 0x54, 0x46, 0x52, 0x0, // @266 "TTFR" + 0x54, 0x54, 0x52, 0x4c, 0x0, // @271 "TTRL" + 0x54, 0x54, 0x52, 0x52, 0x0, // @276 "TTRR" + 0x56, 0x4d, 0x49, 0x4e, 0x0, // @281 "VMIN" + 0x49, 0x54, 0x53, 0x0, // @286 "ITS" + 0x53, 0x44, 0x43, 0x0, // @290 "SDC" + 0x4c, 0x56, 0x0 // @294 "LV" }; TEXT_LOCATION_FLASH_PRAGMA diff --git a/TouchGFX/generated/texts/src/TypedTextDatabase.cpp b/TouchGFX/generated/texts/src/TypedTextDatabase.cpp index 442cc95..457eea5 100644 --- a/TouchGFX/generated/texts/src/TypedTextDatabase.cpp +++ b/TouchGFX/generated/texts/src/TypedTextDatabase.cpp @@ -24,6 +24,8 @@ extern const touchgfx::TypedText::TypedTextData* const typedTextDatabaseArray[]; TEXT_LOCATION_FLASH_PRAGMA const touchgfx::TypedText::TypedTextData typedText_database_DEFAULT[] TEXT_LOCATION_FLASH_ATTRIBUTE = { + { 0, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR }, + { 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR }, { 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR }, { 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR }, { 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR }, @@ -46,6 +48,7 @@ const touchgfx::TypedText::TypedTextData typedText_database_DEFAULT[] TEXT_LOCAT { 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR }, { 4, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR }, { 0, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR }, + { 0, touchgfx::RIGHT, 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 }, @@ -66,8 +69,6 @@ const touchgfx::TypedText::TypedTextData typedText_database_DEFAULT[] TEXT_LOCAT { 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR }, { 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR }, { 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR }, - { 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR }, - { 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR }, { 4, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR }, { 1, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR }, { 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR }, diff --git a/TouchGFX/gui/include/gui/common/DataField.hpp b/TouchGFX/gui/include/gui/common/DataField.hpp index f975d0f..90283ae 100644 --- a/TouchGFX/gui/include/gui/common/DataField.hpp +++ b/TouchGFX/gui/include/gui/common/DataField.hpp @@ -2,6 +2,7 @@ #define DATAFIELD_HPP #include "touchgfx/TypedText.hpp" +#include "touchgfx/Unicode.hpp" #include #include @@ -20,17 +21,51 @@ CountedEnum(DataFieldType, size_t, DF_TSState, DF_ASState, DF_ActiveMission, DF_TSSoC, DF_LVSoC, DF_TSCurrent, DF_TSVoltageBat, DF_TSVoltageVeh, DF_Speed, DF_BBal); -enum class DataFieldKind { Numeric, Bool, Text }; +enum class DataFieldKind { Float, Bool, Text, Int }; struct DataFieldDescription { DataFieldKind kind; - touchgfx::TypedText title; + const char *title; size_t int_digits; size_t decimal_digits; - void* (*getValue)(void); + void *(*getValue)(void); }; extern DataFieldDescription dataFieldDescs[]; +class DataField { +public: + virtual ~DataField() {} + + void setType(DataFieldType type); + DataFieldType getType(); + + virtual void updateValue(); + +protected: + touchgfx::Unicode::UnicodeChar titleBuffer[16]; + touchgfx::Unicode::UnicodeChar valueBuffer[16]; + + DataFieldType type; + const DataFieldDescription *desc; + union { + float f; + int b; + int i; + } fieldValue; + + virtual void typeUpdated() = 0; + virtual void titleBufferUpdated() = 0; + virtual void valueBufferUpdated() = 0; + +private: + void setFloatValue(float floatValue); + void setBoolValue(int boolValue); + void setIntValue(int intValue); + void setStrValue(const char *strValue); + + void updateValueBuffer(); +}; + #endif // DATAFIELD_HPP diff --git a/TouchGFX/gui/include/gui/containers/DebugViewItem.hpp b/TouchGFX/gui/include/gui/containers/DebugViewItem.hpp new file mode 100644 index 0000000..e7a7fbb --- /dev/null +++ b/TouchGFX/gui/include/gui/containers/DebugViewItem.hpp @@ -0,0 +1,20 @@ +#ifndef DEBUGVIEWITEM_HPP +#define DEBUGVIEWITEM_HPP + +#include "gui/common/DataField.hpp" +#include + +class DebugViewItem : public DebugViewItemBase, public DataField { +public: + DebugViewItem(); + virtual ~DebugViewItem() {} + + virtual void initialize() override; + +protected: + virtual void typeUpdated() override; + virtual void titleBufferUpdated() override; + virtual void valueBufferUpdated() override; +}; + +#endif // DEBUGVIEWITEM_HPP diff --git a/TouchGFX/gui/include/gui/containers/DebugViewLine.hpp b/TouchGFX/gui/include/gui/containers/DebugViewLine.hpp new file mode 100644 index 0000000..64483cf --- /dev/null +++ b/TouchGFX/gui/include/gui/containers/DebugViewLine.hpp @@ -0,0 +1,27 @@ +#ifndef DEBUGVIEWLINE_HPP +#define DEBUGVIEWLINE_HPP + +#include "gui/common/DataField.hpp" +#include "gui/containers/DebugViewItem.hpp" +#include + +class DebugViewLine : public DebugViewLineBase { +public: + DebugViewLine(); + virtual ~DebugViewLine() {} + + virtual void initialize(); + + void setFieldType(size_t i, DataFieldType type); + void setFieldVisible(size_t i, int visible); + void updateFieldValues(); + void setLightBG(int light); + + static constexpr size_t NUM_FIELDS = 2; + +protected: +private: + DebugViewItem *fields[NUM_FIELDS]; +}; + +#endif // DEBUGVIEWLINE_HPP diff --git a/TouchGFX/gui/include/gui/containers/DriverViewField.hpp b/TouchGFX/gui/include/gui/containers/DriverViewField.hpp index 2ea5daa..38faa5c 100644 --- a/TouchGFX/gui/include/gui/containers/DriverViewField.hpp +++ b/TouchGFX/gui/include/gui/containers/DriverViewField.hpp @@ -7,31 +7,20 @@ #include "gui/common/DataField.hpp" -class DriverViewField : public DriverViewFieldBase { +class DriverViewField : public DriverViewFieldBase, public DataField { public: DriverViewField(); virtual ~DriverViewField() {} - virtual void initialize(); - - void setType(const DataFieldDescription &desc); - void setValue(float newValue); - void setValue(const char *str); - void setValue(int boolValue); + virtual void initialize() override; void setSelected(int selected); protected: private: - Unicode::UnicodeChar valueBuffer[16]; - - DataFieldKind fieldKind; - size_t intDigits; - size_t decimalDigits; - float floatValue; - int boolValue; - - void updateValueBuffer(); + virtual void typeUpdated() override; + virtual void titleBufferUpdated() override; + virtual void valueBufferUpdated() override; }; #endif // DRIVERVIEWFIELD_HPP diff --git a/TouchGFX/gui/include/gui/containers/DriverViewFieldSelection.hpp b/TouchGFX/gui/include/gui/containers/DriverViewFieldSelection.hpp index fc003e2..bfec31b 100644 --- a/TouchGFX/gui/include/gui/containers/DriverViewFieldSelection.hpp +++ b/TouchGFX/gui/include/gui/containers/DriverViewFieldSelection.hpp @@ -2,6 +2,7 @@ #define DRIVERVIEWFIELDSELECTION_HPP #include "touchgfx/TypedText.hpp" +#include "touchgfx/Unicode.hpp" #include class DriverViewFieldSelection : public DriverViewFieldSelectionBase { @@ -11,10 +12,12 @@ public: virtual void initialize(); - void setName(const touchgfx::TypedText &name); + void setName(const char *name); void setSelected(int selected); protected: +private: + Unicode::UnicodeChar nameBuffer[16]; }; #endif // DRIVERVIEWFIELDSELECTION_HPP diff --git a/TouchGFX/gui/include/gui/debugview_screen/DebugViewPresenter.hpp b/TouchGFX/gui/include/gui/debugview_screen/DebugViewPresenter.hpp new file mode 100644 index 0000000..927916c --- /dev/null +++ b/TouchGFX/gui/include/gui/debugview_screen/DebugViewPresenter.hpp @@ -0,0 +1,38 @@ +#ifndef DEBUGVIEWPRESENTER_HPP +#define DEBUGVIEWPRESENTER_HPP + +#include +#include + +using namespace touchgfx; + +class DebugViewView; + +class DebugViewPresenter : public touchgfx::Presenter, public ModelListener { +public: + DebugViewPresenter(DebugViewView &v); + + /** + * The activate function is called automatically when this screen is "switched + * in" (ie. made active). Initialization logic can be placed here. + */ + virtual void activate() override; + + /** + * The deactivate function is called automatically when this screen is + * "switched out" (ie. made inactive). Teardown functionality can be placed + * here. + */ + virtual void deactivate() override; + + virtual ~DebugViewPresenter(){}; + + virtual void vehicleStateUpdated() override; + +private: + DebugViewPresenter(); + + DebugViewView &view; +}; + +#endif // DEBUGVIEWPRESENTER_HPP diff --git a/TouchGFX/gui/include/gui/debugview_screen/DebugViewView.hpp b/TouchGFX/gui/include/gui/debugview_screen/DebugViewView.hpp new file mode 100644 index 0000000..7c5993f --- /dev/null +++ b/TouchGFX/gui/include/gui/debugview_screen/DebugViewView.hpp @@ -0,0 +1,21 @@ +#ifndef DEBUGVIEWVIEW_HPP +#define DEBUGVIEWVIEW_HPP + +#include +#include + +class DebugViewView : public DebugViewViewBase { +public: + DebugViewView(); + virtual ~DebugViewView() {} + virtual void setupScreen() override; + virtual void tearDownScreen() override; + + virtual void listUpdateItem(DebugViewLine &line, int16_t itemIndex) override; + + void updateFieldValues(); + +protected: +}; + +#endif // DEBUGVIEWVIEW_HPP diff --git a/TouchGFX/gui/include/gui/driverview_screen/DriverViewPresenter.hpp b/TouchGFX/gui/include/gui/driverview_screen/DriverViewPresenter.hpp index 34ccdb4..9f1d793 100644 --- a/TouchGFX/gui/include/gui/driverview_screen/DriverViewPresenter.hpp +++ b/TouchGFX/gui/include/gui/driverview_screen/DriverViewPresenter.hpp @@ -18,19 +18,21 @@ public: * The activate function is called automatically when this screen is "switched * in" (ie. made active). Initialization logic can be placed here. */ - virtual void activate(); + virtual void activate() override; /** * The deactivate function is called automatically when this screen is * "switched out" (ie. made inactive). Teardown functionality can be placed * here. */ - virtual void deactivate(); + virtual void deactivate() override; virtual ~DriverViewPresenter(){}; void vehicleStateUpdated() override; + void setFieldType(size_t i, DataFieldType type); + private: DriverViewPresenter(); diff --git a/TouchGFX/gui/include/gui/driverview_screen/DriverViewView.hpp b/TouchGFX/gui/include/gui/driverview_screen/DriverViewView.hpp index 45bc14a..9b2701f 100644 --- a/TouchGFX/gui/include/gui/driverview_screen/DriverViewView.hpp +++ b/TouchGFX/gui/include/gui/driverview_screen/DriverViewView.hpp @@ -12,16 +12,14 @@ class DriverViewView : public DriverViewViewBase { public: DriverViewView(); virtual ~DriverViewView() {} - virtual void setupScreen(); - virtual void tearDownScreen(); + virtual void setupScreen() override; + virtual void tearDownScreen() override; void fieldTypeSelectionUpdateItem(DriverViewFieldSelection &item, int16_t itemIndex) override; - 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 setFieldType(size_t i, DataFieldType type); + void updateFieldValues(); void setTireTemps(const TireTemps &temps); void setTSSoC(uint8_t soc); @@ -37,7 +35,6 @@ public: protected: private: DriverViewField &getField(size_t i); - DriverViewFieldSelection *getFieldType(size_t i); void updateSelectedField(size_t select); void updateSelectedFieldType(size_t select); diff --git a/TouchGFX/gui/src/common/DataField.cpp b/TouchGFX/gui/src/common/DataField.cpp index 12009c3..e027b95 100644 --- a/TouchGFX/gui/src/common/DataField.cpp +++ b/TouchGFX/gui/src/common/DataField.cpp @@ -1,6 +1,7 @@ #include "gui/common/DataField.hpp" #include "texts/TextKeysAndLanguages.hpp" +#include "touchgfx/Unicode.hpp" #include "vehicle.h" #define VEH_FIELD(FIELD) []() { return (void *)&vehicle_state.FIELD; } @@ -11,50 +12,219 @@ 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_tsstate_text() { + const char *text; + switch (vehicle_state.ts_state) { + case TS_INACTIVE: + text = "INACT"; + break; + case TS_ACTIVE: + text = "ACT"; + break; + case TS_PRECHARGE: + text = "PRECH"; + break; + case TS_DISCHARGE: + text = "DISCH"; + break; + case TS_ERROR: + text = "ERROR"; + break; + case TS_CHARGING_CHECK: + text = "CH_CHK"; + break; + case TS_CHARGING: + text = "CH"; + break; + default: + text = "UNKNOWN"; } + return (void *)text; +} + +void *get_asstate_text() { + const char *text; + switch (vehicle_state.as_state) { + case AS_OFF: + text = "OFF"; + break; + case AS_MANUAL: + text = "MAN"; + break; + case AS_READY: + text = "RDY"; + break; + case AS_DRIVING: + text = "DRIVE"; + break; + case AS_FINISHED: + text = "FIN"; + break; + case AS_EMERGENCY: + text = "EMERG"; + break; + default: + text = "UNKNOWN"; + } + return (void *)text; +} + +void *get_mission_text() { + const char *text; + switch (vehicle_state.active_mission) { + case MISSION_NONE: + text = "NONE"; + break; + case MISSION_ACCEL: + text = "ACCEL"; + break; + case MISSION_SKIDPAD: + text = "SKIDPAD"; + break; + case MISSION_AUTOX: + text = "AUTOX"; + break; + case MISSION_TRACKDRIVE: + text = "TRACK"; + break; + case MISSION_EBS: + text = "EBS"; + break; + case MISSION_INSPECTION: + text = "INSPECT"; + break; + case MISSION_MANUAL: + text = "MAN"; + break; + default: + text = "UNKNOWN"; + } + return (void *)text; +} + +void *get_r2dprog_text() { + const char *text; + switch (vehicle_state.r2d_progress) { + case R2D_NONE: + text = "NONE"; + break; + case R2D_TSMS: + text = "TSMS"; + break; + case R2D_TSACTIVE: + text = "TSACT"; + break; + case R2D_RESETTING_NODES: + text = "RST NODE"; + break; + case R2D_RESETTING_COMMS: + text = "RST COM"; + break; + case R2D_WAITING_INIT: + text = "WAIT INIT"; + break; + case R2D_INIT_STAGE1: + text = "INIT S1"; + break; + case R2D_INIT_STAGE2: + text = "INIT S2"; + break; + case R2D_INIT_SUCCESS: + text = "INIT SUCC"; + break; + default: + text = "UNKNOWN"; + } + return (void *)text; +} + +void *get_inichk_text() { + const char *text; + switch (vehicle_state.ini_chk_state) { + case INICHK_START: + text = "START"; + break; + case INICHK_WD_CHECK: + text = "WD CHK"; + break; + case INICHK_WD_OK: + text = "WD OK"; + break; + case INICHK_ASB_CHECK_1: + text = "ASB CHK1"; + break; + case INICHK_ASB_CHECK_2: + text = "ASB CHK2"; + break; + case INICHK_WAIT_TS: + text = "WAIT TS"; + break; + case INICHK_EBS_CHECK_A: + text = "EBS CHKA"; + break; + case INICHK_EBS_CHECK_B: + text = "EBS CHKB"; + break; + case INICHK_DONE: + text = "DONE"; + break; + case INICHK_ERROR: + text = "ERROR"; + break; + default: + text = "UNKNOWN"; + } + return (void *)text; +} + +void *get_sdc_text() { + const char *text; + if (vehicle_state.errors.sdc_bfl) { + text = "BFL"; + } else if (vehicle_state.errors.sdc_brl) { + text = "BRL"; + } else if (vehicle_state.errors.sdc_acc) { + text = "ACC"; + } else if (vehicle_state.errors.sdc_hvb) { + text = "HVB"; + } else { + text = "CLOSED"; + } + return (void *)text; } void *get_err_text() { + const char *text; if (vehicle_state.errors.err_sdc) { - return (void *)"SDC"; + text = "SDC"; } else if (vehicle_state.errors.err_ams) { - return (void *)"AMS"; + text = "AMS"; } else if (vehicle_state.errors.err_pdu) { - return (void *)"PDU"; + text = "PDU"; } else if (vehicle_state.errors.err_ini_chk) { - return (void *)"IniChk"; + text = "IniChk"; } else if (vehicle_state.errors.err_con_mon) { - return (void *)"ConMon"; + text = "ConMon"; } else if (vehicle_state.errors.err_scs) { - return (void *)"SCS"; + text = "SCS"; } else if (vehicle_state.errors.err_sbspd) { - return (void *)"sBSPD"; + text = "sBSPD"; } else if (vehicle_state.errors.err_appsp) { - return (void *)"APPSp"; + text = "APPSp"; } else if (vehicle_state.errors.err_as) { - return (void *)"AS"; + text = "AS"; } else if (vehicle_state.errors.err_ros) { - return (void *)"ROS"; + text = "ROS"; } else if (vehicle_state.errors.err_res) { - return (void *)"RES"; + text = "RES"; } else if (vehicle_state.errors.err_invl) { - return (void *)"INVL"; + text = "INVL"; } else if (vehicle_state.errors.err_invr) { - return (void *)"INVR"; + text = "INVR"; } else { - return (void *)"NONE"; + text = "NONE"; } + return (void *)text; } void *get_zero() { @@ -63,48 +233,124 @@ void *get_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, + [DF_TSState] = {DataFieldKind::Text, "TSSTATE", 1, 0, get_tsstate_text}, + [DF_ASState] = {DataFieldKind::Text, "ASSTATE", 1, 0, get_asstate_text}, + [DF_ActiveMission] = {DataFieldKind::Text, "MISSION", 1, 0, + get_mission_text}, + [DF_R2DProgress] = {DataFieldKind::Text, "R2DPROG", 1, 0, get_r2dprog_text}, + [DF_INVLReady] = {DataFieldKind::Bool, "INVLRDY", 0, 0, VEH_BIT_FIELD(errors.invl_ready)}, - [DF_INVRReady] = {DataFieldKind::Bool, T_FIELD_INVRREADY, 0, 0, + [DF_INVRReady] = {DataFieldKind::Bool, "INVRRDY", 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, + [DF_SDC] = {DataFieldKind::Text, "SDC", 0, 0, get_sdc_text}, + [DF_ERR] = {DataFieldKind::Text, "ERROR", 0, 0, get_err_text}, + [DF_IniChkState] = {DataFieldKind::Text, "ICSTATE", 1, 0, get_inichk_text}, + [DF_LapCount] = {DataFieldKind::Int, "LAPS", 3, 0, VEH_FIELD(lap_count)}, + [DF_TireTempFL] = {DataFieldKind::Float, "TTFL", 2, 1, VEH_FIELD(tire_temps.fl)}, - [DF_TireTempFR] = {DataFieldKind::Numeric, T_FIELD_TIREFR, 2, 1, + [DF_TireTempFR] = {DataFieldKind::Float, "TTFR", 2, 1, VEH_FIELD(tire_temps.fr)}, - [DF_TireTempRL] = {DataFieldKind::Numeric, T_FIELD_TIRERL, 2, 1, + [DF_TireTempRL] = {DataFieldKind::Float, "TTRL", 2, 1, VEH_FIELD(tire_temps.rl)}, - [DF_TireTempRR] = {DataFieldKind::Numeric, T_FIELD_TIRERR, 2, 1, + [DF_TireTempRR] = {DataFieldKind::Float, "TTRR", 2, 1, VEH_FIELD(tire_temps.rr)}, - [DF_MinCellVolt] = {DataFieldKind::Numeric, T_FIELD_MINCELLVOLT, 1, 2, + [DF_MinCellVolt] = {DataFieldKind::Float, "VMIN", 1, 2, VEH_FIELD(min_cell_volt)}, - [DF_MaxCellTemp] = {DataFieldKind::Numeric, T_FIELD_MAXCELLTEMP, 2, 1, + [DF_MaxCellTemp] = {DataFieldKind::Float, "TMAX", 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, + [DF_TSSoC] = {DataFieldKind::Int, "TSSOC", 3, 0, VEH_FIELD(soc)}, + [DF_LVSoC] = {DataFieldKind::Float, "LVSOC", 3, 0, get_zero}, + [DF_TSCurrent] = {DataFieldKind::Float, "ITS", 3, 0, VEH_FIELD(ts_current)}, + [DF_TSVoltageBat] = {DataFieldKind::Float, "TSVBAT", 3, 1, VEH_FIELD(ts_voltage_bat)}, - [DF_TSVoltageVeh] = {DataFieldKind::Numeric, T_FIELD_TSVOLTVEH, 3, 1, + [DF_TSVoltageVeh] = {DataFieldKind::Float, "TSVVEH", 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}, + [DF_Speed] = {DataFieldKind::Float, "SPEED", 3, 0, get_zero}, + [DF_BBal] = {DataFieldKind::Float, "BBAL", 3, 1, get_zero}, }; static_assert(sizeof(dataFieldDescs) / sizeof(dataFieldDescs[0]) == DataFieldType_COUNT, "Incorrect number of data field descriptions"); + +void DataField::setType(DataFieldType type) { + this->type = type; + desc = &dataFieldDescs[type]; + + touchgfx::Unicode::strncpy(titleBuffer, desc->title, + sizeof(titleBuffer) / sizeof(*titleBuffer)); + titleBufferUpdated(); + + typeUpdated(); + updateValue(); +} + +void DataField::updateValue() { + void *val = desc->getValue(); + switch (desc->kind) { + case DataFieldKind::Float: + setFloatValue(*static_cast(val)); + break; + case DataFieldKind::Bool: + setBoolValue(*static_cast(val)); + break; + case DataFieldKind::Text: + setStrValue(static_cast(val)); + break; + case DataFieldKind::Int: + setIntValue(*static_cast(val)); + break; + } +} + +void DataField::setFloatValue(float floatValue) { + fieldValue.f = floatValue; + updateValueBuffer(); +} + +void DataField::setBoolValue(int boolValue) { + fieldValue.b = boolValue; + updateValueBuffer(); +} + +void DataField::setIntValue(int intValue) { + fieldValue.i = intValue; + updateValueBuffer(); +} + +void DataField::setStrValue(const char *strValue) { + touchgfx::Unicode::strncpy(valueBuffer, strValue, + sizeof(valueBuffer) / sizeof(*valueBuffer)); + updateValueBuffer(); +} + +void DataField::updateValueBuffer() { + switch (desc->kind) { + case DataFieldKind::Float: { + size_t width = desc->int_digits; + if (desc->decimal_digits != 0) { + width += desc->decimal_digits + 1; // 1 digit for the decimal point + } + float params[3] = {(float)width, (float)desc->decimal_digits, fieldValue.f}; + touchgfx::Unicode::snprintfFloats( + valueBuffer, sizeof(valueBuffer) / sizeof(*valueBuffer), "%*.*f", + params); + break; + } + case DataFieldKind::Bool: { + const char *str = fieldValue.b ? "YES" : "NO"; + touchgfx::Unicode::strncpy(valueBuffer, str, + sizeof(valueBuffer) / sizeof(*valueBuffer)); + break; + } + case DataFieldKind::Text: + // This is handled by the child class in setValue() + break; + case DataFieldKind::Int: + touchgfx::Unicode::snprintf(valueBuffer, + sizeof(valueBuffer) / sizeof(*valueBuffer), + "%*d", desc->int_digits, fieldValue.i); + break; + } + valueBufferUpdated(); +} diff --git a/TouchGFX/gui/src/containers/DebugViewItem.cpp b/TouchGFX/gui/src/containers/DebugViewItem.cpp new file mode 100644 index 0000000..8e0e212 --- /dev/null +++ b/TouchGFX/gui/src/containers/DebugViewItem.cpp @@ -0,0 +1,19 @@ +#include + +DebugViewItem::DebugViewItem() {} + +void DebugViewItem::initialize() { DebugViewItemBase::initialize(); } + +void DebugViewItem::typeUpdated() { + // We don't really need to do anything +} + +void DebugViewItem::titleBufferUpdated() { + label.setWildcard(titleBuffer); + label.invalidate(); +} + +void DebugViewItem::valueBufferUpdated() { + value.setWildcard(valueBuffer); + value.invalidate(); +} diff --git a/TouchGFX/gui/src/containers/DebugViewLine.cpp b/TouchGFX/gui/src/containers/DebugViewLine.cpp new file mode 100644 index 0000000..6a6da29 --- /dev/null +++ b/TouchGFX/gui/src/containers/DebugViewLine.cpp @@ -0,0 +1,29 @@ +#include "gui/common/DataField.hpp" +#include "touchgfx/Color.hpp" +#include + +DebugViewLine::DebugViewLine() : fields{&item1, &item2} {} + +void DebugViewLine::initialize() { DebugViewLineBase::initialize(); } + +void DebugViewLine::setFieldType(size_t i, DataFieldType type) { + assert(i < NUM_FIELDS); + fields[i]->setType(type); +} + +void DebugViewLine::setFieldVisible(size_t i, int visible) { + fields[i]->setVisible(visible); + fields[i]->invalidate(); +} + +void DebugViewLine::updateFieldValues() { + for (size_t i = 0; i < NUM_FIELDS; i++) { + fields[i]->updateValue(); + } +} + +void DebugViewLine::setLightBG(int light) { + uint8_t val = light ? 0x33 : 0x00; + bg.setColor(Color::getColorFromRGB(val, val, val)); + bg.invalidate(); +} diff --git a/TouchGFX/gui/src/containers/DriverViewField.cpp b/TouchGFX/gui/src/containers/DriverViewField.cpp index affe396..4a1ce19 100644 --- a/TouchGFX/gui/src/containers/DriverViewField.cpp +++ b/TouchGFX/gui/src/containers/DriverViewField.cpp @@ -1,79 +1,40 @@ #include "gui/common/DataField.hpp" #include "texts/TextKeysAndLanguages.hpp" #include "touchgfx/Color.hpp" +#include "touchgfx/TypedText.hpp" #include "touchgfx/Unicode.hpp" #include -DriverViewField::DriverViewField() - : intDigits{0}, decimalDigits{0}, floatValue{0}, boolValue{0} {} +DriverViewField::DriverViewField() {} void DriverViewField::initialize() { DriverViewFieldBase::initialize(); } -void DriverViewField::setType(const DataFieldDescription &desc) { - title.setTypedText(desc.title); - 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; - decimalDigits = desc.decimal_digits; - updateValueBuffer(); -} - -void DriverViewField::setValue(float newValue) { - floatValue = newValue; - 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(); -} - void DriverViewField::setSelected(int selected) { uint8_t v = selected ? 0x44 : 0x00; box.setColor(touchgfx::Color::getColorFromRGB(v, v, v)); box.invalidate(); } -void DriverViewField::updateValueBuffer() { - switch (fieldKind) { - case DataFieldKind::Numeric: { - size_t width = intDigits; - if (decimalDigits != 0) { - width += decimalDigits + 1; // 1 digit for the decimal point - } - float params[3] = {(float)width, (float)decimalDigits, floatValue}; - Unicode::snprintfFloats(valueBuffer, - sizeof(valueBuffer) / sizeof(Unicode::UnicodeChar), - "%*.*f", params); - value.setWildcard(valueBuffer); +void DriverViewField::typeUpdated() { + switch (desc->kind) { + case DataFieldKind::Float: + case DataFieldKind::Int: + value.setTypedText(T_NUMBERWILDCARD); 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::Bool: case DataFieldKind::Text: - // This is updated directly in setValue() + value.setTypedText(T_DEFAULTWILDCARD_CENTERED); break; } value.invalidate(); } + +void DriverViewField::titleBufferUpdated() { + title.setWildcard(titleBuffer); + title.invalidate(); +} + +void DriverViewField::valueBufferUpdated() { + value.setWildcard(valueBuffer); + value.invalidate(); +} diff --git a/TouchGFX/gui/src/containers/DriverViewFieldSelection.cpp b/TouchGFX/gui/src/containers/DriverViewFieldSelection.cpp index 23b6ac8..eb2583c 100644 --- a/TouchGFX/gui/src/containers/DriverViewFieldSelection.cpp +++ b/TouchGFX/gui/src/containers/DriverViewFieldSelection.cpp @@ -1,4 +1,5 @@ #include "touchgfx/Color.hpp" +#include "touchgfx/Unicode.hpp" #include DriverViewFieldSelection::DriverViewFieldSelection() {} @@ -7,8 +8,10 @@ void DriverViewFieldSelection::initialize() { DriverViewFieldSelectionBase::initialize(); } -void DriverViewFieldSelection::setName(const touchgfx::TypedText &name) { - this->name.setTypedText(name); +void DriverViewFieldSelection::setName(const char *name) { + Unicode::strncpy(nameBuffer, name, sizeof(nameBuffer) / sizeof(*nameBuffer)); + this->name.setWildcard(nameBuffer); + this->name.invalidate(); } void DriverViewFieldSelection::setSelected(int selected) { diff --git a/TouchGFX/gui/src/debugview_screen/DebugViewPresenter.cpp b/TouchGFX/gui/src/debugview_screen/DebugViewPresenter.cpp new file mode 100644 index 0000000..bd30088 --- /dev/null +++ b/TouchGFX/gui/src/debugview_screen/DebugViewPresenter.cpp @@ -0,0 +1,11 @@ +#include +#include + + +DebugViewPresenter::DebugViewPresenter(DebugViewView &v) : view(v) {} + +void DebugViewPresenter::activate() {} + +void DebugViewPresenter::deactivate() {} + +void DebugViewPresenter::vehicleStateUpdated() { view.updateFieldValues(); } diff --git a/TouchGFX/gui/src/debugview_screen/DebugViewView.cpp b/TouchGFX/gui/src/debugview_screen/DebugViewView.cpp new file mode 100644 index 0000000..3496856 --- /dev/null +++ b/TouchGFX/gui/src/debugview_screen/DebugViewView.cpp @@ -0,0 +1,34 @@ +#include "gui/common/DataField.hpp" +#include + +DebugViewView::DebugViewView() {} + +void DebugViewView::setupScreen() { + DebugViewViewBase::setupScreen(); + size_t numItems = DataFieldType_COUNT / 2; + if (DataFieldType_COUNT % 2 == 1) { + numItems++; + } + list.setNumberOfItems(numItems); +} + +void DebugViewView::tearDownScreen() { DebugViewViewBase::tearDownScreen(); } + +void DebugViewView::listUpdateItem(DebugViewLine &line, int16_t itemIndex) { + size_t idx = itemIndex * 2; + line.setFieldType(0, static_cast(idx)); + idx++; + if (idx < DataFieldType_COUNT) { + line.setFieldType(1, static_cast(idx)); + line.setFieldVisible(1, true); + } else { + line.setFieldVisible(1, false); + } + line.setLightBG(itemIndex % 2 == 1); +} + +void DebugViewView::updateFieldValues() { + for (DebugViewLine &el : listListItems.element) { + el.updateFieldValues(); + } +} diff --git a/TouchGFX/gui/src/driverview_screen/DriverViewPresenter.cpp b/TouchGFX/gui/src/driverview_screen/DriverViewPresenter.cpp index 2834c83..1f91ee6 100644 --- a/TouchGFX/gui/src/driverview_screen/DriverViewPresenter.cpp +++ b/TouchGFX/gui/src/driverview_screen/DriverViewPresenter.cpp @@ -9,7 +9,7 @@ DriverViewPresenter::DriverViewPresenter(DriverViewView &v) void DriverViewPresenter::activate() { for (size_t i = 0; i < 3; i++) { - view.setFieldType(i, dataFieldDescs[fields[i]]); + view.setFieldType(i, fields[i]); } } @@ -19,19 +19,10 @@ void DriverViewPresenter::vehicleStateUpdated() { view.setTireTemps(vehicle_state.tire_temps); view.setTSSoC(vehicle_state.soc); - 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.updateFieldValues(); +} + +void DriverViewPresenter::setFieldType(size_t i, DataFieldType type) { + fields[i] = type; + view.setFieldType(i, type); } diff --git a/TouchGFX/gui/src/driverview_screen/DriverViewView.cpp b/TouchGFX/gui/src/driverview_screen/DriverViewView.cpp index e5965fe..c5eb69b 100644 --- a/TouchGFX/gui/src/driverview_screen/DriverViewView.cpp +++ b/TouchGFX/gui/src/driverview_screen/DriverViewView.cpp @@ -1,7 +1,9 @@ #include "gui/common/DataField.hpp" #include "gui/containers/DriverViewField.hpp" +#include "gui/driverview_screen/DriverViewPresenter.hpp" #include "texts/TextKeysAndLanguages.hpp" #include +#include DriverViewView::DriverViewView() : fieldTypes{DF_MinCellVolt, DF_Speed, DF_TSCurrent} {} @@ -9,7 +11,7 @@ DriverViewView::DriverViewView() void DriverViewView::setupScreen() { DriverViewViewBase::setupScreen(); for (size_t i = 0; i < NUM_FIELDS; i++) { - getField(i).setType(dataFieldDescs[fieldTypes[i]]); + getField(i).setType(fieldTypes[i]); } fieldTypeSelection.setNumberOfItems(DataFieldType_COUNT); } @@ -22,20 +24,14 @@ void DriverViewView::fieldTypeSelectionUpdateItem( item.setSelected(itemIndex == selectedFieldType); } -void DriverViewView::setFieldType(size_t i, const DataFieldDescription &desc) { - getField(i).setType(desc); +void DriverViewView::setFieldType(size_t i, DataFieldType type) { + getField(i).setType(type); } -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::updateFieldValues() { + for (size_t i = 0; i < NUM_FIELDS; i++) { + getField(i).updateValue(); + } } void DriverViewView::setTireTemps(const TireTemps &temps) { @@ -53,6 +49,7 @@ void DriverViewView::setTSSoC(uint8_t soc) { void DriverViewView::selectNextField() { if (!fieldTypeSelection.isVisible()) { fieldTypeSelection.setVisible(true); + fieldTypeSelection.invalidate(); updateSelectedField(0); } else { updateSelectedField((selectedField + 1) % NUM_FIELDS); @@ -62,6 +59,7 @@ void DriverViewView::selectNextField() { void DriverViewView::selectPrevField() { if (!fieldTypeSelection.isVisible()) { fieldTypeSelection.setVisible(true); + fieldTypeSelection.invalidate(); updateSelectedField(NUM_FIELDS - 1); } else { if (selectedField == 0) { @@ -98,10 +96,12 @@ void DriverViewView::confirmFieldType() { } DriverViewField &field = getField(selectedField); - field.setType(dataFieldDescs[selectedFieldType]); + presenter->setFieldType(selectedField, + static_cast(selectedFieldType)); field.setSelected(false); fieldTypes[selectedField] = static_cast(selectedFieldType); fieldTypeSelection.setVisible(false); + fieldTypeSelection.invalidate(); } DriverViewField &DriverViewView::getField(size_t i) { @@ -115,11 +115,6 @@ DriverViewField &DriverViewView::getField(size_t i) { } } -DriverViewFieldSelection *DriverViewView::getFieldType(size_t i) { - return static_cast( - fieldTypeSelectionListItems.getDrawable(i)); -} - void DriverViewView::updateSelectedField(size_t selected) { getField(selectedField).setSelected(false); DriverViewField &field = getField(selected); diff --git a/TouchGFX/simulator/msvs/Application.vcxproj b/TouchGFX/simulator/msvs/Application.vcxproj index a349a42..3a8f012 100644 --- a/TouchGFX/simulator/msvs/Application.vcxproj +++ b/TouchGFX/simulator/msvs/Application.vcxproj @@ -39,6 +39,13 @@ + + + + + + + @@ -207,6 +214,13 @@ + + + + + + + diff --git a/TouchGFX/simulator/msvs/Application.vcxproj.filters b/TouchGFX/simulator/msvs/Application.vcxproj.filters index 649d2ee..1336d28 100644 --- a/TouchGFX/simulator/msvs/Application.vcxproj.filters +++ b/TouchGFX/simulator/msvs/Application.vcxproj.filters @@ -220,6 +220,18 @@ B2E02187-8256-B0BB-0B38-41E0CEB82DC4 + + 9C41F5A3-1862-77F5-FFA6-73C00C1091C0 + + + 6BEE44E9-1803-AA97-5B96-A16955B2A089 + + + 1B9E4F5D-C4C8-78A8-AA28-0515479B020E + + + 3CC29751-0B47-BADD-4836-593204B16ED3 + @@ -306,6 +318,27 @@ Source Files\generated\gui_generated\containers + + Source Files\gui\containers + + + Source Files\generated\gui_generated\containers + + + Source Files\gui\debugview_screen + + + Source Files\gui\debugview_screen + + + Source Files\generated\gui_generated\debugview_screen + + + Source Files\gui\containers + + + Source Files\generated\gui_generated\containers + @@ -802,6 +835,27 @@ Header Files\generated\gui_generated\containers + + Header Files\gui\containers + + + Header Files\generated\gui_generated\containers + + + Header Files\gui\debugview_screen + + + Header Files\gui\debugview_screen + + + Header Files\generated\gui_generated\debugview_screen + + + Header Files\gui\containers + + + Header Files\generated\gui_generated\containers + diff --git a/TouchGFX/steering-wheel.touchgfx b/TouchGFX/steering-wheel.touchgfx index 14beb34..06ced3d 100644 --- a/TouchGFX/steering-wheel.touchgfx +++ b/TouchGFX/steering-wheel.touchgfx @@ -167,6 +167,18 @@ "ScreenTransitionType": "ScreenTransitionNone", "ActionComponent": "DriverView" } + }, + { + "InteractionName": "DummyChangeDebugView", + "Trigger": { + "Type": "TriggerPhysicalButtonClicked", + "ButtonKey": 252 + }, + "Action": { + "Type": "ActionGotoScreen", + "ScreenTransitionType": "ScreenTransitionNone", + "ActionComponent": "DebugView" + } } ] }, @@ -478,6 +490,42 @@ } } ] + }, + { + "Name": "DebugView", + "CanvasBufferSize": 7200, + "Components": [ + { + "Type": "ScrollList", + "Name": "list", + "Y": 4, + "Width": 480, + "Height": 312, + "IsCircular": true, + "ItemTemplateName": "DebugViewLine", + "NumberofItems": 1, + "Easing": "Back", + "EasingOption": "Out", + "SwipeAcceleration": 1.0, + "DragAcceleration": 1.0 + }, + { + "Type": "Line", + "Name": "line1", + "Y": 3, + "Width": 480, + "Height": 1, + "Color": { + "Red": 255, + "Green": 255, + "Blue": 255 + }, + "EndX": 480.0, + "LineWidth": 10.0, + "LineEndingStyle": "Round" + } + ], + "Interactions": [] } ], "CustomContainerDefinitions": [ @@ -584,13 +632,14 @@ "Name": "title", "Width": 160, "Height": 25, - "TextId": "__SingleUse_0FBJ", + "TextId": "DriverViewField_Title", "TextRotation": "0", "Color": { "Red": 255, "Green": 255, "Blue": 255 - } + }, + "Wildcard1": {} }, { "Type": "TextArea", @@ -633,13 +682,14 @@ "Name": "name", "Width": 160, "Height": 25, - "TextId": "__SingleUse_PNKR", + "TextId": "DriverViewField_Title", "TextRotation": "0", "Color": { "Red": 255, "Green": 255, "Blue": 255 - } + }, + "Wildcard1": {} }, { "Type": "Line", @@ -687,6 +737,107 @@ } ], "Interactions": [] + }, + { + "Name": "DebugViewLine", + "X": -80, + "Y": 80, + "Width": 480, + "Height": 26, + "Components": [ + { + "Type": "Box", + "Name": "bg", + "Width": 480, + "Height": 26 + }, + { + "Type": "Line", + "Name": "line1", + "X": 240, + "Width": 1, + "Height": 26, + "Color": { + "Red": 255, + "Green": 255, + "Blue": 255 + }, + "EndY": 26.0, + "LineWidth": 10.0, + "LineEndingStyle": "Round" + }, + { + "Type": "Line", + "Name": "line2", + "Y": 25, + "Width": 480, + "Height": 1, + "Color": { + "Red": 255, + "Green": 255, + "Blue": 255 + }, + "EndX": 480.0, + "LineWidth": 10.0, + "LineEndingStyle": "Round" + }, + { + "Type": "CustomContainerInstance", + "Name": "item1", + "Width": 240, + "Height": 26, + "CustomContainerDefinitionName": "DebugViewItem" + }, + { + "Type": "CustomContainerInstance", + "Name": "item2", + "X": 240, + "Width": 240, + "Height": 26, + "CustomContainerDefinitionName": "DebugViewItem" + } + ], + "Interactions": [] + }, + { + "Name": "DebugViewItem", + "X": 40, + "Y": 227, + "Width": 240, + "Height": 26, + "Components": [ + { + "Type": "TextArea", + "Name": "label", + "X": 5, + "Width": 105, + "Height": 25, + "TextId": "DebugViewField_Title", + "TextRotation": "0", + "Color": { + "Red": 255, + "Green": 255, + "Blue": 255 + }, + "Wildcard1": {} + }, + { + "Type": "TextArea", + "Name": "value", + "X": 110, + "Width": 125, + "Height": 25, + "TextId": "DefaultWildcard_RightAligned", + "TextRotation": "0", + "Color": { + "Red": 255, + "Green": 255, + "Blue": 255 + }, + "Wildcard1": {} + } + ], + "Interactions": [] } ], "Name": "MyApplication", @@ -695,7 +846,7 @@ "Height": 480 }, "SelectedColorDepth": 16, - "StartupScreenName": "DriverView", + "StartupScreenName": "MissionSelect", "SelectedStartupLanguage": "GB", "TouchGfxPath": "../Middlewares/ST/touchgfx", "UIPath": ".",