pub struct TIMESYNC_DATA {
pub tc1: i64,
pub ts1: i64,
pub target_system: u8,
pub target_component: u8,
}dialect-python_array_test only.Expand description
Time synchronization message. The message is used for both timesync requests and responses. The request is sent with ts1=syncing component timestamp and tc1=0, and may be broadcast or targeted to a specific system/component. The response is sent with ts1=syncing component timestamp (mirror back unchanged), and tc1=responding component timestamp, with the target_system and target_component set to ids of the original request. Systems can determine if they are receiving a request or response based on the value of tc. If the response has target_system==target_component==0 the remote system has not been updated to use the component IDs and cannot reliably timesync; the requester may report an error. Timestamps are UNIX Epoch time or time since system boot in nanoseconds (the timestamp format can be inferred by checking for the magnitude of the number; generally it doesn’t matter as only the offset is used). The message sequence is repeated numerous times with results being filtered/averaged to estimate the offset. See also: https://mavlink.io/en/services/timesync.html.
ID: 111
Fields§
§tc1: i64Time sync timestamp 1. Syncing: 0. Responding: Timestamp of responding component.
ts1: i64Time sync timestamp 2. Timestamp of syncing component (mirrored in response).
target_system: u8Target system id. Request: 0 (broadcast) or id of specific system. Response must contain system id of the requesting component.
target_component: u8Target component id. Request: 0 (broadcast) or id of specific component. Response must contain component id of the requesting component.
Implementations§
Trait Implementations§
Source§impl<'arbitrary> Arbitrary<'arbitrary> for TIMESYNC_DATA
impl<'arbitrary> Arbitrary<'arbitrary> for TIMESYNC_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 TIMESYNC_DATA
impl Clone for TIMESYNC_DATA
Source§fn clone(&self) -> TIMESYNC_DATA
fn clone(&self) -> TIMESYNC_DATA
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for TIMESYNC_DATA
impl Debug for TIMESYNC_DATA
Source§impl Default for TIMESYNC_DATA
impl Default for TIMESYNC_DATA
Source§impl<'de> Deserialize<'de> for TIMESYNC_DATA
impl<'de> Deserialize<'de> for TIMESYNC_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 TIMESYNC_DATA
impl MessageData for TIMESYNC_DATA
Source§impl PartialEq for TIMESYNC_DATA
impl PartialEq for TIMESYNC_DATA
Source§impl Serialize for TIMESYNC_DATA
impl Serialize for TIMESYNC_DATA
Source§impl TS for TIMESYNC_DATA
impl TS for TIMESYNC_DATA
Source§type WithoutGenerics = TIMESYNC_DATA
type WithoutGenerics = TIMESYNC_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 = TIMESYNC_DATA
type OptionInnerType = TIMESYNC_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