|
|
@@ -283,8 +283,13 @@ void CommonCLI::handleCommand(uint32_t sender_timestamp, const char* command, ch
|
|
|
*/
|
|
|
} else if (memcmp(command, "get ", 4) == 0) {
|
|
|
const char* config = &command[4];
|
|
|
- if (memcmp(config, "af", 2) == 0) {
|
|
|
- sprintf(reply, "> %s", StrHelper::ftoa(_prefs->airtime_factor));
|
|
|
+ if (memcmp(config, "dutycycle", 8) == 0) {
|
|
|
+ float dc = 100.0f / (_prefs->airtime_factor + 1.0f);
|
|
|
+ int dc_int = (int)dc;
|
|
|
+ int dc_frac = (int)((dc - dc_int) * 10.0f + 0.5f);
|
|
|
+ sprintf(reply, "> %d.%d%%", dc_int, dc_frac);
|
|
|
+ } else if (memcmp(config, "af", 2) == 0) {
|
|
|
+ sprintf(reply, "> %s (deprecated, use 'get dutycycle')", StrHelper::ftoa(_prefs->airtime_factor));
|
|
|
} else if (memcmp(config, "int.thresh", 10) == 0) {
|
|
|
sprintf(reply, "> %d", (uint32_t) _prefs->interference_threshold);
|
|
|
} else if (memcmp(config, "agc.reset.interval", 18) == 0) {
|
|
|
@@ -436,10 +441,25 @@ void CommonCLI::handleCommand(uint32_t sender_timestamp, const char* command, ch
|
|
|
*/
|
|
|
} else if (memcmp(command, "set ", 4) == 0) {
|
|
|
const char* config = &command[4];
|
|
|
- if (memcmp(config, "af ", 3) == 0) {
|
|
|
+ if (memcmp(config, "dutycycle ", 9) == 0) {
|
|
|
+ float dc = atof(&config[9]);
|
|
|
+ if (dc < 10 || dc > 100) {
|
|
|
+ strcpy(reply, "ERROR: dutycycle must be 10-100");
|
|
|
+ } else {
|
|
|
+ _prefs->airtime_factor = (100.0f / dc) - 1.0f;
|
|
|
+ savePrefs();
|
|
|
+ float actual = 100.0f / (_prefs->airtime_factor + 1.0f);
|
|
|
+ int a_int = (int)actual;
|
|
|
+ int a_frac = (int)((actual - a_int) * 10.0f + 0.5f);
|
|
|
+ sprintf(reply, "OK - %d.%d%%", a_int, a_frac);
|
|
|
+ }
|
|
|
+ } else if (memcmp(config, "af ", 3) == 0) {
|
|
|
_prefs->airtime_factor = atof(&config[3]);
|
|
|
savePrefs();
|
|
|
- strcpy(reply, "OK");
|
|
|
+ float actual = 100.0f / (_prefs->airtime_factor + 1.0f);
|
|
|
+ int a_int = (int)actual;
|
|
|
+ int a_frac = (int)((actual - a_int) * 10.0f + 0.5f);
|
|
|
+ sprintf(reply, "OK - %d.%d%% (deprecated, use 'set dutycycle')", a_int, a_frac);
|
|
|
} else if (memcmp(config, "int.thresh ", 11) == 0) {
|
|
|
_prefs->interference_threshold = atoi(&config[11]);
|
|
|
savePrefs();
|