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_GPS,
|
||||
MENU_SETTINGS,
|
||||
MENU_BACKUP_RESTORE,
|
||||
MENU_BACKUP,
|
||||
MENU_RESTORE,
|
||||
MENU_INFO,
|
||||
MENU_ABOUT,
|
||||
SETTINGS_TIMEDATE,
|
||||
|
|
@ -76,6 +79,7 @@ enum menuItems
|
|||
M_GPS,
|
||||
#endif
|
||||
M_SETTINGS,
|
||||
M_BACKUP_RESTORE,
|
||||
M_INFO,
|
||||
M_ABOUT
|
||||
};
|
||||
|
|
@ -93,6 +97,12 @@ enum settingsItems
|
|||
,S_RESET2DEFAULTS
|
||||
};
|
||||
|
||||
enum backupRestoreItems
|
||||
{
|
||||
BR_BACKUP = 0,
|
||||
BR_RESTORE
|
||||
};
|
||||
|
||||
enum displayItems
|
||||
{
|
||||
D_BRIGHTNESS = 0
|
||||
|
|
@ -185,12 +195,14 @@ extern const char *menu_items[];
|
|||
extern const char *settings_items[];
|
||||
extern const char *display_items[];
|
||||
extern const char *settings_gps_items[];
|
||||
extern const char *backup_restore_items[];
|
||||
extern const char *info_items[];
|
||||
extern const char *authors[];
|
||||
extern const uint8_t menu_num;
|
||||
extern const uint8_t settings_num;
|
||||
extern const uint8_t display_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 author_num;
|
||||
extern const color_t color_black;
|
||||
|
|
|
|||
|
|
@ -98,6 +98,9 @@ extern void _ui_drawMenuGPS();
|
|||
extern void _ui_drawSettingsGPS(ui_state_t* ui_state);
|
||||
#endif
|
||||
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_drawMenuAbout();
|
||||
#ifdef HAS_RTC
|
||||
|
|
@ -118,6 +121,7 @@ const char *menu_items[] =
|
|||
"GPS",
|
||||
#endif
|
||||
"Settings",
|
||||
"Backup & Restore",
|
||||
"Info",
|
||||
"About"
|
||||
};
|
||||
|
|
@ -153,6 +157,12 @@ const char *settings_gps_items[] =
|
|||
};
|
||||
#endif
|
||||
|
||||
const char *backup_restore_items[] =
|
||||
{
|
||||
"Backup",
|
||||
"Restore"
|
||||
};
|
||||
|
||||
const char *info_items[] =
|
||||
{
|
||||
"",
|
||||
|
|
@ -213,6 +223,7 @@ const uint8_t display_num = sizeof(display_items)/sizeof(display_items[0]);
|
|||
#ifdef HAS_GPS
|
||||
const uint8_t settings_gps_num = sizeof(settings_gps_items)/sizeof(settings_gps_items[0]);
|
||||
#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 author_num = sizeof(authors)/sizeof(authors[0]);
|
||||
|
||||
|
|
@ -1268,6 +1279,9 @@ void ui_updateFSM(event_t event, bool *sync_rtx)
|
|||
case M_SETTINGS:
|
||||
state.ui_screen = MENU_SETTINGS;
|
||||
break;
|
||||
case M_BACKUP_RESTORE:
|
||||
state.ui_screen = MENU_BACKUP_RESTORE;
|
||||
break;
|
||||
case M_INFO:
|
||||
state.ui_screen = MENU_INFO;
|
||||
break;
|
||||
|
|
@ -1400,6 +1414,32 @@ void ui_updateFSM(event_t event, bool *sync_rtx)
|
|||
else if(msg.keys & KEY_ESC)
|
||||
_ui_menuBack(MENU_TOP);
|
||||
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
|
||||
case MENU_INFO:
|
||||
if(msg.keys & KEY_UP || msg.keys & KNOB_LEFT)
|
||||
|
|
@ -1686,6 +1726,18 @@ void ui_updateGUI()
|
|||
case MENU_SETTINGS:
|
||||
_ui_drawMenuSettings(&ui_state);
|
||||
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
|
||||
case MENU_INFO:
|
||||
_ui_drawMenuInfo(&ui_state);
|
||||
|
|
|
|||
|
|
@ -198,6 +198,13 @@ int _ui_getSettingsGPSValueName(char *buf, uint8_t max_len, uint8_t index)
|
|||
}
|
||||
#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)
|
||||
{
|
||||
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);
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
gfx_clearScreen();
|
||||
|
|
|
|||
Loading…
Reference in New Issue