syntax = "proto3";
package cmvr.config;

message DeviceConfigEntry {
  enum DeviceType {
    reserved 1, 2, 3, 4, 5, 6, 7, 10, 11;
    reserved "DEVICE_TYPE_UVC_CAMERA", "DEVICE_TYPE_REALSENSE_CAMERA",
             "DEVICE_TYPE_RH56DFTP_DEXHAND", "DEVICE_TYPE_PX6AX_GEN3",
             "DEVICE_TYPE_FFMPEG_MICROPHONE", "DEVICE_TYPE_FFMPEG_SPEAKER",
             "DEVICE_TYPE_HUMANOID_ROBOT", "DEVICE_TYPE_MOTOR_ARM",
             "DEVICE_TYPE_CARTESIAN_ARM";

    DEVICE_TYPE_UNKNOWN = 0;
    DEVICE_TYPE_BIO_HEAD_ROBOT = 8;
    DEVICE_TYPE_MOTOR_SYSTEM = 9;
    DEVICE_TYPE_ROBOT_ARM = 12;
    DEVICE_TYPE_CAMERA = 13;
    DEVICE_TYPE_DEXHAND = 14;
    DEVICE_TYPE_MICROPHONE = 15;
    DEVICE_TYPE_SPEAKER = 16;
    DEVICE_TYPE_AGV = 17;
  }

  string id = 1;
  DeviceType type = 2;
  string config_file = 3;
  bool enable = 4;
}

message DeviceManagerConfig {
  string name = 1;
  string version = 2;
  string description = 3;
  repeated DeviceConfigEntry devices = 4;
}
message DeviceManagerRootConfig {
  DeviceManagerConfig device_manager = 1;
}
