Skip to main content

ublox/ubx_packets/packets/
ack.rs

1#[cfg(feature = "serde")]
2use super::SerializeUbxPacketFields;
3#[cfg(feature = "serde")]
4use crate::serde::ser::SerializeMap;
5
6use crate::{error::ParserError, UbxPacketMeta};
7use ublox_derive::ubx_packet_recv;
8
9/// Messages in this class are sent as a result of a CFG message being
10/// received, decoded and processed by thereceiver.
11#[ubx_packet_recv]
12#[ubx(class = 5, id = 1, fixed_payload_len = 2)]
13struct AckAck {
14    /// Class ID of the Acknowledged Message
15    class: u8,
16
17    /// Message ID of the Acknowledged Message
18    msg_id: u8,
19}
20
21impl AckAckRef<'_> {
22    pub fn is_ack_for<T: UbxPacketMeta>(&self) -> bool {
23        self.class() == T::CLASS && self.msg_id() == T::ID
24    }
25}
26
27/// Message Not-Acknowledge
28#[ubx_packet_recv]
29#[ubx(class = 5, id = 0, fixed_payload_len = 2)]
30struct AckNak {
31    /// Class ID of the Acknowledged Message
32    class: u8,
33
34    /// Message ID of the Acknowledged Message
35    msg_id: u8,
36}
37
38impl AckNakRef<'_> {
39    pub fn is_nak_for<T: UbxPacketMeta>(&self) -> bool {
40        self.class() == T::CLASS && self.msg_id() == T::ID
41    }
42}