feat: enhance repeater TX mode functionality so companion tenants can TX while in monitor mode

- Modify TX modes: forward, monitor, and add no_tx, allowing for flexible packet handling.
- Updated configuration and API endpoints to support the new modes.
- Adjusted logic in RepeaterHandler to manage packet processing based on the selected mode.
- Enhanced CLI commands to reflect the new mode settings.
- Added tests for each TX mode to ensure correct behavior.
This commit is contained in:
agessaman
2026-03-15 11:23:00 -07:00
parent e0e807f65c
commit 7558c5604c
8 changed files with 106 additions and 27 deletions
+4 -5
View File
@@ -242,8 +242,8 @@ class MeshCLI:
return f"> {name}"
elif param == "repeat":
disabled = self.repeater_config.get("disable_forward", False)
return f"> {'off' if disabled else 'on'}"
mode = self.repeater_config.get("mode", "forward")
return f"> {'on' if mode == 'forward' else 'off'}"
elif param == "lat":
lat = self.repeater_config.get("latitude", 0.0)
@@ -350,10 +350,9 @@ class MeshCLI:
return "OK"
elif key == "repeat":
disabled = value.lower() == "off"
self.repeater_config["disable_forward"] = disabled
self.repeater_config["mode"] = "forward" if value.lower() == "on" else "monitor"
self.save_config()
return f"OK - repeat is now {'OFF' if disabled else 'ON'}"
return f"OK - repeat is now {'ON' if self.repeater_config['mode'] == 'forward' else 'OFF'}"
elif key == "lat":
self.repeater_config["latitude"] = float(value)