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


module px4_msgs {
  module msg {
    typedef uint8 uint8__32[32];
    module GimbalDeviceInformation_Constants {
      const uint32 GIMBAL_DEVICE_CAP_FLAGS_HAS_RETRACT = 1;
      const uint32 GIMBAL_DEVICE_CAP_FLAGS_HAS_NEUTRAL = 2;
      const uint32 GIMBAL_DEVICE_CAP_FLAGS_HAS_ROLL_AXIS = 4;
      const uint32 GIMBAL_DEVICE_CAP_FLAGS_HAS_ROLL_FOLLOW = 8;
      const uint32 GIMBAL_DEVICE_CAP_FLAGS_HAS_ROLL_LOCK = 16;
      const uint32 GIMBAL_DEVICE_CAP_FLAGS_HAS_PITCH_AXIS = 32;
      const uint32 GIMBAL_DEVICE_CAP_FLAGS_HAS_PITCH_FOLLOW = 64;
      const uint32 GIMBAL_DEVICE_CAP_FLAGS_HAS_PITCH_LOCK = 128;
      const uint32 GIMBAL_DEVICE_CAP_FLAGS_HAS_YAW_AXIS = 256;
      const uint32 GIMBAL_DEVICE_CAP_FLAGS_HAS_YAW_FOLLOW = 512;
      const uint32 GIMBAL_DEVICE_CAP_FLAGS_HAS_YAW_LOCK = 1024;
      const uint32 GIMBAL_DEVICE_CAP_FLAGS_SUPPORTS_INFINITE_YAW = 2048;
    };
    struct GimbalDeviceInformation {
      @verbatim (language="comment", text=
        "time since system start (microseconds)")
      uint64 timestamp;

      uint8__32 vendor_name;

      uint8__32 model_name;

      uint8__32 custom_name;

      uint32 firmware_version;

      uint32 hardware_version;

      uint64 uid;

      uint16 cap_flags;

      uint16 custom_cap_flags;

      @unit (value="rad")
      float roll_min;

      @unit (value="rad")
      float roll_max;

      @unit (value="rad")
      float pitch_min;

      @unit (value="rad")
      float pitch_max;

      @unit (value="rad")
      float yaw_min;

      @unit (value="rad")
      float yaw_max;

      uint8 gimbal_device_compid;
    };
  };
};
