From 3a68a8741385f25f369749d46296b528d50325a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Ebeling?= Date: Tue, 12 Sep 2023 20:08:43 +0200 Subject: [PATCH] Fix wrong inverse color handling --- Firmware/CoverUI/YardForce/UC1698.cpp | 12 +-- Firmware/CoverUI/YardForce/WYM240128K1.hpp | 34 +++---- Firmware/CoverUI/YardForce/WidgetBar.hpp | 11 +-- .../CoverUI/YardForce/WidgetLedSymbol.hpp | 2 +- .../CoverUI/YardForce/WidgetTextTicker.hpp | 1 - .../YardForce/assets/OM_Logo_120x54x1.c | 92 ++++++++++++++++++ .../YardForce/assets/OM_Logo_120x54x1.png | Bin 0 -> 14244 bytes .../YardForce/assets/OM_Logo_Inv_120x54x1.c | 92 ------------------ .../YardForce/assets/OM_Logo_Inv_120x54x1.png | Bin 18776 -> 0 bytes .../YardForce/assets/OM_Wordmark_240x35x1.c | 73 ++++++++++++++ .../YardForce/assets/OM_Wordmark_240x35x1.png | Bin 0 -> 4537 bytes .../assets/OM_Wordmark_Inv_240x35x1.c | 73 -------------- .../assets/OM_Wordmark_Inv_240x35x1.png | Bin 9243 -> 0 bytes Firmware/CoverUI/YardForce/main.hpp | 2 +- 14 files changed, 190 insertions(+), 202 deletions(-) create mode 100644 Firmware/CoverUI/YardForce/assets/OM_Logo_120x54x1.c create mode 100644 Firmware/CoverUI/YardForce/assets/OM_Logo_120x54x1.png delete mode 100644 Firmware/CoverUI/YardForce/assets/OM_Logo_Inv_120x54x1.c delete mode 100644 Firmware/CoverUI/YardForce/assets/OM_Logo_Inv_120x54x1.png create mode 100644 Firmware/CoverUI/YardForce/assets/OM_Wordmark_240x35x1.c create mode 100644 Firmware/CoverUI/YardForce/assets/OM_Wordmark_240x35x1.png delete mode 100644 Firmware/CoverUI/YardForce/assets/OM_Wordmark_Inv_240x35x1.c delete mode 100644 Firmware/CoverUI/YardForce/assets/OM_Wordmark_Inv_240x35x1.png diff --git a/Firmware/CoverUI/YardForce/UC1698.cpp b/Firmware/CoverUI/YardForce/UC1698.cpp index a5a66fa..0758c03 100644 --- a/Firmware/CoverUI/YardForce/UC1698.cpp +++ b/Firmware/CoverUI/YardForce/UC1698.cpp @@ -64,8 +64,8 @@ namespace display this->writeCommand(0x24 | 1); // 0x24 = temperature control (-0.05%/C) this->setLCDMappingControl(0, 1); // this->setVBiasPotentiometer(127); - this->writeCommand(0b10100110 | 0); // Set Inverse Display - this->writeCommand(0b11010001); // [20] Set Color Pattern to R-G-B + this->writeCommand(0b10100110 | 1); // [16] Set Inverse Display. Will save inversion logic in LVGL's flush_cb() + this->writeCommand(0b11010000 | 1); // [20] Set Color Pattern to R-G-B this->writeCommand(0b11010110); // [21] Set Color Mode to RRRRR-GGGGGG-BBBBB, 64k-color this->fillScreen(false); // Clear Screen @@ -228,11 +228,11 @@ namespace display (uint8_t)(0x60 | ((uint8_t)t_y1 & 0b00001111)), // Set Row LSB Address // Set Windows Program - (0xf5), (t_y1), // Starting Row Address - (0xf7), (t_y2), // Ending Row Address - (0xf4), (uint8_t)(t_x1 / 3), // Starting Column Address + (0xf5), (t_y1), // Starting Row Address + (0xf7), (t_y2), // Ending Row Address + (0xf4), (uint8_t)(t_x1 / 3), // Starting Column Address (0xf6), (uint8_t)((int8_t)((t_x2 + 1) / 3) - 1), // Ending Column Address - (uint8_t)(0xf8 | t_outside_mode) // Windows Program Mode (0 = inside, 1 = outside) + (uint8_t)(0xf8 | t_outside_mode) // Windows Program Mode (0 = inside, 1 = outside) }; writeCommand(data, sizeof(data) / sizeof(uint8_t)); } diff --git a/Firmware/CoverUI/YardForce/WYM240128K1.hpp b/Firmware/CoverUI/YardForce/WYM240128K1.hpp index 947854a..e7d4482 100644 --- a/Firmware/CoverUI/YardForce/WYM240128K1.hpp +++ b/Firmware/CoverUI/YardForce/WYM240128K1.hpp @@ -25,8 +25,8 @@ #include "WidgetTextTicker.hpp" // C images -LV_IMG_DECLARE(OM_Logo_Inv_120x54x1); -LV_IMG_DECLARE(OM_Wordmark_Inv_240x35x1); +LV_IMG_DECLARE(OM_Logo_120x54x1); +LV_IMG_DECLARE(OM_Wordmark_240x35x1); namespace display { @@ -73,9 +73,9 @@ namespace display for (y = area->y1; y <= area->y2; y++) { - // color_p = t_color_p + (y * UC1698_DISPLAY_WIDTH) + area->x1; for (x = area->x1; x <= area->x2; x += 3) // FIXME: Might overflow buffer if area->x2 is not dividable by 3 { + // Color is inverted (0 = black but pixel off / >0 = white but pixel on) but UC1698 "[16] Set Inverse Display" is set uc1698.drawPixelTriplet(t_color_p->full, (t_color_p + 1)->full, (t_color_p + 2)->full); t_color_p += 3; } @@ -93,7 +93,7 @@ namespace display bar_bat = new WidgetBar(FA_SYMBOL_BATTERY " %d %%", LV_ALIGN_TOP_MID, 0, 60, UC1698_DISPLAY_WIDTH, 21); // Mower status text (ticker) text_ticker_status = new WidgetTextTicker(LV_ALIGN_TOP_MID, 0, 95, UC1698_DISPLAY_WIDTH); - text_ticker_status->set_text("Bla bla"); + text_ticker_status->set_text("Long text should ticker: Lorem Ipsum Bla bla bla"); } static void anim_x_cb(void *var, int32_t v) @@ -105,19 +105,19 @@ namespace display { // Mower Logo - img_logo lv_obj_t *img_logo = lv_img_create(lv_scr_act()); - lv_img_set_src(img_logo, &OM_Logo_Inv_120x54x1); + lv_img_set_src(img_logo, &OM_Logo_120x54x1); lv_obj_align(img_logo, LV_ALIGN_CENTER, 0, -25); // OpenMower Wordmark - img_wordmark lv_obj_t *img_wordmark = lv_img_create(lv_scr_act()); - lv_img_set_src(img_wordmark, &OM_Wordmark_Inv_240x35x1); + lv_img_set_src(img_wordmark, &OM_Wordmark_240x35x1); lv_obj_align(img_wordmark, LV_ALIGN_CENTER, 0, 25); // Anim of logo lv_anim_t al; lv_anim_init(&al); lv_anim_set_var(&al, img_logo); - lv_anim_set_values(&al, 0, -((UC1698_DISPLAY_WIDTH / 2) + (OM_Logo_Inv_120x54x1.header.w / 2))); + lv_anim_set_values(&al, 0, -((UC1698_DISPLAY_WIDTH / 2) + (OM_Logo_120x54x1.header.w / 2))); lv_anim_set_time(&al, 2000); lv_anim_set_delay(&al, 1000); lv_anim_set_exec_cb(&al, (lv_anim_exec_xcb_t)anim_x_cb); @@ -128,7 +128,7 @@ namespace display lv_anim_t aw; lv_anim_init(&aw); lv_anim_set_var(&aw, img_wordmark); - lv_anim_set_values(&aw, 0, (UC1698_DISPLAY_WIDTH / 2) + (OM_Wordmark_Inv_240x35x1.header.w / 2) + 20); + lv_anim_set_values(&aw, 0, (UC1698_DISPLAY_WIDTH / 2) + (OM_Wordmark_240x35x1.header.w / 2) + 20); lv_anim_set_time(&aw, 2500); lv_anim_set_delay(&aw, 1700); lv_anim_set_exec_cb(&aw, (lv_anim_exec_xcb_t)anim_x_cb); @@ -137,14 +137,6 @@ namespace display lv_anim_start(&aw); } - static void test1() - { - lv_obj_t *label = lv_label_create(lv_scr_act()); - lv_label_set_text(label, "test1() " FA_SYMBOL_GPS1 " " FA_SYMBOL_GPS2 " " FA_SYMBOL_BATTERY); - lv_obj_set_style_text_color(lv_scr_act(), lv_color_hex(0xffffff), LV_PART_MAIN); - lv_obj_align(label, LV_ALIGN_CENTER, 0, -20); - } - bool init() { // Init UC1698 display controller @@ -163,11 +155,11 @@ namespace display lv_disp_drv.ver_res = UC1698_DISPLAY_HEIGHT; // Set the vertical resolution in pixels lv_disp_draw_buf_init(&lv_disp_buf, lv_buf_1, lv_buf_2, UC1698_DISPLAY_WIDTH * LVGL_BUFFER_MULTIPLIER); // Initialize `disp_buf` with the buffer(s) lv_disp_t *disp; - disp = lv_disp_drv_register(&lv_disp_drv); // Register the driver and save the created display objects - lv_obj_set_style_bg_color(lv_scr_act(), lv_color_hex(0x000000), LV_PART_MAIN); // No background color + disp = lv_disp_drv_register(&lv_disp_drv); // Register the driver and save the created display objects + lv_obj_set_style_bg_color(lv_scr_act(), lv_color_white(), LV_PART_MAIN); // No background color - //openmower_anim(); - mainStatusScreen(); + openmower_anim(); + //mainStatusScreen(); // test1(); // testCanvas(); @@ -223,7 +215,6 @@ namespace display gps_perc += 25; // One LED represents 25% } } - //lv_bar_set_value(gps_bar, gps_perc, LV_ANIM_OFF); bar_gps->set_value(gps_perc); } @@ -237,7 +228,6 @@ namespace display continue; bat_perc += 15; // One LED represents 14.3% } - //lv_bar_set_value(bat_bar, bat_perc, LV_ANIM_OFF); bar_bat->set_value(bat_perc); } diff --git a/Firmware/CoverUI/YardForce/WidgetBar.hpp b/Firmware/CoverUI/YardForce/WidgetBar.hpp index 8c12928..397dd04 100644 --- a/Firmware/CoverUI/YardForce/WidgetBar.hpp +++ b/Firmware/CoverUI/YardForce/WidgetBar.hpp @@ -25,14 +25,14 @@ namespace display { // Init bar style settings for custom (labeled) bar graph lv_style_init(&bar_style_bg); - lv_style_set_border_color(&bar_style_bg, lv_color_white()); + lv_style_set_border_color(&bar_style_bg, lv_color_black()); lv_style_set_border_width(&bar_style_bg, 2); lv_style_set_pad_all(&bar_style_bg, 3); // To make the indicator smaller lv_style_set_radius(&bar_style_bg, 4); lv_style_init(&bar_style_indic); lv_style_set_bg_opa(&bar_style_indic, LV_OPA_COVER); - lv_style_set_bg_color(&bar_style_indic, lv_color_white()); + lv_style_set_bg_color(&bar_style_indic, lv_color_black()); lv_style_set_radius(&bar_style_indic, 1); // Draw bar @@ -71,8 +71,7 @@ namespace display lv_snprintf(buf, sizeof(buf), (const char *)lv_obj_get_user_data(obj), bar_value); lv_point_t txt_size; - lv_txt_get_size(&txt_size, buf, label_dsc.font, label_dsc.letter_space, label_dsc.line_space, LV_COORD_MAX, - label_dsc.flag); + lv_txt_get_size(&txt_size, buf, label_dsc.font, label_dsc.letter_space, label_dsc.line_space, LV_COORD_MAX, label_dsc.flag); lv_area_t txt_area; // If the indicator is long enough put the text inside on the right @@ -80,14 +79,14 @@ namespace display { txt_area.x2 = dsc->draw_area->x2 - 5; txt_area.x1 = txt_area.x2 - txt_size.x + 1; - label_dsc.color = lv_color_black(); + label_dsc.color = lv_color_white(); } // If the indicator is still short put the text out of it on the right else { txt_area.x1 = dsc->draw_area->x2 + 5; txt_area.x2 = txt_area.x1 + txt_size.x - 1; - label_dsc.color = lv_color_white(); + label_dsc.color = lv_color_black(); } txt_area.y1 = (dsc->draw_area->y1 + (lv_area_get_height(dsc->draw_area) - txt_size.y) / 2) + 1; diff --git a/Firmware/CoverUI/YardForce/WidgetLedSymbol.hpp b/Firmware/CoverUI/YardForce/WidgetLedSymbol.hpp index 19c2569..9016f3e 100644 --- a/Firmware/CoverUI/YardForce/WidgetLedSymbol.hpp +++ b/Firmware/CoverUI/YardForce/WidgetLedSymbol.hpp @@ -25,7 +25,7 @@ namespace display { label = lv_label_create(lv_scr_act()); lv_label_set_text(label, symbol_str.c_str()); - lv_obj_set_style_text_color(lv_scr_act(), lv_color_hex(0xffffff), LV_PART_MAIN); + lv_obj_set_style_text_color(lv_scr_act(), lv_color_black(), LV_PART_MAIN); lv_obj_align(label, align, x_ofs, y_ofs); } diff --git a/Firmware/CoverUI/YardForce/WidgetTextTicker.hpp b/Firmware/CoverUI/YardForce/WidgetTextTicker.hpp index 23c9e01..29365b3 100644 --- a/Firmware/CoverUI/YardForce/WidgetTextTicker.hpp +++ b/Firmware/CoverUI/YardForce/WidgetTextTicker.hpp @@ -24,7 +24,6 @@ namespace display WidgetTextTicker(lv_align_t align, lv_coord_t x_ofs, lv_coord_t y_ofs, lv_coord_t w) { label = lv_label_create(lv_scr_act()); - //lv_obj_set_style_text_color(lv_scr_act(), lv_color_hex(0xffffff), LV_PART_MAIN); lv_obj_set_style_text_align(label, LV_TEXT_ALIGN_CENTER, 0); lv_obj_set_style_text_font(label, &PerfectPixel_20, LV_PART_MAIN); lv_obj_align(label, align, x_ofs, y_ofs); diff --git a/Firmware/CoverUI/YardForce/assets/OM_Logo_120x54x1.c b/Firmware/CoverUI/YardForce/assets/OM_Logo_120x54x1.c new file mode 100644 index 0000000..654a8f9 --- /dev/null +++ b/Firmware/CoverUI/YardForce/assets/OM_Logo_120x54x1.c @@ -0,0 +1,92 @@ +#ifdef __has_include + #if __has_include("lvgl.h") + #ifndef LV_LVGL_H_INCLUDE_SIMPLE + #define LV_LVGL_H_INCLUDE_SIMPLE + #endif + #endif +#endif + +#if defined(LV_LVGL_H_INCLUDE_SIMPLE) + #include "lvgl.h" +#else + #include "lvgl/lvgl.h" +#endif + + +#ifndef LV_ATTRIBUTE_MEM_ALIGN +#define LV_ATTRIBUTE_MEM_ALIGN +#endif + +#ifndef LV_ATTRIBUTE_IMG_OM_LOGO_120X54X1 +#define LV_ATTRIBUTE_IMG_OM_LOGO_120X54X1 +#endif + +const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_OM_LOGO_120X54X1 uint8_t OM_Logo_120x54x1_map[] = { + 0xff, 0xff, 0xff, 0xff, /*Color of index 0*/ + 0x00, 0x00, 0x00, 0xff, /*Color of index 1*/ + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xaa, 0xaa, 0xab, 0xfc, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xf5, 0xff, 0xff, 0xfd, 0x57, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x5d, 0x55, 0x55, 0x57, 0xfa, 0xbc, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xea, 0xef, 0xff, 0xff, 0xfa, 0xaf, 0xd7, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xbf, 0x6a, 0xaa, 0xaa, 0xaf, 0xf5, 0x7a, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0xd5, 0xdf, 0xff, 0xff, 0xf5, 0x5f, 0xaf, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xee, 0xff, 0x75, 0x55, 0x55, 0x5f, 0xf0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x07, 0x5b, 0xaa, 0xdf, 0xff, 0x0f, 0xea, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1d, 0xee, 0xfe, 0xea, 0xaa, 0x02, 0xbe, 0x01, 0xf0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x6b, 0x75, 0xa0, 0x00, 0x00, 0x07, 0xd0, 0x01, 0xf0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xbb, 0x5e, 0xc0, 0x00, 0x00, 0x05, 0x60, 0x1f, 0xff, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0xde, 0xeb, 0x87, 0xff, 0xfc, 0x07, 0xc0, 0x7f, 0xff, 0xc0, 0x00, + 0x00, 0x00, 0x00, 0x0a, 0xeb, 0xbd, 0x05, 0x55, 0x57, 0x0a, 0x81, 0xff, 0xff, 0xf0, 0x00, + 0x00, 0x00, 0x00, 0x1f, 0x5d, 0x6e, 0x1f, 0xff, 0xfb, 0xf7, 0x37, 0xff, 0xff, 0xfd, 0x80, + 0x00, 0x00, 0x00, 0x55, 0xf7, 0x74, 0x35, 0x55, 0x5a, 0xba, 0x7f, 0xff, 0xff, 0xff, 0xc0, + 0x00, 0x00, 0x00, 0xfe, 0xad, 0xd8, 0x5f, 0xff, 0xef, 0xdc, 0xff, 0xff, 0xff, 0xff, 0xc0, + 0x00, 0x00, 0x00, 0xab, 0xee, 0xd0, 0xea, 0xaa, 0xba, 0xd4, 0xff, 0xff, 0xff, 0xff, 0xc0, + 0x00, 0x00, 0x03, 0xfd, 0x77, 0x61, 0x7c, 0x7f, 0xd7, 0xb8, 0x7f, 0xff, 0xff, 0xff, 0xc0, + 0x00, 0x00, 0x05, 0x57, 0x5b, 0x43, 0xa8, 0x15, 0x7d, 0xd0, 0xff, 0xff, 0xff, 0xff, 0xc0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xab, 0x70, 0xff, 0xff, 0xff, 0xff, 0xe0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xfb, 0xa1, 0xff, 0xff, 0xff, 0xff, 0xf0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x5d, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xf0, + 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x15, 0xd6, 0xa3, 0xff, 0xfe, 0x0f, 0xff, 0xf8, + 0x00, 0x06, 0xaa, 0xaa, 0xaa, 0xaa, 0xae, 0xfe, 0xfd, 0xc3, 0xff, 0xf8, 0x03, 0xff, 0xf8, + 0x00, 0x1b, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x57, 0x57, 0x43, 0xff, 0xf0, 0x01, 0xff, 0xf8, + 0x00, 0x16, 0xaa, 0xaa, 0xaa, 0xaa, 0xae, 0xfa, 0xfa, 0xc7, 0xff, 0xe0, 0x00, 0xff, 0xfc, + 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xeb, 0xaf, 0xae, 0xc7, 0xff, 0xc0, 0x00, 0x7f, 0xfc, + 0x00, 0x00, 0x02, 0xaa, 0xaa, 0xaa, 0xbd, 0x75, 0x77, 0x07, 0xff, 0xc0, 0x00, 0x7f, 0xfc, + 0x0f, 0xff, 0xc3, 0xff, 0xff, 0xff, 0xd7, 0xdf, 0xbb, 0x9f, 0xff, 0xc0, 0x00, 0x7f, 0xff, + 0x15, 0x55, 0x62, 0xaa, 0xaa, 0xaa, 0xfa, 0xb5, 0xd6, 0x9f, 0xff, 0x80, 0x00, 0x3f, 0xff, + 0x7f, 0xff, 0xb1, 0xff, 0xff, 0xe2, 0xaf, 0xdd, 0x7b, 0x9f, 0xff, 0x80, 0x00, 0x3f, 0xff, + 0xaa, 0xaa, 0xe8, 0x55, 0x55, 0x41, 0xf5, 0x77, 0xae, 0x9f, 0xff, 0x80, 0x00, 0x7f, 0xff, + 0xff, 0xff, 0xbc, 0x00, 0x00, 0x01, 0x5f, 0xba, 0xfb, 0x9f, 0xff, 0xc0, 0x00, 0x7f, 0xff, + 0xaa, 0xaa, 0xd6, 0x00, 0x00, 0x01, 0xea, 0xef, 0x56, 0xc7, 0xff, 0xc0, 0x00, 0x7f, 0xfc, + 0xff, 0xfe, 0xfb, 0x00, 0x00, 0x00, 0xbf, 0x75, 0xf7, 0x47, 0xff, 0xc0, 0x00, 0xff, 0xfc, + 0x2a, 0xab, 0xae, 0xff, 0xff, 0xc1, 0xd5, 0xde, 0xba, 0xc7, 0xff, 0xe0, 0x00, 0xff, 0xfc, + 0x3f, 0xfe, 0xf7, 0x55, 0x55, 0x7d, 0x7e, 0xeb, 0xaf, 0x43, 0xff, 0xf0, 0x01, 0xff, 0xf8, + 0x2a, 0xab, 0x5d, 0xff, 0xff, 0xaf, 0xab, 0xbd, 0xf5, 0xc3, 0xff, 0xfc, 0x07, 0xff, 0xf8, + 0x1f, 0xfb, 0xee, 0xaa, 0xaa, 0xea, 0xfa, 0xed, 0x5f, 0x63, 0xff, 0xff, 0xff, 0xff, 0xf8, + 0x05, 0x5d, 0x75, 0xff, 0xff, 0x7f, 0x5f, 0x5b, 0xea, 0xc1, 0xff, 0xff, 0xff, 0xff, 0xf0, + 0x0f, 0xd7, 0x5e, 0xaa, 0xab, 0x55, 0xd5, 0xde, 0xbe, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xf0, + 0x0a, 0xfb, 0xeb, 0xff, 0xfd, 0xfe, 0xfe, 0xeb, 0xd7, 0x50, 0xff, 0xff, 0xff, 0xff, 0xe0, + 0x0f, 0x5a, 0xbe, 0xaa, 0xae, 0xab, 0x56, 0xbd, 0x75, 0xf8, 0x7f, 0xff, 0xff, 0xff, 0xc0, + 0x15, 0xef, 0xd5, 0xff, 0xf7, 0xfe, 0xfb, 0xd7, 0xbe, 0xa8, 0x7f, 0xff, 0xff, 0xff, 0xc0, + 0x1d, 0x75, 0x7e, 0xaa, 0xb5, 0x57, 0x5d, 0x7d, 0xab, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xe0, + 0x2f, 0xbf, 0xab, 0xff, 0xdf, 0xfb, 0xef, 0xab, 0x7d, 0x50, 0x7f, 0xff, 0xff, 0xff, 0xc0, + 0x35, 0xaa, 0xfe, 0xaa, 0xea, 0xad, 0x6a, 0xfb, 0xd7, 0xf0, 0x3f, 0xff, 0xff, 0xff, 0x80, + 0x5e, 0xff, 0x55, 0xff, 0x7f, 0xfb, 0xdf, 0x5d, 0x7a, 0xa0, 0x03, 0xff, 0xff, 0xf9, 0x00, + 0x57, 0x55, 0xfe, 0xab, 0x55, 0x5d, 0x75, 0xd7, 0xaf, 0xe0, 0x01, 0xff, 0xff, 0xf0, 0x00, + 0x7b, 0xfe, 0xab, 0xfd, 0xff, 0xef, 0xae, 0xfa, 0xf5, 0x40, 0x00, 0x7f, 0xff, 0xc0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xfe, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xf0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xf0, 0x00, 0x00, +}; + +const lv_img_dsc_t OM_Logo_120x54x1 = { + .header.cf = LV_IMG_CF_INDEXED_1BIT, + .header.always_zero = 0, + .header.reserved = 0, + .header.w = 120, + .header.h = 54, + .data_size = 818, + .data = OM_Logo_120x54x1_map, +}; diff --git a/Firmware/CoverUI/YardForce/assets/OM_Logo_120x54x1.png b/Firmware/CoverUI/YardForce/assets/OM_Logo_120x54x1.png new file mode 100644 index 0000000000000000000000000000000000000000..c0ec5341508498776b4fb0eae6003e1cbda0da5c GIT binary patch literal 14244 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 literal 0 HcmV?d00001 diff --git a/Firmware/CoverUI/YardForce/assets/OM_Logo_Inv_120x54x1.c b/Firmware/CoverUI/YardForce/assets/OM_Logo_Inv_120x54x1.c deleted file mode 100644 index e59e88d..0000000 --- a/Firmware/CoverUI/YardForce/assets/OM_Logo_Inv_120x54x1.c +++ /dev/null @@ -1,92 +0,0 @@ -#ifdef __has_include - #if __has_include("lvgl.h") - #ifndef LV_LVGL_H_INCLUDE_SIMPLE - #define LV_LVGL_H_INCLUDE_SIMPLE - #endif - #endif -#endif - -#if defined(LV_LVGL_H_INCLUDE_SIMPLE) - #include "lvgl.h" -#else - #include "lvgl/lvgl.h" -#endif - - -#ifndef LV_ATTRIBUTE_MEM_ALIGN -#define LV_ATTRIBUTE_MEM_ALIGN -#endif - -#ifndef LV_ATTRIBUTE_IMG_OM_LOGO_INV_120X54X1 -#define LV_ATTRIBUTE_IMG_OM_LOGO_INV_120X54X1 -#endif - -const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_OM_LOGO_INV_120X54X1 uint8_t OM_Logo_Inv_120x54x1_map[] = { - 0xff, 0xff, 0xff, 0xff, /*Color of index 0*/ - 0x00, 0x00, 0x00, 0xff, /*Color of index 1*/ - - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x55, 0x55, 0x54, 0x03, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0a, 0x00, 0x00, 0x02, 0xa8, 0x1f, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xa2, 0xaa, 0xaa, 0xa8, 0x05, 0x43, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x15, 0x10, 0x00, 0x00, 0x05, 0x50, 0x28, 0x7f, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x40, 0x95, 0x55, 0x55, 0x50, 0x0a, 0x85, 0x7f, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xc5, 0x2a, 0x20, 0x00, 0x00, 0x0a, 0xa0, 0x50, 0x7f, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x11, 0x00, 0x8a, 0xaa, 0xaa, 0xa0, 0x0f, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xf8, 0xa4, 0x55, 0x20, 0x00, 0xf0, 0x15, 0x7f, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xe2, 0x11, 0x01, 0x15, 0x55, 0xfd, 0x41, 0xfe, 0x0f, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0x94, 0x8a, 0x5f, 0xff, 0xff, 0xf8, 0x2f, 0xfe, 0x0f, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0x44, 0xa1, 0x3f, 0xff, 0xff, 0xfa, 0x9f, 0xe0, 0x00, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xfc, 0x21, 0x14, 0x78, 0x00, 0x03, 0xf8, 0x3f, 0x80, 0x00, 0x3f, 0xff, - 0xff, 0xff, 0xff, 0xf5, 0x14, 0x42, 0xfa, 0xaa, 0xa8, 0xf5, 0x7e, 0x00, 0x00, 0x0f, 0xff, - 0xff, 0xff, 0xff, 0xe0, 0xa2, 0x91, 0xe0, 0x00, 0x04, 0x08, 0xc8, 0x00, 0x00, 0x02, 0x7f, - 0xff, 0xff, 0xff, 0xaa, 0x08, 0x8b, 0xca, 0xaa, 0xa5, 0x45, 0x80, 0x00, 0x00, 0x00, 0x3f, - 0xff, 0xff, 0xff, 0x01, 0x52, 0x27, 0xa0, 0x00, 0x10, 0x23, 0x00, 0x00, 0x00, 0x00, 0x3f, - 0xff, 0xff, 0xff, 0x54, 0x11, 0x2f, 0x15, 0x55, 0x45, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x3f, - 0xff, 0xff, 0xfc, 0x02, 0x88, 0x9e, 0x83, 0x80, 0x28, 0x47, 0x80, 0x00, 0x00, 0x00, 0x3f, - 0xff, 0xff, 0xfa, 0xa8, 0xa4, 0xbc, 0x57, 0xea, 0x82, 0x2f, 0x00, 0x00, 0x00, 0x00, 0x3f, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x54, 0x8f, 0x00, 0x00, 0x00, 0x00, 0x1f, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0x04, 0x5e, 0x00, 0x00, 0x00, 0x00, 0x0f, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xa2, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x0f, - 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x07, 0xea, 0x29, 0x5c, 0x00, 0x01, 0xf0, 0x00, 0x07, - 0xff, 0xf9, 0x55, 0x55, 0x55, 0x55, 0x51, 0x01, 0x02, 0x3c, 0x00, 0x07, 0xfc, 0x00, 0x07, - 0xff, 0xe4, 0x00, 0x00, 0x00, 0x00, 0x04, 0xa8, 0xa8, 0xbc, 0x00, 0x0f, 0xfe, 0x00, 0x07, - 0xff, 0xe9, 0x55, 0x55, 0x55, 0x55, 0x51, 0x05, 0x05, 0x38, 0x00, 0x1f, 0xff, 0x00, 0x03, - 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x14, 0x50, 0x51, 0x38, 0x00, 0x3f, 0xff, 0x80, 0x03, - 0xff, 0xff, 0xfd, 0x55, 0x55, 0x55, 0x42, 0x8a, 0x88, 0xf8, 0x00, 0x3f, 0xff, 0x80, 0x03, - 0xf0, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x28, 0x20, 0x44, 0x60, 0x00, 0x3f, 0xff, 0x80, 0x00, - 0xea, 0xaa, 0x9d, 0x55, 0x55, 0x55, 0x05, 0x4a, 0x29, 0x60, 0x00, 0x7f, 0xff, 0xc0, 0x00, - 0x80, 0x00, 0x4e, 0x00, 0x00, 0x1d, 0x50, 0x22, 0x84, 0x60, 0x00, 0x7f, 0xff, 0xc0, 0x00, - 0x55, 0x55, 0x17, 0xaa, 0xaa, 0xbe, 0x0a, 0x88, 0x51, 0x60, 0x00, 0x7f, 0xff, 0x80, 0x00, - 0x00, 0x00, 0x43, 0xff, 0xff, 0xfe, 0xa0, 0x45, 0x04, 0x60, 0x00, 0x3f, 0xff, 0x80, 0x00, - 0x55, 0x55, 0x29, 0xff, 0xff, 0xfe, 0x15, 0x10, 0xa9, 0x38, 0x00, 0x3f, 0xff, 0x80, 0x03, - 0x00, 0x01, 0x04, 0xff, 0xff, 0xff, 0x40, 0x8a, 0x08, 0xb8, 0x00, 0x3f, 0xff, 0x00, 0x03, - 0xd5, 0x54, 0x51, 0x00, 0x00, 0x3e, 0x2a, 0x21, 0x45, 0x38, 0x00, 0x1f, 0xff, 0x00, 0x03, - 0xc0, 0x01, 0x08, 0xaa, 0xaa, 0x82, 0x81, 0x14, 0x50, 0xbc, 0x00, 0x0f, 0xfe, 0x00, 0x07, - 0xd5, 0x54, 0xa2, 0x00, 0x00, 0x50, 0x54, 0x42, 0x0a, 0x3c, 0x00, 0x03, 0xf8, 0x00, 0x07, - 0xe0, 0x04, 0x11, 0x55, 0x55, 0x15, 0x05, 0x12, 0xa0, 0x9c, 0x00, 0x00, 0x00, 0x00, 0x07, - 0xfa, 0xa2, 0x8a, 0x00, 0x00, 0x80, 0xa0, 0xa4, 0x15, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x0f, - 0xf0, 0x28, 0xa1, 0x55, 0x54, 0xaa, 0x2a, 0x21, 0x41, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x0f, - 0xf5, 0x04, 0x14, 0x00, 0x02, 0x01, 0x01, 0x14, 0x28, 0xaf, 0x00, 0x00, 0x00, 0x00, 0x1f, - 0xf0, 0xa5, 0x41, 0x55, 0x51, 0x54, 0xa9, 0x42, 0x8a, 0x07, 0x80, 0x00, 0x00, 0x00, 0x3f, - 0xea, 0x10, 0x2a, 0x00, 0x08, 0x01, 0x04, 0x28, 0x41, 0x57, 0x80, 0x00, 0x00, 0x00, 0x3f, - 0xe2, 0x8a, 0x81, 0x55, 0x4a, 0xa8, 0xa2, 0x82, 0x54, 0x07, 0x00, 0x00, 0x00, 0x00, 0x1f, - 0xd0, 0x40, 0x54, 0x00, 0x20, 0x04, 0x10, 0x54, 0x82, 0xaf, 0x80, 0x00, 0x00, 0x00, 0x3f, - 0xca, 0x55, 0x01, 0x55, 0x15, 0x52, 0x95, 0x04, 0x28, 0x0f, 0xc0, 0x00, 0x00, 0x00, 0x7f, - 0xa1, 0x00, 0xaa, 0x00, 0x80, 0x04, 0x20, 0xa2, 0x85, 0x5f, 0xfc, 0x00, 0x00, 0x06, 0xff, - 0xa8, 0xaa, 0x01, 0x54, 0xaa, 0xa2, 0x8a, 0x28, 0x50, 0x1f, 0xfe, 0x00, 0x00, 0x0f, 0xff, - 0x84, 0x01, 0x54, 0x02, 0x00, 0x10, 0x51, 0x05, 0x0a, 0xbf, 0xff, 0x80, 0x00, 0x3f, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x01, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0f, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0f, 0xff, 0xff, -}; - -const lv_img_dsc_t OM_Logo_Inv_120x54x1 = { - .header.cf = LV_IMG_CF_INDEXED_1BIT, - .header.always_zero = 0, - .header.reserved = 0, - .header.w = 120, - .header.h = 54, - .data_size = 818, - .data = OM_Logo_Inv_120x54x1_map, -}; diff --git a/Firmware/CoverUI/YardForce/assets/OM_Logo_Inv_120x54x1.png b/Firmware/CoverUI/YardForce/assets/OM_Logo_Inv_120x54x1.png deleted file mode 100644 index 36f46936cf7d5d3bf342df3a553cee590a562905..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18776 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 XzY6HswjIXj00000NkvXXu0mjf>=CrD literal 0 HcmV?d00001 diff --git a/Firmware/CoverUI/YardForce/assets/OM_Wordmark_Inv_240x35x1.c b/Firmware/CoverUI/YardForce/assets/OM_Wordmark_Inv_240x35x1.c deleted file mode 100644 index ff3f44a..0000000 --- a/Firmware/CoverUI/YardForce/assets/OM_Wordmark_Inv_240x35x1.c +++ /dev/null @@ -1,73 +0,0 @@ -#ifdef __has_include - #if __has_include("lvgl.h") - #ifndef LV_LVGL_H_INCLUDE_SIMPLE - #define LV_LVGL_H_INCLUDE_SIMPLE - #endif - #endif -#endif - -#if defined(LV_LVGL_H_INCLUDE_SIMPLE) - #include "lvgl.h" -#else - #include "lvgl/lvgl.h" -#endif - - -#ifndef LV_ATTRIBUTE_MEM_ALIGN -#define LV_ATTRIBUTE_MEM_ALIGN -#endif - -#ifndef LV_ATTRIBUTE_IMG_OM_WORDMARK_INV_240X35X1 -#define LV_ATTRIBUTE_IMG_OM_WORDMARK_INV_240X35X1 -#endif - -const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_OM_WORDMARK_INV_240X35X1 uint8_t OM_Wordmark_Inv_240x35x1_map[] = { - 0xe8, 0xe8, 0xe8, 0xff, /*Color of index 0*/ - 0x09, 0x09, 0x09, 0xff, /*Color of index 1*/ - - 0xff, 0xe0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x1f, 0xff, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xfc, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x1f, 0xff, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xf8, 0x07, 0x80, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0f, 0xff, 0xfe, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xf0, 0x3f, 0xf0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x07, 0xff, 0xfc, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xe0, 0xff, 0xfc, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x03, 0xff, 0xf8, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xc1, 0xff, 0xfe, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x03, 0xff, 0xf8, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xc3, 0xff, 0xff, 0x0f, 0xe7, 0xe0, 0x7f, 0xff, 0xf0, 0x3f, 0xfe, 0x7c, 0x0f, 0xfe, 0x01, 0xff, 0xf0, 0x8f, 0xff, 0xc0, 0xff, 0xe7, 0xff, 0x3f, 0xfc, 0xff, 0xc0, 0xff, 0xf9, 0xf8, - 0x87, 0xff, 0xff, 0x07, 0xe3, 0x80, 0x0f, 0xff, 0xc0, 0x0f, 0xfc, 0x30, 0x03, 0xfe, 0x30, 0xff, 0xe1, 0x8f, 0xfe, 0x00, 0x1f, 0xc3, 0xfe, 0x1f, 0xf8, 0x7f, 0x00, 0x3f, 0xf0, 0xe0, - 0x87, 0xff, 0xff, 0x87, 0xe2, 0x00, 0x07, 0xff, 0x00, 0x03, 0xfc, 0x20, 0x01, 0xfe, 0x30, 0x7f, 0xe1, 0x8f, 0xfc, 0x00, 0x0f, 0xc3, 0xfe, 0x0f, 0xf8, 0xfc, 0x00, 0x0f, 0xf0, 0x80, - 0x0f, 0xff, 0xff, 0x87, 0xe0, 0x0e, 0x03, 0xfe, 0x07, 0x81, 0xfc, 0x01, 0xc0, 0xfe, 0x38, 0x7f, 0xc3, 0x8f, 0xf8, 0x1e, 0x07, 0xe3, 0xfe, 0x0f, 0xf0, 0xf8, 0x1e, 0x07, 0xf0, 0x80, - 0x0f, 0xff, 0xff, 0xc3, 0xe0, 0x3f, 0xc1, 0xfc, 0x1f, 0xe0, 0xfc, 0x0f, 0xf0, 0xfe, 0x3c, 0x3f, 0x87, 0x8f, 0xf0, 0x7f, 0x83, 0xe1, 0xfc, 0x0f, 0xf0, 0xf0, 0x7f, 0x83, 0xf0, 0x0f, - 0x0f, 0xff, 0xff, 0xc3, 0xe0, 0xff, 0xe1, 0xfc, 0x3f, 0xf0, 0xfc, 0x1f, 0xf8, 0x7e, 0x3c, 0x1f, 0x07, 0x8f, 0xe1, 0xff, 0xc1, 0xf1, 0xfc, 0x0f, 0xf1, 0xf0, 0xff, 0xc3, 0xf0, 0x3f, - 0x0f, 0xff, 0xff, 0xc3, 0xe0, 0xff, 0xf0, 0xf8, 0x7f, 0xf8, 0x7c, 0x1f, 0xf8, 0x7e, 0x3e, 0x1f, 0x0f, 0x8f, 0xe1, 0xff, 0xe1, 0xf1, 0xfc, 0x07, 0xe1, 0xe1, 0xff, 0xe1, 0xf0, 0x7f, - 0x0f, 0xff, 0xff, 0xc3, 0xe1, 0xff, 0xf0, 0xf8, 0x7f, 0xfc, 0x7c, 0x3f, 0xf8, 0x7e, 0x3f, 0x0e, 0x1f, 0x8f, 0xc3, 0xff, 0xf0, 0xf0, 0xfc, 0x47, 0xe3, 0xe1, 0xff, 0xf1, 0xf0, 0x7f, - 0x0f, 0xff, 0xff, 0xc3, 0xe1, 0xff, 0xf8, 0xf8, 0xff, 0xfc, 0x7c, 0x3f, 0xf8, 0x7e, 0x3f, 0x84, 0x3f, 0x8f, 0xc7, 0xff, 0xf0, 0xf8, 0xf8, 0xc7, 0xe3, 0xe3, 0xff, 0xf1, 0xf0, 0xff, - 0x0f, 0xff, 0xff, 0xc3, 0xe3, 0xff, 0xf8, 0xf0, 0xff, 0xfc, 0x7c, 0x3f, 0xfc, 0x7e, 0x3f, 0x80, 0x3f, 0x8f, 0xc7, 0xff, 0xf8, 0xf8, 0xf8, 0xe3, 0xc3, 0xe3, 0xff, 0xf1, 0xf0, 0xff, - 0x0f, 0xff, 0xff, 0xc3, 0xe3, 0xff, 0xf8, 0xf0, 0x00, 0x00, 0x3c, 0x3f, 0xfc, 0x7e, 0x3f, 0xc0, 0x7f, 0x8f, 0xc7, 0xff, 0xf8, 0xf8, 0x78, 0xe3, 0xc7, 0xc0, 0x00, 0x00, 0xf0, 0xff, - 0x0f, 0xff, 0xff, 0x87, 0xe3, 0xff, 0xf8, 0xf0, 0x00, 0x00, 0x3c, 0x3f, 0xfc, 0x7e, 0x3f, 0xe0, 0xff, 0x8f, 0xc7, 0xff, 0xf8, 0xfc, 0x70, 0xe3, 0xc7, 0xc0, 0x00, 0x00, 0xf0, 0xff, - 0x87, 0xff, 0xff, 0x87, 0xe3, 0xff, 0xf8, 0xf0, 0xff, 0xff, 0xfc, 0x3f, 0xfc, 0x7e, 0x3f, 0xe0, 0xff, 0x8f, 0xc7, 0xff, 0xf8, 0xfc, 0x71, 0xe1, 0x87, 0xc3, 0xff, 0xff, 0xf0, 0xff, - 0x87, 0xff, 0xff, 0x87, 0xe1, 0xff, 0xf8, 0xf8, 0xff, 0xff, 0xfc, 0x3f, 0xfc, 0x7e, 0x3f, 0xf1, 0xff, 0x8f, 0xc7, 0xff, 0xf0, 0xfc, 0x31, 0xf1, 0x8f, 0xe3, 0xff, 0xff, 0xf0, 0xff, - 0xc3, 0xff, 0xff, 0x0f, 0xe1, 0xff, 0xf0, 0xf8, 0xff, 0xff, 0xfc, 0x3f, 0xfc, 0x7e, 0x3f, 0xfb, 0xff, 0x8f, 0xc3, 0xff, 0xf0, 0xfe, 0x21, 0xf1, 0x8f, 0xe3, 0xff, 0xff, 0xf0, 0xff, - 0xc1, 0xff, 0xfe, 0x0f, 0xe1, 0xff, 0xf0, 0xf8, 0x7f, 0xff, 0xfc, 0x3f, 0xfc, 0x7e, 0x3f, 0xff, 0xff, 0x8f, 0xc3, 0xff, 0xe1, 0xfe, 0x23, 0xf0, 0x0f, 0xe1, 0xff, 0xff, 0xf0, 0xff, - 0xe0, 0xff, 0xfc, 0x1f, 0xe0, 0xff, 0xe1, 0xfc, 0x3f, 0xff, 0xfc, 0x3f, 0xfc, 0x7e, 0x3f, 0xff, 0xff, 0x8f, 0xe1, 0xff, 0xe1, 0xfe, 0x03, 0xf8, 0x1f, 0xf0, 0xff, 0xff, 0xf0, 0xff, - 0xf0, 0x7f, 0xf8, 0x3f, 0xe0, 0x7f, 0xc1, 0xfc, 0x1f, 0xfd, 0xfc, 0x3f, 0xfc, 0x7e, 0x3f, 0xff, 0xff, 0x8f, 0xf0, 0xff, 0xc3, 0xff, 0x03, 0xf8, 0x1f, 0xf0, 0x7f, 0xf7, 0xf0, 0xff, - 0xf8, 0x0f, 0xc0, 0x7f, 0xe0, 0x1f, 0x03, 0xfe, 0x0f, 0xf1, 0xfc, 0x3f, 0xfc, 0x7e, 0x3f, 0xff, 0xff, 0x8f, 0xf0, 0x3f, 0x07, 0xff, 0x07, 0xf8, 0x1f, 0xf8, 0x3f, 0xc7, 0xf0, 0xff, - 0xfc, 0x00, 0x00, 0xff, 0xe2, 0x00, 0x07, 0xff, 0x00, 0x00, 0xfc, 0x3f, 0xfc, 0x7e, 0x3f, 0xff, 0xff, 0x8f, 0xf8, 0x00, 0x0f, 0xff, 0x07, 0xfc, 0x3f, 0xfc, 0x00, 0x03, 0xf0, 0xff, - 0xff, 0x00, 0x03, 0xff, 0xe3, 0x00, 0x0f, 0xff, 0x80, 0x03, 0xfc, 0x3f, 0xfc, 0x7e, 0x3f, 0xff, 0xff, 0x8f, 0xfe, 0x00, 0x1f, 0xff, 0x87, 0xfc, 0x3f, 0xfe, 0x00, 0x0f, 0xf0, 0xff, - 0xff, 0xc0, 0x0f, 0xff, 0xe3, 0xc0, 0x3f, 0xff, 0xe0, 0x0f, 0xfc, 0x3f, 0xfc, 0x7e, 0x3f, 0xff, 0xff, 0x8f, 0xff, 0x80, 0x7f, 0xff, 0x8f, 0xfc, 0x3f, 0xff, 0x80, 0x3f, 0xf0, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -}; - -const lv_img_dsc_t OM_Wordmark_Inv_240x35x1 = { - .header.cf = LV_IMG_CF_INDEXED_1BIT, - .header.always_zero = 0, - .header.reserved = 0, - .header.w = 240, - .header.h = 35, - .data_size = 1058, - .data = OM_Wordmark_Inv_240x35x1_map, -}; diff --git a/Firmware/CoverUI/YardForce/assets/OM_Wordmark_Inv_240x35x1.png b/Firmware/CoverUI/YardForce/assets/OM_Wordmark_Inv_240x35x1.png deleted file mode 100644 index 578dab6b98dd8edf5e3e41186231905d2f2a2c60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9243 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 E0$ibUjQ{`u diff --git a/Firmware/CoverUI/YardForce/main.hpp b/Firmware/CoverUI/YardForce/main.hpp index 4912cad..e5d8ab0 100644 --- a/Firmware/CoverUI/YardForce/main.hpp +++ b/Firmware/CoverUI/YardForce/main.hpp @@ -208,7 +208,7 @@ void loop() // This loop() doesn't loop! static LED_state vled_state = LED_state::LED_off; if (now > next_vled_test_step_ms) { - next_vled_test_step_ms = now + 2000; + next_vled_test_step_ms = now + 4000; leds.set(LED_NUM_S1, vled_state);