syntax = "proto3"; package cmvr.config; message SafetyManagerConfig { enum EnforcementMode { ENFORCEMENT_MODE_UNSPECIFIED = 0; LEGACY = 1; SHADOW = 2; ENFORCE_SELECTED = 3; ENFORCE_ALL = 4; } EnforcementMode mode = 1; repeated string enforced_device_ids = 2; uint32 stop_all_timeout_ms = 3; uint32 recovery_timeout_ms = 4; uint32 command_ledger_result_capacity = 5; uint32 command_ledger_total_id_capacity = 6; uint32 event_history_capacity = 7; bool fail_startup_on_missing_control_capability = 8; } 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; DEVICE_TYPE_MUJOCO_WORLD = 18; DEVICE_TYPE_MUJOCO_VIEWER = 19; } string id = 1; DeviceType type = 2; string config_file = 3; bool enable = 4; bool safety_enforce = 5; uint32 maximum_safety_snapshot_age_ms = 6; uint32 safety_stop_timeout_ms = 7; bool required_control_device = 8; } message DeviceManagerConfig { string name = 1; string version = 2; string description = 3; repeated DeviceConfigEntry devices = 4; bool init_all_motors_when_no_active_joints = 20; SafetyManagerConfig safety = 21; } message DeviceManagerRootConfig { DeviceManagerConfig device_manager = 1; }