gnss_corrections.h
Go to the documentation of this file.
1 /**************************************************************************/ /**
2  * @brief GNSS corrections messages.
3  * @file
4  ******************************************************************************/
5 
6 #pragma once
7 
9 
10 namespace point_one {
11 namespace fusion_engine {
12 namespace messages {
13 
14 // Enforce 4-byte alignment and packing of all data structures and values.
15 // Floating point values are aligned on platforms that require it. This is done
16 // with a combination of setting struct attributes, and manual alignment
17 // within the definitions. See the "Message Packing" section of the README.
18 #pragma pack(push, 1)
19 
20 /**
21  * @defgroup gnss_corrections GNSS Corrections Message Definitions
22  * @brief Messages containing GNSS corrections.
23  * @ingroup messages
24  *
25  * See also @ref messages.
26  */
27 
28 /**
29  * @brief L-band frame contents (@ref MessageType::LBAND_FRAME, version 1.0).
30  * @ingroup gnss_corrections
31  */
33  static constexpr MessageType MESSAGE_TYPE = MessageType::LBAND_FRAME;
34  static constexpr uint8_t MESSAGE_VERSION = 0;
35 
36  /**
37  * The system time when the frame was received (in nanoseconds). Note that
38  * this is not synchronized to other P1 systems or GNSS.
39  */
40  int64_t system_time_ns = 0;
41 
42  /** Number of bytes in this data payload. */
43  uint16_t user_data_size_bytes = 0;
44 
45  /** Count of bit errors found in the data frame. */
46  uint16_t bit_error_count = 0;
47 
48  /** Power of the signal (dB). */
49  uint8_t signal_power_db = 0;
50 
51  uint8_t reserved[3] = {0};
52 
53  /**
54  * The offset from the center frequency (Hz). This includes effects from user
55  * motion, receiver clock, and satellite clock errors.
56  */
57  float doppler_hz = 0;
58 
59  /**
60  * The beginning of the demodulated L-band frame data.
61  */
62  // uint8_t data_payload[0];
63 };
64 
65 #pragma pack(pop)
66 
67 } // namespace messages
68 } // namespace fusion_engine
69 } // namespace point_one
MessageType
Identifiers for the defined output message types.
Definition: defs.h:34
#define P1_ALIGNAS(N)
Definition: portability.h:57
@ LBAND_FRAME
LBandFrameMessage
The base class for all message payloads.
Definition: defs.h:687
GNSS signal and frequency type definitions.
Definition: logging.h:38
L-band frame contents (MessageType::LBAND_FRAME, version 1.0).
Point One FusionEngine output message common definitions.