@ -89,7 +89,8 @@ void CommonCLI::loadPrefsInt(FILESYSTEM* fs, const char* filename) {
file . read ( ( uint8_t * ) & _prefs - > adc_multiplier , sizeof ( _prefs - > adc_multiplier ) ) ; // 166
file . read ( ( uint8_t * ) _prefs - > owner_info , sizeof ( _prefs - > owner_info ) ) ; // 170
file . read ( ( uint8_t * ) & _prefs - > rx_boosted_gain , sizeof ( _prefs - > rx_boosted_gain ) ) ; // 290
// next: 291
file . read ( ( uint8_t * ) & _prefs - > flood_max_unscoped , sizeof ( _prefs - > flood_max_unscoped ) ) ; // 291
// next: 292
// sanitise bad pref values
_prefs - > rx_delay_base = constrain ( _prefs - > rx_delay_base , 0 , 20.0f ) ;
@ -120,6 +121,11 @@ void CommonCLI::loadPrefsInt(FILESYSTEM* fs, const char* filename) {
// sanitise settings
_prefs - > rx_boosted_gain = constrain ( _prefs - > rx_boosted_gain , 0 , 1 ) ; // boolean
// sanitise only if user sets unscoped max
if ( _prefs - > flood_max_unscoped ! = FLOOD_MAX_UNSCOPED_UNSET ) {
_prefs - > flood_max_unscoped = constrain ( _prefs - > flood_max_unscoped , 0 , 64 ) ;
}
file . close ( ) ;
}
}
@ -180,7 +186,8 @@ void CommonCLI::savePrefs(FILESYSTEM* fs) {
file . write ( ( uint8_t * ) & _prefs - > adc_multiplier , sizeof ( _prefs - > adc_multiplier ) ) ; // 166
file . write ( ( uint8_t * ) _prefs - > owner_info , sizeof ( _prefs - > owner_info ) ) ; // 170
file . write ( ( uint8_t * ) & _prefs - > rx_boosted_gain , sizeof ( _prefs - > rx_boosted_gain ) ) ; // 290
// next: 291
file . write ( ( uint8_t * ) & _prefs - > flood_max_unscoped , sizeof ( _prefs - > flood_max_unscoped ) ) ; // 291
// next: 292
file . close ( ) ;
}
@ -607,6 +614,15 @@ void CommonCLI::handleSetCmd(uint32_t sender_timestamp, char* command, char* rep
} else {
strcpy ( reply , " Error, max 64 " ) ;
}
} else if ( memcmp ( config , " flood.max.unscoped " , 19 ) = = 0 ) {
uint8_t m = atoi ( & config [ 19 ] ) ;
if ( m < = 64 ) {
_prefs - > flood_max_unscoped = m ;
savePrefs ( ) ;
strcpy ( reply , " OK " ) ;
} else {
strcpy ( reply , " Error, max 64 " ) ;
}
} else if ( memcmp ( config , " direct.txdelay " , 15 ) = = 0 ) {
float f = atof ( & config [ 15 ] ) ;
if ( f > = 0 & & f < = 2.0f ) {
@ -782,6 +798,12 @@ void CommonCLI::handleGetCmd(uint32_t sender_timestamp, char* command, char* rep
sprintf ( reply , " > %s " , StrHelper : : ftoa ( _prefs - > rx_delay_base ) ) ;
} else if ( memcmp ( config , " txdelay " , 7 ) = = 0 ) {
sprintf ( reply , " > %s " , StrHelper : : ftoa ( _prefs - > tx_delay_factor ) ) ;
} else if ( memcmp ( config , " flood.max.unscoped " , 18 ) = = 0 ) {
if ( _prefs - > flood_max_unscoped = = FLOOD_MAX_UNSCOPED_UNSET ) {
sprintf ( reply , " > default (tracks flood.max=%u) " , ( unsigned ) _prefs - > flood_max ) ;
} else {
sprintf ( reply , " > %d " , ( uint32_t ) _prefs - > flood_max_unscoped ) ;
}
} else if ( memcmp ( config , " flood.max " , 9 ) = = 0 ) {
sprintf ( reply , " > %d " , ( uint32_t ) _prefs - > flood_max ) ;
} else if ( memcmp ( config , " direct.txdelay " , 14 ) = = 0 ) {