syntax = "proto3";
package cmvr.config;

message TaskConfigEntry {
  enum TaskType {
    TASK_TYPE_UNKNOWN = 0;
    TASK_TYPE_TOUCH_SCREEN = 1;
    TASK_TYPE_GRPC_SERVER = 3;
    reserved 2;
    reserved "TASK_TYPE_ARM_CONTROL";
  }

  enum TaskRunMode {
    TASK_RUN_MODE_UNKNOWN = 0;
    TASK_RUN_MODE_PERIODIC_STEP = 1;
    TASK_RUN_MODE_BLOCKING_SERVICE = 2;
  }

  string id = 1;
  TaskType type = 2;
  string config_file = 3;
  bool enable = 4;
  TaskRunMode run_mode = 5;
  double control_period_s = 6;
}

message TaskManagerConfig {
  repeated TaskConfigEntry tasks = 1;
}
message TaskManagerRootConfig {
  TaskManagerConfig task_manager = 1;
}
