RadioSet: Add handling for base parameters such as boosted gain

This commit is contained in:
Dominic Höglinger 2025-09-27 23:14:16 +02:00
parent 2eca0898b8
commit 506c840933

View File

@ -81,6 +81,8 @@ char *const toString(RadioParameter p) {
switch (p) {
case RADIO_POWER:
return "Power";
case RADIO_BOOSTEDGAIN:
return "RX Boosted Gain";
case RADIO_FREQUENCY:
return "Center Frequency";
case RADIO_BANDWIDTH:
@ -88,7 +90,7 @@ char *const toString(RadioParameter p) {
case RADIO_SPREADFACTOR:
return "Spread Factor";
case RADIO_CODINGRATE:
return "Coding Rate Denominator";
return "Coding Rate";
case RADIO_SYNCWORD:
return "Sync Word";
case RADIO_PREAMBLES:
@ -559,9 +561,6 @@ static ParameterInput* makeLoraInput(RadioHandle handle, const RadioParameter pa
static constexpr float bw_values[] = {7.8, 10.4, 15.6, 20.8, 31.25, 41.7, 62.5, 125.0, 250.0, 500.0, SliderSelectParameterInput::SELECT_END};
// LoRa is standardized, so we get to use fancy inputs
switch (param) {
case RADIO_POWER: //no break
case RADIO_FREQUENCY:
return new NumericParameterInput(handle, param, container, row);
case RADIO_BANDWIDTH:
return new SliderSelectParameterInput(handle, param, container, row, bw_values, "%.1f");
case RADIO_SPREADFACTOR:
@ -577,7 +576,6 @@ static ParameterInput* makeLoraInput(RadioHandle handle, const RadioParameter pa
}
}
static ParameterInput* makeLrFhssInput(RadioHandle handle, const RadioParameter param, lv_obj_t* container, int row) {
switch (param) {;
case RADIO_NARROWGRID:
@ -587,7 +585,22 @@ static ParameterInput* makeLrFhssInput(RadioHandle handle, const RadioParameter
}
}
static ParameterInput* makeBaseInput(RadioHandle handle, const RadioParameter param, lv_obj_t* container, int row) {
switch (param) {
case RADIO_POWER: //no break
case RADIO_FREQUENCY:
return new NumericParameterInput(handle, param, container, row);
case RADIO_BOOSTEDGAIN:
return new FlagParameterInput(handle, param, container, row);
default:
return nullptr;
}
}
static ParameterInput* makeParameterInput(RadioHandle handle, const RadioParameter param, const Modulation modulation, lv_obj_t* container, int row) {
auto base_input = makeBaseInput(handle, param, container, row);
if (base_input) return base_input;
switch (modulation) {
case MODULATION_LORA:
return makeLoraInput(handle, param, container, row);
@ -697,7 +710,7 @@ public:
lv_obj_align(container, LV_ALIGN_TOP_MID, 0, 0);
const int grid_row_size = 40;
const int grid_col_size = 140;
const int grid_col_size = 60;
static constexpr size_t row_dsc_last = RADIO_NARROWGRID + 1;
static lv_coord_t col_dsc[] = {LV_GRID_FR(1), LV_GRID_FR(1), grid_col_size, LV_GRID_TEMPLATE_LAST};
static lv_coord_t row_dsc[row_dsc_last] = {0};