diff --git a/radio/src/gui/128x64/lcd.cpp b/radio/src/gui/128x64/lcd.cpp index f3adae2ca..9118fef5d 100644 --- a/radio/src/gui/128x64/lcd.cpp +++ b/radio/src/gui/128x64/lcd.cpp @@ -116,7 +116,6 @@ void lcdPutPattern(coord_t x, coord_t y, const uint8_t * pattern, uint8_t width, } } -#if !defined(BOOT) struct PatternData { uint8_t width; @@ -143,10 +142,11 @@ uint8_t getPatternWidth(const PatternData * pattern) void getCharPattern(PatternData * pattern, unsigned char c, LcdFlags flags) { +#if !defined(BOOT) uint32_t fontsize = FONTSIZE(flags); unsigned char c_remapped = 0; - if (fontsize == DBLSIZE || (flags&BOLD)) { + if (fontsize == DBLSIZE || (flags & BOLD)) { // To save space only some DBLSIZE and BOLD chars are available // c has to be remapped. All non existing chars mapped to 0 (space) if (c>=',' && c<=':') @@ -203,6 +203,11 @@ void getCharPattern(PatternData * pattern, unsigned char c, LcdFlags flags) pattern->height = 7; pattern->data = (c < 0xC0) ? &font_5x7[(c-0x20)*5] : &font_5x7_extra[(c-0xC0)*5]; } +#else + pattern->width = 5; + pattern->height = 7; + pattern->data = &font_5x7[(c-0x20)*5]; +#endif } uint8_t getCharWidth(char c, LcdFlags flags) @@ -211,7 +216,6 @@ uint8_t getCharWidth(char c, LcdFlags flags) getCharPattern(&pattern, c, flags); return getPatternWidth(&pattern); } -#endif void lcdDrawChar(coord_t x, coord_t y, const unsigned char c, LcdFlags flags) { @@ -288,12 +292,15 @@ void lcdDrawChar(coord_t x, coord_t y, const unsigned char c) lcdDrawChar(x, y, c, 0); } -#if !defined(BOOT) uint8_t getTextWidth(const char * s, uint8_t len, LcdFlags flags) { uint8_t width = 0; - for (int i=0; len==0 || iheight = 7; pattern->data = (c < 0xC0) ? &font_5x7[(c-0x20)*5] : &font_5x7_extra[(c-0xC0)*5]; } +#else + pattern->width = 5; + pattern->height = 7; + pattern->data = &font_5x7[(c-0x20) * 5]; +#endif } uint8_t getCharWidth(char c, LcdFlags flags) @@ -220,7 +225,6 @@ uint8_t getCharWidth(char c, LcdFlags flags) getCharPattern(&pattern, c, flags); return getPatternWidth(&pattern); } -#endif void lcdDrawChar(coord_t x, coord_t y, const unsigned char c, LcdFlags flags) { @@ -240,12 +244,15 @@ void lcdDrawChar(coord_t x, coord_t y, const unsigned char c) lcdDrawChar(x, y, c, 0); } -#if !defined(BOOT) uint8_t getTextWidth(const char * s, uint8_t len, LcdFlags flags) { uint8_t width = 0; - for (int i=0; len==0 || iflavour, "unknown", sizeof("unknown")); - tag->version = "unknown"; + memcpy(tag->flavour, "unknown", sizeof("unknown")); + tag->version = "unknown"; } // skip "opentx-" diff --git a/radio/src/targets/common/arm/stm32/bootloader/boot.h b/radio/src/targets/common/arm/stm32/bootloader/boot.h index 13e6e3036..c9e36269b 100644 --- a/radio/src/targets/common/arm/stm32/bootloader/boot.h +++ b/radio/src/targets/common/arm/stm32/bootloader/boot.h @@ -34,12 +34,12 @@ #if LCD_W >= 480 #define STR_INVALID_FIRMWARE "Not a valid firmware file" #elif LCD_W >= 212 - #define STR_OR_PLUGIN_USB_CABLE INDENT "Or plug in a USB cable for mass storage" + #define STR_OR_PLUGIN_USB_CABLE "Or plug in a USB cable for mass storage" #define STR_HOLD_ENTER_TO_START "\012Hold [ENT] to start writing" #define STR_INVALID_FIRMWARE "\011Not a valid firmware file! " #define STR_INVALID_EEPROM "\011Not a valid EEPROM file! " #else - #define STR_OR_PLUGIN_USB_CABLE INDENT "Or plug in a USB cable" + #define STR_OR_PLUGIN_USB_CABLE "Or plug in a USB cable" #define STR_HOLD_ENTER_TO_START "\006Hold [ENT] to start" #define STR_INVALID_FIRMWARE "\004Not a valid firmware! " #define STR_INVALID_EEPROM "\004Not a valid EEPROM! " diff --git a/radio/src/targets/common/arm/stm32/usbd_storage_msd.cpp b/radio/src/targets/common/arm/stm32/usbd_storage_msd.cpp index b60e5da8f..1fbfb970a 100644 --- a/radio/src/targets/common/arm/stm32/usbd_storage_msd.cpp +++ b/radio/src/targets/common/arm/stm32/usbd_storage_msd.cpp @@ -408,7 +408,7 @@ const FATDirEntry_t g_DIRroot[] = 0xA302, 0x3D55, 0x0002, - sizeof(firmware_txt) + strlen(getOtherVersion(nullptr)) + sizeof(firmware_txt) + strlen(getFirmwareVersion()) }, { { 'F', 'I', 'R', 'M', 'W', 'A', 'R', 'E'}, @@ -512,13 +512,11 @@ int32_t fat12Read(uint8_t * buffer, uint16_t sector, uint16_t count) else if (sector == 3) { memcpy(buffer, g_DIRroot, sizeof(g_DIRroot) ) ; } - else if (sector == 4) - { + else if (sector == 4) { memcpy(buffer, firmware_txt, sizeof(firmware_txt)); - memcpy(buffer + sizeof(firmware_txt), getOtherVersion(nullptr), strlen(getOtherVersion(nullptr))); + strcpy((char *)(buffer + sizeof(firmware_txt)), getFirmwareVersion()); } - else if (sector < RESERVED_SECTORS) - { + else if (sector < RESERVED_SECTORS) { // allocated to firmware.txt } else if (sector < RESERVED_SECTORS + (FLASHSIZE/BLOCK_SIZE )) { diff --git a/radio/src/targets/horus/bootloader/boot_menu.cpp b/radio/src/targets/horus/bootloader/boot_menu.cpp index d64f2c7f8..025b0d7ef 100644 --- a/radio/src/targets/horus/bootloader/boot_menu.cpp +++ b/radio/src/targets/horus/bootloader/boot_menu.cpp @@ -84,7 +84,7 @@ void bootloaderDrawScreen(BootloaderState st, int opt, const char* str) bootloaderDrawFooter(); lcdDrawText( 36, 242, "Current Firmware:"); - lcdDrawText(200, 242, getOtherVersion(nullptr)); + lcdDrawText(200, 242, getFirmwareVersion()); } else if (st == ST_USB) { diff --git a/radio/src/targets/taranis/bootloader/boot_menu.cpp b/radio/src/targets/taranis/bootloader/boot_menu.cpp index 4a2eb1497..d6f6a86ac 100644 --- a/radio/src/targets/taranis/bootloader/boot_menu.cpp +++ b/radio/src/targets/taranis/bootloader/boot_menu.cpp @@ -21,28 +21,25 @@ void bootloaderDrawFilename(const char *str, uint8_t line, bool selected) void bootloaderDrawScreen(BootloaderState st, int opt, const char *str) { lcdClear(); - lcdDrawText(0, 0, BOOTLOADER_TITLE, INVERS); + lcdDrawText(LCD_W / 2, 0, BOOTLOADER_TITLE, CENTERED); + lcdInvertLine(0); if (st == ST_START) { lcdDrawTextAlignedLeft(2*FH, "\010Write Firmware"); lcdDrawTextAlignedLeft(3*FH, "\010Restore EEPROM"); lcdDrawTextAlignedLeft(4*FH, "\010Exit"); - -#if LCD_W >= 212 - lcdDrawTextAlignedLeft(6*FH, "\001Curr FW:"); - lcdDrawText(50, 6*FH, getOtherVersion(nullptr)); -#else - lcdDrawTextAlignedLeft(6 * FH, "\001FW:"); - - // Remove opentx- from string - const char *other_ver = getOtherVersion(nullptr); - if (strstr(other_ver, "opentx-")) - other_ver = other_ver + 7; - lcdDrawText(20, 6 * FH, other_ver); -#endif - lcdInvertLine(2 + opt); - lcdDrawTextAlignedLeft(7 * FH, STR_OR_PLUGIN_USB_CABLE); + + lcdDrawText(LCD_W / 2, 5 * FH + FH / 2, STR_OR_PLUGIN_USB_CABLE, CENTERED); + + // Remove "opentx-" from string + const char * vers = getFirmwareVersion(); +#if LCD_W < 212 + if (strncmp(vers, "opentx-", 7) == 0) + vers += 7; +#endif + lcdDrawText(LCD_W / 2, 7 * FH, vers, CENTERED); + lcdInvertLine(7); } else if (st == ST_USB) { lcdDrawTextAlignedLeft(4 * FH, STR_USB_CONNECTED); @@ -65,11 +62,11 @@ void bootloaderDrawScreen(BootloaderState st, int opt, const char *str) } else if (opt == FC_OK) { if (memoryType == MEM_FLASH) { - const char * vers = getOtherVersion((char *) Block_buffer); + const char * vers = getFirmwareVersion((const char *)Block_buffer); #if LCD_W < 212 - // Remove opentx- from string - if (strstr(vers, "opentx-")) - vers = vers + 7; + // Remove "opentx-" from string + if (strncmp(vers, "opentx-", 7) == 0) + vers += 7; #endif bootloaderDrawMsg(INDENT_WIDTH, vers, 0, false); }