// This file is @generated by prost-build.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlatformStateMachineEvent {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(int32, tag = "2")]
    pub event: i32,
}
impl ::prost::Name for PlatformStateMachineEvent {
    const NAME: &'static str = "PlatformStateMachineEvent";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.as2_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.as2_msgs.msg.PlatformStateMachineEvent".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.as2_msgs.msg.PlatformStateMachineEvent".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlatformStatus {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(int32, tag = "2")]
    pub state: i32,
}
impl ::prost::Name for PlatformStatus {
    const NAME: &'static str = "PlatformStatus";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.as2_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.as2_msgs.msg.PlatformStatus".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.as2_msgs.msg.PlatformStatus".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Geozone {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(int32, tag = "2")]
    pub id: i32,
    #[prost(int32, tag = "3")]
    pub alert: i32,
    #[prost(string, tag = "4")]
    pub r#type: ::prost::alloc::string::String,
    #[prost(string, tag = "5")]
    pub data_type: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "6")]
    pub polygon: ::core::option::Option<super::super::geometry_msgs::msg::Polygon>,
    #[prost(float, tag = "7")]
    pub z_up: f32,
    #[prost(float, tag = "8")]
    pub z_down: f32,
}
impl ::prost::Name for Geozone {
    const NAME: &'static str = "Geozone";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.as2_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.as2_msgs.msg.Geozone".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.as2_msgs.msg.Geozone".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ControlMode {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(int32, tag = "3")]
    pub yaw_mode: i32,
    #[prost(int32, tag = "4")]
    pub control_mode: i32,
    #[prost(int32, tag = "5")]
    pub reference_frame: i32,
}
impl ::prost::Name for ControlMode {
    const NAME: &'static str = "ControlMode";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.as2_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.as2_msgs.msg.ControlMode".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.as2_msgs.msg.ControlMode".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Speed {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(float, tag = "3")]
    pub speed: f32,
}
impl ::prost::Name for Speed {
    const NAME: &'static str = "Speed";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.as2_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.as2_msgs.msg.Speed".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.as2_msgs.msg.Speed".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NodeStatus {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(int32, tag = "2")]
    pub status: i32,
}
impl ::prost::Name for NodeStatus {
    const NAME: &'static str = "NodeStatus";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.as2_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.as2_msgs.msg.NodeStatus".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.as2_msgs.msg.NodeStatus".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PoseStampedWithId {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(string, tag = "2")]
    pub id: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "3")]
    pub pose: ::core::option::Option<super::super::geometry_msgs::msg::PoseStamped>,
}
impl ::prost::Name for PoseStampedWithId {
    const NAME: &'static str = "PoseStampedWithID";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.as2_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.as2_msgs.msg.PoseStampedWithID".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.as2_msgs.msg.PoseStampedWithID".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MissionEvent {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(string, tag = "3")]
    pub data: ::prost::alloc::string::String,
}
impl ::prost::Name for MissionEvent {
    const NAME: &'static str = "MissionEvent";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.as2_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.as2_msgs.msg.MissionEvent".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.as2_msgs.msg.MissionEvent".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlatformInfo {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(bool, tag = "3")]
    pub connected: bool,
    #[prost(bool, tag = "4")]
    pub armed: bool,
    #[prost(bool, tag = "5")]
    pub offboard: bool,
    #[prost(message, optional, tag = "6")]
    pub status: ::core::option::Option<PlatformStatus>,
    #[prost(message, optional, tag = "7")]
    pub current_control_mode: ::core::option::Option<ControlMode>,
}
impl ::prost::Name for PlatformInfo {
    const NAME: &'static str = "PlatformInfo";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.as2_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.as2_msgs.msg.PlatformInfo".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.as2_msgs.msg.PlatformInfo".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AlertEvent {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(int32, tag = "2")]
    pub alert: i32,
    #[prost(string, tag = "3")]
    pub description: ::prost::alloc::string::String,
}
impl ::prost::Name for AlertEvent {
    const NAME: &'static str = "AlertEvent";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.as2_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.as2_msgs.msg.AlertEvent".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.as2_msgs.msg.AlertEvent".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PolygonList {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, repeated, tag = "2")]
    pub polygons: ::prost::alloc::vec::Vec<
        super::super::geometry_msgs::msg::PolygonStamped,
    >,
}
impl ::prost::Name for PolygonList {
    const NAME: &'static str = "PolygonList";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.as2_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.as2_msgs.msg.PolygonList".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.as2_msgs.msg.PolygonList".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TrajGenInfo {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "3")]
    pub node_status: ::core::option::Option<NodeStatus>,
    #[prost(uint32, tag = "4")]
    pub active_status: u32,
}
impl ::prost::Name for TrajGenInfo {
    const NAME: &'static str = "TrajGenInfo";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.as2_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.as2_msgs.msg.TrajGenInfo".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.as2_msgs.msg.TrajGenInfo".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Thrust {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(float, tag = "3")]
    pub thrust: f32,
    #[prost(float, tag = "4")]
    pub thrust_normalized: f32,
}
impl ::prost::Name for Thrust {
    const NAME: &'static str = "Thrust";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.as2_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.as2_msgs.msg.Thrust".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.as2_msgs.msg.Thrust".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FollowTargetInfo {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(int32, tag = "3")]
    pub follow_status: i32,
    #[prost(int32, tag = "4")]
    pub follow_mode: i32,
}
impl ::prost::Name for FollowTargetInfo {
    const NAME: &'static str = "FollowTargetInfo";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.as2_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.as2_msgs.msg.FollowTargetInfo".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.as2_msgs.msg.FollowTargetInfo".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PoseStampedWithIdArray {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, repeated, tag = "2")]
    pub poses: ::prost::alloc::vec::Vec<PoseStampedWithId>,
}
impl ::prost::Name for PoseStampedWithIdArray {
    const NAME: &'static str = "PoseStampedWithIDArray";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.as2_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.as2_msgs.msg.PoseStampedWithIDArray".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.as2_msgs.msg.PoseStampedWithIDArray".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BehaviorStatus {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub status: u32,
}
impl ::prost::Name for BehaviorStatus {
    const NAME: &'static str = "BehaviorStatus";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.as2_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.as2_msgs.msg.BehaviorStatus".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.as2_msgs.msg.BehaviorStatus".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PoseWithId {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(string, tag = "2")]
    pub id: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "3")]
    pub pose: ::core::option::Option<super::super::geometry_msgs::msg::Pose>,
}
impl ::prost::Name for PoseWithId {
    const NAME: &'static str = "PoseWithID";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.as2_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.as2_msgs.msg.PoseWithID".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.as2_msgs.msg.PoseWithID".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct YawMode {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub mode: u32,
    #[prost(float, tag = "3")]
    pub angle: f32,
}
impl ::prost::Name for YawMode {
    const NAME: &'static str = "YawMode";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.as2_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.as2_msgs.msg.YawMode".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.as2_msgs.msg.YawMode".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TrajectoryPoint {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub position: ::core::option::Option<super::super::geometry_msgs::msg::Vector3>,
    #[prost(message, optional, tag = "3")]
    pub twist: ::core::option::Option<super::super::geometry_msgs::msg::Vector3>,
    #[prost(message, optional, tag = "4")]
    pub acceleration: ::core::option::Option<super::super::geometry_msgs::msg::Vector3>,
    #[prost(float, tag = "5")]
    pub yaw_angle: f32,
}
impl ::prost::Name for TrajectoryPoint {
    const NAME: &'static str = "TrajectoryPoint";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.as2_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.as2_msgs.msg.TrajectoryPoint".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.as2_msgs.msg.TrajectoryPoint".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TrajectorySetpoints {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, repeated, tag = "3")]
    pub setpoints: ::prost::alloc::vec::Vec<TrajectoryPoint>,
}
impl ::prost::Name for TrajectorySetpoints {
    const NAME: &'static str = "TrajectorySetpoints";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.as2_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.as2_msgs.msg.TrajectorySetpoints".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.as2_msgs.msg.TrajectorySetpoints".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ControllerInfo {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "3")]
    pub input_control_mode: ::core::option::Option<ControlMode>,
    #[prost(message, optional, tag = "4")]
    pub output_control_mode: ::core::option::Option<ControlMode>,
}
impl ::prost::Name for ControllerInfo {
    const NAME: &'static str = "ControllerInfo";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.as2_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.as2_msgs.msg.ControllerInfo".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.as2_msgs.msg.ControllerInfo".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MissionUpdate {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(string, tag = "2")]
    pub drone_id: ::prost::alloc::string::String,
    #[prost(int32, tag = "3")]
    pub mission_id: i32,
    #[prost(int32, tag = "4")]
    pub item_id: i32,
    #[prost(uint32, tag = "5")]
    pub action: u32,
    #[prost(string, tag = "6")]
    pub mission: ::prost::alloc::string::String,
}
impl ::prost::Name for MissionUpdate {
    const NAME: &'static str = "MissionUpdate";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.as2_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.as2_msgs.msg.MissionUpdate".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.as2_msgs.msg.MissionUpdate".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GimbalControl {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub control_mode: u32,
    #[prost(message, optional, tag = "3")]
    pub target: ::core::option::Option<super::super::geometry_msgs::msg::Vector3Stamped>,
}
impl ::prost::Name for GimbalControl {
    const NAME: &'static str = "GimbalControl";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.as2_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.as2_msgs.msg.GimbalControl".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.as2_msgs.msg.GimbalControl".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Acro {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "3")]
    pub angular_rates: ::core::option::Option<super::super::geometry_msgs::msg::Vector3>,
    #[prost(message, optional, tag = "4")]
    pub thrust: ::core::option::Option<super::super::geometry_msgs::msg::Vector3>,
}
impl ::prost::Name for Acro {
    const NAME: &'static str = "Acro";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.as2_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.as2_msgs.msg.Acro".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.as2_msgs.msg.Acro".into()
    }
}
