mirror of
https://github.com/MarekZegare4/MeshCore-Solo.git
synced 2026-07-27 07:18:11 +00:00
Merge remote-tracking branch 'origin/main' into feat/location-beacon-alerts-autopause
This commit is contained in:
@@ -1442,7 +1442,14 @@ void MyMesh::begin(bool has_display) {
|
||||
// load persisted prefs
|
||||
_store->loadPrefs(_prefs, sensors.node_lat, sensors.node_lon);
|
||||
|
||||
// sanitise bad pref values
|
||||
// sanitise bad pref values. NaN/inf must be reset BEFORE constrain(): constrain
|
||||
// is a min/max macro and NaN compares false against both bounds, so it would
|
||||
// pass a NaN straight through to setParams() and hang the radio (a corrupted or
|
||||
// layout-shifted prefs file easily decodes a float field as NaN/inf).
|
||||
if (isnan(_prefs.freq) || isinf(_prefs.freq)) _prefs.freq = LORA_FREQ;
|
||||
if (isnan(_prefs.bw) || isinf(_prefs.bw)) _prefs.bw = LORA_BW;
|
||||
if (isnan(_prefs.airtime_factor) || isinf(_prefs.airtime_factor)) _prefs.airtime_factor = 0;
|
||||
if (isnan(_prefs.rx_delay_base) || isinf(_prefs.rx_delay_base)) _prefs.rx_delay_base = 0;
|
||||
_prefs.rx_delay_base = constrain(_prefs.rx_delay_base, 0, 20.0f);
|
||||
_prefs.airtime_factor = constrain(_prefs.airtime_factor, 0, 9.0f);
|
||||
_prefs.freq = constrain(_prefs.freq, 150.0f, 2500.0f);
|
||||
|
||||
Reference in New Issue
Block a user