Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion generated/ui_320x240/screens.c
Original file line number Diff line number Diff line change
Expand Up @@ -3576,7 +3576,7 @@ void create_screen_main_screen() {
objects.settings_modem_preset_dropdown = obj;
lv_obj_set_pos(obj, 0, 0);
lv_obj_set_size(obj, 180, 30);
lv_dropdown_set_options(obj, _("LONG FAST\nLONG SLOW\n-- deprecated --\nMEDIUM SLOW\nMEDIUM FAST\nSHORT SLOW\nSHORT FAST\nLONG MODERATE\nSHORT TURBO"));
lv_dropdown_set_options(obj, _("LONG FAST\nLONG MODERATE\nLONG TURBO\nMEDIUM FAST\nMEDIUM SLOW\nSHORT FAST\nSHORT TURBO\nSHORT SLOW"));
add_style_drop_down_style(obj);
lv_obj_set_style_align(obj, LV_ALIGN_TOP_MID, LV_PART_MAIN | LV_STATE_DEFAULT);
lv_obj_set_style_border_color(obj, lv_color_hex(0xffe0e0e0), LV_PART_MAIN | LV_STATE_DEFAULT);
Expand Down
2 changes: 2 additions & 0 deletions include/graphics/view/TFT/TFTView_320x240.h
Original file line number Diff line number Diff line change
Expand Up @@ -239,6 +239,8 @@ class TFTView_320x240 : public MeshtasticView
void updateSignalStrength(int32_t rssi, float snr);
int32_t signalStrength2Percent(int32_t rx_rssi, float rx_snr);

uint32_t preset2val(meshtastic_Config_LoRaConfig_ModemPreset preset);
meshtastic_Config_LoRaConfig_ModemPreset val2preset(uint32_t val);
uint32_t role2val(meshtastic_Config_DeviceConfig_Role role);
meshtastic_Config_DeviceConfig_Role val2role(uint32_t val);
uint32_t language2val(meshtastic_Language lang);
Expand Down
48 changes: 39 additions & 9 deletions source/graphics/TFT/TFTView_320x240.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1739,7 +1739,7 @@ void TFTView_320x240::ui_event_preset_button(lv_event_t *e)
lv_event_code_t event_code = lv_event_get_code(e);
if (event_code == LV_EVENT_CLICKED && THIS->activeSettings == eNone && THIS->db.config.lora.use_preset) {
THIS->activeSettings = eModemPreset;
lv_dropdown_set_selected(objects.settings_modem_preset_dropdown, THIS->db.config.lora.modem_preset);
lv_dropdown_set_selected(objects.settings_modem_preset_dropdown, THIS->preset2val(THIS->db.config.lora.modem_preset));

char buf[60];
sprintf(buf, _("FrequencySlot: %d (%g MHz)"), THIS->db.config.lora.channel_num,
Expand Down Expand Up @@ -3335,6 +3335,37 @@ void TFTView_320x240::updateSignalStrength(int32_t rssi, float snr)
}
}

/**
* Translate proto modem preset enum value to numerical position in dropdown menu
*/
uint32_t TFTView_320x240::preset2val(meshtastic_Config_LoRaConfig_ModemPreset preset)
{
int32_t val[] = {0, -1, -1, 4, 3, 7, 5, 1, 6, 2};

if (preset > (sizeof(val) / sizeof(val[0]) - 1) || val[preset] == -1) {
ILOG_WARN("unknown or deprecated preset value: %d", preset);
return 0;
}
return uint32_t(val[preset]);
}

/**
* Translate value from dropdown menu to modem preset proto enum
*/
meshtastic_Config_LoRaConfig_ModemPreset TFTView_320x240::val2preset(uint32_t val)
{
meshtastic_Config_LoRaConfig_ModemPreset preset[] = {
meshtastic_Config_LoRaConfig_ModemPreset_LONG_FAST, meshtastic_Config_LoRaConfig_ModemPreset_LONG_MODERATE,
meshtastic_Config_LoRaConfig_ModemPreset_LONG_TURBO, meshtastic_Config_LoRaConfig_ModemPreset_MEDIUM_FAST,
meshtastic_Config_LoRaConfig_ModemPreset_MEDIUM_SLOW, meshtastic_Config_LoRaConfig_ModemPreset_SHORT_FAST,
meshtastic_Config_LoRaConfig_ModemPreset_SHORT_TURBO, meshtastic_Config_LoRaConfig_ModemPreset_SHORT_SLOW};
if (val > (sizeof(preset) / sizeof(preset[0]) - 1)) {
ILOG_ERROR("unknown preset value: %d", val);
return meshtastic_Config_LoRaConfig_ModemPreset_LONG_FAST;
}
return preset[val];
}

/**
* Translate proto role enum value to numerical position in dropdown menu
*/
Expand Down Expand Up @@ -3864,7 +3895,7 @@ void TFTView_320x240::ui_event_ok(lv_event_t *e)
case eModemPreset: {
meshtastic_Config_LoRaConfig &lora = THIS->db.config.lora;
meshtastic_Config_LoRaConfig_ModemPreset preset =
(meshtastic_Config_LoRaConfig_ModemPreset)(lv_dropdown_get_selected(objects.settings_modem_preset_dropdown));
THIS->val2preset(lv_dropdown_get_selected(objects.settings_modem_preset_dropdown));
uint16_t channelNum = lv_slider_get_value(objects.frequency_slot_slider);
if (preset != lora.modem_preset || lora.channel_num != channelNum) {
char buf1[16], buf2[32];
Expand Down Expand Up @@ -4308,10 +4339,9 @@ void TFTView_320x240::ui_event_frequency_slot_slider(lv_event_t *e)
char buf[40];
uint32_t channel = (uint32_t)lv_slider_get_value(slider);
sprintf(buf, _("FrequencySlot: %d (%g MHz)"), channel,
LoRaPresets::getRadioFreq(
THIS->db.config.lora.region,
(meshtastic_Config_LoRaConfig_ModemPreset)lv_dropdown_get_selected(objects.settings_modem_preset_dropdown),
channel));
LoRaPresets::getRadioFreq(THIS->db.config.lora.region,
THIS->val2preset(lv_dropdown_get_selected(objects.settings_modem_preset_dropdown)),
channel));
lv_label_set_text(objects.frequency_slot_label, buf);
}

Expand All @@ -4321,8 +4351,8 @@ void TFTView_320x240::ui_event_modem_preset_dropdown(lv_event_t *e)
meshtastic_Config_LoRaConfig_ModemPreset preset =
(meshtastic_Config_LoRaConfig_ModemPreset)lv_dropdown_get_selected(dropdown);
uint32_t numChannels = LoRaPresets::getNumChannels(THIS->db.config.lora.region, preset);
if (preset == meshtastic_Config_LoRaConfig_ModemPreset_VERY_LONG_SLOW || numChannels == 0) {
// preset deprecated or not possible for this region, revert
if (numChannels == 0) {
// preset not possible for this region, revert
lv_dropdown_set_selected(dropdown, THIS->db.config.lora.modem_preset);
numChannels = LoRaPresets::getNumChannels(THIS->db.config.lora.region, THIS->db.config.lora.modem_preset);
return;
Expand Down Expand Up @@ -5917,7 +5947,7 @@ void TFTView_320x240::updateLoRaConfig(const meshtastic_Config_LoRaConfig &cfg)
THIS->db.channel[0].settings.name);
}
char buf1[20], buf2[32];
lv_dropdown_set_selected(objects.settings_modem_preset_dropdown, cfg.modem_preset);
lv_dropdown_set_selected(objects.settings_modem_preset_dropdown, preset2val(cfg.modem_preset));
lv_dropdown_get_selected_str(objects.settings_modem_preset_dropdown, buf1, sizeof(buf1));
lv_snprintf(buf2, sizeof(buf2), _("Modem Preset: %s"), buf1);
lv_label_set_text(objects.basic_settings_modem_preset_label, buf2);
Expand Down
16 changes: 8 additions & 8 deletions source/graphics/common/LoRaPresets.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,17 @@
* Note: keep order the same as in meshtastic_Config_LoRaConfig_RegionCode and as in settings_region_dropdown
*/
LoRaPresets::RegionInfo LoRaPresets::regionInfo[] = {
{"UNSET", 902.0f, 928.0f}, {"US", 902.0f, 928.0f}, {"EU_433", 433.0f, 434.0f}, {"EU_868", 869.4f, 869.65f},
{"CN", 470.0f, 510.0f}, {"JP", 920.8f, 927.8f}, {"ANZ", 915.0f, 928.0f}, {"KR", 920.0f, 923.0f},
{"TW", 920.0f, 925.0f}, {"RU", 868.7f, 869.2f}, {"IN", 865.0f, 867.0f}, {"NZ_865", 864.0f, 868.0f},
{"TH", 920.0f, 925.0f}, {"LORA_24", 2400.0f, 2483.5f}, {"UA_433", 433.0f, 434.7f}, {"UA_868", 868.0f, 868.6f},
{"MY_433", 433.0f, 435.0f}, {"MY_919", 919.0f, 924.0f}, {"SG_923", 917.0f, 925.0f}, {"PH_433", 433.0f, 434.7f},
{"UNSET", 902.0f, 928.0f}, {"US", 902.0f, 928.0f}, {"EU_433", 433.0f, 434.0f}, {"EU_868", 869.4f, 869.65f},
{"CN", 470.0f, 510.0f}, {"JP", 920.8f, 927.8f}, {"ANZ", 915.0f, 928.0f}, {"KR", 920.0f, 923.0f},
{"TW", 920.0f, 925.0f}, {"RU", 868.7f, 869.2f}, {"IN", 865.0f, 867.0f}, {"NZ_865", 864.0f, 868.0f},
{"TH", 920.0f, 925.0f}, {"LORA_24", 2400.0f, 2483.5f}, {"UA_433", 433.0f, 434.7f}, {"UA_868", 868.0f, 868.6f},
{"MY_433", 433.0f, 435.0f}, {"MY_919", 919.0f, 924.0f}, {"SG_923", 917.0f, 925.0f}, {"PH_433", 433.0f, 434.7f},
{"PH_868", 868.0f, 869.4f}, {"PH_915", 915.0f, 918.0f}, {"ANZ_433", 433.05f, 434.79f}};

LoRaPresets::ModemPreset LoRaPresets::modemPreset[] = {
{"LongFast", "250", .250f}, {"LongSlow", "125", .125f}, {"VLongSlow", "62.5", .0625f},
{"MediumSlow", "250", .250f}, {"MediumFast", "250", .250f}, {"ShortSlow", "250", .250f},
{"ShortFast", "250", .250f}, {"LongMod", "125", .125f}, {"ShortTurbo", "500", .500f}};
{"LongFast", "250", .250f}, {"LongSlow", "125", .125f}, {"VLongSlow", "62.5", .0625f}, {"MediumSlow", "250", .250f},
{"MediumFast", "250", .250f}, {"ShortSlow", "250", .250f}, {"ShortFast", "250", .250f}, {"LongMod", "125", .125f},
{"ShortTurbo", "500", .500f}, {"LongTurbo", "500", .500f}};

const char *LoRaPresets::loRaRegionToString(meshtastic_Config_LoRaConfig_RegionCode region)
{
Expand Down
2 changes: 1 addition & 1 deletion studio/320x240/TFT320x240.eez-project
Original file line number Diff line number Diff line change
Expand Up @@ -13003,7 +13003,7 @@
}
},
"groupIndex": 0,
"options": "LONG FAST\nLONG SLOW\n-- deprecated --\nMEDIUM SLOW\nMEDIUM FAST\nSHORT SLOW\nSHORT FAST\nLONG MODERATE\nSHORT TURBO",
"options": "LONG FAST\nLONG MODERATE\nLONG TURBO\nMEDIUM FAST\nMEDIUM SLOW\nSHORT FAST\nSHORT TURBO\nSHORT SLOW",
"optionsType": "translated-literal",
"selected": 0,
"selectedType": "literal",
Expand Down