#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct AssociatedDetection {
#[prost(message, optional, tag = "1")]
pub timestamp: ::core::option::Option<::prost_types::Timestamp>,
#[prost(string, optional, tag = "2")]
pub node_id: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "3")]
pub object_id: ::core::option::Option<::prost::alloc::string::String>,
#[prost(enumeration = "AssociationRelation", optional, tag = "4")]
pub association_type: ::core::option::Option<i32>,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum AssociationRelation {
Unspecified = 0,
NoRelation = 1,
Parent = 2,
Child = 3,
Sibling = 4,
}
impl AssociationRelation {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "ASSOCIATION_RELATION_UNSPECIFIED",
Self::NoRelation => "ASSOCIATION_RELATION_NO_RELATION",
Self::Parent => "ASSOCIATION_RELATION_PARENT",
Self::Child => "ASSOCIATION_RELATION_CHILD",
Self::Sibling => "ASSOCIATION_RELATION_SIBLING",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"ASSOCIATION_RELATION_UNSPECIFIED" => Some(Self::Unspecified),
"ASSOCIATION_RELATION_NO_RELATION" => Some(Self::NoRelation),
"ASSOCIATION_RELATION_PARENT" => Some(Self::Parent),
"ASSOCIATION_RELATION_CHILD" => Some(Self::Child),
"ASSOCIATION_RELATION_SIBLING" => Some(Self::Sibling),
_ => None,
}
}
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct AssociatedFile {
#[prost(string, optional, tag = "1")]
pub r#type: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "2")]
pub url: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct LocationList {
#[prost(message, repeated, tag = "1")]
pub locations: ::prost::alloc::vec::Vec<Location>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Location {
#[prost(double, optional, tag = "1")]
pub x: ::core::option::Option<f64>,
#[prost(double, optional, tag = "2")]
pub y: ::core::option::Option<f64>,
#[prost(double, optional, tag = "3")]
pub z: ::core::option::Option<f64>,
#[prost(double, optional, tag = "4")]
pub x_error: ::core::option::Option<f64>,
#[prost(double, optional, tag = "5")]
pub y_error: ::core::option::Option<f64>,
#[prost(double, optional, tag = "6")]
pub z_error: ::core::option::Option<f64>,
#[prost(enumeration = "LocationCoordinateSystem", optional, tag = "7")]
pub coordinate_system: ::core::option::Option<i32>,
#[prost(enumeration = "LocationDatum", optional, tag = "8")]
pub datum: ::core::option::Option<i32>,
#[prost(string, optional, tag = "9")]
pub utm_zone: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum LocationCoordinateSystem {
Unspecified = 0,
LatLngDegM = 1,
LatLngRadM = 2,
UtmM = 5,
}
impl LocationCoordinateSystem {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "LOCATION_COORDINATE_SYSTEM_UNSPECIFIED",
Self::LatLngDegM => "LOCATION_COORDINATE_SYSTEM_LAT_LNG_DEG_M",
Self::LatLngRadM => "LOCATION_COORDINATE_SYSTEM_LAT_LNG_RAD_M",
Self::UtmM => "LOCATION_COORDINATE_SYSTEM_UTM_M",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"LOCATION_COORDINATE_SYSTEM_UNSPECIFIED" => Some(Self::Unspecified),
"LOCATION_COORDINATE_SYSTEM_LAT_LNG_DEG_M" => Some(Self::LatLngDegM),
"LOCATION_COORDINATE_SYSTEM_LAT_LNG_RAD_M" => Some(Self::LatLngRadM),
"LOCATION_COORDINATE_SYSTEM_UTM_M" => Some(Self::UtmM),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum LocationDatum {
Unspecified = 0,
Wgs84E = 1,
Wgs84G = 2,
}
impl LocationDatum {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "LOCATION_DATUM_UNSPECIFIED",
Self::Wgs84E => "LOCATION_DATUM_WGS84_E",
Self::Wgs84G => "LOCATION_DATUM_WGS84_G",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"LOCATION_DATUM_UNSPECIFIED" => Some(Self::Unspecified),
"LOCATION_DATUM_WGS84_E" => Some(Self::Wgs84E),
"LOCATION_DATUM_WGS84_G" => Some(Self::Wgs84G),
_ => None,
}
}
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct RangeBearing {
#[prost(double, optional, tag = "1")]
pub elevation: ::core::option::Option<f64>,
#[prost(double, optional, tag = "2")]
pub azimuth: ::core::option::Option<f64>,
#[prost(double, optional, tag = "3")]
pub range: ::core::option::Option<f64>,
#[prost(double, optional, tag = "4")]
pub elevation_error: ::core::option::Option<f64>,
#[prost(double, optional, tag = "5")]
pub azimuth_error: ::core::option::Option<f64>,
#[prost(double, optional, tag = "6")]
pub range_error: ::core::option::Option<f64>,
#[prost(enumeration = "RangeBearingCoordinateSystem", optional, tag = "7")]
pub coordinate_system: ::core::option::Option<i32>,
#[prost(enumeration = "RangeBearingDatum", optional, tag = "8")]
pub datum: ::core::option::Option<i32>,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct RangeBearingCone {
#[prost(double, optional, tag = "1")]
pub elevation: ::core::option::Option<f64>,
#[prost(double, optional, tag = "2")]
pub azimuth: ::core::option::Option<f64>,
#[prost(double, optional, tag = "3")]
pub range: ::core::option::Option<f64>,
#[prost(double, optional, tag = "4")]
pub horizontal_extent: ::core::option::Option<f64>,
#[prost(double, optional, tag = "5")]
pub vertical_extent: ::core::option::Option<f64>,
#[prost(double, optional, tag = "6")]
pub horizontal_extent_error: ::core::option::Option<f64>,
#[prost(double, optional, tag = "7")]
pub vertical_extent_error: ::core::option::Option<f64>,
#[prost(double, optional, tag = "8")]
pub elevation_error: ::core::option::Option<f64>,
#[prost(double, optional, tag = "9")]
pub azimuth_error: ::core::option::Option<f64>,
#[prost(double, optional, tag = "10")]
pub range_error: ::core::option::Option<f64>,
#[prost(enumeration = "RangeBearingCoordinateSystem", optional, tag = "11")]
pub coordinate_system: ::core::option::Option<i32>,
#[prost(enumeration = "RangeBearingDatum", optional, tag = "12")]
pub datum: ::core::option::Option<i32>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct LocationOrRangeBearing {
#[prost(oneof = "location_or_range_bearing::FovOneof", tags = "1, 2")]
pub fov_oneof: ::core::option::Option<location_or_range_bearing::FovOneof>,
}
pub mod location_or_range_bearing {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum FovOneof {
#[prost(message, tag = "1")]
RangeBearing(super::RangeBearingCone),
#[prost(message, tag = "2")]
LocationList(super::LocationList),
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum RangeBearingCoordinateSystem {
Unspecified = 0,
DegreesM = 1,
RadiansM = 2,
DegreesKm = 3,
RadiansKm = 4,
}
impl RangeBearingCoordinateSystem {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "RANGE_BEARING_COORDINATE_SYSTEM_UNSPECIFIED",
Self::DegreesM => "RANGE_BEARING_COORDINATE_SYSTEM_DEGREES_M",
Self::RadiansM => "RANGE_BEARING_COORDINATE_SYSTEM_RADIANS_M",
Self::DegreesKm => "RANGE_BEARING_COORDINATE_SYSTEM_DEGREES_KM",
Self::RadiansKm => "RANGE_BEARING_COORDINATE_SYSTEM_RADIANS_KM",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"RANGE_BEARING_COORDINATE_SYSTEM_UNSPECIFIED" => Some(Self::Unspecified),
"RANGE_BEARING_COORDINATE_SYSTEM_DEGREES_M" => Some(Self::DegreesM),
"RANGE_BEARING_COORDINATE_SYSTEM_RADIANS_M" => Some(Self::RadiansM),
"RANGE_BEARING_COORDINATE_SYSTEM_DEGREES_KM" => Some(Self::DegreesKm),
"RANGE_BEARING_COORDINATE_SYSTEM_RADIANS_KM" => Some(Self::RadiansKm),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum RangeBearingDatum {
Unspecified = 0,
True = 1,
Magnetic = 2,
Grid = 3,
Platform = 4,
}
impl RangeBearingDatum {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "RANGE_BEARING_DATUM_UNSPECIFIED",
Self::True => "RANGE_BEARING_DATUM_TRUE",
Self::Magnetic => "RANGE_BEARING_DATUM_MAGNETIC",
Self::Grid => "RANGE_BEARING_DATUM_GRID",
Self::Platform => "RANGE_BEARING_DATUM_PLATFORM",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"RANGE_BEARING_DATUM_UNSPECIFIED" => Some(Self::Unspecified),
"RANGE_BEARING_DATUM_TRUE" => Some(Self::True),
"RANGE_BEARING_DATUM_MAGNETIC" => Some(Self::Magnetic),
"RANGE_BEARING_DATUM_GRID" => Some(Self::Grid),
"RANGE_BEARING_DATUM_PLATFORM" => Some(Self::Platform),
_ => None,
}
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Alert {
#[prost(string, optional, tag = "1")]
pub alert_id: ::core::option::Option<::prost::alloc::string::String>,
#[prost(enumeration = "alert::AlertType", optional, tag = "2")]
pub alert_type: ::core::option::Option<i32>,
#[prost(enumeration = "alert::AlertStatus", optional, tag = "3")]
pub status: ::core::option::Option<i32>,
#[prost(string, optional, tag = "4")]
pub description: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "7")]
pub region_id: ::core::option::Option<::prost::alloc::string::String>,
#[prost(enumeration = "alert::DiscretePriority", optional, tag = "8")]
pub priority: ::core::option::Option<i32>,
#[prost(float, optional, tag = "9")]
pub ranking: ::core::option::Option<f32>,
#[prost(float, optional, tag = "10")]
pub confidence: ::core::option::Option<f32>,
#[prost(message, repeated, tag = "11")]
pub associated_file: ::prost::alloc::vec::Vec<AssociatedFile>,
#[prost(message, repeated, tag = "12")]
pub associated_detection: ::prost::alloc::vec::Vec<AssociatedDetection>,
#[prost(string, optional, tag = "13")]
pub additional_information: ::core::option::Option<::prost::alloc::string::String>,
#[prost(oneof = "alert::LocationOneof", tags = "5, 6")]
pub location_oneof: ::core::option::Option<alert::LocationOneof>,
}
pub mod alert {
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum AlertType {
Unspecified = 0,
Information = 1,
Warning = 2,
Critical = 3,
Error = 4,
Fatal = 5,
ModeChange = 6,
}
impl AlertType {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "ALERT_TYPE_UNSPECIFIED",
Self::Information => "ALERT_TYPE_INFORMATION",
Self::Warning => "ALERT_TYPE_WARNING",
Self::Critical => "ALERT_TYPE_CRITICAL",
Self::Error => "ALERT_TYPE_ERROR",
Self::Fatal => "ALERT_TYPE_FATAL",
Self::ModeChange => "ALERT_TYPE_MODE_CHANGE",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"ALERT_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
"ALERT_TYPE_INFORMATION" => Some(Self::Information),
"ALERT_TYPE_WARNING" => Some(Self::Warning),
"ALERT_TYPE_CRITICAL" => Some(Self::Critical),
"ALERT_TYPE_ERROR" => Some(Self::Error),
"ALERT_TYPE_FATAL" => Some(Self::Fatal),
"ALERT_TYPE_MODE_CHANGE" => Some(Self::ModeChange),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum AlertStatus {
Unspecified = 0,
Active = 1,
Acknowledge = 2,
Reject = 3,
Ignore = 4,
Clear = 5,
}
impl AlertStatus {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "ALERT_STATUS_UNSPECIFIED",
Self::Active => "ALERT_STATUS_ACTIVE",
Self::Acknowledge => "ALERT_STATUS_ACKNOWLEDGE",
Self::Reject => "ALERT_STATUS_REJECT",
Self::Ignore => "ALERT_STATUS_IGNORE",
Self::Clear => "ALERT_STATUS_CLEAR",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"ALERT_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
"ALERT_STATUS_ACTIVE" => Some(Self::Active),
"ALERT_STATUS_ACKNOWLEDGE" => Some(Self::Acknowledge),
"ALERT_STATUS_REJECT" => Some(Self::Reject),
"ALERT_STATUS_IGNORE" => Some(Self::Ignore),
"ALERT_STATUS_CLEAR" => Some(Self::Clear),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DiscretePriority {
Unspecified = 0,
Low = 1,
Medium = 2,
High = 3,
}
impl DiscretePriority {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "DISCRETE_PRIORITY_UNSPECIFIED",
Self::Low => "DISCRETE_PRIORITY_LOW",
Self::Medium => "DISCRETE_PRIORITY_MEDIUM",
Self::High => "DISCRETE_PRIORITY_HIGH",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"DISCRETE_PRIORITY_UNSPECIFIED" => Some(Self::Unspecified),
"DISCRETE_PRIORITY_LOW" => Some(Self::Low),
"DISCRETE_PRIORITY_MEDIUM" => Some(Self::Medium),
"DISCRETE_PRIORITY_HIGH" => Some(Self::High),
_ => None,
}
}
}
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum LocationOneof {
#[prost(message, tag = "5")]
RangeBearing(super::RangeBearing),
#[prost(message, tag = "6")]
Location(super::Location),
}
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct AlertAck {
#[prost(string, optional, tag = "1")]
pub alert_id: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, repeated, tag = "4")]
pub reason: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(enumeration = "alert_ack::AlertAckStatus", optional, tag = "5")]
pub alert_ack_status: ::core::option::Option<i32>,
}
pub mod alert_ack {
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum AlertAckStatus {
Unspecified = 0,
Accepted = 1,
Rejected = 2,
Cancelled = 3,
}
impl AlertAckStatus {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "ALERT_ACK_STATUS_UNSPECIFIED",
Self::Accepted => "ALERT_ACK_STATUS_ACCEPTED",
Self::Rejected => "ALERT_ACK_STATUS_REJECTED",
Self::Cancelled => "ALERT_ACK_STATUS_CANCELLED",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"ALERT_ACK_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
"ALERT_ACK_STATUS_ACCEPTED" => Some(Self::Accepted),
"ALERT_ACK_STATUS_REJECTED" => Some(Self::Rejected),
"ALERT_ACK_STATUS_CANCELLED" => Some(Self::Cancelled),
_ => None,
}
}
}
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct EnuVelocity {
#[prost(double, optional, tag = "1")]
pub east_rate: ::core::option::Option<f64>,
#[prost(double, optional, tag = "2")]
pub north_rate: ::core::option::Option<f64>,
#[prost(double, optional, tag = "3")]
pub up_rate: ::core::option::Option<f64>,
#[prost(double, optional, tag = "4")]
pub east_rate_error: ::core::option::Option<f64>,
#[prost(double, optional, tag = "5")]
pub north_rate_error: ::core::option::Option<f64>,
#[prost(double, optional, tag = "6")]
pub up_rate_error: ::core::option::Option<f64>,
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EnuVelocityUnits {
#[prost(enumeration = "SpeedUnits", optional, tag = "1")]
pub east_north_rate_units: ::core::option::Option<i32>,
#[prost(enumeration = "SpeedUnits", optional, tag = "2")]
pub up_rate_units: ::core::option::Option<i32>,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum SpeedUnits {
Unspecified = 0,
Ms = 1,
Kph = 2,
}
impl SpeedUnits {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "SPEED_UNITS_UNSPECIFIED",
Self::Ms => "SPEED_UNITS_MS",
Self::Kph => "SPEED_UNITS_KPH",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"SPEED_UNITS_UNSPECIFIED" => Some(Self::Unspecified),
"SPEED_UNITS_MS" => Some(Self::Ms),
"SPEED_UNITS_KPH" => Some(Self::Kph),
_ => None,
}
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DetectionReport {
#[prost(string, optional, tag = "1")]
pub report_id: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "2")]
pub object_id: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "3")]
pub task_id: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "4")]
pub state: ::core::option::Option<::prost::alloc::string::String>,
#[prost(float, optional, tag = "7")]
pub detection_confidence: ::core::option::Option<f32>,
#[prost(message, repeated, tag = "8")]
pub track_info: ::prost::alloc::vec::Vec<detection_report::TrackObjectInfo>,
#[prost(message, optional, tag = "9")]
pub prediction_location: ::core::option::Option<detection_report::PredictedLocation>,
#[prost(message, repeated, tag = "10")]
pub object_info: ::prost::alloc::vec::Vec<detection_report::TrackObjectInfo>,
#[prost(message, repeated, tag = "11")]
pub classification: ::prost::alloc::vec::Vec<detection_report::DetectionReportClassification>,
#[prost(message, repeated, tag = "12")]
pub behaviour: ::prost::alloc::vec::Vec<detection_report::Behaviour>,
#[prost(message, repeated, tag = "13")]
pub associated_file: ::prost::alloc::vec::Vec<AssociatedFile>,
#[prost(message, repeated, tag = "14")]
pub signal: ::prost::alloc::vec::Vec<detection_report::Signal>,
#[prost(message, repeated, tag = "15")]
pub associated_detection: ::prost::alloc::vec::Vec<AssociatedDetection>,
#[prost(message, repeated, tag = "16")]
pub derived_detection: ::prost::alloc::vec::Vec<detection_report::DerivedDetection>,
#[prost(string, optional, tag = "22")]
pub colour: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "23")]
pub id: ::core::option::Option<::prost::alloc::string::String>,
#[prost(oneof = "detection_report::LocationOneof", tags = "5, 6")]
pub location_oneof: ::core::option::Option<detection_report::LocationOneof>,
#[prost(oneof = "detection_report::VelocityOneof", tags = "19")]
pub velocity_oneof: ::core::option::Option<detection_report::VelocityOneof>,
}
pub mod detection_report {
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PredictedLocation {
#[prost(message, optional, tag = "3")]
pub predicted_timestamp: ::core::option::Option<::prost_types::Timestamp>,
#[prost(oneof = "predicted_location::PredictedLocationOneof", tags = "1, 2")]
pub predicted_location_oneof:
::core::option::Option<predicted_location::PredictedLocationOneof>,
}
pub mod predicted_location {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum PredictedLocationOneof {
#[prost(message, tag = "1")]
RangeBearing(super::super::RangeBearing),
#[prost(message, tag = "2")]
Location(super::super::Location),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TrackObjectInfo {
#[prost(string, optional, tag = "1")]
pub r#type: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "2")]
pub value: ::core::option::Option<::prost::alloc::string::String>,
#[prost(float, optional, tag = "3")]
pub error: ::core::option::Option<f32>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DetectionReportClassification {
#[prost(string, optional, tag = "1")]
pub r#type: ::core::option::Option<::prost::alloc::string::String>,
#[prost(float, optional, tag = "2")]
pub confidence: ::core::option::Option<f32>,
#[prost(message, repeated, tag = "3")]
pub sub_class: ::prost::alloc::vec::Vec<SubClass>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SubClass {
#[prost(string, optional, tag = "1")]
pub r#type: ::core::option::Option<::prost::alloc::string::String>,
#[prost(float, optional, tag = "2")]
pub confidence: ::core::option::Option<f32>,
#[prost(int32, optional, tag = "3")]
pub level: ::core::option::Option<i32>,
#[prost(message, repeated, tag = "4")]
pub sub_class: ::prost::alloc::vec::Vec<SubClass>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Behaviour {
#[prost(string, optional, tag = "1")]
pub r#type: ::core::option::Option<::prost::alloc::string::String>,
#[prost(float, optional, tag = "2")]
pub confidence: ::core::option::Option<f32>,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct Signal {
#[prost(float, optional, tag = "1")]
pub amplitude: ::core::option::Option<f32>,
#[prost(float, optional, tag = "2")]
pub start_frequency: ::core::option::Option<f32>,
#[prost(float, optional, tag = "3")]
pub centre_frequency: ::core::option::Option<f32>,
#[prost(float, optional, tag = "4")]
pub stop_frequency: ::core::option::Option<f32>,
#[prost(float, optional, tag = "5")]
pub pulse_duration: ::core::option::Option<f32>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct DerivedDetection {
#[prost(message, optional, tag = "1")]
pub timestamp: ::core::option::Option<::prost_types::Timestamp>,
#[prost(string, optional, tag = "2")]
pub node_id: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "3")]
pub object_id: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum LocationOneof {
#[prost(message, tag = "5")]
RangeBearing(super::RangeBearing),
#[prost(message, tag = "6")]
Location(super::Location),
}
#[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
pub enum VelocityOneof {
#[prost(message, tag = "19")]
EnuVelocity(super::EnuVelocity),
}
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct Error {
#[prost(bytes = "vec", optional, tag = "1")]
pub packet: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
#[prost(string, repeated, tag = "3")]
pub error_message: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Registration {
#[prost(message, repeated, tag = "1")]
pub node_definition: ::prost::alloc::vec::Vec<registration::NodeDefinition>,
#[prost(string, optional, tag = "2")]
pub icd_version: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "3")]
pub name: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "4")]
pub short_name: ::core::option::Option<::prost::alloc::string::String>,
#[prost(message, repeated, tag = "5")]
pub capabilities: ::prost::alloc::vec::Vec<registration::Capability>,
#[prost(message, optional, tag = "6")]
pub status_definition: ::core::option::Option<registration::StatusDefinition>,
#[prost(message, repeated, tag = "7")]
pub mode_definition: ::prost::alloc::vec::Vec<registration::ModeDefinition>,
#[prost(string, repeated, tag = "8")]
pub dependent_nodes: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(message, repeated, tag = "9")]
pub reporting_region: ::prost::alloc::vec::Vec<LocationOrRangeBearing>,
#[prost(message, repeated, tag = "10")]
pub config_data: ::prost::alloc::vec::Vec<registration::ConfigurationData>,
}
pub mod registration {
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct NodeDefinition {
#[prost(enumeration = "NodeType", optional, tag = "1")]
pub node_type: ::core::option::Option<i32>,
#[prost(string, repeated, tag = "2")]
pub node_sub_type: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct Capability {
#[prost(string, optional, tag = "1")]
pub category: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "2")]
pub r#type: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "3")]
pub value: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "4")]
pub units: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StatusDefinition {
#[prost(message, optional, tag = "1")]
pub status_interval: ::core::option::Option<Duration>,
#[prost(message, optional, tag = "2")]
pub location_definition: ::core::option::Option<LocationType>,
#[prost(message, optional, tag = "3")]
pub coverage_definition: ::core::option::Option<LocationType>,
#[prost(message, optional, tag = "4")]
pub obscuration_definition: ::core::option::Option<LocationType>,
#[prost(message, repeated, tag = "5")]
pub status_report: ::prost::alloc::vec::Vec<StatusReport>,
#[prost(message, optional, tag = "6")]
pub field_of_view_definition: ::core::option::Option<LocationType>,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct Duration {
#[prost(enumeration = "TimeUnits", optional, tag = "1")]
pub units: ::core::option::Option<i32>,
#[prost(float, optional, tag = "3")]
pub value: ::core::option::Option<f32>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ModeParameter {
#[prost(string, optional, tag = "1")]
pub r#type: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "2")]
pub value: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct LocationType {
#[prost(string, optional, tag = "5")]
pub zone: ::core::option::Option<::prost::alloc::string::String>,
#[prost(oneof = "location_type::CoordinatesOneof", tags = "1, 2")]
pub coordinates_oneof: ::core::option::Option<location_type::CoordinatesOneof>,
#[prost(oneof = "location_type::DatumOneof", tags = "3, 4")]
pub datum_oneof: ::core::option::Option<location_type::DatumOneof>,
}
pub mod location_type {
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
pub enum CoordinatesOneof {
#[prost(enumeration = "super::super::LocationCoordinateSystem", tag = "1")]
LocationUnits(i32),
#[prost(enumeration = "super::super::RangeBearingCoordinateSystem", tag = "2")]
RangeBearingUnits(i32),
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
pub enum DatumOneof {
#[prost(enumeration = "super::super::LocationDatum", tag = "3")]
LocationDatum(i32),
#[prost(enumeration = "super::super::RangeBearingDatum", tag = "4")]
RangeBearingDatum(i32),
}
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct VelocityType {
#[prost(string, optional, tag = "8")]
pub zone: ::core::option::Option<::prost::alloc::string::String>,
#[prost(oneof = "velocity_type::VelocityUnitsOneof", tags = "4")]
pub velocity_units_oneof: ::core::option::Option<velocity_type::VelocityUnitsOneof>,
#[prost(oneof = "velocity_type::DatumOneof", tags = "6, 7")]
pub datum_oneof: ::core::option::Option<velocity_type::DatumOneof>,
}
pub mod velocity_type {
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
pub enum VelocityUnitsOneof {
#[prost(message, tag = "4")]
EnuVelocityUnits(super::super::EnuVelocityUnits),
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
pub enum DatumOneof {
#[prost(enumeration = "super::super::LocationDatum", tag = "6")]
LocationDatum(i32),
#[prost(enumeration = "super::super::RangeBearingDatum", tag = "7")]
RangeBearingDatum(i32),
}
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct StatusReport {
#[prost(enumeration = "StatusReportCategory", optional, tag = "1")]
pub category: ::core::option::Option<i32>,
#[prost(string, optional, tag = "2")]
pub r#type: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "3")]
pub units: ::core::option::Option<::prost::alloc::string::String>,
#[prost(bool, optional, tag = "4")]
pub on_change: ::core::option::Option<bool>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ModeDefinition {
#[prost(string, optional, tag = "1")]
pub mode_name: ::core::option::Option<::prost::alloc::string::String>,
#[prost(enumeration = "ModeType", optional, tag = "2")]
pub mode_type: ::core::option::Option<i32>,
#[prost(string, optional, tag = "3")]
pub mode_description: ::core::option::Option<::prost::alloc::string::String>,
#[prost(message, optional, tag = "4")]
pub settle_time: ::core::option::Option<Duration>,
#[prost(message, optional, tag = "5")]
pub maximum_latency: ::core::option::Option<Duration>,
#[prost(enumeration = "ScanType", optional, tag = "6")]
pub scan_type: ::core::option::Option<i32>,
#[prost(enumeration = "TrackingType", optional, tag = "7")]
pub tracking_type: ::core::option::Option<i32>,
#[prost(message, optional, tag = "8")]
pub duration: ::core::option::Option<Duration>,
#[prost(message, repeated, tag = "9")]
pub mode_parameter: ::prost::alloc::vec::Vec<ModeParameter>,
#[prost(message, repeated, tag = "10")]
pub detection_definition: ::prost::alloc::vec::Vec<DetectionDefinition>,
#[prost(message, optional, tag = "11")]
pub task: ::core::option::Option<TaskDefinition>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DetectionDefinition {
#[prost(message, optional, tag = "1")]
pub location_type: ::core::option::Option<LocationType>,
#[prost(message, repeated, tag = "2")]
pub detection_performance: ::prost::alloc::vec::Vec<PerformanceValue>,
#[prost(message, repeated, tag = "3")]
pub detection_report: ::prost::alloc::vec::Vec<DetectionReport>,
#[prost(message, repeated, tag = "4")]
pub detection_class_definition: ::prost::alloc::vec::Vec<DetectionClassDefinition>,
#[prost(message, repeated, tag = "5")]
pub behaviour_definition: ::prost::alloc::vec::Vec<BehaviourDefinition>,
#[prost(message, optional, tag = "6")]
pub velocity_type: ::core::option::Option<VelocityType>,
#[prost(message, optional, tag = "7")]
pub geometric_error: ::core::option::Option<GeometricError>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GeometricError {
#[prost(string, optional, tag = "1")]
pub r#type: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "2")]
pub units: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "3")]
pub variation_type: ::core::option::Option<::prost::alloc::string::String>,
#[prost(message, repeated, tag = "4")]
pub performance_value: ::prost::alloc::vec::Vec<PerformanceValue>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PerformanceValue {
#[prost(string, optional, tag = "1")]
pub r#type: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "2")]
pub units: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "3")]
pub unit_value: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "4")]
pub variation_type: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct DetectionReport {
#[prost(enumeration = "DetectionReportCategory", optional, tag = "1")]
pub category: ::core::option::Option<i32>,
#[prost(string, optional, tag = "2")]
pub r#type: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "3")]
pub units: ::core::option::Option<::prost::alloc::string::String>,
#[prost(bool, optional, tag = "4")]
pub on_change: ::core::option::Option<bool>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DetectionClassDefinition {
#[prost(enumeration = "ConfidenceDefinition", optional, tag = "1")]
pub confidence_definition: ::core::option::Option<i32>,
#[prost(message, repeated, tag = "2")]
pub class_performance: ::prost::alloc::vec::Vec<PerformanceValue>,
#[prost(message, repeated, tag = "3")]
pub class_definition: ::prost::alloc::vec::Vec<ClassDefinition>,
#[prost(message, repeated, tag = "4")]
pub taxonomy_dock_definition: ::prost::alloc::vec::Vec<TaxonomyDockDefinition>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ClassDefinition {
#[prost(string, optional, tag = "1")]
pub r#type: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "2")]
pub units: ::core::option::Option<::prost::alloc::string::String>,
#[prost(message, repeated, tag = "3")]
pub sub_class: ::prost::alloc::vec::Vec<SubClass>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SubClass {
#[prost(string, optional, tag = "1")]
pub r#type: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "2")]
pub units: ::core::option::Option<::prost::alloc::string::String>,
#[prost(int32, optional, tag = "3")]
pub level: ::core::option::Option<i32>,
#[prost(message, repeated, tag = "4")]
pub sub_class: ::prost::alloc::vec::Vec<SubClass>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct BehaviourDefinition {
#[prost(string, optional, tag = "1")]
pub r#type: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "2")]
pub units: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TaskDefinition {
#[prost(int32, optional, tag = "1")]
pub concurrent_tasks: ::core::option::Option<i32>,
#[prost(message, optional, tag = "2")]
pub region_definition: ::core::option::Option<RegionDefinition>,
#[prost(message, repeated, tag = "3")]
pub command: ::prost::alloc::vec::Vec<Command>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ClassFilterDefinition {
#[prost(message, repeated, tag = "1")]
pub filter_parameter: ::prost::alloc::vec::Vec<FilterParameter>,
#[prost(message, repeated, tag = "2")]
pub sub_class_definition: ::prost::alloc::vec::Vec<SubClassFilterDefinition>,
#[prost(string, optional, tag = "3")]
pub r#type: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SubClassFilterDefinition {
#[prost(message, repeated, tag = "1")]
pub filter_parameter: ::prost::alloc::vec::Vec<FilterParameter>,
#[prost(int32, optional, tag = "2")]
pub level: ::core::option::Option<i32>,
#[prost(string, optional, tag = "3")]
pub r#type: ::core::option::Option<::prost::alloc::string::String>,
#[prost(message, repeated, tag = "4")]
pub sub_class_definition: ::prost::alloc::vec::Vec<SubClassFilterDefinition>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct FilterParameter {
#[prost(string, optional, tag = "1")]
pub parameter: ::core::option::Option<::prost::alloc::string::String>,
#[prost(enumeration = "super::Operator", repeated, packed = "false", tag = "2")]
pub operators: ::prost::alloc::vec::Vec<i32>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BehaviourFilterDefinition {
#[prost(message, repeated, tag = "1")]
pub filter_parameter: ::prost::alloc::vec::Vec<FilterParameter>,
#[prost(string, optional, tag = "2")]
pub r#type: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Command {
#[prost(string, optional, tag = "2")]
pub units: ::core::option::Option<::prost::alloc::string::String>,
#[prost(message, optional, tag = "3")]
pub completion_time: ::core::option::Option<Duration>,
#[prost(enumeration = "CommandType", optional, tag = "4")]
pub r#type: ::core::option::Option<i32>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RegionDefinition {
#[prost(enumeration = "RegionType", repeated, packed = "false", tag = "1")]
pub region_type: ::prost::alloc::vec::Vec<i32>,
#[prost(message, optional, tag = "2")]
pub settle_time: ::core::option::Option<Duration>,
#[prost(message, repeated, tag = "3")]
pub region_area: ::prost::alloc::vec::Vec<LocationType>,
#[prost(message, repeated, tag = "4")]
pub class_filter_definition: ::prost::alloc::vec::Vec<ClassFilterDefinition>,
#[prost(message, repeated, tag = "5")]
pub behaviour_filter_definition: ::prost::alloc::vec::Vec<BehaviourFilterDefinition>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TaxonomyDockDefinition {
#[prost(string, optional, tag = "1")]
pub dock_class_namespace: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "2")]
pub dock_class: ::core::option::Option<::prost::alloc::string::String>,
#[prost(message, repeated, tag = "3")]
pub extension_subclass: ::prost::alloc::vec::Vec<ExtensionSubclass>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ExtensionSubclass {
#[prost(string, optional, tag = "1")]
pub subclass_namespace: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "2")]
pub subclass_name: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "3")]
pub units: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConfigurationData {
#[prost(string, tag = "1")]
pub manufacturer: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub model: ::prost::alloc::string::String,
#[prost(string, optional, tag = "3")]
pub serial_number: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "4")]
pub hardware_version: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "5")]
pub software_version: ::core::option::Option<::prost::alloc::string::String>,
#[prost(message, repeated, tag = "6")]
pub sub_components: ::prost::alloc::vec::Vec<ConfigurationData>,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum NodeType {
Unspecified = 0,
Other = 1,
Radar = 2,
Lidar = 3,
Camera = 4,
Seismic = 5,
Acoustic = 6,
ProximitySensor = 7,
PassiveRf = 8,
Human = 9,
Chemical = 10,
Biological = 11,
Radiation = 12,
Kinetic = 13,
Jammer = 14,
Cyber = 15,
Ldew = 16,
Rfdew = 17,
MobileNode = 18,
PointableNode = 19,
FusionNode = 20,
}
impl NodeType {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "NODE_TYPE_UNSPECIFIED",
Self::Other => "NODE_TYPE_OTHER",
Self::Radar => "NODE_TYPE_RADAR",
Self::Lidar => "NODE_TYPE_LIDAR",
Self::Camera => "NODE_TYPE_CAMERA",
Self::Seismic => "NODE_TYPE_SEISMIC",
Self::Acoustic => "NODE_TYPE_ACOUSTIC",
Self::ProximitySensor => "NODE_TYPE_PROXIMITY_SENSOR",
Self::PassiveRf => "NODE_TYPE_PASSIVE_RF",
Self::Human => "NODE_TYPE_HUMAN",
Self::Chemical => "NODE_TYPE_CHEMICAL",
Self::Biological => "NODE_TYPE_BIOLOGICAL",
Self::Radiation => "NODE_TYPE_RADIATION",
Self::Kinetic => "NODE_TYPE_KINETIC",
Self::Jammer => "NODE_TYPE_JAMMER",
Self::Cyber => "NODE_TYPE_CYBER",
Self::Ldew => "NODE_TYPE_LDEW",
Self::Rfdew => "NODE_TYPE_RFDEW",
Self::MobileNode => "NODE_TYPE_MOBILE_NODE",
Self::PointableNode => "NODE_TYPE_POINTABLE_NODE",
Self::FusionNode => "NODE_TYPE_FUSION_NODE",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"NODE_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
"NODE_TYPE_OTHER" => Some(Self::Other),
"NODE_TYPE_RADAR" => Some(Self::Radar),
"NODE_TYPE_LIDAR" => Some(Self::Lidar),
"NODE_TYPE_CAMERA" => Some(Self::Camera),
"NODE_TYPE_SEISMIC" => Some(Self::Seismic),
"NODE_TYPE_ACOUSTIC" => Some(Self::Acoustic),
"NODE_TYPE_PROXIMITY_SENSOR" => Some(Self::ProximitySensor),
"NODE_TYPE_PASSIVE_RF" => Some(Self::PassiveRf),
"NODE_TYPE_HUMAN" => Some(Self::Human),
"NODE_TYPE_CHEMICAL" => Some(Self::Chemical),
"NODE_TYPE_BIOLOGICAL" => Some(Self::Biological),
"NODE_TYPE_RADIATION" => Some(Self::Radiation),
"NODE_TYPE_KINETIC" => Some(Self::Kinetic),
"NODE_TYPE_JAMMER" => Some(Self::Jammer),
"NODE_TYPE_CYBER" => Some(Self::Cyber),
"NODE_TYPE_LDEW" => Some(Self::Ldew),
"NODE_TYPE_RFDEW" => Some(Self::Rfdew),
"NODE_TYPE_MOBILE_NODE" => Some(Self::MobileNode),
"NODE_TYPE_POINTABLE_NODE" => Some(Self::PointableNode),
"NODE_TYPE_FUSION_NODE" => Some(Self::FusionNode),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum TimeUnits {
Unspecified = 0,
Nanoseconds = 1,
Microseconds = 2,
Milliseconds = 3,
Seconds = 4,
Minutes = 5,
Hours = 6,
Days = 7,
}
impl TimeUnits {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "TIME_UNITS_UNSPECIFIED",
Self::Nanoseconds => "TIME_UNITS_NANOSECONDS",
Self::Microseconds => "TIME_UNITS_MICROSECONDS",
Self::Milliseconds => "TIME_UNITS_MILLISECONDS",
Self::Seconds => "TIME_UNITS_SECONDS",
Self::Minutes => "TIME_UNITS_MINUTES",
Self::Hours => "TIME_UNITS_HOURS",
Self::Days => "TIME_UNITS_DAYS",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"TIME_UNITS_UNSPECIFIED" => Some(Self::Unspecified),
"TIME_UNITS_NANOSECONDS" => Some(Self::Nanoseconds),
"TIME_UNITS_MICROSECONDS" => Some(Self::Microseconds),
"TIME_UNITS_MILLISECONDS" => Some(Self::Milliseconds),
"TIME_UNITS_SECONDS" => Some(Self::Seconds),
"TIME_UNITS_MINUTES" => Some(Self::Minutes),
"TIME_UNITS_HOURS" => Some(Self::Hours),
"TIME_UNITS_DAYS" => Some(Self::Days),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum StatusReportCategory {
Unspecified = 0,
Sensor = 1,
Power = 2,
Mode = 3,
Status = 4,
}
impl StatusReportCategory {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "STATUS_REPORT_CATEGORY_UNSPECIFIED",
Self::Sensor => "STATUS_REPORT_CATEGORY_SENSOR",
Self::Power => "STATUS_REPORT_CATEGORY_POWER",
Self::Mode => "STATUS_REPORT_CATEGORY_MODE",
Self::Status => "STATUS_REPORT_CATEGORY_STATUS",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"STATUS_REPORT_CATEGORY_UNSPECIFIED" => Some(Self::Unspecified),
"STATUS_REPORT_CATEGORY_SENSOR" => Some(Self::Sensor),
"STATUS_REPORT_CATEGORY_POWER" => Some(Self::Power),
"STATUS_REPORT_CATEGORY_MODE" => Some(Self::Mode),
"STATUS_REPORT_CATEGORY_STATUS" => Some(Self::Status),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum ModeType {
Unspecified = 0,
Permanent = 1,
Temporary = 2,
Default = 3,
}
impl ModeType {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "MODE_TYPE_UNSPECIFIED",
Self::Permanent => "MODE_TYPE_PERMANENT",
Self::Temporary => "MODE_TYPE_TEMPORARY",
Self::Default => "MODE_TYPE_DEFAULT",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"MODE_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
"MODE_TYPE_PERMANENT" => Some(Self::Permanent),
"MODE_TYPE_TEMPORARY" => Some(Self::Temporary),
"MODE_TYPE_DEFAULT" => Some(Self::Default),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum ScanType {
Unspecified = 0,
Fixed = 1,
Scanning = 2,
Steerable = 3,
}
impl ScanType {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "SCAN_TYPE_UNSPECIFIED",
Self::Fixed => "SCAN_TYPE_FIXED",
Self::Scanning => "SCAN_TYPE_SCANNING",
Self::Steerable => "SCAN_TYPE_STEERABLE",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"SCAN_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
"SCAN_TYPE_FIXED" => Some(Self::Fixed),
"SCAN_TYPE_SCANNING" => Some(Self::Scanning),
"SCAN_TYPE_STEERABLE" => Some(Self::Steerable),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum TrackingType {
Unspecified = 0,
None = 1,
Tracklet = 2,
Track = 3,
TrackWithReId = 4,
}
impl TrackingType {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "TRACKING_TYPE_UNSPECIFIED",
Self::None => "TRACKING_TYPE_NONE",
Self::Tracklet => "TRACKING_TYPE_TRACKLET",
Self::Track => "TRACKING_TYPE_TRACK",
Self::TrackWithReId => "TRACKING_TYPE_TRACK_WITH_RE_ID",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"TRACKING_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
"TRACKING_TYPE_NONE" => Some(Self::None),
"TRACKING_TYPE_TRACKLET" => Some(Self::Tracklet),
"TRACKING_TYPE_TRACK" => Some(Self::Track),
"TRACKING_TYPE_TRACK_WITH_RE_ID" => Some(Self::TrackWithReId),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DetectionReportCategory {
Unspecified = 0,
Detection = 1,
Track = 2,
Object = 3,
Signal = 4,
}
impl DetectionReportCategory {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "DETECTION_REPORT_CATEGORY_UNSPECIFIED",
Self::Detection => "DETECTION_REPORT_CATEGORY_DETECTION",
Self::Track => "DETECTION_REPORT_CATEGORY_TRACK",
Self::Object => "DETECTION_REPORT_CATEGORY_OBJECT",
Self::Signal => "DETECTION_REPORT_CATEGORY_SIGNAL",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"DETECTION_REPORT_CATEGORY_UNSPECIFIED" => Some(Self::Unspecified),
"DETECTION_REPORT_CATEGORY_DETECTION" => Some(Self::Detection),
"DETECTION_REPORT_CATEGORY_TRACK" => Some(Self::Track),
"DETECTION_REPORT_CATEGORY_OBJECT" => Some(Self::Object),
"DETECTION_REPORT_CATEGORY_SIGNAL" => Some(Self::Signal),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum ConfidenceDefinition {
Unspecified = 0,
SingleClass = 1,
MultiClass = 2,
}
impl ConfidenceDefinition {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "CONFIDENCE_DEFINITION_UNSPECIFIED",
Self::SingleClass => "CONFIDENCE_DEFINITION_SINGLE_CLASS",
Self::MultiClass => "CONFIDENCE_DEFINITION_MULTI_CLASS",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"CONFIDENCE_DEFINITION_UNSPECIFIED" => Some(Self::Unspecified),
"CONFIDENCE_DEFINITION_SINGLE_CLASS" => Some(Self::SingleClass),
"CONFIDENCE_DEFINITION_MULTI_CLASS" => Some(Self::MultiClass),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum CommandType {
Unspecified = 0,
Request = 1,
DetectionThreshold = 2,
DetectionReportRate = 3,
ClassificationThreshold = 4,
ModeChange = 5,
LookAt = 6,
MoveTo = 7,
Patrol = 8,
Follow = 9,
}
impl CommandType {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "COMMAND_TYPE_UNSPECIFIED",
Self::Request => "COMMAND_TYPE_REQUEST",
Self::DetectionThreshold => "COMMAND_TYPE_DETECTION_THRESHOLD",
Self::DetectionReportRate => "COMMAND_TYPE_DETECTION_REPORT_RATE",
Self::ClassificationThreshold => "COMMAND_TYPE_CLASSIFICATION_THRESHOLD",
Self::ModeChange => "COMMAND_TYPE_MODE_CHANGE",
Self::LookAt => "COMMAND_TYPE_LOOK_AT",
Self::MoveTo => "COMMAND_TYPE_MOVE_TO",
Self::Patrol => "COMMAND_TYPE_PATROL",
Self::Follow => "COMMAND_TYPE_FOLLOW",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"COMMAND_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
"COMMAND_TYPE_REQUEST" => Some(Self::Request),
"COMMAND_TYPE_DETECTION_THRESHOLD" => Some(Self::DetectionThreshold),
"COMMAND_TYPE_DETECTION_REPORT_RATE" => Some(Self::DetectionReportRate),
"COMMAND_TYPE_CLASSIFICATION_THRESHOLD" => Some(Self::ClassificationThreshold),
"COMMAND_TYPE_MODE_CHANGE" => Some(Self::ModeChange),
"COMMAND_TYPE_LOOK_AT" => Some(Self::LookAt),
"COMMAND_TYPE_MOVE_TO" => Some(Self::MoveTo),
"COMMAND_TYPE_PATROL" => Some(Self::Patrol),
"COMMAND_TYPE_FOLLOW" => Some(Self::Follow),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum RegionType {
Unspecified = 0,
AreaOfInterest = 1,
Ignore = 2,
Boundary = 3,
MobileNodeNoGoArea = 4,
MobileNodeGoArea = 5,
}
impl RegionType {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "REGION_TYPE_UNSPECIFIED",
Self::AreaOfInterest => "REGION_TYPE_AREA_OF_INTEREST",
Self::Ignore => "REGION_TYPE_IGNORE",
Self::Boundary => "REGION_TYPE_BOUNDARY",
Self::MobileNodeNoGoArea => "REGION_TYPE_MOBILE_NODE_NO_GO_AREA",
Self::MobileNodeGoArea => "REGION_TYPE_MOBILE_NODE_GO_AREA",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"REGION_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
"REGION_TYPE_AREA_OF_INTEREST" => Some(Self::AreaOfInterest),
"REGION_TYPE_IGNORE" => Some(Self::Ignore),
"REGION_TYPE_BOUNDARY" => Some(Self::Boundary),
"REGION_TYPE_MOBILE_NODE_NO_GO_AREA" => Some(Self::MobileNodeNoGoArea),
"REGION_TYPE_MOBILE_NODE_GO_AREA" => Some(Self::MobileNodeGoArea),
_ => None,
}
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum Operator {
Unspecified = 0,
All = 1,
GreaterThan = 2,
LessThan = 3,
Equal = 4,
}
impl Operator {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "OPERATOR_UNSPECIFIED",
Self::All => "OPERATOR_ALL",
Self::GreaterThan => "OPERATOR_GREATER_THAN",
Self::LessThan => "OPERATOR_LESS_THAN",
Self::Equal => "OPERATOR_EQUAL",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"OPERATOR_UNSPECIFIED" => Some(Self::Unspecified),
"OPERATOR_ALL" => Some(Self::All),
"OPERATOR_GREATER_THAN" => Some(Self::GreaterThan),
"OPERATOR_LESS_THAN" => Some(Self::LessThan),
"OPERATOR_EQUAL" => Some(Self::Equal),
_ => None,
}
}
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct RegistrationAck {
#[prost(bool, optional, tag = "1")]
pub acceptance: ::core::option::Option<bool>,
#[prost(string, repeated, tag = "3")]
pub ack_response_reason: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StatusReport {
#[prost(string, optional, tag = "1")]
pub report_id: ::core::option::Option<::prost::alloc::string::String>,
#[prost(enumeration = "status_report::System", optional, tag = "2")]
pub system: ::core::option::Option<i32>,
#[prost(enumeration = "status_report::Info", optional, tag = "3")]
pub info: ::core::option::Option<i32>,
#[prost(string, optional, tag = "4")]
pub active_task_id: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "5")]
pub mode: ::core::option::Option<::prost::alloc::string::String>,
#[prost(message, optional, tag = "6")]
pub power: ::core::option::Option<status_report::Power>,
#[prost(message, optional, tag = "7")]
pub node_location: ::core::option::Option<Location>,
#[prost(message, optional, tag = "8")]
pub field_of_view: ::core::option::Option<LocationOrRangeBearing>,
#[prost(message, repeated, tag = "10")]
pub obscuration: ::prost::alloc::vec::Vec<LocationOrRangeBearing>,
#[prost(message, repeated, tag = "11")]
pub status: ::prost::alloc::vec::Vec<status_report::Status>,
#[prost(message, repeated, tag = "12")]
pub coverage: ::prost::alloc::vec::Vec<LocationOrRangeBearing>,
}
pub mod status_report {
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct Power {
#[prost(int32, optional, tag = "3")]
pub level: ::core::option::Option<i32>,
#[prost(enumeration = "PowerSource", tag = "4")]
pub source: i32,
#[prost(enumeration = "PowerStatus", tag = "5")]
pub status: i32,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct Status {
#[prost(enumeration = "StatusLevel", optional, tag = "1")]
pub status_level: ::core::option::Option<i32>,
#[prost(string, optional, tag = "3")]
pub status_value: ::core::option::Option<::prost::alloc::string::String>,
#[prost(enumeration = "StatusType", optional, tag = "4")]
pub status_type: ::core::option::Option<i32>,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum System {
Unspecified = 0,
Ok = 1,
Warning = 2,
Error = 3,
Goodbye = 5,
}
impl System {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "SYSTEM_UNSPECIFIED",
Self::Ok => "SYSTEM_OK",
Self::Warning => "SYSTEM_WARNING",
Self::Error => "SYSTEM_ERROR",
Self::Goodbye => "SYSTEM_GOODBYE",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"SYSTEM_UNSPECIFIED" => Some(Self::Unspecified),
"SYSTEM_OK" => Some(Self::Ok),
"SYSTEM_WARNING" => Some(Self::Warning),
"SYSTEM_ERROR" => Some(Self::Error),
"SYSTEM_GOODBYE" => Some(Self::Goodbye),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum PowerSource {
PowersourceUnspecified = 0,
PowersourceOther = 1,
PowersourceMains = 2,
PowersourceInternalBattery = 3,
PowersourceExternalBattery = 4,
PowersourceGenerator = 5,
PowersourceSolarPv = 6,
PowersourceWindTurbine = 7,
PowersourceFuelCell = 8,
}
impl PowerSource {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::PowersourceUnspecified => "POWERSOURCE_UNSPECIFIED",
Self::PowersourceOther => "POWERSOURCE_OTHER",
Self::PowersourceMains => "POWERSOURCE_MAINS",
Self::PowersourceInternalBattery => "POWERSOURCE_INTERNAL_BATTERY",
Self::PowersourceExternalBattery => "POWERSOURCE_EXTERNAL_BATTERY",
Self::PowersourceGenerator => "POWERSOURCE_GENERATOR",
Self::PowersourceSolarPv => "POWERSOURCE_SOLAR_PV",
Self::PowersourceWindTurbine => "POWERSOURCE_WIND_TURBINE",
Self::PowersourceFuelCell => "POWERSOURCE_FUEL_CELL",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"POWERSOURCE_UNSPECIFIED" => Some(Self::PowersourceUnspecified),
"POWERSOURCE_OTHER" => Some(Self::PowersourceOther),
"POWERSOURCE_MAINS" => Some(Self::PowersourceMains),
"POWERSOURCE_INTERNAL_BATTERY" => Some(Self::PowersourceInternalBattery),
"POWERSOURCE_EXTERNAL_BATTERY" => Some(Self::PowersourceExternalBattery),
"POWERSOURCE_GENERATOR" => Some(Self::PowersourceGenerator),
"POWERSOURCE_SOLAR_PV" => Some(Self::PowersourceSolarPv),
"POWERSOURCE_WIND_TURBINE" => Some(Self::PowersourceWindTurbine),
"POWERSOURCE_FUEL_CELL" => Some(Self::PowersourceFuelCell),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum PowerStatus {
PowerstatusUnspecified = 0,
PowerstatusOk = 1,
PowerstatusFault = 2,
}
impl PowerStatus {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::PowerstatusUnspecified => "POWERSTATUS_UNSPECIFIED",
Self::PowerstatusOk => "POWERSTATUS_OK",
Self::PowerstatusFault => "POWERSTATUS_FAULT",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"POWERSTATUS_UNSPECIFIED" => Some(Self::PowerstatusUnspecified),
"POWERSTATUS_OK" => Some(Self::PowerstatusOk),
"POWERSTATUS_FAULT" => Some(Self::PowerstatusFault),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum Info {
Unspecified = 0,
New = 1,
Unchanged = 2,
}
impl Info {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "INFO_UNSPECIFIED",
Self::New => "INFO_NEW",
Self::Unchanged => "INFO_UNCHANGED",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"INFO_UNSPECIFIED" => Some(Self::Unspecified),
"INFO_NEW" => Some(Self::New),
"INFO_UNCHANGED" => Some(Self::Unchanged),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum StatusType {
Unspecified = 0,
InternalFault = 1,
ExternalFault = 2,
Illumination = 3,
Weather = 4,
Clutter = 5,
Exposure = 6,
MotionSensitivity = 7,
PtzStatus = 8,
Pd = 9,
Far = 10,
NotDetecting = 11,
Platform = 12,
Other = 13,
}
impl StatusType {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "STATUS_TYPE_UNSPECIFIED",
Self::InternalFault => "STATUS_TYPE_INTERNAL_FAULT",
Self::ExternalFault => "STATUS_TYPE_EXTERNAL_FAULT",
Self::Illumination => "STATUS_TYPE_ILLUMINATION",
Self::Weather => "STATUS_TYPE_WEATHER",
Self::Clutter => "STATUS_TYPE_CLUTTER",
Self::Exposure => "STATUS_TYPE_EXPOSURE",
Self::MotionSensitivity => "STATUS_TYPE_MOTION_SENSITIVITY",
Self::PtzStatus => "STATUS_TYPE_PTZ_STATUS",
Self::Pd => "STATUS_TYPE_PD",
Self::Far => "STATUS_TYPE_FAR",
Self::NotDetecting => "STATUS_TYPE_NOT_DETECTING",
Self::Platform => "STATUS_TYPE_PLATFORM",
Self::Other => "STATUS_TYPE_OTHER",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"STATUS_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
"STATUS_TYPE_INTERNAL_FAULT" => Some(Self::InternalFault),
"STATUS_TYPE_EXTERNAL_FAULT" => Some(Self::ExternalFault),
"STATUS_TYPE_ILLUMINATION" => Some(Self::Illumination),
"STATUS_TYPE_WEATHER" => Some(Self::Weather),
"STATUS_TYPE_CLUTTER" => Some(Self::Clutter),
"STATUS_TYPE_EXPOSURE" => Some(Self::Exposure),
"STATUS_TYPE_MOTION_SENSITIVITY" => Some(Self::MotionSensitivity),
"STATUS_TYPE_PTZ_STATUS" => Some(Self::PtzStatus),
"STATUS_TYPE_PD" => Some(Self::Pd),
"STATUS_TYPE_FAR" => Some(Self::Far),
"STATUS_TYPE_NOT_DETECTING" => Some(Self::NotDetecting),
"STATUS_TYPE_PLATFORM" => Some(Self::Platform),
"STATUS_TYPE_OTHER" => Some(Self::Other),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum StatusLevel {
Unspecified = 0,
InformationStatus = 2,
WarningStatus = 3,
ErrorStatus = 4,
}
impl StatusLevel {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "STATUS_LEVEL_UNSPECIFIED",
Self::InformationStatus => "STATUS_LEVEL_INFORMATION_STATUS",
Self::WarningStatus => "STATUS_LEVEL_WARNING_STATUS",
Self::ErrorStatus => "STATUS_LEVEL_ERROR_STATUS",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"STATUS_LEVEL_UNSPECIFIED" => Some(Self::Unspecified),
"STATUS_LEVEL_INFORMATION_STATUS" => Some(Self::InformationStatus),
"STATUS_LEVEL_WARNING_STATUS" => Some(Self::WarningStatus),
"STATUS_LEVEL_ERROR_STATUS" => Some(Self::ErrorStatus),
_ => None,
}
}
}
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct FollowObject {
#[prost(string, tag = "1")]
pub follow_object_id: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Task {
#[prost(string, optional, tag = "1")]
pub task_id: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "2")]
pub task_name: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "3")]
pub task_description: ::core::option::Option<::prost::alloc::string::String>,
#[prost(message, optional, tag = "4")]
pub task_start_time: ::core::option::Option<::prost_types::Timestamp>,
#[prost(message, optional, tag = "5")]
pub task_end_time: ::core::option::Option<::prost_types::Timestamp>,
#[prost(enumeration = "task::Control", optional, tag = "6")]
pub control: ::core::option::Option<i32>,
#[prost(message, repeated, tag = "7")]
pub region: ::prost::alloc::vec::Vec<task::Region>,
#[prost(message, optional, tag = "8")]
pub command: ::core::option::Option<task::Command>,
}
pub mod task {
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Command {
#[prost(string, optional, tag = "8")]
pub command_parameter: ::core::option::Option<::prost::alloc::string::String>,
#[prost(oneof = "command::Command", tags = "1, 2, 3, 4, 5, 6, 9, 10, 11")]
pub command: ::core::option::Option<command::Command>,
}
pub mod command {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Command {
#[prost(string, tag = "1")]
Request(::prost::alloc::string::String),
#[prost(enumeration = "super::DiscreteThreshold", tag = "2")]
DetectionThreshold(i32),
#[prost(enumeration = "super::DiscreteThreshold", tag = "3")]
DetectionReportRate(i32),
#[prost(enumeration = "super::DiscreteThreshold", tag = "4")]
ClassificationThreshold(i32),
#[prost(string, tag = "5")]
ModeChange(::prost::alloc::string::String),
#[prost(message, tag = "6")]
LookAt(super::super::LocationOrRangeBearing),
#[prost(message, tag = "9")]
MoveTo(super::super::LocationList),
#[prost(message, tag = "10")]
Patrol(super::super::LocationList),
#[prost(message, tag = "11")]
Follow(super::super::FollowObject),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Region {
#[prost(enumeration = "RegionType", optional, tag = "1")]
pub r#type: ::core::option::Option<i32>,
#[prost(string, optional, tag = "2")]
pub region_id: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "3")]
pub region_name: ::core::option::Option<::prost::alloc::string::String>,
#[prost(message, optional, tag = "4")]
pub region_area: ::core::option::Option<super::LocationOrRangeBearing>,
#[prost(message, repeated, tag = "5")]
pub class_filter: ::prost::alloc::vec::Vec<ClassFilter>,
#[prost(message, repeated, tag = "6")]
pub behaviour_filter: ::prost::alloc::vec::Vec<BehaviourFilter>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ClassFilter {
#[prost(message, optional, tag = "1")]
pub parameter: ::core::option::Option<Parameter>,
#[prost(string, optional, tag = "2")]
pub r#type: ::core::option::Option<::prost::alloc::string::String>,
#[prost(message, repeated, tag = "3")]
pub sub_class_filter: ::prost::alloc::vec::Vec<SubClassFilter>,
#[prost(enumeration = "DiscreteThreshold", optional, tag = "4")]
pub priority: ::core::option::Option<i32>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SubClassFilter {
#[prost(message, optional, tag = "1")]
pub parameter: ::core::option::Option<Parameter>,
#[prost(string, optional, tag = "2")]
pub r#type: ::core::option::Option<::prost::alloc::string::String>,
#[prost(message, repeated, tag = "3")]
pub sub_class_filter: ::prost::alloc::vec::Vec<SubClassFilter>,
#[prost(enumeration = "DiscreteThreshold", optional, tag = "4")]
pub priority: ::core::option::Option<i32>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BehaviourFilter {
#[prost(message, optional, tag = "1")]
pub parameter: ::core::option::Option<Parameter>,
#[prost(string, optional, tag = "2")]
pub r#type: ::core::option::Option<::prost::alloc::string::String>,
#[prost(enumeration = "DiscreteThreshold", optional, tag = "3")]
pub priority: ::core::option::Option<i32>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Parameter {
#[prost(string, optional, tag = "1")]
pub name: ::core::option::Option<::prost::alloc::string::String>,
#[prost(enumeration = "super::Operator", optional, tag = "2")]
pub operator: ::core::option::Option<i32>,
#[prost(float, optional, tag = "3")]
pub value: ::core::option::Option<f32>,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum Control {
Unspecified = 0,
Start = 1,
Stop = 2,
Pause = 3,
}
impl Control {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "CONTROL_UNSPECIFIED",
Self::Start => "CONTROL_START",
Self::Stop => "CONTROL_STOP",
Self::Pause => "CONTROL_PAUSE",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"CONTROL_UNSPECIFIED" => Some(Self::Unspecified),
"CONTROL_START" => Some(Self::Start),
"CONTROL_STOP" => Some(Self::Stop),
"CONTROL_PAUSE" => Some(Self::Pause),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DiscreteThreshold {
Unspecified = 0,
Low = 1,
Medium = 2,
High = 3,
}
impl DiscreteThreshold {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "DISCRETE_THRESHOLD_UNSPECIFIED",
Self::Low => "DISCRETE_THRESHOLD_LOW",
Self::Medium => "DISCRETE_THRESHOLD_MEDIUM",
Self::High => "DISCRETE_THRESHOLD_HIGH",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"DISCRETE_THRESHOLD_UNSPECIFIED" => Some(Self::Unspecified),
"DISCRETE_THRESHOLD_LOW" => Some(Self::Low),
"DISCRETE_THRESHOLD_MEDIUM" => Some(Self::Medium),
"DISCRETE_THRESHOLD_HIGH" => Some(Self::High),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum RegionType {
Unspecified = 0,
AreaOfInterest = 1,
Ignore = 2,
Boundary = 3,
MobileNodeNoGoArea = 4,
MobileNodeGoArea = 5,
}
impl RegionType {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "REGION_TYPE_UNSPECIFIED",
Self::AreaOfInterest => "REGION_TYPE_AREA_OF_INTEREST",
Self::Ignore => "REGION_TYPE_IGNORE",
Self::Boundary => "REGION_TYPE_BOUNDARY",
Self::MobileNodeNoGoArea => "REGION_TYPE_MOBILE_NODE_NO_GO_AREA",
Self::MobileNodeGoArea => "REGION_TYPE_MOBILE_NODE_GO_AREA",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"REGION_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
"REGION_TYPE_AREA_OF_INTEREST" => Some(Self::AreaOfInterest),
"REGION_TYPE_IGNORE" => Some(Self::Ignore),
"REGION_TYPE_BOUNDARY" => Some(Self::Boundary),
"REGION_TYPE_MOBILE_NODE_NO_GO_AREA" => Some(Self::MobileNodeNoGoArea),
"REGION_TYPE_MOBILE_NODE_GO_AREA" => Some(Self::MobileNodeGoArea),
_ => None,
}
}
}
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct TaskAck {
#[prost(string, optional, tag = "1")]
pub task_id: ::core::option::Option<::prost::alloc::string::String>,
#[prost(enumeration = "task_ack::TaskStatus", optional, tag = "2")]
pub task_status: ::core::option::Option<i32>,
#[prost(message, optional, tag = "4")]
pub associated_file: ::core::option::Option<AssociatedFile>,
#[prost(string, repeated, tag = "5")]
pub reason: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
pub mod task_ack {
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum TaskStatus {
Unspecified = 0,
Accepted = 1,
Rejected = 2,
Completed = 3,
Failed = 4,
}
impl TaskStatus {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "TASK_STATUS_UNSPECIFIED",
Self::Accepted => "TASK_STATUS_ACCEPTED",
Self::Rejected => "TASK_STATUS_REJECTED",
Self::Completed => "TASK_STATUS_COMPLETED",
Self::Failed => "TASK_STATUS_FAILED",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"TASK_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
"TASK_STATUS_ACCEPTED" => Some(Self::Accepted),
"TASK_STATUS_REJECTED" => Some(Self::Rejected),
"TASK_STATUS_COMPLETED" => Some(Self::Completed),
"TASK_STATUS_FAILED" => Some(Self::Failed),
_ => None,
}
}
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SapientMessage {
#[prost(message, optional, tag = "1")]
pub timestamp: ::core::option::Option<::prost_types::Timestamp>,
#[prost(string, optional, tag = "2")]
pub node_id: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "3")]
pub destination_id: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag = "13")]
pub additional_information: ::core::option::Option<::prost::alloc::string::String>,
#[prost(
oneof = "sapient_message::Content",
tags = "4, 5, 6, 7, 8, 9, 10, 11, 12"
)]
pub content: ::core::option::Option<sapient_message::Content>,
}
pub mod sapient_message {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Content {
#[prost(message, tag = "4")]
Registration(super::Registration),
#[prost(message, tag = "5")]
RegistrationAck(super::RegistrationAck),
#[prost(message, tag = "6")]
StatusReport(super::StatusReport),
#[prost(message, tag = "7")]
DetectionReport(super::DetectionReport),
#[prost(message, tag = "8")]
Task(super::Task),
#[prost(message, tag = "9")]
TaskAck(super::TaskAck),
#[prost(message, tag = "10")]
Alert(super::Alert),
#[prost(message, tag = "11")]
AlertAck(super::AlertAck),
#[prost(message, tag = "12")]
Error(super::Error),
}
}