pub struct MsgPpsTime {
    pub sender_id: Option<u16>,
    pub time: u64,
    pub flags: u8,
}
Expand description

Local time at detection of PPS pulse

The PPS time message contains the value of the sender’s local time in microseconds at the moment a pulse is detected on the PPS input. This is to be used for synchronisation of sensor data sampled with a local timestamp (e.g. IMU or wheeltick messages) where GNSS time is unknown to the sender.

The local time used to timestamp the PPS pulse must be generated by the same clock which is used to timestamp the IMU/wheel sensor data and should follow the same roll-over rules (i.e. it should roll over to zero after 604800 seconds). A separate MSG_PPS_TIME message should be sent for each source of sensor data which uses local timestamping. The sender ID for each of these MSG_PPS_TIME messages should match the sender ID of the respective sensor data.

Fields§

§sender_id: Option<u16>

The message sender_id

§time: u64

Local time in microseconds

§flags: u8

Status flags

Implementations§

source§

impl MsgPpsTime

source

pub fn reserved_set_to_zero(&self) -> u8

Gets the reserved_set_to_zero stored in flags.

source

pub fn set_reserved_set_to_zero(&mut self, reserved_set_to_zero: u8)

Sets the reserved_set_to_zero bitrange of flags.

source

pub fn time_uncertainty(&self) -> Result<TimeUncertainty, u8>

Gets the TimeUncertainty stored in the flags bitfield.

Returns Ok if the bitrange contains a known TimeUncertainty variant. Otherwise the value of the bitrange is returned as an Err(u8). This may be because of a malformed message, or because new variants of TimeUncertainty were added.

source

pub fn set_time_uncertainty(&mut self, time_uncertainty: TimeUncertainty)

Set the bitrange corresponding to the TimeUncertainty of the flags bitfield.

Trait Implementations§

source§

impl Clone for MsgPpsTime

source§

fn clone(&self) -> MsgPpsTime

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl ConcreteMessage for MsgPpsTime

source§

const MESSAGE_TYPE: u16 = 65_288u16

The message type.
source§

const MESSAGE_NAME: &'static str = "MSG_PPS_TIME"

The message name.
source§

impl Debug for MsgPpsTime

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for MsgPpsTime

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl FriendlyName for MsgPpsTime

source§

fn friendly_name() -> &'static str

source§

impl From<MsgPpsTime> for Sbp

source§

fn from(msg: MsgPpsTime) -> Self

Converts to this type from the input type.
source§

impl PartialEq for MsgPpsTime

source§

fn eq(&self, other: &MsgPpsTime) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl SbpMessage for MsgPpsTime

source§

fn message_name(&self) -> &'static str

Get the message name.
source§

fn message_type(&self) -> Option<u16>

Get the message type.
source§

fn sender_id(&self) -> Option<u16>

Get the sender_id if it is set.
source§

fn set_sender_id(&mut self, new_id: u16)

Set the sender id.
source§

fn encoded_len(&self) -> usize

Number of bytes this message will take on the wire.
source§

fn is_valid(&self) -> bool

Tells you if the message is valid or if it is not a valid message and may need to be special cased at certain points.
source§

fn into_valid_msg(self) -> Result<Self, Invalid>

source§

fn gps_time(&self) -> Option<Result<MessageTime, GpsTimeError>>

Get the GPS time associated with the message.
source§

fn friendly_name(&self) -> &'static str

Get friendly name associated with the message.
source§

impl Serialize for MsgPpsTime

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl TryFrom<Sbp> for MsgPpsTime

§

type Error = TryFromSbpError

The type returned in the event of a conversion error.
source§

fn try_from(msg: Sbp) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl StructuralPartialEq for MsgPpsTime

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> Event for T
where T: ConcreteMessage,

source§

const MESSAGE_TYPES: &'static [u16] = const MESSAGE_TYPES: &'static [u16] = &[T::MESSAGE_TYPE];

The message types that correspond to this event. An empty slice means all messages.
source§

fn from_sbp(msg: Sbp) -> T

Create an instance of this event from an SBP message. This message will only be called if the message type is in Event::MESSAGE_TYPES.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,