Firmware options (#6583)

Firmware options screen
This commit is contained in:
3djc
2019-07-26 11:56:42 +02:00
committed by Bertrand Songis
parent 66e8f88fc1
commit 381b54a56f
17 changed files with 193 additions and 34 deletions
+33 -33
View File
@@ -19,6 +19,7 @@
*/
#include "opentx.h"
#include "options.h"
// TODO duplicated code
#if defined(ROTARY_ENCODER_NAVIGATION)
@@ -34,6 +35,27 @@
constexpr uint8_t COLUMN2_X = 10 * FW;
void menuRadioFirmwareOptions(event_t event)
{
title(STR_MENU_FIRM_OPTIONS);
coord_t y = MENU_HEADER_HEIGHT + 1;
lcdNextPos = INDENT_WIDTH;
for (uint8_t i=0; options[i]; i++) {
const char * option = options[i];
coord_t width = getTextWidth(option);
if((lcdNextPos + 5 + width) > LCD_W) {
lcdDrawText(lcdNextPos, y, ",");
lcdNextPos = INDENT_WIDTH;
y += FH;
}
if (i > 0 && lcdNextPos !=INDENT_WIDTH)
lcdDrawText(lcdNextPos, y, ", ");
lcdDrawText(lcdNextPos, y, option);
}
}
#if defined(PXX2)
void drawPXX2Version(coord_t x, coord_t y, PXX2Version version)
{
@@ -191,27 +213,15 @@ void menuRadioModulesVersion(event_t event)
enum MenuRadioVersionItems
{
ITEM_RADIO_VERSION_FIRST = HEADER_LINE - 1,
#if defined(PCBTARANIS) || defined(PCBHORUS)
ITEM_RADIO_FIRMWARE_OPTIONS,
#endif
#if defined(PXX2)
ITEM_RADIO_MODULES_VERSION,
#endif
#if defined(EEPROM_RLC)
ITEM_RADIO_BACKUP_EEPROM,
ITEM_RADIO_FACTORY_RESET,
#endif
ITEM_RADIO_VERSION_COUNT
};
#if defined(EEPROM_RLC)
void onFactoryResetConfirm(const char * result)
{
if (result == STR_OK) {
showMessageBox(STR_STORAGE_FORMAT);
storageEraseAll(false);
NVIC_SystemReset();
}
}
#endif
void menuRadioVersion(event_t event)
{
SIMPLE_MENU(STR_MENUVERSION, menuTabGeneral, MENU_RADIO_VERSION, ITEM_RADIO_VERSION_COUNT);
@@ -228,9 +238,15 @@ void menuRadioVersion(event_t event)
lcdDrawText(lcdNextPos, y, "---", SMLSIZE);
y += FH - 1;
#endif
y += 2;
#if defined(PCBTARANIS) || defined(PCBHORUS)
lcdDrawText(INDENT_WIDTH, y, BUTTON(TR_FIRMWARE_OPTIONS), menuVerticalPosition == ITEM_RADIO_FIRMWARE_OPTIONS ? INVERS : 0);
y += FH;
if (menuVerticalPosition == ITEM_RADIO_FIRMWARE_OPTIONS && event == EVT_KEY_BREAK(KEY_ENTER)) {
s_editMode = EDIT_SELECT_FIELD;
pushMenu(menuRadioFirmwareOptions);
}
#endif
#if defined(PXX2)
lcdDrawText(INDENT_WIDTH, y, BUTTON(TR_MODULES_RX_VERSION), menuVerticalPosition == ITEM_RADIO_MODULES_VERSION ? INVERS : 0);
y += FH;
@@ -239,20 +255,4 @@ void menuRadioVersion(event_t event)
pushMenu(menuRadioModulesVersion);
}
#endif
#if defined(EEPROM_RLC)
lcdDrawText(INDENT_WIDTH, y, BUTTON(STR_EEBACKUP), menuVerticalPosition == ITEM_RADIO_BACKUP_EEPROM ? INVERS : 0);
y += FH;
if (menuVerticalPosition == ITEM_RADIO_BACKUP_EEPROM && event == EVT_KEY_BREAK(KEY_ENTER)) {
s_editMode = EDIT_SELECT_FIELD;
eepromBackup();
}
lcdDrawText(INDENT_WIDTH, y, BUTTON(STR_FACTORYRESET), menuVerticalPosition == ITEM_RADIO_FACTORY_RESET ? INVERS : 0);
// y += FH;
if (menuVerticalPosition == ITEM_RADIO_FACTORY_RESET && event == EVT_KEY_BREAK(KEY_ENTER)) {
s_editMode = EDIT_SELECT_FIELD;
POPUP_CONFIRMATION(STR_CONFIRMRESET, onFactoryResetConfirm);
}
#endif
}