Add Pico simulator and shared protocol layer
This commit is contained in:
@@ -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))
|
||||
Reference in New Issue
Block a user