// generated from rosidl_adapter/resource/msg.idl.em
// with input from controller_manager_msgs/msg/ControllerState.msg
// generated code does not contain a copyright notice

#include "controller_manager_msgs/msg/ChainConnection.idl"

module controller_manager_msgs {
  module msg {
    struct ControllerState {
      @verbatim (language="comment", text=
        "controller name")
      string name;

      @verbatim (language="comment", text=
        "controller state: unconfigured, inactive, active, or finalized")
      string state;

      @verbatim (language="comment", text=
        "the controller class name, e.g. joint_trajectory_controller/JointTrajectoryController")
      string type;

      @verbatim (language="comment", text=
        "true, if controller runs asynchronously. false, if controller runs synchronously")
      boolean is_async;

      @verbatim (language="comment", text=
        "update rate of the controller in Hz")
      uint16 update_rate;

      @verbatim (language="comment", text=
        "command interfaces currently owned by controller")
      sequence<string> claimed_interfaces;

      @verbatim (language="comment", text=
        "command interfaces required by controller")
      sequence<string> required_command_interfaces;

      @verbatim (language="comment", text=
        "state interfaces required by controller")
      sequence<string> required_state_interfaces;

      @verbatim (language="comment", text=
        "specifies whether or not controller can export references for a controller chain")
      boolean is_chainable;

      @verbatim (language="comment", text=
        "specifies whether or not controller's exported references are claimed by another controller")
      boolean is_chained;

      @verbatim (language="comment", text=
        "state interfaces to be exported (only applicable if is_chainable is true)")
      sequence<string> exported_state_interfaces;

      @verbatim (language="comment", text=
        "references to be exported (only applicable if is_chainable is true)")
      sequence<string> reference_interfaces;

      @verbatim (language="comment", text=
        "specifies list of controllers and their exported references that the controller is chained to")
      sequence<controller_manager_msgs::msg::ChainConnection> chain_connections;
    };
  };
};
