Jelajahi Sumber

docs: sync web-panel CLI allowlist and note AGC reset workaround

Jared Dohrman 3 bulan lalu
induk
melakukan
55d50f29d3
4 mengubah file dengan 263 tambahan dan 46 penghapusan
  1. 233 45
      docs/cli_commands.md
  2. 27 1
      docs/custom-cli.md
  3. 1 0
      docs/web-panel.md
  4. 2 0
      examples/simple_repeater/MyMesh.cpp

File diff ditekan karena terlalu besar
+ 233 - 45
docs/cli_commands.md


+ 27 - 1
docs/custom-cli.md

@@ -75,6 +75,8 @@ Legacy dotted aliases are also accepted:
 - `stats-radio`: shows radio noise floor, last RSSI, last SNR, and TX/RX airtime.
 - `stats-packets`: shows packet receive/send totals, flood/direct breakdown, and receive errors.
 
+> If `noise_floor` reports `0`, check `get agc.reset.interval`; if it is not `0`, try `set agc.reset.interval 0` and test again.
+
 ### Board Battery Reporting
 
 - `get battery.reporting`: shows whether board battery reporting is enabled. Support is board-dependent.
@@ -94,13 +96,15 @@ That allowlist currently includes:
 - `advert`
 - `reboot`
 - `start ota`
-- `set repeat on|off`
 - `memory`
 - `stats-core`
 - `stats-radio`
 - `stats-packets`
 - `get wifi.status`
 - `get wifi.powersaving`
+- `set wifi.ssid <ssid>`
+- `set wifi.pwd <password>`
+- `set wifi.powersaving on|off`
 - `get mqtt.iata`
 - `set mqtt.iata <code>`
 - `get mqtt.owner`
@@ -117,29 +121,51 @@ That allowlist currently includes:
 - `set mqtt.tx on|off`
 - `get mqtt.eastmesh-au`
 - `set mqtt.eastmesh-au on|off`
+- `get mqtt.eastmesh.au`
+- `set mqtt.eastmesh.au on|off`
 - `get mqtt.letsmesh-eu`
 - `set mqtt.letsmesh-eu on|off`
+- `get mqtt.letsmesh.eu`
+- `set mqtt.letsmesh.eu on|off`
 - `get mqtt.letsmesh-us`
 - `set mqtt.letsmesh-us on|off`
+- `get mqtt.letsmesh.us`
+- `set mqtt.letsmesh.us on|off`
 - `set web on|off`
+- `set.web on|off`
 - `set web.stats on|off`
+- `set.web.stats on|off`
 - `get name`
 - `set name <device-name>`
 - `get lat`
 - `set lat <latitude>`
 - `get lon`
 - `set lon <longitude>`
+- `get radio`
+- `set radio <freq> <bw> <sf> <cr>`
+- `get prv.key`
 - `get guest.password`
+- `password <admin-password>`
 - `set guest.password <password>`
 - `set prv.key <64-hex-char-private-key>`
+- `get role`
+- `get public.key`
 - `get advert.interval`
 - `set advert.interval <minutes>`
+- `get agc.reset.interval`
+- `set agc.reset.interval <seconds>`
 - `get flood.advert.interval`
 - `set flood.advert.interval <hours>`
+- `get repeat`
+- `set repeat on|off`
 - `get flood.max`
 - `set flood.max <count>`
+- `get path.hash.mode`
+- `set path.hash.mode <mode>`
 - `get owner.info`
 - `set owner.info <text>`
+- `time <iso-or-epoch>`
+- `time.force <iso-or-epoch>`
 
 ## Companion WiFi Rescue Commands
 

+ 1 - 0
docs/web-panel.md

@@ -140,6 +140,7 @@ This is a small terminal for allowlisted commands.
 - command history is shown in the terminal box below
 - save buttons elsewhere in the page also show the generated command and the reply here
 - `clock` is available here if you want to check the repeater's current board time
+- the full current allowlist is documented in `docs/custom-cli.md` under `Web Panel Allowlisted Commands`
 
 This makes it easy to see exactly what the panel sent to the repeater.
 

+ 2 - 0
examples/simple_repeater/MyMesh.cpp

@@ -2036,6 +2036,7 @@ void MyMesh::runWebCommand(const char* command, char* reply, size_t reply_size)
       matches_exact("get role") ||
       matches_exact("get public.key") ||
       matches_exact("get advert.interval") ||
+      matches_exact("get agc.reset.interval") ||
       matches_exact("get flood.advert.interval") ||
       matches_exact("get repeat") ||
       matches_exact("get flood.max") ||
@@ -2070,6 +2071,7 @@ void MyMesh::runWebCommand(const char* command, char* reply, size_t reply_size)
       matches_prefix("set guest.password ") ||
       matches_prefix("set prv.key ") ||
       matches_prefix("set advert.interval ") ||
+      matches_prefix("set agc.reset.interval ") ||
       matches_prefix("set flood.advert.interval ") ||
       matches_prefix("set repeat ") ||
       matches_prefix("set flood.max ") ||

Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini