@@ -89,6 +89,8 @@ void CommonCLI::loadPrefsInt(FILESYSTEM* fs, const char* filename) {
8989 file.read ((uint8_t *)&_prefs->adc_multiplier , sizeof (_prefs->adc_multiplier )); // 166
9090 file.read ((uint8_t *)_prefs->owner_info , sizeof (_prefs->owner_info )); // 170
9191 file.read ((uint8_t *)&_prefs->rx_boosted_gain , sizeof (_prefs->rx_boosted_gain )); // 290
92+ file.read ((uint8_t *)&_prefs->flood_advert_base , sizeof (_prefs->flood_advert_base )); // 290
93+
9294 // next: 291
9395
9496 // sanitise bad pref values
@@ -119,6 +121,7 @@ void CommonCLI::loadPrefsInt(FILESYSTEM* fs, const char* filename) {
119121
120122 // sanitise settings
121123 _prefs->rx_boosted_gain = constrain (_prefs->rx_boosted_gain , 0 , 1 ); // boolean
124+ _prefs->flood_advert_base = constrain (_prefs->flood_advert_base , 0 , 1 );
122125
123126 file.close ();
124127 }
@@ -181,6 +184,7 @@ void CommonCLI::savePrefs(FILESYSTEM* fs) {
181184 file.write ((uint8_t *)_prefs->owner_info , sizeof (_prefs->owner_info )); // 170
182185 file.write ((uint8_t *)&_prefs->rx_boosted_gain , sizeof (_prefs->rx_boosted_gain )); // 290
183186 // next: 291
187+ file.write ((uint8_t *)&_prefs->flood_advert_base , sizeof (_prefs->flood_advert_base ));
184188
185189 file.close ();
186190 }
@@ -508,6 +512,15 @@ void CommonCLI::handleSetCmd(uint32_t sender_timestamp, char* command, char* rep
508512 savePrefs ();
509513 strcpy (reply, " OK" );
510514 }
515+ } else if (memcmp (config, " flood.advert.base " , 18 ) == 0 ) {
516+ float f = atof (&config[18 ]);
517+ if (f >= 0 .0f && f <= 1 .0f ) {
518+ _prefs->flood_advert_base = f;
519+ savePrefs ();
520+ strcpy (reply, " OK" );
521+ } else {
522+ strcpy (reply, " Error: base must be between 0 and 1" );
523+ }
511524 } else if (memcmp (config, " advert.interval " , 16 ) == 0 ) {
512525 int mins = _atoi (&config[16 ]);
513526 if ((mins > 0 && mins < MIN_LOCAL_ADVERT_INTERVAL) || (mins > 240 )) {
@@ -752,6 +765,8 @@ void CommonCLI::handleGetCmd(uint32_t sender_timestamp, char* command, char* rep
752765 sprintf (reply, " > %s" , _prefs->allow_read_only ? " on" : " off" );
753766 } else if (memcmp (config, " flood.advert.interval" , 21 ) == 0 ) {
754767 sprintf (reply, " > %d" , ((uint32_t ) _prefs->flood_advert_interval ));
768+ } else if (memcmp (config, " flood.advert.base" , 17 ) == 0 ) {
769+ sprintf (reply, " > %s" , StrHelper::ftoa (_prefs->flood_advert_base ));
755770 } else if (memcmp (config, " advert.interval" , 15 ) == 0 ) {
756771 sprintf (reply, " > %d" , ((uint32_t ) _prefs->advert_interval ) * 2 );
757772 } else if (memcmp (config, " guest.password" , 14 ) == 0 ) {
0 commit comments