Bladeren bron

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

Scott Powell 1 jaar geleden
bovenliggende
commit
4689f9b425
1 gewijzigde bestanden met toevoegingen van 23 en 14 verwijderingen
  1. 23 14
      src/helpers/CommonCLI.cpp

+ 23 - 14
src/helpers/CommonCLI.cpp

@@ -165,6 +165,21 @@ void CommonCLI::handleCommand(uint32_t sender_timestamp, const char* command, ch
       }
     } else if (memcmp(command, "neighbors", 9) == 0) {
       _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) {
       // change admin 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");
       } else if (memcmp(config, "radio ", 6) == 0) {
         strcpy(tmp, &config[6]);
-        const char *parts[5];
-        int num = mesh::Utils::parseTextParts(tmp, parts, 5);
+        const char *parts[4];
+        int num = mesh::Utils::parseTextParts(tmp, parts, 4);
         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) {
-          if (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 {
-            _prefs->sf = sf;
-            _prefs->cr = cr;
-            _prefs->freq = freq;
-            _prefs->bw = bw;
-            _callbacks->savePrefs();
-            strcpy(reply, "OK - reboot to apply");
-          }
+          _prefs->sf = sf;
+          _prefs->cr = cr;
+          _prefs->freq = freq;
+          _prefs->bw = bw;
+          _callbacks->savePrefs();
+          strcpy(reply, "OK - reboot to apply");
         } else {
           strcpy(reply, "Error, invalid radio params");
         }