Unify device controls and restore the WiFi console

This commit is contained in:
mikecarper committed 2026-09-08 18:36:23 -07:00
1 parent 3746f9d5f4
commit 4c8aad5b16
44 files changed
+3573 -2948

No files matched your search

+3 -3
View File
@@ -1673,7 +1673,7 @@ def read_target_transfer_settings(
) -> TargetTransferSettings:
rxps = ota.read_remote_rxps(controller, target_name)
powersaving_reply = controller.remote_command(target_name, "powersaving")
powersaving_reply = controller.remote_command(target_name, "get powersaving")
powersaving_match = re.fullmatch(
r"\s*>?\s*(on|off)\s*",
powersaving_reply,
@@ -1847,7 +1847,7 @@ def enforce_transfer_guardrails(
) -> None:
current = read_target_transfer_settings(controller, target_name)
if current.powersaving_enabled:
reply = controller.remote_command(target_name, "powersaving off")
reply = controller.remote_command(target_name, "set powersaving off")
if re.search(r"\boff\b", reply, re.IGNORECASE) is None:
raise ota.OtaError(f"target did not disable CPU power saving: {reply}")
rxps_requested = saved.rxps_enabled if saved is not None else current.rxps_enabled
@@ -1986,7 +1986,7 @@ def restore_transfer_settings(
if verified.powersaving_enabled != saved.powersaving_enabled:
desired = "on" if saved.powersaving_enabled else "off"
reply = controller.remote_command(target_name, f"powersaving {desired}")
reply = controller.remote_command(target_name, f"set powersaving {desired}")
if re.search(rf"\b{desired}\b", reply, re.IGNORECASE) is None:
raise ota.OtaError(f"target did not restore CPU power saving: {reply}")
+7 -7
View File
@@ -6200,14 +6200,14 @@ class Rak3401TransferGuardrailTests(unittest.TestCase):
self.rxps_level = 0
self.rxps_preamble = 0
return f"OK - on,{rx_us},{sleep_us}"
if command == "powersaving":
return "on" if self.powersaving_enabled else "off"
if command == "powersaving off":
if command == "get powersaving":
return "> on" if self.powersaving_enabled else "> off"
if command == "set powersaving off":
self.powersaving_enabled = False
return "off"
if command == "powersaving on":
if command == "set powersaving on":
self.powersaving_enabled = True
return "on - Immediate effect"
return "OK - powersaving on"
if command == "get rxdelay":
return f"> {self.rxdelay}"
if command.startswith("set rxdelay "):
@@ -6249,7 +6249,7 @@ class Rak3401TransferGuardrailTests(unittest.TestCase):
self.assertEqual(controller.rxdelay, "2.0")
self.assertEqual(controller.airtime_factor, "1.0")
self.assertEqual(controller.ota_hops, 3)
self.assertIn("powersaving on", controller.commands)
self.assertIn("set powersaving on", controller.commands)
self.assertEqual(controller.commands[-1], "ota config")
def test_restore_converges_when_saved_power_saving_was_off(self) -> None:
@@ -6261,7 +6261,7 @@ class Rak3401TransferGuardrailTests(unittest.TestCase):
rak_chain.restore_transfer_settings(controller, "remote", saved)
self.assertFalse(controller.powersaving_enabled)
self.assertIn("powersaving off", controller.commands)
self.assertIn("set powersaving off", controller.commands)
def test_guardrails_preserve_airtime_without_opt_in(self) -> None:
controller = self.Controller()