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))