Struct mavlink::ualberta::TIMESYNC_DATA
source · pub struct TIMESYNC_DATA {
pub tc1: i64,
pub ts1: i64,
pub target_system: u8,
pub target_component: u8,
}
ualberta
only.Expand description
id: 111
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 requestor 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..
Fields§
§tc1: i64
Time sync timestamp 1. Syncing: 0. Responding: Timestamp of responding component..
ts1: i64
Time sync timestamp 2. Timestamp of syncing component (mirrored in response)..
target_system: u8
Target system id. Request: 0 (broadcast) or id of specific system. Response must contain system id of the requesting component..
target_component: u8
Target component id. Request: 0 (broadcast) or id of specific component. Response must contain component id of the requesting component..
Implementations§
source§impl TIMESYNC_DATA
impl TIMESYNC_DATA
pub const ENCODED_LEN: usize = 18usize
pub const DEFAULT: Self = _
Trait Implementations§
source§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
const ID: u32 = 111u32
const NAME: &'static str = "TIMESYNC"
const EXTRA_CRC: u8 = 34u8
const ENCODED_LEN: usize = 18usize
type Message = MavMessage
fn deser(_version: MavlinkVersion, __input: &[u8]) -> Result<Self, ParserError>
fn ser(&self, version: MavlinkVersion, bytes: &mut [u8]) -> usize
source§impl PartialEq for TIMESYNC_DATA
impl PartialEq for TIMESYNC_DATA
source§impl Serialize for TIMESYNC_DATA
impl Serialize for TIMESYNC_DATA
impl StructuralPartialEq for TIMESYNC_DATA
Auto Trait Implementations§
impl Freeze for TIMESYNC_DATA
impl RefUnwindSafe for TIMESYNC_DATA
impl Send for TIMESYNC_DATA
impl Sync for TIMESYNC_DATA
impl Unpin for TIMESYNC_DATA
impl UnwindSafe for TIMESYNC_DATA
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)