syntax = "proto3"; import "cmvr/api/arm_command.proto"; import "cmvr/api/common.proto"; package cmvr.api; enum DeviceType { AGV = 0; Battery = 1; Camera = 2; DexHand = 3; Gripper = 4; Microphone = 5; Robot = 6; Speaker = 7; BioHead = 8; Motor = 9; MotorSystem = 10; MujocoWorld = 11; MujocoViewer = 12; CanBus = 13; Unknown = 20; } // 设备在 cmvr-es 运行时中的稳定大类,与具体厂商驱动无关。 enum DeviceKind { DEVICE_KIND_UNKNOWN = 0; DEVICE_KIND_AGV = 1; DEVICE_KIND_ARM = 2; DEVICE_KIND_BATTERY = 3; DEVICE_KIND_BIO_HEAD = 4; DEVICE_KIND_CAMERA = 5; DEVICE_KIND_CAN_BUS = 6; DEVICE_KIND_DEX_HAND = 7; DEVICE_KIND_GRIPPER = 8; DEVICE_KIND_MICROPHONE = 9; DEVICE_KIND_MOTOR = 10; DEVICE_KIND_MOTOR_SYSTEM = 11; DEVICE_KIND_MUJOCO_VIEWER = 12; DEVICE_KIND_MUJOCO_WORLD = 13; DEVICE_KIND_ROBOT = 14; DEVICE_KIND_SPEAKER = 15; } message DeviceList { string device_id = 1; DeviceType device_type = 2; DeviceKind device_kind = 3; // 具体运行时驱动类型,例如 AuboARM、HuayanRobot、SeerRobokitAgv。 string driver_type = 4; // 厂商或驱动生态,例如 AUBO、HUAYAN、SEER。 string vendor = 5; } message GetSystemInfoCommand { message Request {} message Feedback { CommandHeader.Feedback header = 1; string system_name = 2; string version = 3; string description = 4; string os = 5; string kernel_version = 6; string architecture = 7; } } message GetSystemStatusCommand { message Request {} message Feedback { CommandHeader.Feedback header = 1; float cpu_usage = 2; float mem_total_mb = 3; float mem_used_mb = 4; float disk_total_gb = 5; float disk_used_gb = 6; repeated DeviceList device_list = 7; } } message UpdateParamsCommand { message Request { CommandHeader.Request header = 1; repeated ConfigParam params = 2; } message Feedback { CommandHeader.Feedback header = 1; } } message StopAllCommand { message Request { CommandHeader.Request header = 1; } message Feedback { CommandHeader.Feedback header = 1; } } enum ActionResultCode { ACTION_RESULT_CODE_UNSPECIFIED = 0; ACTION_RESULT_CODE_COMPLETED = 1; ACTION_RESULT_CODE_FAILED = 2; ACTION_RESULT_CODE_CANCELED = 3; ACTION_RESULT_CODE_TIMED_OUT = 4; ACTION_RESULT_CODE_REJECTED = 5; } message ActionStep { reserved 1; reserved "step_id"; // Zero inherits the remaining ActionQueue timeout. uint32 timeout_ms = 2; oneof command { MoveJ.Request arm_move_j = 10; MoveL.Request arm_move_l = 11; } } message ActionQueueCommand { message Request { reserved 1; reserved "action_id"; repeated ActionStep steps = 2; // Zero uses the server default. uint32 total_timeout_ms = 3; } message Feedback { CommandHeader.Feedback header = 1; reserved 2; reserved "action_id"; uint32 completed_steps = 3; optional uint32 failed_step_index = 4; ActionResultCode result = 5; } }