Added RX/TX inversion and mic gain setting on Module 17 UI

This commit is contained in:
Mathis Schmieder 2022-10-30 18:36:00 +01:00 committed by Silvano Seva
parent f32255c258
commit bd8f0d70c7
3 changed files with 46 additions and 11 deletions

View File

@ -129,7 +129,7 @@ enum module17Items
D_RXWIPER, D_RXWIPER,
D_TXINVERT, D_TXINVERT,
D_RXINVERT, D_RXINVERT,
D_SAVE D_MICGAIN
}; };
/** /**

View File

@ -98,10 +98,11 @@ const char *display_items[] =
const char *module17_items[] = const char *module17_items[] =
{ {
"TX Wiper", "TX Softpot",
"RX Wiper", "RX Softpot",
"TX Phase Inversion", "TX Phase",
"RX Phase Inversion" "RX Phase",
"Mic Gain"
}; };
#ifdef GPS_PRESENT #ifdef GPS_PRESENT
@ -605,6 +606,15 @@ void _ui_changeRxInvert(int variation)
mod17CalData.rx_invert += variation; mod17CalData.rx_invert += variation;
} }
void _ui_changeMicGain(int variation)
{
mod17CalData.mic_gain += variation;
// Mic gain can be between 0 and 2
if(mod17CalData.mic_gain > 2) mod17CalData.mic_gain = 2;
if(mod17CalData.mic_gain < 0) mod17CalData.mic_gain = 0;
}
void _ui_menuUp(uint8_t menu_entries) void _ui_menuUp(uint8_t menu_entries)
{ {
if(ui_state.menu_selected > 0) if(ui_state.menu_selected > 0)
@ -1236,6 +1246,9 @@ void ui_updateFSM(bool *sync_rtx)
case D_RXINVERT: case D_RXINVERT:
_ui_changeRxInvert(-1); _ui_changeRxInvert(-1);
break; break;
case D_MICGAIN:
_ui_changeMicGain(-1);
break;
default: default:
state.ui_screen = SETTINGS_MODULE17; state.ui_screen = SETTINGS_MODULE17;
} }
@ -1257,6 +1270,9 @@ void ui_updateFSM(bool *sync_rtx)
case D_RXINVERT: case D_RXINVERT:
_ui_changeRxInvert(+1); _ui_changeRxInvert(+1);
break; break;
case D_MICGAIN:
_ui_changeMicGain(+1);
break;
default: default:
state.ui_screen = SETTINGS_MODULE17; state.ui_screen = SETTINGS_MODULE17;
} }
@ -1268,7 +1284,10 @@ void ui_updateFSM(bool *sync_rtx)
else if(msg.keys & KEY_ENTER) else if(msg.keys & KEY_ENTER)
ui_state.edit_mode = !ui_state.edit_mode; ui_state.edit_mode = !ui_state.edit_mode;
else if(msg.keys & KEY_ESC) else if(msg.keys & KEY_ESC)
{
// TODO save settings to non-volatile memory
_ui_menuBack(MENU_SETTINGS); _ui_menuBack(MENU_SETTINGS);
}
break; break;
} }
} }

View File

@ -52,6 +52,19 @@ const char *display_timer_values[] =
"1 hour" "1 hour"
}; };
const char *mic_gain_values[] =
{
"40 dB",
"50 dB",
"60 dB"
};
const char *phase_values[] =
{
"Normal",
"Inverted"
};
void _ui_drawMenuList(uint8_t selected, int (*getCurrentEntry)(char *buf, uint8_t max_len, uint8_t index)) void _ui_drawMenuList(uint8_t selected, int (*getCurrentEntry)(char *buf, uint8_t max_len, uint8_t index))
{ {
point_t pos = layout.line1_pos; point_t pos = layout.line1_pos;
@ -178,23 +191,26 @@ int _ui_getModule17EntryName(char *buf, uint8_t max_len, uint8_t index)
int _ui_getModule17ValueName(char *buf, uint8_t max_len, uint8_t index) int _ui_getModule17ValueName(char *buf, uint8_t max_len, uint8_t index)
{ {
if(index >= module17_num) return -1; if(index >= module17_num) return -1;
uint16_t value = 0;
switch(index) switch(index)
{ {
case D_TXWIPER: case D_TXWIPER:
value = mod17CalData.tx_wiper; snprintf(buf, max_len, "%d", mod17CalData.tx_wiper);
break; break;
case D_RXWIPER: case D_RXWIPER:
value = mod17CalData.rx_wiper; snprintf(buf, max_len, "%d", mod17CalData.rx_wiper);
break; break;
case D_TXINVERT: case D_TXINVERT:
value = mod17CalData.tx_invert; snprintf(buf, max_len, "%s", phase_values[mod17CalData.tx_invert]);
break; break;
case D_RXINVERT: case D_RXINVERT:
value = mod17CalData.rx_invert; snprintf(buf, max_len, "%s", phase_values[mod17CalData.rx_invert]);
break;
case D_MICGAIN:
snprintf(buf, max_len, "%s", mic_gain_values[mod17CalData.mic_gain]);
break; break;
} }
snprintf(buf, max_len, "%d", value);
return 0; return 0;
} }