0
mirror of https://github.com/OneOfEleven/uv-k5-firmware-custom.git synced 2025-06-19 22:58:04 +03:00

Added version string sanity checking to prevent boot problems and serial comm problems

This commit is contained in:
OneOfEleven
2023-10-12 08:39:51 +01:00
parent 5755a92daa
commit 74d31a616f
8 changed files with 129 additions and 116 deletions

View File

@ -41,9 +41,9 @@ void UI_DisplayReleaseKeys(void)
void UI_DisplayWelcome(void)
{
char WelcomeString0[16];
char WelcomeString1[16];
char WelcomeString2[16];
char str0[17];
char str1[17];
char str2[17];
memset(g_status_line, 0, sizeof(g_status_line));
memset(g_frame_buffer, 0, sizeof(g_frame_buffer));
@ -59,34 +59,38 @@ void UI_DisplayWelcome(void)
}
else
{
memset(WelcomeString0, 0, sizeof(WelcomeString0));
memset(WelcomeString1, 0, sizeof(WelcomeString1));
memset(WelcomeString2, 0, sizeof(WelcomeString2));
unsigned int slen = strlen(Version_str);
if (slen > (sizeof(str2) - 1))
slen = sizeof(str2) - 1;
memset(str0, 0, sizeof(str0));
memset(str1, 0, sizeof(str1));
memset(str2, 0, sizeof(str2));
if (g_eeprom.pwr_on_display_mode == PWR_ON_DISPLAY_MODE_VOLTAGE)
{
strcpy(WelcomeString0, "VOLTAGE");
sprintf(WelcomeString1, "%u.%02uV %u%%",
strcpy(str0, "VOLTAGE");
sprintf(str1, "%u.%02uV %u%%",
g_battery_voltage_average / 100,
g_battery_voltage_average % 100,
BATTERY_VoltsToPercent(g_battery_voltage_average));
#if 0
sprintf(WelcomeString2, "Current %u", g_usb_current); // needs scaling into mA
#endif
}
else
{
EEPROM_ReadBuffer(0x0EB0, WelcomeString0, 16);
EEPROM_ReadBuffer(0x0EC0, WelcomeString1, 16);
EEPROM_ReadBuffer(0x0EB0, str0, 16);
EEPROM_ReadBuffer(0x0EC0, str1, 16);
}
UI_PrintString(WelcomeString0, 0, 127, 0, 10);
UI_PrintString(WelcomeString1, 0, 127, 2, 10);
#if 0
UI_PrintStringSmall(WelcomeString2, 0, 127, 4);
#endif
UI_PrintString(Version, 0, 127, 5, 10);
memmove(str2, Version_str, slen);
UI_PrintString(str0, 0, 127, 0, 10);
UI_PrintString(str1, 0, 127, 2, 10);
if (strlen(str2) <= 12)
UI_PrintString(str2, 0, 127, 5, 10);
else
UI_PrintStringSmallBold(str2, 0, 127, 5);
#if 1
ST7565_BlitStatusLine(); // blank status line