* CommonCLI: reverted "set radio ..." command, added new "tempradio ..." command

This commit is contained in:
Scott Powell
2025-07-23 22:04:47 +10:00
parent ea4aa93594
commit 4689f9b425

View File

@@ -165,6 +165,21 @@ void CommonCLI::handleCommand(uint32_t sender_timestamp, const char* command, ch
} }
} else if (memcmp(command, "neighbors", 9) == 0) { } else if (memcmp(command, "neighbors", 9) == 0) {
_callbacks->formatNeighborsReply(reply); _callbacks->formatNeighborsReply(reply);
} else if (memcmp(command, "tempradio ", 10) == 0) {
strcpy(tmp, &command[10]);
const char *parts[5];
int num = mesh::Utils::parseTextParts(tmp, parts, 5);
float freq = num > 0 ? atof(parts[0]) : 0.0f;
float bw = num > 1 ? atof(parts[1]) : 0.0f;
uint8_t sf = num > 2 ? atoi(parts[2]) : 0;
uint8_t cr = num > 3 ? atoi(parts[3]) : 0;
int temp_timeout_mins = num > 4 ? atoi(parts[4]) : 0;
if (freq >= 300.0f && freq <= 2500.0f && sf >= 7 && sf <= 12 && cr >= 5 && cr <= 8 && bw >= 7.0f && bw <= 500.0f && temp_timeout_mins > 0) {
_callbacks->applyTempRadioParams(freq, bw, sf, cr, temp_timeout_mins);
sprintf(reply, "OK - temp params for %d mins", temp_timeout_mins);
} else {
strcpy(reply, "Error, invalid params");
}
} else if (memcmp(command, "password ", 9) == 0) { } else if (memcmp(command, "password ", 9) == 0) {
// change admin password // change admin password
StrHelper::strncpy(_prefs->password, &command[9], sizeof(_prefs->password)); StrHelper::strncpy(_prefs->password, &command[9], sizeof(_prefs->password));
@@ -280,25 +295,19 @@ void CommonCLI::handleCommand(uint32_t sender_timestamp, const char* command, ch
strcpy(reply, _prefs->disable_fwd ? "OK - repeat is now OFF" : "OK - repeat is now ON"); strcpy(reply, _prefs->disable_fwd ? "OK - repeat is now OFF" : "OK - repeat is now ON");
} else if (memcmp(config, "radio ", 6) == 0) { } else if (memcmp(config, "radio ", 6) == 0) {
strcpy(tmp, &config[6]); strcpy(tmp, &config[6]);
const char *parts[5]; const char *parts[4];
int num = mesh::Utils::parseTextParts(tmp, parts, 5); int num = mesh::Utils::parseTextParts(tmp, parts, 4);
float freq = num > 0 ? atof(parts[0]) : 0.0f; float freq = num > 0 ? atof(parts[0]) : 0.0f;
float bw = num > 1 ? atof(parts[1]) : 0.0f; float bw = num > 1 ? atof(parts[1]) : 0.0f;
uint8_t sf = num > 2 ? atoi(parts[2]) : 0; uint8_t sf = num > 2 ? atoi(parts[2]) : 0;
uint8_t cr = num > 3 ? atoi(parts[3]) : 0; uint8_t cr = num > 3 ? atoi(parts[3]) : 0;
int temp_timeout_mins = num > 4 ? atoi(parts[4]) : 0;
if (freq >= 300.0f && freq <= 2500.0f && sf >= 7 && sf <= 12 && cr >= 5 && cr <= 8 && bw >= 7.0f && bw <= 500.0f) { if (freq >= 300.0f && freq <= 2500.0f && sf >= 7 && sf <= 12 && cr >= 5 && cr <= 8 && bw >= 7.0f && bw <= 500.0f) {
if (temp_timeout_mins > 0) { _prefs->sf = sf;
_callbacks->applyTempRadioParams(freq, bw, sf, cr, temp_timeout_mins); _prefs->cr = cr;
sprintf(reply, "OK - temp params for %d mins", temp_timeout_mins); _prefs->freq = freq;
} else { _prefs->bw = bw;
_prefs->sf = sf; _callbacks->savePrefs();
_prefs->cr = cr; strcpy(reply, "OK - reboot to apply");
_prefs->freq = freq;
_prefs->bw = bw;
_callbacks->savePrefs();
strcpy(reply, "OK - reboot to apply");
}
} else { } else {
strcpy(reply, "Error, invalid radio params"); strcpy(reply, "Error, invalid radio params");
} }