@@ -81,7 +81,9 @@ void CommonCLI::loadPrefsInt(FILESYSTEM* fs, const char* filename) {
8181 file.read ((uint8_t *)&_prefs->discovery_mod_timestamp , sizeof (_prefs->discovery_mod_timestamp )); // 162
8282 file.read ((uint8_t *)&_prefs->adc_multiplier , sizeof (_prefs->adc_multiplier )); // 166
8383 file.read ((uint8_t *)_prefs->owner_info , sizeof (_prefs->owner_info )); // 170
84- // 290
84+ file.read ((uint8_t *)&_prefs->flood_advert_base , sizeof (_prefs->flood_advert_base )); // 290
85+
86+ // 294
8587
8688 // sanitise bad pref values
8789 _prefs->rx_delay_base = constrain (_prefs->rx_delay_base , 0 , 20 .0f );
@@ -108,6 +110,8 @@ void CommonCLI::loadPrefsInt(FILESYSTEM* fs, const char* filename) {
108110 _prefs->gps_enabled = constrain (_prefs->gps_enabled , 0 , 1 );
109111 _prefs->advert_loc_policy = constrain (_prefs->advert_loc_policy , 0 , 2 );
110112
113+ _prefs->flood_advert_base = constrain (_prefs->flood_advert_base , 0 , 1 );
114+
111115 file.close ();
112116 }
113117}
@@ -165,7 +169,9 @@ void CommonCLI::savePrefs(FILESYSTEM* fs) {
165169 file.write ((uint8_t *)&_prefs->discovery_mod_timestamp , sizeof (_prefs->discovery_mod_timestamp )); // 162
166170 file.write ((uint8_t *)&_prefs->adc_multiplier , sizeof (_prefs->adc_multiplier )); // 166
167171 file.write ((uint8_t *)_prefs->owner_info , sizeof (_prefs->owner_info )); // 170
168- // 290
172+ file.write ((uint8_t *)&_prefs->flood_advert_base , sizeof (_prefs->flood_advert_base )); // 290
173+
174+ // 294
169175
170176 file.close ();
171177 }
@@ -369,6 +375,8 @@ void CommonCLI::handleCommand(uint32_t sender_timestamp, const char* command, ch
369375 } else {
370376 sprintf (reply, " > %.3f" , adc_mult);
371377 }
378+ } else if (memcmp (config, " flood.advert.base" , 17 ) == 0 ) {
379+ sprintf (reply, " > %s" , StrHelper::ftoa (_prefs->flood_advert_base ));
372380 // Power management commands
373381 } else if (memcmp (config, " pwrmgt.support" , 14 ) == 0 ) {
374382#ifdef NRF52_POWER_MANAGEMENT
@@ -616,6 +624,15 @@ void CommonCLI::handleCommand(uint32_t sender_timestamp, const char* command, ch
616624 _prefs->adc_multiplier = 0 .0f ;
617625 strcpy (reply, " Error: unsupported by this board" );
618626 };
627+ } else if (memcmp (config, " flood.advert.base " , 18 ) == 0 ) {
628+ float f = atof (&config[18 ]);
629+ if ((f > 0 ) || (f<1 )) {
630+ _prefs->flood_advert_base = f;
631+ savePrefs ();
632+ strcpy (reply, " OK" );
633+ } else {
634+ strcpy (reply, " Error: base must be between 0 and 1" );
635+ }
619636 } else {
620637 sprintf (reply, " unknown config: %s" , config);
621638 }
0 commit comments