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


module px4_msgs {
  module msg {
    @verbatim (language="comment", text=
      "Input flags for the failsafe state machine set by the arming & health checks." "\n"
      "" "\n"
      "Flags must be named such that false == no failure (e.g. _invalid, _unhealthy, _lost)" "\n"
      "The flag comments are used as label for the failsafe state machine simulation")
    struct FailsafeFlags {
      @verbatim (language="comment", text=
        "time since system start (microseconds)")
      uint64 timestamp;

      @verbatim (language="comment", text=
        "Per-mode requirements")
      uint32 mode_req_angular_velocity;

      uint32 mode_req_attitude;

      uint32 mode_req_local_alt;

      uint32 mode_req_local_position;

      uint32 mode_req_local_position_relaxed;

      uint32 mode_req_global_position;

      uint32 mode_req_mission;

      uint32 mode_req_offboard_signal;

      uint32 mode_req_home_position;

      @verbatim (language="comment", text=
        "if set, mode cannot be entered if wind or flight time limit exceeded")
      uint32 mode_req_wind_and_flight_time_compliance;

      @verbatim (language="comment", text=
        "if set, cannot arm while in this mode")
      uint32 mode_req_prevent_arming;

      uint32 mode_req_manual_control;

      @verbatim (language="comment", text=
        "other requirements, not covered above (for external modes)")
      uint32 mode_req_other;

      @verbatim (language="comment", text=
        "Mode requirements" "\n"
        "Angular velocity invalid")
      boolean angular_velocity_invalid;

      @verbatim (language="comment", text=
        "Attitude invalid")
      boolean attitude_invalid;

      @verbatim (language="comment", text=
        "Local altitude invalid")
      boolean local_altitude_invalid;

      @verbatim (language="comment", text=
        "Local position estimate invalid")
      boolean local_position_invalid;

      @verbatim (language="comment", text=
        "Local position with reduced accuracy requirements invalid (e.g. flying with optical flow)")
      boolean local_position_invalid_relaxed;

      @verbatim (language="comment", text=
        "Local velocity estimate invalid")
      boolean local_velocity_invalid;

      @verbatim (language="comment", text=
        "Global position estimate invalid")
      boolean global_position_invalid;

      @verbatim (language="comment", text=
        "No mission available")
      boolean auto_mission_missing;

      @verbatim (language="comment", text=
        "Offboard signal lost")
      boolean offboard_control_signal_lost;

      @verbatim (language="comment", text=
        "No home position available")
      boolean home_position_invalid;

      @verbatim (language="comment", text=
        "Control links" "\n"
        "Manual control (RC) signal lost")
      boolean manual_control_signal_lost;

      @verbatim (language="comment", text=
        "GCS connection lost")
      boolean gcs_connection_lost;

      @verbatim (language="comment", text=
        "Battery" "\n"
        "Battery warning level")
      uint8 battery_warning;

      @verbatim (language="comment", text=
        "Low battery based on remaining flight time")
      boolean battery_low_remaining_time;

      @verbatim (language="comment", text=
        "Battery unhealthy")
      boolean battery_unhealthy;

      @verbatim (language="comment", text=
        "Other" "\n"
        "Geofence breached (one or multiple)")
      boolean geofence_breached;

      @verbatim (language="comment", text=
        "Mission failure")
      boolean mission_failure;

      @verbatim (language="comment", text=
        "vehicle in fixed-wing system failure failsafe mode (after quad-chute)")
      boolean vtol_fixed_wing_system_failure;

      @verbatim (language="comment", text=
        "Wind limit exceeded")
      boolean wind_limit_exceeded;

      @verbatim (language="comment", text=
        "Maximum flight time exceeded")
      boolean flight_time_limit_exceeded;

      @verbatim (language="comment", text=
        "Local position estimate has dropped below threshold, but is currently still declared valid")
      boolean local_position_accuracy_low;

      @verbatim (language="comment", text=
        "Failure detector" "\n"
        "Critical failure (attitude/altitude limit exceeded, or external ATS)")
      boolean fd_critical_failure;

      @verbatim (language="comment", text=
        "ESC failed to arm")
      boolean fd_esc_arming_failure;

      @verbatim (language="comment", text=
        "Imbalanced propeller detected")
      boolean fd_imbalanced_prop;

      @verbatim (language="comment", text=
        "Motor failure")
      boolean fd_motor_failure;
    };
  };
};
