Add flash backup and restore menu
Add flash backup and flash restore entries to menu system, to access these functionalities from the radio itself. TG-428
This commit is contained in:
parent
7e3131d9d1
commit
48824accb9
|
|
@ -48,6 +48,9 @@ enum uiScreen
|
||||||
MENU_CONTACTS,
|
MENU_CONTACTS,
|
||||||
MENU_GPS,
|
MENU_GPS,
|
||||||
MENU_SETTINGS,
|
MENU_SETTINGS,
|
||||||
|
MENU_BACKUP_RESTORE,
|
||||||
|
MENU_BACKUP,
|
||||||
|
MENU_RESTORE,
|
||||||
MENU_INFO,
|
MENU_INFO,
|
||||||
MENU_ABOUT,
|
MENU_ABOUT,
|
||||||
SETTINGS_TIMEDATE,
|
SETTINGS_TIMEDATE,
|
||||||
|
|
@ -76,6 +79,7 @@ enum menuItems
|
||||||
M_GPS,
|
M_GPS,
|
||||||
#endif
|
#endif
|
||||||
M_SETTINGS,
|
M_SETTINGS,
|
||||||
|
M_BACKUP_RESTORE,
|
||||||
M_INFO,
|
M_INFO,
|
||||||
M_ABOUT
|
M_ABOUT
|
||||||
};
|
};
|
||||||
|
|
@ -93,6 +97,12 @@ enum settingsItems
|
||||||
,S_RESET2DEFAULTS
|
,S_RESET2DEFAULTS
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum backupRestoreItems
|
||||||
|
{
|
||||||
|
BR_BACKUP = 0,
|
||||||
|
BR_RESTORE
|
||||||
|
};
|
||||||
|
|
||||||
enum displayItems
|
enum displayItems
|
||||||
{
|
{
|
||||||
D_BRIGHTNESS = 0
|
D_BRIGHTNESS = 0
|
||||||
|
|
@ -185,12 +195,14 @@ extern const char *menu_items[];
|
||||||
extern const char *settings_items[];
|
extern const char *settings_items[];
|
||||||
extern const char *display_items[];
|
extern const char *display_items[];
|
||||||
extern const char *settings_gps_items[];
|
extern const char *settings_gps_items[];
|
||||||
|
extern const char *backup_restore_items[];
|
||||||
extern const char *info_items[];
|
extern const char *info_items[];
|
||||||
extern const char *authors[];
|
extern const char *authors[];
|
||||||
extern const uint8_t menu_num;
|
extern const uint8_t menu_num;
|
||||||
extern const uint8_t settings_num;
|
extern const uint8_t settings_num;
|
||||||
extern const uint8_t display_num;
|
extern const uint8_t display_num;
|
||||||
extern const uint8_t settings_gps_num;
|
extern const uint8_t settings_gps_num;
|
||||||
|
extern const uint8_t backup_restore_num;
|
||||||
extern const uint8_t info_num;
|
extern const uint8_t info_num;
|
||||||
extern const uint8_t author_num;
|
extern const uint8_t author_num;
|
||||||
extern const color_t color_black;
|
extern const color_t color_black;
|
||||||
|
|
|
||||||
|
|
@ -98,6 +98,9 @@ extern void _ui_drawMenuGPS();
|
||||||
extern void _ui_drawSettingsGPS(ui_state_t* ui_state);
|
extern void _ui_drawSettingsGPS(ui_state_t* ui_state);
|
||||||
#endif
|
#endif
|
||||||
extern void _ui_drawMenuSettings(ui_state_t* ui_state);
|
extern void _ui_drawMenuSettings(ui_state_t* ui_state);
|
||||||
|
extern void _ui_drawMenuBackupRestore(ui_state_t* ui_state);
|
||||||
|
extern void _ui_drawMenuBackup(ui_state_t* ui_state);
|
||||||
|
extern void _ui_drawMenuRestore(ui_state_t* ui_state);
|
||||||
extern void _ui_drawMenuInfo(ui_state_t* ui_state);
|
extern void _ui_drawMenuInfo(ui_state_t* ui_state);
|
||||||
extern void _ui_drawMenuAbout();
|
extern void _ui_drawMenuAbout();
|
||||||
#ifdef HAS_RTC
|
#ifdef HAS_RTC
|
||||||
|
|
@ -118,6 +121,7 @@ const char *menu_items[] =
|
||||||
"GPS",
|
"GPS",
|
||||||
#endif
|
#endif
|
||||||
"Settings",
|
"Settings",
|
||||||
|
"Backup & Restore",
|
||||||
"Info",
|
"Info",
|
||||||
"About"
|
"About"
|
||||||
};
|
};
|
||||||
|
|
@ -153,6 +157,12 @@ const char *settings_gps_items[] =
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
const char *backup_restore_items[] =
|
||||||
|
{
|
||||||
|
"Backup",
|
||||||
|
"Restore"
|
||||||
|
};
|
||||||
|
|
||||||
const char *info_items[] =
|
const char *info_items[] =
|
||||||
{
|
{
|
||||||
"",
|
"",
|
||||||
|
|
@ -213,6 +223,7 @@ const uint8_t display_num = sizeof(display_items)/sizeof(display_items[0]);
|
||||||
#ifdef HAS_GPS
|
#ifdef HAS_GPS
|
||||||
const uint8_t settings_gps_num = sizeof(settings_gps_items)/sizeof(settings_gps_items[0]);
|
const uint8_t settings_gps_num = sizeof(settings_gps_items)/sizeof(settings_gps_items[0]);
|
||||||
#endif
|
#endif
|
||||||
|
const uint8_t backup_restore_num = sizeof(backup_restore_items)/sizeof(backup_restore_items[0]);
|
||||||
const uint8_t info_num = sizeof(info_items)/sizeof(info_items[0]);
|
const uint8_t info_num = sizeof(info_items)/sizeof(info_items[0]);
|
||||||
const uint8_t author_num = sizeof(authors)/sizeof(authors[0]);
|
const uint8_t author_num = sizeof(authors)/sizeof(authors[0]);
|
||||||
|
|
||||||
|
|
@ -1268,6 +1279,9 @@ void ui_updateFSM(event_t event, bool *sync_rtx)
|
||||||
case M_SETTINGS:
|
case M_SETTINGS:
|
||||||
state.ui_screen = MENU_SETTINGS;
|
state.ui_screen = MENU_SETTINGS;
|
||||||
break;
|
break;
|
||||||
|
case M_BACKUP_RESTORE:
|
||||||
|
state.ui_screen = MENU_BACKUP_RESTORE;
|
||||||
|
break;
|
||||||
case M_INFO:
|
case M_INFO:
|
||||||
state.ui_screen = MENU_INFO;
|
state.ui_screen = MENU_INFO;
|
||||||
break;
|
break;
|
||||||
|
|
@ -1400,6 +1414,32 @@ void ui_updateFSM(event_t event, bool *sync_rtx)
|
||||||
else if(msg.keys & KEY_ESC)
|
else if(msg.keys & KEY_ESC)
|
||||||
_ui_menuBack(MENU_TOP);
|
_ui_menuBack(MENU_TOP);
|
||||||
break;
|
break;
|
||||||
|
// Flash backup and restore menu screen
|
||||||
|
case MENU_BACKUP_RESTORE:
|
||||||
|
if(msg.keys & KEY_UP || msg.keys & KNOB_LEFT)
|
||||||
|
_ui_menuUp(settings_num);
|
||||||
|
else if(msg.keys & KEY_DOWN || msg.keys & KNOB_RIGHT)
|
||||||
|
_ui_menuDown(settings_num);
|
||||||
|
else if(msg.keys & KEY_ENTER)
|
||||||
|
{
|
||||||
|
|
||||||
|
switch(ui_state.menu_selected)
|
||||||
|
{
|
||||||
|
case BR_BACKUP:
|
||||||
|
state.ui_screen = MENU_BACKUP;
|
||||||
|
break;
|
||||||
|
case BR_RESTORE:
|
||||||
|
state.ui_screen = MENU_RESTORE;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
state.ui_screen = MENU_BACKUP_RESTORE;
|
||||||
|
}
|
||||||
|
// Reset menu selection
|
||||||
|
ui_state.menu_selected = 0;
|
||||||
|
}
|
||||||
|
else if(msg.keys & KEY_ESC)
|
||||||
|
_ui_menuBack(MENU_TOP);
|
||||||
|
break;
|
||||||
// Info menu screen
|
// Info menu screen
|
||||||
case MENU_INFO:
|
case MENU_INFO:
|
||||||
if(msg.keys & KEY_UP || msg.keys & KNOB_LEFT)
|
if(msg.keys & KEY_UP || msg.keys & KNOB_LEFT)
|
||||||
|
|
@ -1686,6 +1726,18 @@ void ui_updateGUI()
|
||||||
case MENU_SETTINGS:
|
case MENU_SETTINGS:
|
||||||
_ui_drawMenuSettings(&ui_state);
|
_ui_drawMenuSettings(&ui_state);
|
||||||
break;
|
break;
|
||||||
|
// Flash backup and restore screen
|
||||||
|
case MENU_BACKUP_RESTORE:
|
||||||
|
_ui_drawMenuBackupRestore(&ui_state);
|
||||||
|
break;
|
||||||
|
// Flash backup screen
|
||||||
|
case MENU_BACKUP:
|
||||||
|
_ui_drawMenuBackup(&ui_state);
|
||||||
|
break;
|
||||||
|
// Flash restore screen
|
||||||
|
case MENU_RESTORE:
|
||||||
|
_ui_drawMenuRestore(&ui_state);
|
||||||
|
break;
|
||||||
// Info menu screen
|
// Info menu screen
|
||||||
case MENU_INFO:
|
case MENU_INFO:
|
||||||
_ui_drawMenuInfo(&ui_state);
|
_ui_drawMenuInfo(&ui_state);
|
||||||
|
|
|
||||||
|
|
@ -198,6 +198,13 @@ int _ui_getSettingsGPSValueName(char *buf, uint8_t max_len, uint8_t index)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
int _ui_getBackupRestoreEntryName(char *buf, uint8_t max_len, uint8_t index)
|
||||||
|
{
|
||||||
|
if(index >= backup_restore_num) return -1;
|
||||||
|
snprintf(buf, max_len, "%s", backup_restore_items[index]);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
int _ui_getInfoEntryName(char *buf, uint8_t max_len, uint8_t index)
|
int _ui_getInfoEntryName(char *buf, uint8_t max_len, uint8_t index)
|
||||||
{
|
{
|
||||||
if(index >= info_num) return -1;
|
if(index >= info_num) return -1;
|
||||||
|
|
@ -424,6 +431,44 @@ void _ui_drawMenuSettings(ui_state_t* ui_state)
|
||||||
_ui_drawMenuList(ui_state->menu_selected, _ui_getSettingsEntryName);
|
_ui_drawMenuList(ui_state->menu_selected, _ui_getSettingsEntryName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void _ui_drawMenuBackupRestore(ui_state_t* ui_state)
|
||||||
|
{
|
||||||
|
gfx_clearScreen();
|
||||||
|
// Print "Backup & Restore" on top bar
|
||||||
|
gfx_print(layout.top_pos, layout.top_font, TEXT_ALIGN_CENTER,
|
||||||
|
color_white, "Backup & Restore");
|
||||||
|
// Print menu entries
|
||||||
|
_ui_drawMenuList(ui_state->menu_selected, _ui_getBackupRestoreEntryName);
|
||||||
|
}
|
||||||
|
|
||||||
|
void _ui_drawMenuBackup(ui_state_t* ui_state)
|
||||||
|
{
|
||||||
|
gfx_clearScreen();
|
||||||
|
// Print "Flash Backup" on top bar
|
||||||
|
gfx_print(layout.top_pos, layout.top_font, TEXT_ALIGN_CENTER,
|
||||||
|
color_white, "Flash Backup");
|
||||||
|
// Print backup message
|
||||||
|
gfx_print(layout.line2_pos, layout.line2_font, TEXT_ALIGN_CENTER,
|
||||||
|
color_white, "Connect to RTXTool");
|
||||||
|
gfx_print(layout.line3_pos, layout.line2_font, TEXT_ALIGN_CENTER,
|
||||||
|
color_white, "to backup flash.");
|
||||||
|
// TODO: Add call to xmodem send function
|
||||||
|
}
|
||||||
|
|
||||||
|
void _ui_drawMenuRestore(ui_state_t* ui_state)
|
||||||
|
{
|
||||||
|
gfx_clearScreen();
|
||||||
|
// Print "Flash Backup" on top bar
|
||||||
|
gfx_print(layout.top_pos, layout.top_font, TEXT_ALIGN_CENTER,
|
||||||
|
color_white, "Flash Restore");
|
||||||
|
// Print backup message
|
||||||
|
gfx_print(layout.line2_pos, layout.line2_font, TEXT_ALIGN_CENTER,
|
||||||
|
color_white, "Connect to RTXTool");
|
||||||
|
gfx_print(layout.line3_pos, layout.line2_font, TEXT_ALIGN_CENTER,
|
||||||
|
color_white, "to restore flash.");
|
||||||
|
// TODO: Add call to xmodem receive function
|
||||||
|
}
|
||||||
|
|
||||||
void _ui_drawMenuInfo(ui_state_t* ui_state)
|
void _ui_drawMenuInfo(ui_state_t* ui_state)
|
||||||
{
|
{
|
||||||
gfx_clearScreen();
|
gfx_clearScreen();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue