syntax = "proto3"; package status; option go_package = "./pb"; // Represents data for a single sensor channel message SensorChannelData { float voltage = 1; float current = 2; float power = 3; } // Contains data for all sensor channels and system info message SensorData { SensorChannelData usb = 1; SensorChannelData main = 2; SensorChannelData vin = 3; uint64 timestamp_ms = 4; uint64 uptime_ms = 5; } // Contains WiFi connection status message WifiStatus { bool connected = 1; string ssid = 2; int32 rssi = 3; string ip_address = 4; } // Contains raw UART data message UartData { bytes data = 1; } // Contains load sw status message LoadSwStatus { bool main = 1; bool usb = 2; } // Top-level message for all websocket communication message StatusMessage { oneof payload { SensorData sensor_data = 1; WifiStatus wifi_status = 2; LoadSwStatus sw_status = 3; UartData uart_data = 4; } }