* Protobufs * Wire up MEDIUM_TURBO modem preset MEDIUM_TURBO (500 kHz, SF9, CR 4/5) already existed in the protobuf enum but was never wired into firmware, so selecting it silently fell through to the LONG_FAST default and rendered an "Invalid" display name. Add its bw/sf/cr mapping (modemPresetToParams), display name (MediumTurbo/MedT), PRESETS_STD membership (standard regions only — 500 kHz does not fit EU868's 250 kHz band, so it stays out of PRESETS_EU_868 and is rejected/clamped there), and the MEDIUM SNR-grading bucket. Includes positive coverage in test_radio, EU868-reject + US-accept coverage in test_admin_radio and test_mesh_beacon, the STD preset count 9->10, an extended fuzz range, and the client-spec doc. * Address review feedback on MEDIUM_TURBO tests - test_mesh_beacon: assert has_mesh_beacon before checking the invalid preset was cleared, so the EU868-cleared test can't pass on a dropped message (matches the existing SHORT_TURBO test). - test_fuzz_packets: draw modem presets from _ModemPreset_ARRAYSIZE instead of a hard-coded 17 so the fuzz range tracks future enum additions automatically.
109 lines
3.4 KiB
C++
109 lines
3.4 KiB
C++
#include "DisplayFormatters.h"
|
|
#include "MeshRadio.h"
|
|
|
|
const char *DisplayFormatters::getModemPresetDisplayName(meshtastic_Config_LoRaConfig_ModemPreset preset, bool useShortName,
|
|
bool usePreset)
|
|
{
|
|
|
|
// If use_preset is false, always return "Custom" - callers such as RadioInterface and Channels
|
|
// rely on this being a stable literal for channel-name hashing and default-channel detection.
|
|
if (!usePreset) {
|
|
return "Custom";
|
|
}
|
|
|
|
switch (preset) {
|
|
case PRESET(SHORT_TURBO):
|
|
return useShortName ? "ShortT" : "ShortTurbo";
|
|
break;
|
|
case PRESET(SHORT_SLOW):
|
|
return useShortName ? "ShortS" : "ShortSlow";
|
|
break;
|
|
case PRESET(SHORT_FAST):
|
|
return useShortName ? "ShortF" : "ShortFast";
|
|
break;
|
|
case PRESET(MEDIUM_SLOW):
|
|
return useShortName ? "MedS" : "MediumSlow";
|
|
break;
|
|
case PRESET(MEDIUM_FAST):
|
|
return useShortName ? "MedF" : "MediumFast";
|
|
break;
|
|
case PRESET(MEDIUM_TURBO):
|
|
return useShortName ? "MedT" : "MediumTurbo";
|
|
break;
|
|
case PRESET(LONG_SLOW):
|
|
return useShortName ? "LongS" : "LongSlow";
|
|
break;
|
|
case PRESET(LONG_FAST):
|
|
return useShortName ? "LongF" : "LongFast";
|
|
break;
|
|
case PRESET(LONG_TURBO):
|
|
return useShortName ? "LongT" : "LongTurbo";
|
|
break;
|
|
case PRESET(LONG_MODERATE):
|
|
return useShortName ? "LongM" : "LongMod";
|
|
break;
|
|
case PRESET(LITE_FAST):
|
|
return useShortName ? "LiteF" : "LiteFast";
|
|
break;
|
|
case PRESET(LITE_SLOW):
|
|
return useShortName ? "LiteS" : "LiteSlow";
|
|
break;
|
|
case PRESET(NARROW_FAST):
|
|
return useShortName ? "NarF" : "NarrowFast";
|
|
break;
|
|
case PRESET(NARROW_SLOW):
|
|
return useShortName ? "NarS" : "NarrowSlow";
|
|
break;
|
|
case PRESET(TINY_FAST):
|
|
return useShortName ? "TinyF" : "TinyFast";
|
|
break;
|
|
case PRESET(TINY_SLOW):
|
|
return useShortName ? "TinyS" : "TinySlow";
|
|
break;
|
|
default:
|
|
return useShortName ? "Custom" : "Invalid";
|
|
break;
|
|
}
|
|
}
|
|
|
|
const char *DisplayFormatters::getDeviceRole(meshtastic_Config_DeviceConfig_Role role)
|
|
{
|
|
switch (role) {
|
|
case meshtastic_Config_DeviceConfig_Role_CLIENT:
|
|
return "Client";
|
|
break;
|
|
case meshtastic_Config_DeviceConfig_Role_CLIENT_MUTE:
|
|
return "Client Mute";
|
|
break;
|
|
case meshtastic_Config_DeviceConfig_Role_CLIENT_HIDDEN:
|
|
return "Client Hidden";
|
|
break;
|
|
case meshtastic_Config_DeviceConfig_Role_CLIENT_BASE:
|
|
return "Client Base";
|
|
break;
|
|
case meshtastic_Config_DeviceConfig_Role_LOST_AND_FOUND:
|
|
return "Lost and Found";
|
|
break;
|
|
case meshtastic_Config_DeviceConfig_Role_TRACKER:
|
|
return "Tracker";
|
|
break;
|
|
case meshtastic_Config_DeviceConfig_Role_SENSOR:
|
|
return "Sensor";
|
|
break;
|
|
case meshtastic_Config_DeviceConfig_Role_TAK:
|
|
return "TAK";
|
|
break;
|
|
case meshtastic_Config_DeviceConfig_Role_TAK_TRACKER:
|
|
return "TAK Tracker";
|
|
break;
|
|
case meshtastic_Config_DeviceConfig_Role_ROUTER:
|
|
return "Router";
|
|
break;
|
|
case meshtastic_Config_DeviceConfig_Role_ROUTER_LATE:
|
|
return "Router Late";
|
|
break;
|
|
default:
|
|
return "Unknown";
|
|
break;
|
|
}
|
|
} |