99 lines
2.1 KiB
Protocol Buffer
99 lines
2.1 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package hardware;
|
|
|
|
// LED animation types
|
|
enum LedAnimation {
|
|
LED_ANIMATION_STATIC = 0;
|
|
LED_ANIMATION_PULSE = 1;
|
|
LED_ANIMATION_FADE = 2;
|
|
LED_ANIMATION_FLICKER = 3;
|
|
}
|
|
|
|
// Hardware configuration
|
|
message HardwareConfig {
|
|
uint32 hold_duration_ms = 1;
|
|
bool override = 2;
|
|
uint32 relay_pin = 3;
|
|
uint32 sensor_rx_pin = 4;
|
|
uint32 sensor_tx_pin = 5;
|
|
LedConfig on_open_led = 6;
|
|
LedConfig default_led = 7;
|
|
LedConfig on_invalid_led = 8;
|
|
bool enable_serial_sensor = 9;
|
|
// repeated char sensor_api_key = 10;
|
|
// bool enable_ws_sensor = 11;
|
|
LedConfig on_override_open_led = 12;
|
|
LedConfig on_interception_led = 13;
|
|
}
|
|
|
|
// LED configuration
|
|
message LedConfig {
|
|
// General properties that apply to all animations
|
|
uint32 brightness = 1; // 0-255
|
|
uint32 duration_ms = 2; // 0 for indefinite
|
|
|
|
oneof animation_params {
|
|
StaticParams static_params = 3;
|
|
PulseParams pulse_params = 4;
|
|
FadeParams fade_params = 5;
|
|
FlickerParams flicker_params = 6;
|
|
}
|
|
}
|
|
|
|
// Define the specific parameters for each animation type
|
|
message StaticParams {
|
|
uint32 color = 1;
|
|
}
|
|
message PulseParams {
|
|
uint32 color = 1;
|
|
uint32 speed_ms = 2;
|
|
}
|
|
message FadeParams {
|
|
repeated uint32 colors = 1; // Fade between these colors
|
|
uint32 speed_ms = 2;
|
|
}
|
|
message FlickerParams {
|
|
uint32 color = 1;
|
|
uint32 intensity = 2; // e.g., 0-100
|
|
}
|
|
|
|
message RfidReading {
|
|
uint32 card_id = 1;
|
|
}
|
|
|
|
message SensorToControlMessage {
|
|
uint32 sensor_id = 1;
|
|
oneof payload {
|
|
RfidReading rfid_reading = 2;
|
|
SensorOTAEnableResponse ota_response = 3;
|
|
// Add other sensor message types as needed
|
|
}
|
|
}
|
|
|
|
message SensorOTAEnable {
|
|
string ssid = 1;
|
|
string password = 2;
|
|
uint32 timeout_seconds = 3;
|
|
bool as_station_mode = 4;
|
|
bool use_static_ip = 5;
|
|
string static_ip = 6;
|
|
string netmask = 7;
|
|
string gateway = 8;
|
|
}
|
|
|
|
message SensorOTAEnableResponse {
|
|
bool success = 1;
|
|
string ip_address = 2;
|
|
string error_message = 3;
|
|
}
|
|
|
|
|
|
message ControlToSensorMessage {
|
|
uint32 control_id = 1;
|
|
oneof payload {
|
|
LedConfig led_config = 2;
|
|
SensorOTAEnable ota_enable = 3;
|
|
// Add other control message types as needed
|
|
}
|
|
} |