pub struct CONTROL_STATUS_DATA {
pub flags: GcsControlStatusFlags,
pub gcs_main: u8,
pub gcs_secondary: [u8; 10],
}dialect-development only.Expand description
Information about GCS(s) in control of this MAV. This should be broadcast at low rate (nominally 1 Hz) and emitted when ownership or takeover status change. Components in the system should only accept “state changing commands/messages” from any system id in gcs_main or gcs_secondary. - In single-owner mode there is a single GCS that can send “state changing commands/messages” listed in gcs_main (gcs_secondary must be set to all-zero). - In multi-owner mode, all GCS with ids in gcs_main and gcs_secondary can send “state changing commands/messages”. However gcs_main is the only GCS that can perform “special controlled operations” such as manual control. - Control over ownership of the gcs_main role is requested using MAV_CMD_REQUEST_OPERATOR_CONTROL. - GCS in gcs_secondary are set by the flight stack (cannot be set by this mechanism). It should only include IDs for connected GCS. If more than 11 GCS are in control and visible, the flight stack will at most be able to publish 11.
ID: 512
Fields§
§flags: GcsControlStatusFlagsControl status. For example, whether takeover of the gcs_main role is allowed, and whether this CONTROL_STATUS instance defines the default controlling GCS for the whole system.
gcs_main: u8System ID of GCS in control. 0: no GCS in control.
gcs_secondary: [u8; 10]System IDs from which the system can recieve state-changing commands/messages in multi-control mode. All values should be zero for single-ower mode.
Implementations§
Trait Implementations§
Source§impl<'arbitrary> Arbitrary<'arbitrary> for CONTROL_STATUS_DATA
impl<'arbitrary> Arbitrary<'arbitrary> for CONTROL_STATUS_DATA
Source§fn arbitrary(u: &mut Unstructured<'arbitrary>) -> Result<Self>
fn arbitrary(u: &mut Unstructured<'arbitrary>) -> Result<Self>
Self from the given unstructured data. Read moreSource§fn arbitrary_take_rest(u: Unstructured<'arbitrary>) -> Result<Self>
fn arbitrary_take_rest(u: Unstructured<'arbitrary>) -> Result<Self>
Self from the entirety of the given
unstructured data. Read moreSource§impl Clone for CONTROL_STATUS_DATA
impl Clone for CONTROL_STATUS_DATA
Source§fn clone(&self) -> CONTROL_STATUS_DATA
fn clone(&self) -> CONTROL_STATUS_DATA
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CONTROL_STATUS_DATA
impl Debug for CONTROL_STATUS_DATA
Source§impl Default for CONTROL_STATUS_DATA
impl Default for CONTROL_STATUS_DATA
Source§impl<'de> Deserialize<'de> for CONTROL_STATUS_DATA
impl<'de> Deserialize<'de> for CONTROL_STATUS_DATA
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl MessageData for CONTROL_STATUS_DATA
impl MessageData for CONTROL_STATUS_DATA
Source§impl PartialEq for CONTROL_STATUS_DATA
impl PartialEq for CONTROL_STATUS_DATA
Source§impl Serialize for CONTROL_STATUS_DATA
impl Serialize for CONTROL_STATUS_DATA
impl StructuralPartialEq for CONTROL_STATUS_DATA
Source§impl TS for CONTROL_STATUS_DATA
impl TS for CONTROL_STATUS_DATA
Source§type WithoutGenerics = CONTROL_STATUS_DATA
type WithoutGenerics = CONTROL_STATUS_DATA
WithoutGenerics should just be Self.
If the type does have generic parameters, then all generic parameters must be replaced with
a dummy type, e.g ts_rs::Dummy or ().
The only requirement for these dummy types is that EXPORT_TO must be None. Read moreSource§type OptionInnerType = CONTROL_STATUS_DATA
type OptionInnerType = CONTROL_STATUS_DATA
std::option::Option<T>, then this associated type is set to T.
All other implementations of TS should set this type to Self instead.Source§fn docs() -> Option<String>
fn docs() -> Option<String>
TS is derived, docs are
automatically read from your doc comments or #[doc = ".."] attributesSource§fn decl_concrete() -> String
fn decl_concrete() -> String
TS::decl().
If this type is not generic, then this function is equivalent to TS::decl().Source§fn decl() -> String
fn decl() -> String
type User = { user_id: number, ... }.
This function will panic if the type has no declaration. Read moreSource§fn inline() -> String
fn inline() -> String
{ user_id: number }.
This function will panic if the type cannot be inlined.Source§fn inline_flattened() -> String
fn inline_flattened() -> String
This function will panic if the type cannot be flattened.
Source§fn visit_generics(v: &mut impl TypeVisitor)where
Self: 'static,
fn visit_generics(v: &mut impl TypeVisitor)where
Self: 'static,
Source§fn output_path() -> Option<PathBuf>
fn output_path() -> Option<PathBuf>
T should be exported.The returned path does not include the base directory from
TS_RS_EXPORT_DIR. Read moreSource§fn visit_dependencies(v: &mut impl TypeVisitor)where
Self: 'static,
fn visit_dependencies(v: &mut impl TypeVisitor)where
Self: 'static,
§fn dependencies() -> Vec<Dependency>where
Self: 'static,
fn dependencies() -> Vec<Dependency>where
Self: 'static,
§fn export() -> Result<(), ExportError>where
Self: 'static,
fn export() -> Result<(), ExportError>where
Self: 'static,
TS::export_all]. Read more§fn export_all() -> Result<(), ExportError>where
Self: 'static,
fn export_all() -> Result<(), ExportError>where
Self: 'static,
To export only this type, without its dependencies, use [
TS::export]. Read more§fn export_all_to(out_dir: impl AsRef<Path>) -> Result<(), ExportError>where
Self: 'static,
fn export_all_to(out_dir: impl AsRef<Path>) -> Result<(), ExportError>where
Self: 'static,
To export only this type, without its dependencies, use [
TS::export]. Read more§fn export_to_string() -> Result<String, ExportError>where
Self: 'static,
fn export_to_string() -> Result<String, ExportError>where
Self: 'static,
§fn default_output_path() -> Option<PathBuf>
fn default_output_path() -> Option<PathBuf>
T should be exported. Read more