|
|
@ -90,7 +90,8 @@ void CommonCLI::loadPrefsInt(FILESYSTEM* fs, const char* filename) { |
|
|
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
|
|
|
file.read((uint8_t *)&_prefs->flood_max_unscoped, sizeof(_prefs->flood_max_unscoped)); // 291
|
|
|
file.read((uint8_t *)&_prefs->flood_max_unscoped, sizeof(_prefs->flood_max_unscoped)); // 291
|
|
|
// next: 292
|
|
|
file.read((uint8_t *)&_prefs->flood_max_advert, sizeof(_prefs->flood_max_advert)); // 292
|
|
|
|
|
|
// next: 293
|
|
|
|
|
|
|
|
|
// 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); |
|
|
@ -182,7 +183,8 @@ void CommonCLI::savePrefs(FILESYSTEM* fs) { |
|
|
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
|
|
|
file.write((uint8_t *)&_prefs->flood_max_unscoped, sizeof(_prefs->flood_max_unscoped)); // 291
|
|
|
file.write((uint8_t *)&_prefs->flood_max_unscoped, sizeof(_prefs->flood_max_unscoped)); // 291
|
|
|
// next: 292
|
|
|
file.write((uint8_t *)&_prefs->flood_max_advert, sizeof(_prefs->flood_max_advert)); // 292
|
|
|
|
|
|
// next: 293
|
|
|
|
|
|
|
|
|
file.close(); |
|
|
file.close(); |
|
|
} |
|
|
} |
|
|
@ -610,24 +612,33 @@ void CommonCLI::handleSetCmd(uint32_t sender_timestamp, char* command, char* rep |
|
|
} else { |
|
|
} else { |
|
|
strcpy(reply, "Error, must be 0-2"); |
|
|
strcpy(reply, "Error, must be 0-2"); |
|
|
} |
|
|
} |
|
|
} else if (memcmp(config, "flood.max ", 10) == 0) { |
|
|
} else if (memcmp(config, "flood.max.unscoped ", 19) == 0) { |
|
|
uint8_t m = atoi(&config[10]); |
|
|
uint8_t m = atoi(&config[19]); |
|
|
if (m <= 64) { |
|
|
if (m <= 64) { |
|
|
_prefs->flood_max = m; |
|
|
_prefs->flood_max_unscoped = m; |
|
|
|
|
|
savePrefs(); |
|
|
|
|
|
strcpy(reply, "OK"); |
|
|
|
|
|
} else { |
|
|
|
|
|
strcpy(reply, "Error, max 64"); |
|
|
|
|
|
} |
|
|
|
|
|
} else if (memcmp(config, "flood.max.advert ", 17) == 0) { |
|
|
|
|
|
uint8_t m = atoi(&config[17]); |
|
|
|
|
|
if (m <= 64) { |
|
|
|
|
|
_prefs->flood_max_advert = m; |
|
|
savePrefs(); |
|
|
savePrefs(); |
|
|
strcpy(reply, "OK"); |
|
|
strcpy(reply, "OK"); |
|
|
} else { |
|
|
} else { |
|
|
strcpy(reply, "Error, max 64"); |
|
|
strcpy(reply, "Error, max 64"); |
|
|
} |
|
|
} |
|
|
} else if (memcmp(config, "flood.max.unscoped ", 19) == 0) { |
|
|
} else if (memcmp(config, "flood.max ", 10) == 0) { |
|
|
uint8_t m = atoi(&config[19]); |
|
|
uint8_t m = atoi(&config[10]); |
|
|
if (m <= 64) { |
|
|
if (m <= 64) { |
|
|
_prefs->flood_max_unscoped = m; |
|
|
_prefs->flood_max = m; |
|
|
savePrefs(); |
|
|
savePrefs(); |
|
|
strcpy(reply, "OK"); |
|
|
strcpy(reply, "OK"); |
|
|
} else { |
|
|
} else { |
|
|
strcpy(reply, "Error, max 64"); |
|
|
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) { |
|
|
@ -803,6 +814,8 @@ 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.advert", 16) == 0) { |
|
|
|
|
|
sprintf(reply, "> %d", (uint32_t)_prefs->flood_max_advert); |
|
|
} else if (memcmp(config, "flood.max.unscoped", 18) == 0) { |
|
|
} else if (memcmp(config, "flood.max.unscoped", 18) == 0) { |
|
|
sprintf(reply, "> %d", (uint32_t)_prefs->flood_max_unscoped); |
|
|
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) { |
|
|
|