feat(bw): move battery range settings to Radio / Hardware tab (#5803)

This commit is contained in:
philmoz
2025-01-19 12:57:41 +10:00
committed by GitHub
parent 125738b5f9
commit a83b5cdb7b
2 changed files with 30 additions and 25 deletions
+1 -23
View File
@@ -40,12 +40,6 @@ int8_t slider_5pos(coord_t y, int8_t value, event_t event, uint8_t attr, const c
return editChoice(RADIO_SETUP_2ND_COLUMN, y, title, nullptr, value, -2, +2, attr, event, INDENT_WIDTH);
}
#if defined(BATTGRAPH)
#define CASE_BATTGRAPH(x) x,
#else
#define CASE_BATTGRAPH(x)
#endif
#if !defined(SURFACE_RADIO)
#define CASE_TX_MODE(x) x,
#else
@@ -55,7 +49,6 @@ int8_t slider_5pos(coord_t y, int8_t value, event_t event, uint8_t attr, const c
enum {
CASE_RTCLOCK(ITEM_RADIO_SETUP_DATE)
CASE_RTCLOCK(ITEM_RADIO_SETUP_TIME)
CASE_BATTGRAPH(ITEM_RADIO_SETUP_BATT_RANGE)
ITEM_RADIO_SETUP_SOUND_LABEL,
CASE_AUDIO(ITEM_RADIO_SETUP_BEEP_MODE)
CASE_BUZZER(ITEM_RADIO_SETUP_BUZZER_MODE)
@@ -180,7 +173,7 @@ void menuRadioSetup(event_t event)
MENU(STR_RADIO_SETUP, menuTabGeneral, MENU_RADIO_SETUP, ITEM_RADIO_SETUP_MAX, {
HEADER_LINE_COLUMNS
CASE_RTCLOCK(2) CASE_RTCLOCK(2) CASE_BATTGRAPH(1)
CASE_RTCLOCK(2) CASE_RTCLOCK(2)
// Sound
0,
CASE_AUDIO(SOUND_ROW(0))
@@ -342,21 +335,6 @@ void menuRadioSetup(event_t event)
break;
#endif
#if defined(BATTGRAPH)
case ITEM_RADIO_SETUP_BATT_RANGE:
lcdDrawTextAlignedLeft(y, STR_BATTERY_RANGE);
putsVolts(LCD_W-1, y, 120+g_eeGeneral.vBatMax, (menuHorizontalPosition>0 ? attr : 0)|RIGHT|NO_UNIT);
lcdDrawChar(lcdLastLeftPos - FW, y, '-');
putsVolts(lcdLastLeftPos - FW, y, 90+g_eeGeneral.vBatMin, (menuHorizontalPosition==0 ? attr : 0)|RIGHT|NO_UNIT);
if (attr && s_editMode>0) {
if (menuHorizontalPosition==0)
CHECK_INCDEC_GENVAR(event, g_eeGeneral.vBatMin, -60, g_eeGeneral.vBatMax+29); // min=3.0V
else
CHECK_INCDEC_GENVAR(event, g_eeGeneral.vBatMax, g_eeGeneral.vBatMin-29, +40); // max=16.0V
}
break;
#endif
case ITEM_RADIO_SETUP_SOUND_LABEL:
expandState.sound = expandableSection(y, STR_SOUND_LABEL, expandState.sound, attr, event);
break;
+29 -2
View File
@@ -39,9 +39,17 @@
#if LCD_W >= 212
#define HW_SETTINGS_COLUMN1 12*FW
#define HW_SETTINGS_COLUMN2 (20*FW - 3)
#define HW_SETTINGS_COLUMN3 HW_SETTINGS_COLUMN2
#else
#define HW_SETTINGS_COLUMN1 30
#define HW_SETTINGS_COLUMN2 (HW_SETTINGS_COLUMN1 + 5*FW)
#define HW_SETTINGS_COLUMN3 HW_SETTINGS_COLUMN2 + FW
#endif
#if defined(BATTGRAPH)
#define CASE_BATTGRAPH(x) x,
#else
#define CASE_BATTGRAPH(x)
#endif
enum {
@@ -54,6 +62,7 @@ enum {
ITEM_RADIO_HARDWARE_LABEL_SWITCHES,
ITEM_RADIO_HARDWARE_SWITCH,
ITEM_RADIO_HARDWARE_SWITCH_END = ITEM_RADIO_HARDWARE_SWITCH + MAX_SWITCHES - 1,
CASE_BATTGRAPH(ITEM_RADIO_HARDWARE_BATT_RANGE)
ITEM_RADIO_HARDWARE_BATTERY_CALIB,
ITEM_RADIO_HARDWARE_RTC_BATTERY,
ITEM_RADIO_HARDWARE_RTC_CHECK,
@@ -144,6 +153,9 @@ static void _init_menu_tab_array(uint8_t* tab, size_t len)
tab[i] = switchIsFlex(idx) ? 2 : idx < max_switches ? 1 : HIDDEN_ROW;
}
#if defined(BATTGRAPH)
tab[ITEM_RADIO_HARDWARE_BATT_RANGE] = 1;
#endif
tab[ITEM_RADIO_HARDWARE_BATTERY_CALIB] = 0;
tab[ITEM_RADIO_HARDWARE_RTC_BATTERY] = READONLY_ROW;
tab[ITEM_RADIO_HARDWARE_RTC_CHECK] = 0;
@@ -268,9 +280,24 @@ void menuRadioHardware(event_t event)
lcdDrawTextAlignedLeft(y, STR_SWITCHES);
break;
#if defined(BATTGRAPH)
case ITEM_RADIO_HARDWARE_BATT_RANGE:
lcdDrawTextAlignedLeft(y, STR_BATTERY_RANGE);
putsVolts(HW_SETTINGS_COLUMN3, y, 90+g_eeGeneral.vBatMin, (menuHorizontalPosition==0 ? attr : 0)|NO_UNIT);
lcdDrawChar(lcdNextPos, y, '-');
putsVolts(lcdNextPos, y, 120+g_eeGeneral.vBatMax, (menuHorizontalPosition>0 ? attr : 0)|NO_UNIT);
if (attr && s_editMode>0) {
if (menuHorizontalPosition==0)
CHECK_INCDEC_GENVAR(event, g_eeGeneral.vBatMin, -60, g_eeGeneral.vBatMax+29); // min=3.0V
else
CHECK_INCDEC_GENVAR(event, g_eeGeneral.vBatMax, g_eeGeneral.vBatMin-29, +40); // max=16.0V
}
break;
#endif
case ITEM_RADIO_HARDWARE_BATTERY_CALIB:
lcdDrawTextAlignedLeft(y, STR_BATT_CALIB);
putsVolts(HW_SETTINGS_COLUMN2, y, getBatteryVoltage(), attr|PREC2|LEFT);
putsVolts(HW_SETTINGS_COLUMN3, y, getBatteryVoltage(), attr|PREC2|LEFT);
if (attr) {
CHECK_INCDEC_GENVAR(event, g_eeGeneral.txVoltageCalibration, -127, 127);
}
@@ -278,7 +305,7 @@ void menuRadioHardware(event_t event)
case ITEM_RADIO_HARDWARE_RTC_BATTERY:
lcdDrawTextAlignedLeft(y, STR_RTC_BATT);
putsVolts(HW_SETTINGS_COLUMN2, y, getRTCBatteryVoltage(), PREC2|LEFT);
putsVolts(HW_SETTINGS_COLUMN3, y, getRTCBatteryVoltage(), PREC2|LEFT);
break;
case ITEM_RADIO_HARDWARE_RTC_CHECK: