Files
SpotMicroESP32-Leika/platform_shared/api.proto
T
2026-01-31 14:37:31 +01:00

107 lines
2.7 KiB
Protocol Buffer

syntax = "proto3";
package api;
// =============================================================================
// AP (Access Point) Settings - shared data types
// =============================================================================
enum APProvisionMode {
AP_MODE_ALWAYS = 0;
AP_MODE_DISCONNECTED = 1;
AP_MODE_NEVER = 2;
}
enum APNetworkStatus {
AP_ACTIVE = 0;
AP_INACTIVE = 1;
AP_LINGERING = 2;
}
message APSettings {
APProvisionMode provision_mode = 1;
string ssid = 2;
string password = 3;
uint32 channel = 4;
bool ssid_hidden = 5;
uint32 max_clients = 6;
uint32 local_ip = 7;
uint32 gateway_ip = 8;
uint32 subnet_mask = 9;
}
message APStatus {
APNetworkStatus status = 1;
uint32 ip_address = 2;
string mac_address = 3;
uint32 station_num = 4;
}
// Empty request types for GET-like operations
message APSettingsRequest {}
message APStatusRequest {}
// =============================================================================
// Servo Settings - shared data types
// =============================================================================
message Servo {
float center_pwm = 1;
float direction = 2;
float center_angle = 3;
float conversion = 4;
string name = 5;
}
message ServoSettings {
repeated Servo servos = 1; // max 12 servos
}
message ServoSettingsRequest {}
// =============================================================================
// File System - shared data types
// =============================================================================
message FileEntry {
string name = 1;
bool is_directory = 2;
uint32 size = 3; // Only for files
repeated FileEntry children = 4; // Only for directories
}
message FileList {
repeated FileEntry entries = 1;
}
message FileListRequest {}
// =============================================================================
// REST API wrappers - used by HTTP endpoints
// =============================================================================
// Request wrapper for REST endpoints
message Request {
oneof payload {
APSettings ap_settings = 10;
APSettingsRequest ap_settings_request = 11;
APStatusRequest ap_status_request = 12;
ServoSettings servo_settings = 20;
ServoSettingsRequest servo_settings_request = 21;
FileListRequest file_list_request = 30;
}
}
// Response wrapper for REST endpoints
message Response {
uint32 status_code = 1;
string error_message = 2;
oneof payload {
APSettings ap_settings = 10;
APStatus ap_status = 11;
ServoSettings servo_settings = 20;
FileList file_list = 30;
}
}