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


module px4_msgs {
  module msg {
    module VehicleStatus_Constants {
      const uint8 ARMING_STATE_DISARMED = 1;
      const uint8 ARMING_STATE_ARMED = 2;
      const uint8 ARM_DISARM_REASON_TRANSITION_TO_STANDBY = 0;
      const uint8 ARM_DISARM_REASON_RC_STICK = 1;
      const uint8 ARM_DISARM_REASON_RC_SWITCH = 2;
      const uint8 ARM_DISARM_REASON_COMMAND_INTERNAL = 3;
      const uint8 ARM_DISARM_REASON_COMMAND_EXTERNAL = 4;
      const uint8 ARM_DISARM_REASON_MISSION_START = 5;
      const uint8 ARM_DISARM_REASON_SAFETY_BUTTON = 6;
      const uint8 ARM_DISARM_REASON_AUTO_DISARM_LAND = 7;
      const uint8 ARM_DISARM_REASON_AUTO_DISARM_PREFLIGHT = 8;
      const uint8 ARM_DISARM_REASON_KILL_SWITCH = 9;
      const uint8 ARM_DISARM_REASON_LOCKDOWN = 10;
      const uint8 ARM_DISARM_REASON_FAILURE_DETECTOR = 11;
      const uint8 ARM_DISARM_REASON_SHUTDOWN = 12;
      const uint8 ARM_DISARM_REASON_UNIT_TEST = 13;
      @verbatim (language="comment", text=
        "Manual mode")
      const uint8 NAVIGATION_STATE_MANUAL = 0;
      @verbatim (language="comment", text=
        "Altitude control mode")
      const uint8 NAVIGATION_STATE_ALTCTL = 1;
      @verbatim (language="comment", text=
        "Position control mode")
      const uint8 NAVIGATION_STATE_POSCTL = 2;
      @verbatim (language="comment", text=
        "Auto mission mode")
      const uint8 NAVIGATION_STATE_AUTO_MISSION = 3;
      @verbatim (language="comment", text=
        "Auto loiter mode")
      const uint8 NAVIGATION_STATE_AUTO_LOITER = 4;
      @verbatim (language="comment", text=
        "Auto return to launch mode")
      const uint8 NAVIGATION_STATE_AUTO_RTL = 5;
      const uint8 NAVIGATION_STATE_POSITION_SLOW = 6;
      const uint8 NAVIGATION_STATE_FREE5 = 7;
      const uint8 NAVIGATION_STATE_FREE4 = 8;
      const uint8 NAVIGATION_STATE_FREE3 = 9;
      @verbatim (language="comment", text=
        "Acro mode")
      const uint8 NAVIGATION_STATE_ACRO = 10;
      const uint8 NAVIGATION_STATE_FREE2 = 11;
      @verbatim (language="comment", text=
        "Descend mode (no position control)")
      const uint8 NAVIGATION_STATE_DESCEND = 12;
      @verbatim (language="comment", text=
        "Termination mode")
      const uint8 NAVIGATION_STATE_TERMINATION = 13;
      const uint8 NAVIGATION_STATE_OFFBOARD = 14;
      @verbatim (language="comment", text=
        "Stabilized mode")
      const uint8 NAVIGATION_STATE_STAB = 15;
      const uint8 NAVIGATION_STATE_FREE1 = 16;
      @verbatim (language="comment", text=
        "Takeoff")
      const uint8 NAVIGATION_STATE_AUTO_TAKEOFF = 17;
      @verbatim (language="comment", text=
        "Land")
      const uint8 NAVIGATION_STATE_AUTO_LAND = 18;
      @verbatim (language="comment", text=
        "Auto Follow")
      const uint8 NAVIGATION_STATE_AUTO_FOLLOW_TARGET = 19;
      @verbatim (language="comment", text=
        "Precision land with landing target")
      const uint8 NAVIGATION_STATE_AUTO_PRECLAND = 20;
      @verbatim (language="comment", text=
        "Orbit in a circle")
      const uint8 NAVIGATION_STATE_ORBIT = 21;
      @verbatim (language="comment", text=
        "Takeoff, transition, establish loiter")
      const uint8 NAVIGATION_STATE_AUTO_VTOL_TAKEOFF = 22;
      const uint8 NAVIGATION_STATE_EXTERNAL1 = 23;
      const uint8 NAVIGATION_STATE_EXTERNAL2 = 24;
      const uint8 NAVIGATION_STATE_EXTERNAL3 = 25;
      const uint8 NAVIGATION_STATE_EXTERNAL4 = 26;
      const uint8 NAVIGATION_STATE_EXTERNAL5 = 27;
      const uint8 NAVIGATION_STATE_EXTERNAL6 = 28;
      const uint8 NAVIGATION_STATE_EXTERNAL7 = 29;
      const uint8 NAVIGATION_STATE_EXTERNAL8 = 30;
      const uint8 NAVIGATION_STATE_MAX = 31;
      const uint16 FAILURE_NONE = 0;
      @verbatim (language="comment", text=
        "(1 << 0)")
      const uint16 FAILURE_ROLL = 1;
      @verbatim (language="comment", text=
        "(1 << 1)")
      const uint16 FAILURE_PITCH = 2;
      @verbatim (language="comment", text=
        "(1 << 2)")
      const uint16 FAILURE_ALT = 4;
      @verbatim (language="comment", text=
        "(1 << 3)")
      const uint16 FAILURE_EXT = 8;
      @verbatim (language="comment", text=
        "(1 << 4)")
      const uint16 FAILURE_ARM_ESC = 16;
      @verbatim (language="comment", text=
        "(1 << 5)")
      const uint16 FAILURE_BATTERY = 32;
      @verbatim (language="comment", text=
        "(1 << 6)")
      const uint16 FAILURE_IMBALANCED_PROP = 64;
      @verbatim (language="comment", text=
        "(1 << 7)")
      const uint16 FAILURE_MOTOR = 128;
      const uint8 HIL_STATE_OFF = 0;
      const uint8 HIL_STATE_ON = 1;
      const uint8 VEHICLE_TYPE_UNKNOWN = 0;
      const uint8 VEHICLE_TYPE_ROTARY_WING = 1;
      const uint8 VEHICLE_TYPE_FIXED_WING = 2;
      const uint8 VEHICLE_TYPE_ROVER = 3;
      const uint8 VEHICLE_TYPE_AIRSHIP = 4;
      const uint8 FAILSAFE_DEFER_STATE_DISABLED = 0;
      const uint8 FAILSAFE_DEFER_STATE_ENABLED = 1;
      @verbatim (language="comment", text=
        "Failsafes deferred, but would trigger a failsafe")
      const uint8 FAILSAFE_DEFER_STATE_WOULD_FAILSAFE = 2;
    };
    @verbatim (language="comment", text=
      "Encodes the system state of the vehicle published by commander")
    struct VehicleStatus {
      @verbatim (language="comment", text=
        "time since system start (microseconds)")
      uint64 timestamp;

      @verbatim (language="comment", text=
        "Arming timestamp (microseconds)")
      uint64 armed_time;

      @verbatim (language="comment", text=
        "Takeoff timestamp (microseconds)")
      uint64 takeoff_time;

      uint8 arming_state;

      uint8 latest_arming_reason;

      uint8 latest_disarming_reason;

      @verbatim (language="comment", text=
        "time when current nav_state activated")
      uint64 nav_state_timestamp;

      @verbatim (language="comment", text=
        "Mode that the user selected (might be different from nav_state in a failsafe situation)")
      uint8 nav_state_user_intention;

      @verbatim (language="comment", text=
        "Currently active mode")
      uint8 nav_state;

      @verbatim (language="comment", text=
        "Current mode executor in charge (0=Autopilot)")
      uint8 executor_in_charge;

      @verbatim (language="comment", text=
        "Bitmask for all valid nav_state values")
      uint32 valid_nav_states_mask;

      @verbatim (language="comment", text=
        "Bitmask for all modes that a user can select")
      uint32 can_set_nav_states_mask;

      @verbatim (language="comment", text=
        "Bitmask of detected failures")
      uint16 failure_detector_status;

      uint8 hil_state;

      @verbatim (language="comment", text=
        "If it's a VTOL, then the value will be VEHICLE_TYPE_ROTARY_WING while flying as a multicopter, and VEHICLE_TYPE_FIXED_WING when flying as a fixed-wing")
      uint8 vehicle_type;

      @verbatim (language="comment", text=
        "true if system is in failsafe state (e.g.:RTL, Hover, Terminate, ...)")
      boolean failsafe;

      @verbatim (language="comment", text=
        "true if system is in failsafe state but the user took over control")
      boolean failsafe_and_user_took_over;

      @verbatim (language="comment", text=
        "one of FAILSAFE_DEFER_STATE_*")
      uint8 failsafe_defer_state;

      @verbatim (language="comment", text=
        "Link loss" "\n"
        "datalink to GCS lost")
      boolean gcs_connection_lost;

      @verbatim (language="comment", text=
        "counts unique GCS connection lost events")
      uint8 gcs_connection_lost_counter;

      @verbatim (language="comment", text=
        "Set to true if the high latency data link (eg. RockBlock Iridium 9603 telemetry module) is lost")
      boolean high_latency_data_link_lost;

      @verbatim (language="comment", text=
        "VTOL flags" "\n"
        "True if the system is VTOL capable")
      boolean is_vtol;

      @verbatim (language="comment", text=
        "True if the system performs a 90° pitch down rotation during transition from MC to FW")
      boolean is_vtol_tailsitter;

      @verbatim (language="comment", text=
        "True if VTOL is doing a transition")
      boolean in_transition_mode;

      @verbatim (language="comment", text=
        "True if VTOL is doing a transition from MC to FW")
      boolean in_transition_to_fw;

      @verbatim (language="comment", text=
        "MAVLink identification" "\n"
        "system type, contains mavlink MAV_TYPE")
      uint8 system_type;

      @verbatim (language="comment", text=
        "system id, contains MAVLink's system ID field")
      uint8 system_id;

      @verbatim (language="comment", text=
        "subsystem / component id, contains MAVLink's component ID field")
      uint8 component_id;

      @verbatim (language="comment", text=
        "Set to true if a safety button is connected")
      boolean safety_button_available;

      @verbatim (language="comment", text=
        "Set to true if safety is off")
      boolean safety_off;

      @verbatim (language="comment", text=
        "set if input power is valid")
      boolean power_input_valid;

      @verbatim (language="comment", text=
        "set to true (never cleared) once telemetry received from usb link")
      boolean usb_connected;

      boolean open_drone_id_system_present;

      boolean open_drone_id_system_healthy;

      boolean parachute_system_present;

      boolean parachute_system_healthy;

      @verbatim (language="comment", text=
        "Set to true if avoidance system is enabled via COM_OBS_AVOID parameter")
      boolean avoidance_system_required;

      @verbatim (language="comment", text=
        "Status of the obstacle avoidance system")
      boolean avoidance_system_valid;

      boolean rc_calibration_in_progress;

      boolean calibration_enabled;

      @verbatim (language="comment", text=
        "true if all checks necessary to arm pass")
      boolean pre_flight_checks_pass;
    };
  };
};
