cmvr-es-cli/protos/cmvr/api/camera_command.proto

176 lines
3.7 KiB
Protocol Buffer
Raw Permalink Normal View History

2025-08-21 14:05:27 +08:00
syntax = "proto3";
import "cmvr/api/common.proto";
package cmvr.api;
message FrameData {
enum FrameType {
U8C1 = 0;
U16C1 = 1;
U8C3 = 2;
U16C3 = 3;
F16C1 = 4;
F32C1 = 5;
}
bytes data = 1;
int32 width = 2;
int32 height = 3;
FrameType type = 4;
string codec = 5;
bool is_key_frame = 6;
}
2025-08-27 16:46:12 +08:00
message CameraIntrinsics {
float cx = 1; // 主点水平坐标(从左边缘的像素偏移)
float cy = 2; // 主点垂直坐标(从上边缘的像素偏移)
float fx = 3; // x方向焦距像素宽度的倍数
float fy = 4; // y方向焦距像素高度的倍数
repeated float coeffs = 5 [packed = true]; // 畸变系数固定5个元素
}
2025-08-21 14:05:27 +08:00
message CameraState {
bool is_initialized = 1;
bool is_opened = 2;
bool is_streaming = 3;
bool is_recording = 4;
bool is_error = 5;
string error_message = 6;
int32 fps = 7;
int32 width = 8;
int32 height = 9;
}
message GetCameraStateCommand {
message Request {
CommandHeader.Request header = 1;
}
message Feedback {
CommandHeader.Feedback header = 1;
CameraState state = 2;
}
}
message StartCameraCommand {
message Request {
CommandHeader.Request header = 1;
}
message Feedback {
CommandHeader.Feedback header = 1;
}
}
message StopCameraCommand {
message Request {
CommandHeader.Request header = 1;
}
message Feedback {
CommandHeader.Feedback header = 1;
}
}
message GetRGBImageCommand {
message Request {
CommandHeader.Request header = 1;
}
message Feedback {
CommandHeader.Feedback header = 1;
FrameData color_frame = 2;
2025-08-27 16:46:12 +08:00
CameraIntrinsics intrinsics = 3;
2025-08-21 14:05:27 +08:00
}
}
message GetDepthImageCommand {
message Request {
CommandHeader.Request header = 1;
}
message Feedback {
CommandHeader.Feedback header = 1;
FrameData depth_frame = 2;
2025-08-27 16:46:12 +08:00
CameraIntrinsics intrinsics = 3;
2025-08-21 14:05:27 +08:00
}
}
message GetRGBDImagesCommand {
message Request {
CommandHeader.Request header = 1;
}
message Feedback {
CommandHeader.Feedback header = 1;
FrameData color_frame = 2;
FrameData depth_frame = 3;
2025-08-27 16:46:12 +08:00
CameraIntrinsics intrinsics = 4;
2025-08-21 14:05:27 +08:00
}
}
message StartCameraRecordingCommand {
message Request {
CommandHeader.Request header = 1;
string video_path = 2;
}
message Feedback {
CommandHeader.Feedback header = 1;
}
}
message StopCameraRecordingCommand {
message Request {
CommandHeader.Request header = 1;
}
message Feedback {
CommandHeader.Feedback header = 1;
}
}
message GetRGBImageStreamCommand {
message Request {
CommandHeader.Request header = 1;
bool eof = 2;
}
message Feedback {
CommandHeader.Feedback header = 1;
FrameData color_frame = 2;
2025-08-27 16:46:12 +08:00
CameraIntrinsics intrinsics = 3;
int32 seq_no = 4;
2025-08-21 14:05:27 +08:00
}
}
message GetDepthImageStreamCommand {
message Request {
CommandHeader.Request header = 1;
bool eof = 2;
}
message Feedback {
CommandHeader.Feedback header = 1;
FrameData depth_frame = 2;
2025-08-27 16:46:12 +08:00
CameraIntrinsics intrinsics = 3;
int32 seq_no = 4;
2025-08-21 14:05:27 +08:00
}
}
message GetRGBDImagesStreamCommand {
message Request {
CommandHeader.Request header = 1;
bool eof = 2;
}
message Feedback {
CommandHeader.Feedback header = 1;
FrameData color_frame = 2;
FrameData depth_frame = 3;
2025-08-27 16:46:12 +08:00
CameraIntrinsics intrinsics = 4;
int32 seq_no = 5;
2025-08-21 14:05:27 +08:00
}
}