|
@@ -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->adc_multiplier, sizeof(_prefs->adc_multiplier)); // 166
|
|
|
file.read((uint8_t *)_prefs->owner_info, sizeof(_prefs->owner_info)); // 170
|
|
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
|
|
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
|
|
// sanitise bad pref values
|
|
|
_prefs->rx_delay_base = constrain(_prefs->rx_delay_base, 0, 20.0f);
|
|
_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
|
|
// sanitise settings
|
|
|
_prefs->rx_boosted_gain = constrain(_prefs->rx_boosted_gain, 0, 1); // boolean
|
|
_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();
|
|
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->adc_multiplier, sizeof(_prefs->adc_multiplier)); // 166
|
|
|
file.write((uint8_t *)_prefs->owner_info, sizeof(_prefs->owner_info)); // 170
|
|
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
|
|
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();
|
|
file.close();
|
|
|
}
|
|
}
|
|
@@ -607,6 +614,15 @@ void CommonCLI::handleSetCmd(uint32_t sender_timestamp, char* command, char* rep
|
|
|
} else {
|
|
} else {
|
|
|
strcpy(reply, "Error, max 64");
|
|
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) {
|
|
} else if (memcmp(config, "direct.txdelay ", 15) == 0) {
|
|
|
float f = atof(&config[15]);
|
|
float f = atof(&config[15]);
|
|
|
if (f >= 0 && f <= 2.0f) {
|
|
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));
|
|
sprintf(reply, "> %s", StrHelper::ftoa(_prefs->rx_delay_base));
|
|
|
} else if (memcmp(config, "txdelay", 7) == 0) {
|
|
} else if (memcmp(config, "txdelay", 7) == 0) {
|
|
|
sprintf(reply, "> %s", StrHelper::ftoa(_prefs->tx_delay_factor));
|
|
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) {
|
|
} else if (memcmp(config, "flood.max", 9) == 0) {
|
|
|
sprintf(reply, "> %d", (uint32_t)_prefs->flood_max);
|
|
sprintf(reply, "> %d", (uint32_t)_prefs->flood_max);
|
|
|
} else if (memcmp(config, "direct.txdelay", 14) == 0) {
|
|
} else if (memcmp(config, "direct.txdelay", 14) == 0) {
|