🔹 RPCs
rpc Recorder (RecorderRequest) returns (RecorderResponse) {};
rpc RecorderBatch(RecorderBatchRequest) returns (RecorderBatchResponse) {};
🔹 Request
message RecorderRequest {
RSI.RapidServer.RequestHeader header = 1;
int32 index = 2;
optional RecorderConfig config = 3;
optional RecorderAction action = 4;
}
🔹 Response
message RecorderResponse {
RSI.RapidServer.ResponseHeader header = 1;
int32 index = 2;
optional RecorderConfig config = 3;
optional RecorderAction action = 4;
optional RecorderInfo info = 5;
optional RecorderStatus status = 6;
}
🔹 Batch Request and Response
message RecorderBatchRequest {
RSI.RapidServer.RequestHeader header = 1;
repeated RecorderRequest requests = 2;
}
message RecorderBatchResponse {
RSI.RapidServer.ResponseHeader header = 1;
repeated RecorderResponse responses = 2;
}
🔹 Config
message RecorderConfig {
optional int32 period = 1;
optional bool circular_buffer = 2;
repeated AddressInfo addresses = 3;
optional RecorderTriggerOnMotion trigger_on_motion = 4;
optional int32 buffer_high_count = 5;
optional int32 record_max_count = 6;
message RecorderTriggerOnMotion {
optional int32 motion_supervisor_index = 1;
optional bool enable = 2;
}
}
🔹 Action
message RecorderAction {
optional Reset reset = 1;
optional Start start = 2;
optional Stop stop = 3;
optional RetrieveRecords retrieve_records = 4;
message Reset {}
message Start {}
message Stop {}
message RetrieveRecords {
repeated Record records = 1;
message Record {
repeated Data data = 1;
message Data {
oneof data {
double d = 1;
int32 i32 = 2;
}
}
}
}
}
🔹 Info
🔹 Status
message RecorderStatus {
bool is_recording = 1;
int32 records_available = 2;
}