Files
xterra-overland-dashboard/simulator/protocol.py
T

85 lines
1.9 KiB
Python

class MessageType:
STATUS_REQUEST = "status_request"
STATUS_RESPONSE = "status_response"
SET_RELAY = "set_relay"
RELAY_RESPONSE = "relay_response"
ENABLE_WIFI = "enable_wifi"
WIFI_RESPONSE = "wifi_response"
TOGGLE_IGNITION = "toggle_ignition"
IGNITION_RESPONSE = "ignition_response"
TOGGLE_SENSOR_FAULT = "toggle_sensor_fault"
SENSOR_FAULT_RESPONSE = "sensor_fault_response"
def status_request():
return {"type": MessageType.STATUS_REQUEST}
def status_response(data):
return {
"type": MessageType.STATUS_RESPONSE,
"data": data
}
def set_relay_request(relay, state):
return {
"type": MessageType.SET_RELAY,
"relay": relay,
"state": bool(state)
}
def relay_response(success, relay=None, state=None, error=None):
return {
"type": MessageType.RELAY_RESPONSE,
"success": success,
"relay": relay,
"state": state,
"error": error
}
def enable_wifi_request(minutes):
return {
"type": MessageType.ENABLE_WIFI,
"minutes": int(minutes)
}
def wifi_response(success, expires_minutes=None):
return {
"type": MessageType.WIFI_RESPONSE,
"success": success,
"expires_minutes": expires_minutes
}
def toggle_ignition_request():
return {"type": MessageType.TOGGLE_IGNITION}
def ignition_response(success, ignition_on):
return {
"type": MessageType.IGNITION_RESPONSE,
"success": success,
"ignition_on": ignition_on
}
def toggle_sensor_fault_request(sensor):
return {
"type": MessageType.TOGGLE_SENSOR_FAULT,
"sensor": sensor
}
def sensor_fault_response(success, sensor=None, failed=None, error=None):
return {
"type": MessageType.SENSOR_FAULT_RESPONSE,
"success": success,
"sensor": sensor,
"failed": failed,
"error": error
}