@@ -71,8 +71,9 @@ void CommonCLI::loadPrefsInt(FILESYSTEM* fs, const char* filename) {
7171 file.read ((uint8_t *)&_prefs->gps_interval , sizeof (_prefs->gps_interval )); // 157
7272 file.read ((uint8_t *)&_prefs->advert_loc_policy , sizeof (_prefs->advert_loc_policy )); // 161
7373 file.read ((uint8_t *)&_prefs->discovery_mod_timestamp , sizeof (_prefs->discovery_mod_timestamp )); // 162
74- file.read ((uint8_t *)&_prefs->adc_multiplier , sizeof (_prefs->adc_multiplier )); // 166
75- // 170
74+ file.read ((uint8_t *)&_prefs->adc_multiplier , sizeof (_prefs->adc_multiplier )); // 166
75+ file.read ((uint8_t *)&_prefs->flood_advert_base , sizeof (_prefs->flood_advert_base )); // 170
76+ // 174
7677
7778 // sanitise bad pref values
7879 _prefs->rx_delay_base = constrain (_prefs->rx_delay_base , 0 , 20 .0f );
@@ -99,6 +100,8 @@ void CommonCLI::loadPrefsInt(FILESYSTEM* fs, const char* filename) {
99100 _prefs->gps_enabled = constrain (_prefs->gps_enabled , 0 , 1 );
100101 _prefs->advert_loc_policy = constrain (_prefs->advert_loc_policy , 0 , 2 );
101102
103+ _prefs->flood_advert_base = constrain (_prefs->flood_advert_base , 0 , 1 );
104+
102105 file.close ();
103106 }
104107}
@@ -155,7 +158,9 @@ void CommonCLI::savePrefs(FILESYSTEM* fs) {
155158 file.write ((uint8_t *)&_prefs->advert_loc_policy , sizeof (_prefs->advert_loc_policy )); // 161
156159 file.write ((uint8_t *)&_prefs->discovery_mod_timestamp , sizeof (_prefs->discovery_mod_timestamp )); // 162
157160 file.write ((uint8_t *)&_prefs->adc_multiplier , sizeof (_prefs->adc_multiplier )); // 166
158- // 170
161+ file.write ((uint8_t *)&_prefs->flood_advert_base , sizeof (_prefs->flood_advert_base )); // 170
162+
163+ // 174
159164
160165 file.close ();
161166 }
@@ -345,6 +350,8 @@ void CommonCLI::handleCommand(uint32_t sender_timestamp, const char* command, ch
345350 } else {
346351 sprintf (reply, " > %.3f" , adc_mult);
347352 }
353+ } else if (memcmp (config, " flood.advert.base" , 17 ) == 0 ) {
354+ sprintf (reply, " > %s" , StrHelper::ftoa (_prefs->flood_advert_base ));
348355 } else {
349356 sprintf (reply, " ??: %s" , config);
350357 }
@@ -550,6 +557,15 @@ void CommonCLI::handleCommand(uint32_t sender_timestamp, const char* command, ch
550557 _prefs->adc_multiplier = 0 .0f ;
551558 strcpy (reply, " Error: unsupported by this board" );
552559 };
560+ } else if (memcmp (config, " flood.advert.base " , 18 ) == 0 ) {
561+ float f = atof (&config[18 ]);
562+ if ((f > 0 ) || (f<1 )) {
563+ _prefs->flood_advert_base = f;
564+ savePrefs ();
565+ strcpy (reply, " OK" );
566+ } else {
567+ strcpy (reply, " Error: base must be between 0 and 1" );
568+ }
553569 } else {
554570 sprintf (reply, " unknown config: %s" , config);
555571 }
0 commit comments