Add Pico simulator and shared protocol layer

This commit is contained in:
root
2026-06-03 00:27:10 -06:00
parent cdff42ddd4
commit 2eb36a2d85
4 changed files with 244 additions and 30 deletions
+42
View File
@@ -0,0 +1,42 @@
from protocol import (
MessageType,
status_request,
set_relay_request,
enable_wifi_request,
toggle_ignition_request,
toggle_sensor_fault_request,
)
class PicoSimulator:
def __init__(self, controller):
self.controller = controller
self.last_status = None
self.primary_link = "rs485"
self.backup_link_available = True
def send_message(self, message):
"""
This simulates the Pico sending a protocol message to the ESP32.
Later, this is where RS-485 serial communication will replace
the direct Python method call.
"""
return self.controller.handle_message(message)
def get_status(self):
response = self.send_message(status_request())
self.last_status = response["data"]
return self.last_status
def set_relay(self, relay, state):
return self.send_message(set_relay_request(relay, state))
def enable_wifi(self, minutes=10):
return self.send_message(enable_wifi_request(minutes))
def toggle_ignition(self):
return self.send_message(toggle_ignition_request())
def toggle_sensor_fault(self, sensor):
return self.send_message(toggle_sensor_fault_request(sensor))