Fixposition SDK 0.0.0-heads/main-0-g97f6014
Collection of c++ libraries and apps for use with Fixposition products on Linux
Loading...
Searching...
No Matches
ubx.hpp
Go to the documentation of this file.
1// clang-format off
2/**
3 * \verbatim
4 * ___ ___
5 * \ \ / /
6 * \ \/ / Copyright (c) Fixposition AG (www.fixposition.com) and contributors
7 * / /\ \ License: see the LICENSE file
8 * /__/ \__\
9 *
10 * Based on work by flipflip (https://github.com/phkehl)
11 * The information on message structures, IDs, descriptions etc. in this file are from publicly available data, such as:
12 * - u-blox ZED-F9P Interface Description (HPG 1.50) (https://www.u-blox.com/en/docs/UBXDOC-963802114-12815), copyright (c) 2024 u-blox AG
13 * - u-blox ZED-F9T Interface Description (R02) (https://www.u-blox.com/en/docs/UBX-19003606), copyright (c) 2020 u-blox AG
14 * - u-blox NEO-M9N Interface description (SPG 4.04) (https://www.u-blox.com/en/docs/UBX-19035940), copyright (c) 2020 u-blox AG
15 * - u-blox ZED-F9R Interface description (HPS 1.20) (https://www.u-blox.com/en/docs/UBX-19056845), copyright (c) 2020 u-blox AG
16 * - u-blox F9 HPS 1.21 Interface Description (ZEF-F9R) (https://www.u-blox.com/en/docs/UBX-21019746), copyright (c) 2021 u-blox AG
17 * - u-center 20.01, copyright (c) 2020 u-blox AG
18 * \endverbatim
19 *
20 * @file
21 * @brief Fixposition SDK: Parser UBX routines and types
22 *
23 * @page FPSDK_COMMON_PARSER_UBX Parser UBX routines and types
24 *
25 * **API**: fpsdk_common/parser/ubx.hpp and fpsdk::common::parser::ubx
26 *
27 */
28// clang-format on
29#ifndef __FPSDK_COMMON_PARSER_UBX_HPP__
30#define __FPSDK_COMMON_PARSER_UBX_HPP__
31
32/* LIBC/STL */
33#include <array>
34#include <cmath>
35#include <cstdint>
36#include <string>
37#include <vector>
38
39/* EXTERNAL */
40
41/* PACKAGE */
42
43namespace fpsdk {
44namespace common {
45namespace parser {
46/**
47 * @brief Parser UBX routines and types
48 */
49namespace ubx {
50/* ****************************************************************************************************************** */
51
52// Doxygen is easily confused.. :-/
53//! Message struct that must be packed
54#ifndef _DOXYGEN_
55# define UBX_PACKED __attribute__((packed))
56#else
57# define UBX_PACKED /* packed */
58#endif
59
60static constexpr std::size_t UBX_FRAME_SIZE = 8; //!< Size (in bytes) of UBX frame
61static constexpr std::size_t UBX_HEAD_SIZE = 6; //!< Size of UBX frame header
62static constexpr uint8_t UBX_SYNC_1 = 0xb5; //!< UBX frame sync char 1
63static constexpr uint8_t UBX_SYNC_2 = 0x62; //!< UBX frame sync char 2
64
65/**
66 * @brief Get class ID from message
67 *
68 * @param[in] msg Pointer to the start of the message
69 *
70 * @note No check on the data provided is done. This is meant for use as a helper in other functions. Checks on the
71 * \c msg and its data should be carried out there.
72 *
73 * @returns the UBX class ID
74 */
75constexpr uint8_t UbxClsId(const uint8_t* msg)
76{
77 return (((uint8_t*)(msg))[2]);
78}
79
80/**
81 * @brief Get message ID from message
82 *
83 * @param[in] msg Pointer to the start of the message
84 *
85 * @note No check on the data provided is done. This is meant for use as a helper in other functions. Checks on the
86 * \c msg and its data should be carried out there.
87 *
88 * @returns the UBX message ID
89 */
90constexpr uint8_t UbxMsgId(const uint8_t* msg)
91{
92 return (((uint8_t*)(msg))[3]);
93}
94
95/**
96 * @brief Get UBX message name
97 *
98 * Generates a name (string) in the form "UBX-CLSID-MSGID", where CLSID and MSGID are suitable stringifications of the
99 * class ID and message ID if known (for example, "UBX-NAV-PVT", respectively %02X formatted IDs if unknown (for
100 * example, "UBX-NAV-F4" or "UBX-A0-B1").
101 *
102 * @param[out] name String to write the name to
103 * @param[in] size Size of \c name (incl. nul termination)
104 * @param[in] msg Pointer to the UBX message
105 * @param[in] msg_size Size of the \c msg
106 *
107 * @note No check on the data provided is done. The caller must ensure that the data is a valid UBX message.
108 *
109 * @returns true if message name was generated, false if \c name buffer was too small
110 */
111bool UbxGetMessageName(char* name, const std::size_t size, const uint8_t* msg, const std::size_t msg_size);
112
113/**
114 * @brief Get UBX message info
115 *
116 * This stringifies the content of some UBX messages, for debugging.
117 *
118 * @param[out] info String to write the info to
119 * @param[in] size Size of \c name (incl. nul termination)
120 * @param[in] msg Pointer to the UBX message
121 * @param[in] msg_size Size of the \c msg
122 *
123 * @note No check on the data provided is done. The caller must ensure that the data is a valid UBX message.
124 *
125 * @returns true if message info was generated (even if info is empty), false if \c name buffer was too small
126 */
127bool UbxGetMessageInfo(char* info, const std::size_t size, const uint8_t* msg, const std::size_t msg_size);
128
129/**
130 * @brief Make a UBX message
131 *
132 * @param[out] msg The message frame
133 * @param[in] cls_id Class ID
134 * @param[in] msg_id Message ID
135 * @param[in] payload The message payload (up to MAX_UBX_SIZE - UBX_FRAME_SIZE bytes, can be empty)
136 *
137 * @returns true if the message was successfully constructed (\c msg now contains the message),
138 * false if failed contructing the message (payload too large)
139 */
141 std::vector<uint8_t>& msg, const uint8_t cls_id, const uint8_t msg_id, const std::vector<uint8_t>& payload);
142
143/**
144 * @brief Make a UBX message
145 *
146 * @param[out] msg The message frame
147 * @param[in] cls_id Class ID
148 * @param[in] msg_id Message ID
149 * @param[in] payload The message payload (up to MAX_UBX_SIZE - UBX_FRAME_SIZE bytes, can be NULL)
150 * @param[in] payload_size Size of the payload (up to MAX_UBX_SIZE - UBX_FRAME_SIZE, can be 0, even if payload is not
151 * NULL)
152 *
153 * @returns true if the message was successfully constructed (\c msg now contains the message),
154 * false if failed contructing the message (payload too large, bad arguments)
155 */
156bool UbxMakeMessage(std::vector<uint8_t>& msg, const uint8_t cls_id, const uint8_t msg_id, const uint8_t* payload,
157 const std::size_t payload_size);
158
159/**
160 * @brief Stringify UBX-RXM-SFRBX, for debugging
161 *
162 * @param[out] info String to format
163 * @param[in] size Maximum size of string (incl. nul termination)
164 * @param[in] msg The UBX-RXM-SFRBX message
165 * @param[in] msg_size Size of the UBX-RXM-SFRBX message
166 *
167 * @returns the length of the string generated (excl. nul termination)
168 */
169std::size_t UbxRxmSfrbxInfo(char* info, const std::size_t size, const uint8_t* msg, const std::size_t msg_size);
170
171/**
172 * @brief Stringify UBX-MON-VER message (software version and module name)
173 *
174 * @param[out] str String to format
175 * @param[in] size Maximum size of string (incl. nul termination)
176 * @param[in] msg The UBX-MON-VER message
177 * @param[in] msg_size Size of the UBX-MON-VER message
178 *
179 * @returns the length of the string generated (excl. nul termination)
180 */
181std::size_t UbxMonVerToVerStr(char* str, const std::size_t size, const uint8_t* msg, const std::size_t msg_size);
182
183/**
184 * @name UBX classes and messages (names and IDs)
185 *
186 * @{
187 */
188// clang-format off
189// @fp_codegen_begin{FPSDK_COMMON_PARSER_UBX_CLASSES}
190static constexpr uint8_t UBX_ACK_CLSID = 0x05; //!< UBX-ACK class ID
191static constexpr const char* UBX_ACK_STRID = "UBX-ACK"; //!< UBX-ACK class name
192static constexpr uint8_t UBX_CFG_CLSID = 0x06; //!< UBX-CFG class ID
193static constexpr const char* UBX_CFG_STRID = "UBX-CFG"; //!< UBX-CFG class name
194static constexpr uint8_t UBX_ESF_CLSID = 0x10; //!< UBX-ESF class ID
195static constexpr const char* UBX_ESF_STRID = "UBX-ESF"; //!< UBX-ESF class name
196static constexpr uint8_t UBX_INF_CLSID = 0x04; //!< UBX-INF class ID
197static constexpr const char* UBX_INF_STRID = "UBX-INF"; //!< UBX-INF class name
198static constexpr uint8_t UBX_LOG_CLSID = 0x21; //!< UBX-LOG class ID
199static constexpr const char* UBX_LOG_STRID = "UBX-LOG"; //!< UBX-LOG class name
200static constexpr uint8_t UBX_MGA_CLSID = 0x13; //!< UBX-MGA class ID
201static constexpr const char* UBX_MGA_STRID = "UBX-MGA"; //!< UBX-MGA class name
202static constexpr uint8_t UBX_MON_CLSID = 0x0a; //!< UBX-MON class ID
203static constexpr const char* UBX_MON_STRID = "UBX-MON"; //!< UBX-MON class name
204static constexpr uint8_t UBX_NAV_CLSID = 0x01; //!< UBX-NAV class ID
205static constexpr const char* UBX_NAV_STRID = "UBX-NAV"; //!< UBX-NAV class name
206static constexpr uint8_t UBX_NAV2_CLSID = 0x29; //!< UBX-NAV2 class ID
207static constexpr const char* UBX_NAV2_STRID = "UBX-NAV2"; //!< UBX-NAV2 class name
208static constexpr uint8_t UBX_RXM_CLSID = 0x02; //!< UBX-RXM class ID
209static constexpr const char* UBX_RXM_STRID = "UBX-RXM"; //!< UBX-RXM class name
210static constexpr uint8_t UBX_SEC_CLSID = 0x27; //!< UBX-SEC class ID
211static constexpr const char* UBX_SEC_STRID = "UBX-SEC"; //!< UBX-SEC class name
212static constexpr uint8_t UBX_TIM_CLSID = 0x0d; //!< UBX-TIM class ID
213static constexpr const char* UBX_TIM_STRID = "UBX-TIM"; //!< UBX-TIM class name
214static constexpr uint8_t UBX_UPD_CLSID = 0x09; //!< UBX-UPD class ID
215static constexpr const char* UBX_UPD_STRID = "UBX-UPD"; //!< UBX-UPD class name
216static constexpr uint8_t UBX_NMEA_CLSID = 0xf0; //!< UBX-NMEA class ID
217static constexpr const char* UBX_NMEA_STRID = "UBX-NMEA"; //!< UBX-NMEA class name
218static constexpr uint8_t UBX_RTCM3_CLSID = 0xf5; //!< UBX-RTCM3 class ID
219static constexpr const char* UBX_RTCM3_STRID = "UBX-RTCM3"; //!< UBX-RTCM3 class name
220// @fp_codegen_end{FPSDK_COMMON_PARSER_UBX_CLASSES}
221// clang-format on
222
223// clang-format off
224// @fp_codegen_begin{FPSDK_COMMON_PARSER_UBX_MESSAGES}
225static constexpr uint8_t UBX_ACK_ACK_MSGID = 0x01; //!< UBX-ACK-ACK message ID
226static constexpr const char* UBX_ACK_ACK_STRID = "UBX-ACK-ACK"; //!< UBX-ACK-ACK message name
227static constexpr uint8_t UBX_ACK_NAK_MSGID = 0x00; //!< UBX-ACK-NAK message ID
228static constexpr const char* UBX_ACK_NAK_STRID = "UBX-ACK-NAK"; //!< UBX-ACK-NAK message name
229static constexpr uint8_t UBX_CFG_CFG_MSGID = 0x09; //!< UBX-CFG-CFG message ID
230static constexpr const char* UBX_CFG_CFG_STRID = "UBX-CFG-CFG"; //!< UBX-CFG-CFG message name
231static constexpr uint8_t UBX_CFG_PWR_MSGID = 0x57; //!< UBX-CFG-PWR message ID
232static constexpr const char* UBX_CFG_PWR_STRID = "UBX-CFG-PWR"; //!< UBX-CFG-PWR message name
233static constexpr uint8_t UBX_CFG_RST_MSGID = 0x04; //!< UBX-CFG-RST message ID
234static constexpr const char* UBX_CFG_RST_STRID = "UBX-CFG-RST"; //!< UBX-CFG-RST message name
235static constexpr uint8_t UBX_CFG_VALDEL_MSGID = 0x8c; //!< UBX-CFG-VALDEL message ID
236static constexpr const char* UBX_CFG_VALDEL_STRID = "UBX-CFG-VALDEL"; //!< UBX-CFG-VALDEL message name
237static constexpr uint8_t UBX_CFG_VALGET_MSGID = 0x8b; //!< UBX-CFG-VALGET message ID
238static constexpr const char* UBX_CFG_VALGET_STRID = "UBX-CFG-VALGET"; //!< UBX-CFG-VALGET message name
239static constexpr uint8_t UBX_CFG_VALSET_MSGID = 0x8a; //!< UBX-CFG-VALSET message ID
240static constexpr const char* UBX_CFG_VALSET_STRID = "UBX-CFG-VALSET"; //!< UBX-CFG-VALSET message name
241static constexpr uint8_t UBX_ESF_ALG_MSGID = 0x14; //!< UBX-ESF-ALG message ID
242static constexpr const char* UBX_ESF_ALG_STRID = "UBX-ESF-ALG"; //!< UBX-ESF-ALG message name
243static constexpr uint8_t UBX_ESF_INS_MSGID = 0x15; //!< UBX-ESF-INS message ID
244static constexpr const char* UBX_ESF_INS_STRID = "UBX-ESF-INS"; //!< UBX-ESF-INS message name
245static constexpr uint8_t UBX_ESF_MEAS_MSGID = 0x02; //!< UBX-ESF-MEAS message ID
246static constexpr const char* UBX_ESF_MEAS_STRID = "UBX-ESF-MEAS"; //!< UBX-ESF-MEAS message name
247static constexpr uint8_t UBX_ESF_RAW_MSGID = 0x03; //!< UBX-ESF-RAW message ID
248static constexpr const char* UBX_ESF_RAW_STRID = "UBX-ESF-RAW"; //!< UBX-ESF-RAW message name
249static constexpr uint8_t UBX_ESF_STATUS_MSGID = 0x10; //!< UBX-ESF-STATUS message ID
250static constexpr const char* UBX_ESF_STATUS_STRID = "UBX-ESF-STATUS"; //!< UBX-ESF-STATUS message name
251static constexpr uint8_t UBX_INF_DEBUG_MSGID = 0x04; //!< UBX-INF-DEBUG message ID
252static constexpr const char* UBX_INF_DEBUG_STRID = "UBX-INF-DEBUG"; //!< UBX-INF-DEBUG message name
253static constexpr uint8_t UBX_INF_ERROR_MSGID = 0x00; //!< UBX-INF-ERROR message ID
254static constexpr const char* UBX_INF_ERROR_STRID = "UBX-INF-ERROR"; //!< UBX-INF-ERROR message name
255static constexpr uint8_t UBX_INF_NOTICE_MSGID = 0x02; //!< UBX-INF-NOTICE message ID
256static constexpr const char* UBX_INF_NOTICE_STRID = "UBX-INF-NOTICE"; //!< UBX-INF-NOTICE message name
257static constexpr uint8_t UBX_INF_TEST_MSGID = 0x03; //!< UBX-INF-TEST message ID
258static constexpr const char* UBX_INF_TEST_STRID = "UBX-INF-TEST"; //!< UBX-INF-TEST message name
259static constexpr uint8_t UBX_INF_WARNING_MSGID = 0x01; //!< UBX-INF-WARNING message ID
260static constexpr const char* UBX_INF_WARNING_STRID = "UBX-INF-WARNING"; //!< UBX-INF-WARNING message name
261static constexpr uint8_t UBX_LOG_CREATE_MSGID = 0x07; //!< UBX-LOG-CREATE message ID
262static constexpr const char* UBX_LOG_CREATE_STRID = "UBX-LOG-CREATE"; //!< UBX-LOG-CREATE message name
263static constexpr uint8_t UBX_LOG_ERASE_MSGID = 0x03; //!< UBX-LOG-ERASE message ID
264static constexpr const char* UBX_LOG_ERASE_STRID = "UBX-LOG-ERASE"; //!< UBX-LOG-ERASE message name
265static constexpr uint8_t UBX_LOG_FINDTIME_MSGID = 0x0e; //!< UBX-LOG-FINDTIME message ID
266static constexpr const char* UBX_LOG_FINDTIME_STRID = "UBX-LOG-FINDTIME"; //!< UBX-LOG-FINDTIME message name
267static constexpr uint8_t UBX_LOG_INFO_MSGID = 0x08; //!< UBX-LOG-INFO message ID
268static constexpr const char* UBX_LOG_INFO_STRID = "UBX-LOG-INFO"; //!< UBX-LOG-INFO message name
269static constexpr uint8_t UBX_LOG_RETR_MSGID = 0x09; //!< UBX-LOG-RETR message ID
270static constexpr const char* UBX_LOG_RETR_STRID = "UBX-LOG-RETR"; //!< UBX-LOG-RETR message name
271static constexpr uint8_t UBX_LOG_RETRPOS_MSGID = 0x0b; //!< UBX-LOG-RETRPOS message ID
272static constexpr const char* UBX_LOG_RETRPOS_STRID = "UBX-LOG-RETRPOS"; //!< UBX-LOG-RETRPOS message name
273static constexpr uint8_t UBX_LOG_RETRPOSX_MSGID = 0x0f; //!< UBX-LOG-RETRPOSX message ID
274static constexpr const char* UBX_LOG_RETRPOSX_STRID = "UBX-LOG-RETRPOSX"; //!< UBX-LOG-RETRPOSX message name
275static constexpr uint8_t UBX_LOG_RETRSTR_MSGID = 0x0d; //!< UBX-LOG-RETRSTR message ID
276static constexpr const char* UBX_LOG_RETRSTR_STRID = "UBX-LOG-RETRSTR"; //!< UBX-LOG-RETRSTR message name
277static constexpr uint8_t UBX_LOG_STR_MSGID = 0x04; //!< UBX-LOG-STR message ID
278static constexpr const char* UBX_LOG_STR_STRID = "UBX-LOG-STR"; //!< UBX-LOG-STR message name
279static constexpr uint8_t UBX_MGA_ACK_MSGID = 0x60; //!< UBX-MGA-ACK message ID
280static constexpr const char* UBX_MGA_ACK_STRID = "UBX-MGA-ACK"; //!< UBX-MGA-ACK message name
281static constexpr uint8_t UBX_MGA_BDS_MSGID = 0x03; //!< UBX-MGA-BDS message ID
282static constexpr const char* UBX_MGA_BDS_STRID = "UBX-MGA-BDS"; //!< UBX-MGA-BDS message name
283static constexpr uint8_t UBX_MGA_DBD_MSGID = 0x80; //!< UBX-MGA-DBD message ID
284static constexpr const char* UBX_MGA_DBD_STRID = "UBX-MGA-DBD"; //!< UBX-MGA-DBD message name
285static constexpr uint8_t UBX_MGA_GAL_MSGID = 0x02; //!< UBX-MGA-GAL message ID
286static constexpr const char* UBX_MGA_GAL_STRID = "UBX-MGA-GAL"; //!< UBX-MGA-GAL message name
287static constexpr uint8_t UBX_MGA_GLO_MSGID = 0x06; //!< UBX-MGA-GLO message ID
288static constexpr const char* UBX_MGA_GLO_STRID = "UBX-MGA-GLO"; //!< UBX-MGA-GLO message name
289static constexpr uint8_t UBX_MGA_GPS_MSGID = 0x00; //!< UBX-MGA-GPS message ID
290static constexpr const char* UBX_MGA_GPS_STRID = "UBX-MGA-GPS"; //!< UBX-MGA-GPS message name
291static constexpr uint8_t UBX_MGA_INI_MSGID = 0x40; //!< UBX-MGA-INI message ID
292static constexpr const char* UBX_MGA_INI_STRID = "UBX-MGA-INI"; //!< UBX-MGA-INI message name
293static constexpr uint8_t UBX_MGA_QZSS_MSGID = 0x05; //!< UBX-MGA-QZSS message ID
294static constexpr const char* UBX_MGA_QZSS_STRID = "UBX-MGA-QZSS"; //!< UBX-MGA-QZSS message name
295static constexpr uint8_t UBX_MON_COMMS_MSGID = 0x36; //!< UBX-MON-COMMS message ID
296static constexpr const char* UBX_MON_COMMS_STRID = "UBX-MON-COMMS"; //!< UBX-MON-COMMS message name
297static constexpr uint8_t UBX_MON_GNSS_MSGID = 0x28; //!< UBX-MON-GNSS message ID
298static constexpr const char* UBX_MON_GNSS_STRID = "UBX-MON-GNSS"; //!< UBX-MON-GNSS message name
299static constexpr uint8_t UBX_MON_HW_MSGID = 0x09; //!< UBX-MON-HW message ID
300static constexpr const char* UBX_MON_HW_STRID = "UBX-MON-HW"; //!< UBX-MON-HW message name
301static constexpr uint8_t UBX_MON_HW2_MSGID = 0x0b; //!< UBX-MON-HW2 message ID
302static constexpr const char* UBX_MON_HW2_STRID = "UBX-MON-HW2"; //!< UBX-MON-HW2 message name
303static constexpr uint8_t UBX_MON_HW3_MSGID = 0x37; //!< UBX-MON-HW3 message ID
304static constexpr const char* UBX_MON_HW3_STRID = "UBX-MON-HW3"; //!< UBX-MON-HW3 message name
305static constexpr uint8_t UBX_MON_IO_MSGID = 0x02; //!< UBX-MON-IO message ID
306static constexpr const char* UBX_MON_IO_STRID = "UBX-MON-IO"; //!< UBX-MON-IO message name
307static constexpr uint8_t UBX_MON_MSGPP_MSGID = 0x06; //!< UBX-MON-MSGPP message ID
308static constexpr const char* UBX_MON_MSGPP_STRID = "UBX-MON-MSGPP"; //!< UBX-MON-MSGPP message name
309static constexpr uint8_t UBX_MON_PATCH_MSGID = 0x27; //!< UBX-MON-PATCH message ID
310static constexpr const char* UBX_MON_PATCH_STRID = "UBX-MON-PATCH"; //!< UBX-MON-PATCH message name
311static constexpr uint8_t UBX_MON_RF_MSGID = 0x38; //!< UBX-MON-RF message ID
312static constexpr const char* UBX_MON_RF_STRID = "UBX-MON-RF"; //!< UBX-MON-RF message name
313static constexpr uint8_t UBX_MON_RXBUF_MSGID = 0x07; //!< UBX-MON-RXBUF message ID
314static constexpr const char* UBX_MON_RXBUF_STRID = "UBX-MON-RXBUF"; //!< UBX-MON-RXBUF message name
315static constexpr uint8_t UBX_MON_RXR_MSGID = 0x21; //!< UBX-MON-RXR message ID
316static constexpr const char* UBX_MON_RXR_STRID = "UBX-MON-RXR"; //!< UBX-MON-RXR message name
317static constexpr uint8_t UBX_MON_SPAN_MSGID = 0x31; //!< UBX-MON-SPAN message ID
318static constexpr const char* UBX_MON_SPAN_STRID = "UBX-MON-SPAN"; //!< UBX-MON-SPAN message name
319static constexpr uint8_t UBX_MON_SYS_MSGID = 0x39; //!< UBX-MON-SYS message ID
320static constexpr const char* UBX_MON_SYS_STRID = "UBX-MON-SYS"; //!< UBX-MON-SYS message name
321static constexpr uint8_t UBX_MON_TEMP_MSGID = 0x0e; //!< UBX-MON-TEMP message ID
322static constexpr const char* UBX_MON_TEMP_STRID = "UBX-MON-TEMP"; //!< UBX-MON-TEMP message name
323static constexpr uint8_t UBX_MON_TXBUF_MSGID = 0x08; //!< UBX-MON-TXBUF message ID
324static constexpr const char* UBX_MON_TXBUF_STRID = "UBX-MON-TXBUF"; //!< UBX-MON-TXBUF message name
325static constexpr uint8_t UBX_MON_VER_MSGID = 0x04; //!< UBX-MON-VER message ID
326static constexpr const char* UBX_MON_VER_STRID = "UBX-MON-VER"; //!< UBX-MON-VER message name
327static constexpr uint8_t UBX_NAV_ATT_MSGID = 0x05; //!< UBX-NAV-ATT message ID
328static constexpr const char* UBX_NAV_ATT_STRID = "UBX-NAV-ATT"; //!< UBX-NAV-ATT message name
329static constexpr uint8_t UBX_NAV_CLOCK_MSGID = 0x22; //!< UBX-NAV-CLOCK message ID
330static constexpr const char* UBX_NAV_CLOCK_STRID = "UBX-NAV-CLOCK"; //!< UBX-NAV-CLOCK message name
331static constexpr uint8_t UBX_NAV_COV_MSGID = 0x36; //!< UBX-NAV-COV message ID
332static constexpr const char* UBX_NAV_COV_STRID = "UBX-NAV-COV"; //!< UBX-NAV-COV message name
333static constexpr uint8_t UBX_NAV_DOP_MSGID = 0x04; //!< UBX-NAV-DOP message ID
334static constexpr const char* UBX_NAV_DOP_STRID = "UBX-NAV-DOP"; //!< UBX-NAV-DOP message name
335static constexpr uint8_t UBX_NAV_EELL_MSGID = 0x3d; //!< UBX-NAV-EELL message ID
336static constexpr const char* UBX_NAV_EELL_STRID = "UBX-NAV-EELL"; //!< UBX-NAV-EELL message name
337static constexpr uint8_t UBX_NAV_EOE_MSGID = 0x61; //!< UBX-NAV-EOE message ID
338static constexpr const char* UBX_NAV_EOE_STRID = "UBX-NAV-EOE"; //!< UBX-NAV-EOE message name
339static constexpr uint8_t UBX_NAV_GEOFENCE_MSGID = 0x39; //!< UBX-NAV-GEOFENCE message ID
340static constexpr const char* UBX_NAV_GEOFENCE_STRID = "UBX-NAV-GEOFENCE"; //!< UBX-NAV-GEOFENCE message name
341static constexpr uint8_t UBX_NAV_HPPOSECEF_MSGID = 0x13; //!< UBX-NAV-HPPOSECEF message ID
342static constexpr const char* UBX_NAV_HPPOSECEF_STRID = "UBX-NAV-HPPOSECEF"; //!< UBX-NAV-HPPOSECEF message name
343static constexpr uint8_t UBX_NAV_HPPOSLLH_MSGID = 0x14; //!< UBX-NAV-HPPOSLLH message ID
344static constexpr const char* UBX_NAV_HPPOSLLH_STRID = "UBX-NAV-HPPOSLLH"; //!< UBX-NAV-HPPOSLLH message name
345static constexpr uint8_t UBX_NAV_ODO_MSGID = 0x09; //!< UBX-NAV-ODO message ID
346static constexpr const char* UBX_NAV_ODO_STRID = "UBX-NAV-ODO"; //!< UBX-NAV-ODO message name
347static constexpr uint8_t UBX_NAV_ORB_MSGID = 0x34; //!< UBX-NAV-ORB message ID
348static constexpr const char* UBX_NAV_ORB_STRID = "UBX-NAV-ORB"; //!< UBX-NAV-ORB message name
349static constexpr uint8_t UBX_NAV_PL_MSGID = 0x62; //!< UBX-NAV-PL message ID
350static constexpr const char* UBX_NAV_PL_STRID = "UBX-NAV-PL"; //!< UBX-NAV-PL message name
351static constexpr uint8_t UBX_NAV_POSECEF_MSGID = 0x01; //!< UBX-NAV-POSECEF message ID
352static constexpr const char* UBX_NAV_POSECEF_STRID = "UBX-NAV-POSECEF"; //!< UBX-NAV-POSECEF message name
353static constexpr uint8_t UBX_NAV_POSLLH_MSGID = 0x02; //!< UBX-NAV-POSLLH message ID
354static constexpr const char* UBX_NAV_POSLLH_STRID = "UBX-NAV-POSLLH"; //!< UBX-NAV-POSLLH message name
355static constexpr uint8_t UBX_NAV_PVAT_MSGID = 0x17; //!< UBX-NAV-PVAT message ID
356static constexpr const char* UBX_NAV_PVAT_STRID = "UBX-NAV-PVAT"; //!< UBX-NAV-PVAT message name
357static constexpr uint8_t UBX_NAV_PVT_MSGID = 0x07; //!< UBX-NAV-PVT message ID
358static constexpr const char* UBX_NAV_PVT_STRID = "UBX-NAV-PVT"; //!< UBX-NAV-PVT message name
359static constexpr uint8_t UBX_NAV_RELPOSNED_MSGID = 0x3c; //!< UBX-NAV-RELPOSNED message ID
360static constexpr const char* UBX_NAV_RELPOSNED_STRID = "UBX-NAV-RELPOSNED"; //!< UBX-NAV-RELPOSNED message name
361static constexpr uint8_t UBX_NAV_RESETODO_MSGID = 0x10; //!< UBX-NAV-RESETODO message ID
362static constexpr const char* UBX_NAV_RESETODO_STRID = "UBX-NAV-RESETODO"; //!< UBX-NAV-RESETODO message name
363static constexpr uint8_t UBX_NAV_SAT_MSGID = 0x35; //!< UBX-NAV-SAT message ID
364static constexpr const char* UBX_NAV_SAT_STRID = "UBX-NAV-SAT"; //!< UBX-NAV-SAT message name
365static constexpr uint8_t UBX_NAV_SBAS_MSGID = 0x32; //!< UBX-NAV-SBAS message ID
366static constexpr const char* UBX_NAV_SBAS_STRID = "UBX-NAV-SBAS"; //!< UBX-NAV-SBAS message name
367static constexpr uint8_t UBX_NAV_SIG_MSGID = 0x43; //!< UBX-NAV-SIG message ID
368static constexpr const char* UBX_NAV_SIG_STRID = "UBX-NAV-SIG"; //!< UBX-NAV-SIG message name
369static constexpr uint8_t UBX_NAV_SLAS_MSGID = 0x42; //!< UBX-NAV-SLAS message ID
370static constexpr const char* UBX_NAV_SLAS_STRID = "UBX-NAV-SLAS"; //!< UBX-NAV-SLAS message name
371static constexpr uint8_t UBX_NAV_SOL_MSGID = 0x01; //!< UBX-NAV-SOL message ID
372static constexpr const char* UBX_NAV_SOL_STRID = "UBX-NAV-SOL"; //!< UBX-NAV-SOL message name
373static constexpr uint8_t UBX_NAV_STATUS_MSGID = 0x03; //!< UBX-NAV-STATUS message ID
374static constexpr const char* UBX_NAV_STATUS_STRID = "UBX-NAV-STATUS"; //!< UBX-NAV-STATUS message name
375static constexpr uint8_t UBX_NAV_SVIN_MSGID = 0x3b; //!< UBX-NAV-SVIN message ID
376static constexpr const char* UBX_NAV_SVIN_STRID = "UBX-NAV-SVIN"; //!< UBX-NAV-SVIN message name
377static constexpr uint8_t UBX_NAV_TIMEBDS_MSGID = 0x24; //!< UBX-NAV-TIMEBDS message ID
378static constexpr const char* UBX_NAV_TIMEBDS_STRID = "UBX-NAV-TIMEBDS"; //!< UBX-NAV-TIMEBDS message name
379static constexpr uint8_t UBX_NAV_TIMEGAL_MSGID = 0x25; //!< UBX-NAV-TIMEGAL message ID
380static constexpr const char* UBX_NAV_TIMEGAL_STRID = "UBX-NAV-TIMEGAL"; //!< UBX-NAV-TIMEGAL message name
381static constexpr uint8_t UBX_NAV_TIMEGLO_MSGID = 0x23; //!< UBX-NAV-TIMEGLO message ID
382static constexpr const char* UBX_NAV_TIMEGLO_STRID = "UBX-NAV-TIMEGLO"; //!< UBX-NAV-TIMEGLO message name
383static constexpr uint8_t UBX_NAV_TIMEGPS_MSGID = 0x20; //!< UBX-NAV-TIMEGPS message ID
384static constexpr const char* UBX_NAV_TIMEGPS_STRID = "UBX-NAV-TIMEGPS"; //!< UBX-NAV-TIMEGPS message name
385static constexpr uint8_t UBX_NAV_TIMELS_MSGID = 0x26; //!< UBX-NAV-TIMELS message ID
386static constexpr const char* UBX_NAV_TIMELS_STRID = "UBX-NAV-TIMELS"; //!< UBX-NAV-TIMELS message name
387static constexpr uint8_t UBX_NAV_TIMEQZSS_MSGID = 0x27; //!< UBX-NAV-TIMEQZSS message ID
388static constexpr const char* UBX_NAV_TIMEQZSS_STRID = "UBX-NAV-TIMEQZSS"; //!< UBX-NAV-TIMEQZSS message name
389static constexpr uint8_t UBX_NAV_TIMENAVIC_MSGID = 0x63; //!< UBX-NAV-TIMENAVIC message ID
390static constexpr const char* UBX_NAV_TIMENAVIC_STRID = "UBX-NAV-TIMENAVIC"; //!< UBX-NAV-TIMENAVIC message name
391static constexpr uint8_t UBX_NAV_TIMETRUSTED_MSGID = 0x64; //!< UBX-NAV-TIMETRUSTED message ID
392static constexpr const char* UBX_NAV_TIMETRUSTED_STRID = "UBX-NAV-TIMETRUSTED"; //!< UBX-NAV-TIMETRUSTED message name
393static constexpr uint8_t UBX_NAV_TIMEUTC_MSGID = 0x21; //!< UBX-NAV-TIMEUTC message ID
394static constexpr const char* UBX_NAV_TIMEUTC_STRID = "UBX-NAV-TIMEUTC"; //!< UBX-NAV-TIMEUTC message name
395static constexpr uint8_t UBX_NAV_VELECEF_MSGID = 0x11; //!< UBX-NAV-VELECEF message ID
396static constexpr const char* UBX_NAV_VELECEF_STRID = "UBX-NAV-VELECEF"; //!< UBX-NAV-VELECEF message name
397static constexpr uint8_t UBX_NAV_VELNED_MSGID = 0x12; //!< UBX-NAV-VELNED message ID
398static constexpr const char* UBX_NAV_VELNED_STRID = "UBX-NAV-VELNED"; //!< UBX-NAV-VELNED message name
399static constexpr uint8_t UBX_NAV2_CLOCK_MSGID = UBX_NAV_CLOCK_MSGID; //!< UBX-NAV2-CLOCK message ID
400static constexpr const char* UBX_NAV2_CLOCK_STRID = "UBX-NAV2-CLOCK"; //!< UBX-NAV2-CLOCK message name
401static constexpr uint8_t UBX_NAV2_COV_MSGID = UBX_NAV_COV_MSGID; //!< UBX-NAV2-COV message ID
402static constexpr const char* UBX_NAV2_COV_STRID = "UBX-NAV2-COV"; //!< UBX-NAV2-COV message name
403static constexpr uint8_t UBX_NAV2_DOP_MSGID = UBX_NAV_DOP_MSGID; //!< UBX-NAV2-DOP message ID
404static constexpr const char* UBX_NAV2_DOP_STRID = "UBX-NAV2-DOP"; //!< UBX-NAV2-DOP message name
405static constexpr uint8_t UBX_NAV2_EOE_MSGID = UBX_NAV_EOE_MSGID; //!< UBX-NAV2-EOE message ID
406static constexpr const char* UBX_NAV2_EOE_STRID = "UBX-NAV2-EOE"; //!< UBX-NAV2-EOE message name
407static constexpr uint8_t UBX_NAV2_ODO_MSGID = UBX_NAV_ODO_MSGID; //!< UBX-NAV2-ODO message ID
408static constexpr const char* UBX_NAV2_ODO_STRID = "UBX-NAV2-ODO"; //!< UBX-NAV2-ODO message name
409static constexpr uint8_t UBX_NAV2_POSECEF_MSGID = UBX_NAV_POSECEF_MSGID; //!< UBX-NAV2-POSECEF message ID
410static constexpr const char* UBX_NAV2_POSECEF_STRID = "UBX-NAV2-POSECEF"; //!< UBX-NAV2-POSECEF message name
411static constexpr uint8_t UBX_NAV2_POSLLH_MSGID = UBX_NAV_POSLLH_MSGID; //!< UBX-NAV2-POSLLH message ID
412static constexpr const char* UBX_NAV2_POSLLH_STRID = "UBX-NAV2-POSLLH"; //!< UBX-NAV2-POSLLH message name
413static constexpr uint8_t UBX_NAV2_PVT_MSGID = UBX_NAV_PVT_MSGID; //!< UBX-NAV2-PVT message ID
414static constexpr const char* UBX_NAV2_PVT_STRID = "UBX-NAV2-PVT"; //!< UBX-NAV2-PVT message name
415static constexpr uint8_t UBX_NAV2_SAT_MSGID = UBX_NAV_SAT_MSGID; //!< UBX-NAV2-SAT message ID
416static constexpr const char* UBX_NAV2_SAT_STRID = "UBX-NAV2-SAT"; //!< UBX-NAV2-SAT message name
417static constexpr uint8_t UBX_NAV2_SBAS_MSGID = UBX_NAV_SBAS_MSGID; //!< UBX-NAV2-SBAS message ID
418static constexpr const char* UBX_NAV2_SBAS_STRID = "UBX-NAV2-SBAS"; //!< UBX-NAV2-SBAS message name
419static constexpr uint8_t UBX_NAV2_SIG_MSGID = UBX_NAV_SIG_MSGID; //!< UBX-NAV2-SIG message ID
420static constexpr const char* UBX_NAV2_SIG_STRID = "UBX-NAV2-SIG"; //!< UBX-NAV2-SIG message name
421static constexpr uint8_t UBX_NAV2_SLAS_MSGID = UBX_NAV_SLAS_MSGID; //!< UBX-NAV2-SLAS message ID
422static constexpr const char* UBX_NAV2_SLAS_STRID = "UBX-NAV2-SLAS"; //!< UBX-NAV2-SLAS message name
423static constexpr uint8_t UBX_NAV2_STATUS_MSGID = UBX_NAV_STATUS_MSGID; //!< UBX-NAV2-STATUS message ID
424static constexpr const char* UBX_NAV2_STATUS_STRID = "UBX-NAV2-STATUS"; //!< UBX-NAV2-STATUS message name
425static constexpr uint8_t UBX_NAV2_SVIN_MSGID = UBX_NAV_SVIN_MSGID; //!< UBX-NAV2-SVIN message ID
426static constexpr const char* UBX_NAV2_SVIN_STRID = "UBX-NAV2-SVIN"; //!< UBX-NAV2-SVIN message name
427static constexpr uint8_t UBX_NAV2_TIMEBDS_MSGID = UBX_NAV_TIMEBDS_MSGID; //!< UBX-NAV2-TIMEBDS message ID
428static constexpr const char* UBX_NAV2_TIMEBDS_STRID = "UBX-NAV2-TIMEBDS"; //!< UBX-NAV2-TIMEBDS message name
429static constexpr uint8_t UBX_NAV2_TIMEGAL_MSGID = UBX_NAV_TIMEGAL_MSGID; //!< UBX-NAV2-TIMEGAL message ID
430static constexpr const char* UBX_NAV2_TIMEGAL_STRID = "UBX-NAV2-TIMEGAL"; //!< UBX-NAV2-TIMEGAL message name
431static constexpr uint8_t UBX_NAV2_TIMEGLO_MSGID = UBX_NAV_TIMEGLO_MSGID; //!< UBX-NAV2-TIMEGLO message ID
432static constexpr const char* UBX_NAV2_TIMEGLO_STRID = "UBX-NAV2-TIMEGLO"; //!< UBX-NAV2-TIMEGLO message name
433static constexpr uint8_t UBX_NAV2_TIMEGPS_MSGID = UBX_NAV_TIMEGPS_MSGID; //!< UBX-NAV2-TIMEGPS message ID
434static constexpr const char* UBX_NAV2_TIMEGPS_STRID = "UBX-NAV2-TIMEGPS"; //!< UBX-NAV2-TIMEGPS message name
435static constexpr uint8_t UBX_NAV2_TIMELS_MSGID = UBX_NAV_TIMELS_MSGID; //!< UBX-NAV2-TIMELS message ID
436static constexpr const char* UBX_NAV2_TIMELS_STRID = "UBX-NAV2-TIMELS"; //!< UBX-NAV2-TIMELS message name
437static constexpr uint8_t UBX_NAV2_TIMEQZSS_MSGID = UBX_NAV_TIMEQZSS_MSGID; //!< UBX-NAV2-TIMEQZSS message ID
438static constexpr const char* UBX_NAV2_TIMEQZSS_STRID = "UBX-NAV2-TIMEQZSS"; //!< UBX-NAV2-TIMEQZSS message name
439static constexpr uint8_t UBX_NAV2_TIMENAVIC_MSGID = UBX_NAV_TIMENAVIC_MSGID; //!< UBX-NAV2-TIMENAVIC message ID
440static constexpr const char* UBX_NAV2_TIMENAVIC_STRID = "UBX-NAV2-TIMENAVIC"; //!< UBX-NAV2-TIMENAVIC message name
441static constexpr uint8_t UBX_NAV2_TIMEUTC_MSGID = UBX_NAV_TIMEUTC_MSGID; //!< UBX-NAV2-TIMEUTC message ID
442static constexpr const char* UBX_NAV2_TIMEUTC_STRID = "UBX-NAV2-TIMEUTC"; //!< UBX-NAV2-TIMEUTC message name
443static constexpr uint8_t UBX_NAV2_VELECEF_MSGID = UBX_NAV_VELECEF_MSGID; //!< UBX-NAV2-VELECEF message ID
444static constexpr const char* UBX_NAV2_VELECEF_STRID = "UBX-NAV2-VELECEF"; //!< UBX-NAV2-VELECEF message name
445static constexpr uint8_t UBX_NAV2_VELNED_MSGID = UBX_NAV_VELNED_MSGID; //!< UBX-NAV2-VELNED message ID
446static constexpr const char* UBX_NAV2_VELNED_STRID = "UBX-NAV2-VELNED"; //!< UBX-NAV2-VELNED message name
447static constexpr uint8_t UBX_RXM_COR_MSGID = 0x14; //!< UBX-RXM-COR message ID
448static constexpr const char* UBX_RXM_COR_STRID = "UBX-RXM-COR"; //!< UBX-RXM-COR message name
449static constexpr uint8_t UBX_RXM_MEASX_MSGID = 0x14; //!< UBX-RXM-MEASX message ID
450static constexpr const char* UBX_RXM_MEASX_STRID = "UBX-RXM-MEASX"; //!< UBX-RXM-MEASX message name
451static constexpr uint8_t UBX_RXM_PMP_MSGID = 0x72; //!< UBX-RXM-PMP message ID
452static constexpr const char* UBX_RXM_PMP_STRID = "UBX-RXM-PMP"; //!< UBX-RXM-PMP message name
453static constexpr uint8_t UBX_RXM_PMREQ_MSGID = 0x41; //!< UBX-RXM-PMREQ message ID
454static constexpr const char* UBX_RXM_PMREQ_STRID = "UBX-RXM-PMREQ"; //!< UBX-RXM-PMREQ message name
455static constexpr uint8_t UBX_RXM_QZSSL6_MSGID = 0x73; //!< UBX-RXM-QZSSL6 message ID
456static constexpr const char* UBX_RXM_QZSSL6_STRID = "UBX-RXM-QZSSL6"; //!< UBX-RXM-QZSSL6 message name
457static constexpr uint8_t UBX_RXM_RAWX_MSGID = 0x15; //!< UBX-RXM-RAWX message ID
458static constexpr const char* UBX_RXM_RAWX_STRID = "UBX-RXM-RAWX"; //!< UBX-RXM-RAWX message name
459static constexpr uint8_t UBX_RXM_RLM_MSGID = 0x59; //!< UBX-RXM-RLM message ID
460static constexpr const char* UBX_RXM_RLM_STRID = "UBX-RXM-RLM"; //!< UBX-RXM-RLM message name
461static constexpr uint8_t UBX_RXM_RTCM_MSGID = 0x32; //!< UBX-RXM-RTCM message ID
462static constexpr const char* UBX_RXM_RTCM_STRID = "UBX-RXM-RTCM"; //!< UBX-RXM-RTCM message name
463static constexpr uint8_t UBX_RXM_SFRBX_MSGID = 0x13; //!< UBX-RXM-SFRBX message ID
464static constexpr const char* UBX_RXM_SFRBX_STRID = "UBX-RXM-SFRBX"; //!< UBX-RXM-SFRBX message name
465static constexpr uint8_t UBX_RXM_SPARTN_MSGID = 0x33; //!< UBX-RXM-SPARTN message ID
466static constexpr const char* UBX_RXM_SPARTN_STRID = "UBX-RXM-SPARTN"; //!< UBX-RXM-SPARTN message name
467static constexpr uint8_t UBX_RXM_SPARTNKEY_MSGID = 0x36; //!< UBX-RXM-SPARTNKEY message ID
468static constexpr const char* UBX_RXM_SPARTNKEY_STRID = "UBX-RXM-SPARTNKEY"; //!< UBX-RXM-SPARTNKEY message name
469static constexpr uint8_t UBX_SEC_OSNMA_MSGID = 0x0a; //!< UBX-SEC-OSNMA message ID
470static constexpr const char* UBX_SEC_OSNMA_STRID = "UBX-SEC-OSNMA"; //!< UBX-SEC-OSNMA message name
471static constexpr uint8_t UBX_SEC_SIG_MSGID = 0x09; //!< UBX-SEC-SIG message ID
472static constexpr const char* UBX_SEC_SIG_STRID = "UBX-SEC-SIG"; //!< UBX-SEC-SIG message name
473static constexpr uint8_t UBX_SEC_SIGLOG_MSGID = 0x10; //!< UBX-SEC-SIGLOG message ID
474static constexpr const char* UBX_SEC_SIGLOG_STRID = "UBX-SEC-SIGLOG"; //!< UBX-SEC-SIGLOG message name
475static constexpr uint8_t UBX_SEC_UNIQID_MSGID = 0x03; //!< UBX-SEC-UNIQID message ID
476static constexpr const char* UBX_SEC_UNIQID_STRID = "UBX-SEC-UNIQID"; //!< UBX-SEC-UNIQID message name
477static constexpr uint8_t UBX_TIM_TM2_MSGID = 0x03; //!< UBX-TIM-TM2 message ID
478static constexpr const char* UBX_TIM_TM2_STRID = "UBX-TIM-TM2"; //!< UBX-TIM-TM2 message name
479static constexpr uint8_t UBX_TIM_TP_MSGID = 0x01; //!< UBX-TIM-TP message ID
480static constexpr const char* UBX_TIM_TP_STRID = "UBX-TIM-TP"; //!< UBX-TIM-TP message name
481static constexpr uint8_t UBX_TIM_VRFY_MSGID = 0x06; //!< UBX-TIM-VRFY message ID
482static constexpr const char* UBX_TIM_VRFY_STRID = "UBX-TIM-VRFY"; //!< UBX-TIM-VRFY message name
483static constexpr uint8_t UBX_UPD_FLDET_MSGID = 0x08; //!< UBX-UPD-FLDET message ID
484static constexpr const char* UBX_UPD_FLDET_STRID = "UBX-UPD-FLDET"; //!< UBX-UPD-FLDET message name
485static constexpr uint8_t UBX_UPD_POS_MSGID = 0x15; //!< UBX-UPD-POS message ID
486static constexpr const char* UBX_UPD_POS_STRID = "UBX-UPD-POS"; //!< UBX-UPD-POS message name
487static constexpr uint8_t UBX_UPD_SAFEBOOT_MSGID = 0x07; //!< UBX-UPD-SAFEBOOT message ID
488static constexpr const char* UBX_UPD_SAFEBOOT_STRID = "UBX-UPD-SAFEBOOT"; //!< UBX-UPD-SAFEBOOT message name
489static constexpr uint8_t UBX_UPD_SOS_MSGID = 0x14; //!< UBX-UPD-SOS message ID
490static constexpr const char* UBX_UPD_SOS_STRID = "UBX-UPD-SOS"; //!< UBX-UPD-SOS message name
491static constexpr uint8_t UBX_NMEA_STANDARD_DTM_MSGID = 0x0a; //!< UBX-NMEA-STANDARD_DTM message ID
492static constexpr const char* UBX_NMEA_STANDARD_DTM_STRID = "UBX-NMEA-STANDARD_DTM"; //!< UBX-NMEA-STANDARD_DTM message name
493static constexpr uint8_t UBX_NMEA_STANDARD_GAQ_MSGID = 0x45; //!< UBX-NMEA-STANDARD_GAQ message ID
494static constexpr const char* UBX_NMEA_STANDARD_GAQ_STRID = "UBX-NMEA-STANDARD_GAQ"; //!< UBX-NMEA-STANDARD_GAQ message name
495static constexpr uint8_t UBX_NMEA_STANDARD_GBQ_MSGID = 0x44; //!< UBX-NMEA-STANDARD_GBQ message ID
496static constexpr const char* UBX_NMEA_STANDARD_GBQ_STRID = "UBX-NMEA-STANDARD_GBQ"; //!< UBX-NMEA-STANDARD_GBQ message name
497static constexpr uint8_t UBX_NMEA_STANDARD_GBS_MSGID = 0x09; //!< UBX-NMEA-STANDARD_GBS message ID
498static constexpr const char* UBX_NMEA_STANDARD_GBS_STRID = "UBX-NMEA-STANDARD_GBS"; //!< UBX-NMEA-STANDARD_GBS message name
499static constexpr uint8_t UBX_NMEA_STANDARD_GGA_MSGID = 0x00; //!< UBX-NMEA-STANDARD_GGA message ID
500static constexpr const char* UBX_NMEA_STANDARD_GGA_STRID = "UBX-NMEA-STANDARD_GGA"; //!< UBX-NMEA-STANDARD_GGA message name
501static constexpr uint8_t UBX_NMEA_STANDARD_GLL_MSGID = 0x01; //!< UBX-NMEA-STANDARD_GLL message ID
502static constexpr const char* UBX_NMEA_STANDARD_GLL_STRID = "UBX-NMEA-STANDARD_GLL"; //!< UBX-NMEA-STANDARD_GLL message name
503static constexpr uint8_t UBX_NMEA_STANDARD_GLQ_MSGID = 0x43; //!< UBX-NMEA-STANDARD_GLQ message ID
504static constexpr const char* UBX_NMEA_STANDARD_GLQ_STRID = "UBX-NMEA-STANDARD_GLQ"; //!< UBX-NMEA-STANDARD_GLQ message name
505static constexpr uint8_t UBX_NMEA_STANDARD_GNQ_MSGID = 0x42; //!< UBX-NMEA-STANDARD_GNQ message ID
506static constexpr const char* UBX_NMEA_STANDARD_GNQ_STRID = "UBX-NMEA-STANDARD_GNQ"; //!< UBX-NMEA-STANDARD_GNQ message name
507static constexpr uint8_t UBX_NMEA_STANDARD_GNS_MSGID = 0x0d; //!< UBX-NMEA-STANDARD_GNS message ID
508static constexpr const char* UBX_NMEA_STANDARD_GNS_STRID = "UBX-NMEA-STANDARD_GNS"; //!< UBX-NMEA-STANDARD_GNS message name
509static constexpr uint8_t UBX_NMEA_STANDARD_GPQ_MSGID = 0x40; //!< UBX-NMEA-STANDARD_GPQ message ID
510static constexpr const char* UBX_NMEA_STANDARD_GPQ_STRID = "UBX-NMEA-STANDARD_GPQ"; //!< UBX-NMEA-STANDARD_GPQ message name
511static constexpr uint8_t UBX_NMEA_STANDARD_GQQ_MSGID = 0x47; //!< UBX-NMEA-STANDARD_GQQ message ID
512static constexpr const char* UBX_NMEA_STANDARD_GQQ_STRID = "UBX-NMEA-STANDARD_GQQ"; //!< UBX-NMEA-STANDARD_GQQ message name
513static constexpr uint8_t UBX_NMEA_STANDARD_GRS_MSGID = 0x06; //!< UBX-NMEA-STANDARD_GRS message ID
514static constexpr const char* UBX_NMEA_STANDARD_GRS_STRID = "UBX-NMEA-STANDARD_GRS"; //!< UBX-NMEA-STANDARD_GRS message name
515static constexpr uint8_t UBX_NMEA_STANDARD_GSA_MSGID = 0x02; //!< UBX-NMEA-STANDARD_GSA message ID
516static constexpr const char* UBX_NMEA_STANDARD_GSA_STRID = "UBX-NMEA-STANDARD_GSA"; //!< UBX-NMEA-STANDARD_GSA message name
517static constexpr uint8_t UBX_NMEA_STANDARD_GST_MSGID = 0x07; //!< UBX-NMEA-STANDARD_GST message ID
518static constexpr const char* UBX_NMEA_STANDARD_GST_STRID = "UBX-NMEA-STANDARD_GST"; //!< UBX-NMEA-STANDARD_GST message name
519static constexpr uint8_t UBX_NMEA_STANDARD_GSV_MSGID = 0x03; //!< UBX-NMEA-STANDARD_GSV message ID
520static constexpr const char* UBX_NMEA_STANDARD_GSV_STRID = "UBX-NMEA-STANDARD_GSV"; //!< UBX-NMEA-STANDARD_GSV message name
521static constexpr uint8_t UBX_NMEA_STANDARD_RLM_MSGID = 0x0b; //!< UBX-NMEA-STANDARD_RLM message ID
522static constexpr const char* UBX_NMEA_STANDARD_RLM_STRID = "UBX-NMEA-STANDARD_RLM"; //!< UBX-NMEA-STANDARD_RLM message name
523static constexpr uint8_t UBX_NMEA_STANDARD_RMC_MSGID = 0x04; //!< UBX-NMEA-STANDARD_RMC message ID
524static constexpr const char* UBX_NMEA_STANDARD_RMC_STRID = "UBX-NMEA-STANDARD_RMC"; //!< UBX-NMEA-STANDARD_RMC message name
525static constexpr uint8_t UBX_NMEA_STANDARD_TXT_MSGID = 0x41; //!< UBX-NMEA-STANDARD_TXT message ID
526static constexpr const char* UBX_NMEA_STANDARD_TXT_STRID = "UBX-NMEA-STANDARD_TXT"; //!< UBX-NMEA-STANDARD_TXT message name
527static constexpr uint8_t UBX_NMEA_STANDARD_VLW_MSGID = 0x0f; //!< UBX-NMEA-STANDARD_VLW message ID
528static constexpr const char* UBX_NMEA_STANDARD_VLW_STRID = "UBX-NMEA-STANDARD_VLW"; //!< UBX-NMEA-STANDARD_VLW message name
529static constexpr uint8_t UBX_NMEA_STANDARD_VTG_MSGID = 0x05; //!< UBX-NMEA-STANDARD_VTG message ID
530static constexpr const char* UBX_NMEA_STANDARD_VTG_STRID = "UBX-NMEA-STANDARD_VTG"; //!< UBX-NMEA-STANDARD_VTG message name
531static constexpr uint8_t UBX_NMEA_STANDARD_ZDA_MSGID = 0x08; //!< UBX-NMEA-STANDARD_ZDA message ID
532static constexpr const char* UBX_NMEA_STANDARD_ZDA_STRID = "UBX-NMEA-STANDARD_ZDA"; //!< UBX-NMEA-STANDARD_ZDA message name
533static constexpr uint8_t UBX_NMEA_PUBX_CONFIG_MSGID = 0x41; //!< UBX-NMEA-PUBX_CONFIG message ID
534static constexpr const char* UBX_NMEA_PUBX_CONFIG_STRID = "UBX-NMEA-PUBX_CONFIG"; //!< UBX-NMEA-PUBX_CONFIG message name
535static constexpr uint8_t UBX_NMEA_PUBX_POSITION_MSGID = 0x00; //!< UBX-NMEA-PUBX_POSITION message ID
536static constexpr const char* UBX_NMEA_PUBX_POSITION_STRID = "UBX-NMEA-PUBX_POSITION"; //!< UBX-NMEA-PUBX_POSITION message name
537static constexpr uint8_t UBX_NMEA_PUBX_RATE_MSGID = 0x40; //!< UBX-NMEA-PUBX_RATE message ID
538static constexpr const char* UBX_NMEA_PUBX_RATE_STRID = "UBX-NMEA-PUBX_RATE"; //!< UBX-NMEA-PUBX_RATE message name
539static constexpr uint8_t UBX_NMEA_PUBX_SVSTATUS_MSGID = 0x03; //!< UBX-NMEA-PUBX_SVSTATUS message ID
540static constexpr const char* UBX_NMEA_PUBX_SVSTATUS_STRID = "UBX-NMEA-PUBX_SVSTATUS"; //!< UBX-NMEA-PUBX_SVSTATUS message name
541static constexpr uint8_t UBX_NMEA_PUBX_TIME_MSGID = 0x04; //!< UBX-NMEA-PUBX_TIME message ID
542static constexpr const char* UBX_NMEA_PUBX_TIME_STRID = "UBX-NMEA-PUBX_TIME"; //!< UBX-NMEA-PUBX_TIME message name
543static constexpr uint8_t UBX_RTCM3_TYPE1001_MSGID = 0x01; //!< UBX-RTCM3-TYPE1001 message ID
544static constexpr const char* UBX_RTCM3_TYPE1001_STRID = "UBX-RTCM3-TYPE1001"; //!< UBX-RTCM3-TYPE1001 message name
545static constexpr uint8_t UBX_RTCM3_TYPE1002_MSGID = 0x02; //!< UBX-RTCM3-TYPE1002 message ID
546static constexpr const char* UBX_RTCM3_TYPE1002_STRID = "UBX-RTCM3-TYPE1002"; //!< UBX-RTCM3-TYPE1002 message name
547static constexpr uint8_t UBX_RTCM3_TYPE1003_MSGID = 0x03; //!< UBX-RTCM3-TYPE1003 message ID
548static constexpr const char* UBX_RTCM3_TYPE1003_STRID = "UBX-RTCM3-TYPE1003"; //!< UBX-RTCM3-TYPE1003 message name
549static constexpr uint8_t UBX_RTCM3_TYPE1004_MSGID = 0x04; //!< UBX-RTCM3-TYPE1004 message ID
550static constexpr const char* UBX_RTCM3_TYPE1004_STRID = "UBX-RTCM3-TYPE1004"; //!< UBX-RTCM3-TYPE1004 message name
551static constexpr uint8_t UBX_RTCM3_TYPE1005_MSGID = 0x05; //!< UBX-RTCM3-TYPE1005 message ID
552static constexpr const char* UBX_RTCM3_TYPE1005_STRID = "UBX-RTCM3-TYPE1005"; //!< UBX-RTCM3-TYPE1005 message name
553static constexpr uint8_t UBX_RTCM3_TYPE1006_MSGID = 0x06; //!< UBX-RTCM3-TYPE1006 message ID
554static constexpr const char* UBX_RTCM3_TYPE1006_STRID = "UBX-RTCM3-TYPE1006"; //!< UBX-RTCM3-TYPE1006 message name
555static constexpr uint8_t UBX_RTCM3_TYPE1007_MSGID = 0x07; //!< UBX-RTCM3-TYPE1007 message ID
556static constexpr const char* UBX_RTCM3_TYPE1007_STRID = "UBX-RTCM3-TYPE1007"; //!< UBX-RTCM3-TYPE1007 message name
557static constexpr uint8_t UBX_RTCM3_TYPE1009_MSGID = 0x09; //!< UBX-RTCM3-TYPE1009 message ID
558static constexpr const char* UBX_RTCM3_TYPE1009_STRID = "UBX-RTCM3-TYPE1009"; //!< UBX-RTCM3-TYPE1009 message name
559static constexpr uint8_t UBX_RTCM3_TYPE1010_MSGID = 0x0a; //!< UBX-RTCM3-TYPE1010 message ID
560static constexpr const char* UBX_RTCM3_TYPE1010_STRID = "UBX-RTCM3-TYPE1010"; //!< UBX-RTCM3-TYPE1010 message name
561static constexpr uint8_t UBX_RTCM3_TYPE1011_MSGID = 0xa1; //!< UBX-RTCM3-TYPE1011 message ID
562static constexpr const char* UBX_RTCM3_TYPE1011_STRID = "UBX-RTCM3-TYPE1011"; //!< UBX-RTCM3-TYPE1011 message name
563static constexpr uint8_t UBX_RTCM3_TYPE1012_MSGID = 0xa2; //!< UBX-RTCM3-TYPE1012 message ID
564static constexpr const char* UBX_RTCM3_TYPE1012_STRID = "UBX-RTCM3-TYPE1012"; //!< UBX-RTCM3-TYPE1012 message name
565static constexpr uint8_t UBX_RTCM3_TYPE1033_MSGID = 0x21; //!< UBX-RTCM3-TYPE1033 message ID
566static constexpr const char* UBX_RTCM3_TYPE1033_STRID = "UBX-RTCM3-TYPE1033"; //!< UBX-RTCM3-TYPE1033 message name
567static constexpr uint8_t UBX_RTCM3_TYPE1074_MSGID = 0x4a; //!< UBX-RTCM3-TYPE1074 message ID
568static constexpr const char* UBX_RTCM3_TYPE1074_STRID = "UBX-RTCM3-TYPE1074"; //!< UBX-RTCM3-TYPE1074 message name
569static constexpr uint8_t UBX_RTCM3_TYPE1075_MSGID = 0x4b; //!< UBX-RTCM3-TYPE1075 message ID
570static constexpr const char* UBX_RTCM3_TYPE1075_STRID = "UBX-RTCM3-TYPE1075"; //!< UBX-RTCM3-TYPE1075 message name
571static constexpr uint8_t UBX_RTCM3_TYPE1077_MSGID = 0x4d; //!< UBX-RTCM3-TYPE1077 message ID
572static constexpr const char* UBX_RTCM3_TYPE1077_STRID = "UBX-RTCM3-TYPE1077"; //!< UBX-RTCM3-TYPE1077 message name
573static constexpr uint8_t UBX_RTCM3_TYPE1084_MSGID = 0x54; //!< UBX-RTCM3-TYPE1084 message ID
574static constexpr const char* UBX_RTCM3_TYPE1084_STRID = "UBX-RTCM3-TYPE1084"; //!< UBX-RTCM3-TYPE1084 message name
575static constexpr uint8_t UBX_RTCM3_TYPE1085_MSGID = 0x55; //!< UBX-RTCM3-TYPE1085 message ID
576static constexpr const char* UBX_RTCM3_TYPE1085_STRID = "UBX-RTCM3-TYPE1085"; //!< UBX-RTCM3-TYPE1085 message name
577static constexpr uint8_t UBX_RTCM3_TYPE1087_MSGID = 0x57; //!< UBX-RTCM3-TYPE1087 message ID
578static constexpr const char* UBX_RTCM3_TYPE1087_STRID = "UBX-RTCM3-TYPE1087"; //!< UBX-RTCM3-TYPE1087 message name
579static constexpr uint8_t UBX_RTCM3_TYPE1094_MSGID = 0x5e; //!< UBX-RTCM3-TYPE1094 message ID
580static constexpr const char* UBX_RTCM3_TYPE1094_STRID = "UBX-RTCM3-TYPE1094"; //!< UBX-RTCM3-TYPE1094 message name
581static constexpr uint8_t UBX_RTCM3_TYPE1095_MSGID = 0x5f; //!< UBX-RTCM3-TYPE1095 message ID
582static constexpr const char* UBX_RTCM3_TYPE1095_STRID = "UBX-RTCM3-TYPE1095"; //!< UBX-RTCM3-TYPE1095 message name
583static constexpr uint8_t UBX_RTCM3_TYPE1097_MSGID = 0x61; //!< UBX-RTCM3-TYPE1097 message ID
584static constexpr const char* UBX_RTCM3_TYPE1097_STRID = "UBX-RTCM3-TYPE1097"; //!< UBX-RTCM3-TYPE1097 message name
585static constexpr uint8_t UBX_RTCM3_TYPE1124_MSGID = 0x7c; //!< UBX-RTCM3-TYPE1124 message ID
586static constexpr const char* UBX_RTCM3_TYPE1124_STRID = "UBX-RTCM3-TYPE1124"; //!< UBX-RTCM3-TYPE1124 message name
587static constexpr uint8_t UBX_RTCM3_TYPE1125_MSGID = 0x7d; //!< UBX-RTCM3-TYPE1125 message ID
588static constexpr const char* UBX_RTCM3_TYPE1125_STRID = "UBX-RTCM3-TYPE1125"; //!< UBX-RTCM3-TYPE1125 message name
589static constexpr uint8_t UBX_RTCM3_TYPE1127_MSGID = 0x7f; //!< UBX-RTCM3-TYPE1127 message ID
590static constexpr const char* UBX_RTCM3_TYPE1127_STRID = "UBX-RTCM3-TYPE1127"; //!< UBX-RTCM3-TYPE1127 message name
591static constexpr uint8_t UBX_RTCM3_TYPE1230_MSGID = 0xe6; //!< UBX-RTCM3-TYPE1230 message ID
592static constexpr const char* UBX_RTCM3_TYPE1230_STRID = "UBX-RTCM3-TYPE1230"; //!< UBX-RTCM3-TYPE1230 message name
593static constexpr uint8_t UBX_RTCM3_TYPE4072_0_MSGID = 0xfe; //!< UBX-RTCM3-TYPE4072_0 message ID
594static constexpr const char* UBX_RTCM3_TYPE4072_0_STRID = "UBX-RTCM3-TYPE4072_0"; //!< UBX-RTCM3-TYPE4072_0 message name
595static constexpr uint8_t UBX_RTCM3_TYPE4072_1_MSGID = 0xfd; //!< UBX-RTCM3-TYPE4072_1 message ID
596static constexpr const char* UBX_RTCM3_TYPE4072_1_STRID = "UBX-RTCM3-TYPE4072_1"; //!< UBX-RTCM3-TYPE4072_1 message name
597// @fp_codegen_end{FPSDK_COMMON_PARSER_UBX_MESSAGES}
598// clang-format on
599
600/**
601 * @brief UBX class/message lookup table entry
602 */
604{
605 uint8_t cls_id_ = 0; //!< UBX class ID
606 uint8_t msg_id_ = 0; //!< UBX message ID
607 const char* name_ = nullptr; //!< UBX name
608};
609
610// @fp_codegen_begin{FPSDK_COMMON_PARSER_UBX_MSGINFO_HPP}
611using UbxClassesInfo = std::array<UbxMsgInfo, 15>; //!< UBX classes lookup table
612using UbxMessagesInfo = std::array<UbxMsgInfo, 186>; //!< UBX messages lookup table
613// @fp_codegen_end{FPSDK_COMMON_PARSER_UBX_MSGINFO_HPP}
614
615/**
616 * @brief Get UBX classes lookup table
617 *
618 * @returns the UBX classes lookup table
619 */
621
622/**
623 * @brief Get UBX messages lookup table
624 *
625 * @returns the UBX messages lookup table
626 */
628
629/**
630 * @brief Get UBX message info
631 *
632 * @param[in] name The name of the message, e.g. "UBX-NAV-SOL"
633 * @param[out] info The message info, if name is a known message
634 *
635 * @returns true if the message name was found and info is valid, false otherwise
636 */
637bool UbxMessageInfo(const std::string& name, UbxMsgInfo& info);
638
639///@}
640
641// ---------------------------------------------------------------------------------------------------------------------
642
643/**
644 * @name UBX GNSS IDs (gnssId)
645 * @{
646 */
647// clang-format off
648static constexpr uint8_t UBX_GNSSID_NONE = 0xff; //!< None
649static constexpr uint8_t UBX_GNSSID_GPS = 0; //!< GPS
650static constexpr uint8_t UBX_GNSSID_SBAS = 1; //!< SBAS
651static constexpr uint8_t UBX_GNSSID_GAL = 2; //!< Galileo
652static constexpr uint8_t UBX_GNSSID_BDS = 3; //!< BeiDou
653static constexpr uint8_t UBX_GNSSID_QZSS = 5; //!< QZSS
654static constexpr uint8_t UBX_GNSSID_GLO = 6; //!< GLONASS
655static constexpr uint8_t UBX_GNSSID_NAVIC = 7; //!< NavIC
656// clang-format on
657///@}
658
659/**
660 * @name UBX SV numbering
661 * @{
662 */
663// clang-format off
664static constexpr uint8_t UBX_NUM_GPS = 32; //!< G01-G32
665static constexpr uint8_t UBX_NUM_SBAS = 39; //!< S120-S158
666static constexpr uint8_t UBX_NUM_GAL = 36; //!< E01-E36
667static constexpr uint8_t UBX_NUM_BDS = 63; //!< B01-B63 ("Cxx" in RINEX)
668static constexpr uint8_t UBX_NUM_QZSS = 10; //!< Q01-Q10 ("Jxx" in RINEX)
669static constexpr uint8_t UBX_NUM_GLO = 32; //!< R01-R32
670static constexpr uint8_t UBX_NUM_NAVIC = 14; //!< N01-N14 ("Ixx" in RINEX)
671static constexpr uint8_t UBX_FIRST_GPS = 1; //!< G01
672static constexpr uint8_t UBX_FIRST_SBAS = 120; //!< S120 ("Sxx" in RINEX)
673static constexpr uint8_t UBX_FIRST_GAL = 1; //!< E01
674static constexpr uint8_t UBX_FIRST_BDS = 1; //!< B01
675static constexpr uint8_t UBX_FIRST_QZSS = 1; //!< Q01
676static constexpr uint8_t UBX_FIRST_GLO = 1; //!< R01
677static constexpr uint8_t UBX_FIRST_NAVIC = 1; //!< N01
678// clang-format on
679///@}
680
681/**
682 * @name UBX signal IDs (sigId)
683 * @{
684 */
685// clang-format off
686static constexpr uint8_t UBX_SIGID_NONE = 0xff; //!< None
687static constexpr uint8_t UBX_SIGID_GPS_L1CA = 0; //!< GPS L1 C/A
688static constexpr uint8_t UBX_SIGID_GPS_L2CL = 3; //!< GPS L2 CL
689static constexpr uint8_t UBX_SIGID_GPS_L2CM = 4; //!< GPS L2 CM
690static constexpr uint8_t UBX_SIGID_GPS_L5I = 6; //!< GPS L5 I
691static constexpr uint8_t UBX_SIGID_GPS_L5Q = 7; //!< GPS L5 Q
692static constexpr uint8_t UBX_SIGID_SBAS_L1CA = 0; //!< SBAS L1 C/A
693static constexpr uint8_t UBX_SIGID_GAL_E1C = 0; //!< Galileo E1 C
694static constexpr uint8_t UBX_SIGID_GAL_E1B = 1; //!< Galileo E1 B
695static constexpr uint8_t UBX_SIGID_GAL_E5AI = 3; //!< Galileo E5 aI
696static constexpr uint8_t UBX_SIGID_GAL_E5AQ = 4; //!< Galileo E5 aQ
697static constexpr uint8_t UBX_SIGID_GAL_E5BI = 5; //!< Galileo E5 bI
698static constexpr uint8_t UBX_SIGID_GAL_E5BQ = 6; //!< Galileo E5 bQ
699static constexpr uint8_t UBX_SIGID_GAL_E6B = 8; //!< Galileo E6 B
700static constexpr uint8_t UBX_SIGID_GAL_E6C = 9; //!< Galileo E6 C
701static constexpr uint8_t UBX_SIGID_GAL_E6A = 10; //!< Galileo E6 A
702static constexpr uint8_t UBX_SIGID_BDS_B1ID1 = 0; //!< BeiDou B1I D1
703static constexpr uint8_t UBX_SIGID_BDS_B1ID2 = 1; //!< BeiDou B1I D2
704static constexpr uint8_t UBX_SIGID_BDS_B2ID1 = 2; //!< BeiDou B2I D1
705static constexpr uint8_t UBX_SIGID_BDS_B2ID2 = 3; //!< BeiDou B2I D2
706static constexpr uint8_t UBX_SIGID_BDS_B3ID1 = 4; //!< BeiDou B3I D1
707static constexpr uint8_t UBX_SIGID_BDS_B3ID2 = 10; //!< BeiDou B3I D2
708static constexpr uint8_t UBX_SIGID_BDS_B1CP = 5; //!< BeiDou B1 Cp (pilot)
709static constexpr uint8_t UBX_SIGID_BDS_B1CD = 6; //!< BeiDou B1 Cd (data)
710static constexpr uint8_t UBX_SIGID_BDS_B2AP = 7; //!< BeiDou B2 ap (pilot)
711static constexpr uint8_t UBX_SIGID_BDS_B2AD = 8; //!< BeiDou B2 ad (data)
712static constexpr uint8_t UBX_SIGID_QZSS_L1CA = 0; //!< QZSS L1 C/A
713static constexpr uint8_t UBX_SIGID_QZSS_L1S = 1; //!< QZSS L1 S
714static constexpr uint8_t UBX_SIGID_QZSS_L2CM = 4; //!< QZSS L2 CM
715static constexpr uint8_t UBX_SIGID_QZSS_L2CL = 5; //!< QZSS L2 CL
716static constexpr uint8_t UBX_SIGID_QZSS_L5I = 8; //!< QZSS L5 I
717static constexpr uint8_t UBX_SIGID_QZSS_L5Q = 9; //!< QZSS L5 Q
718static constexpr uint8_t UBX_SIGID_GLO_L1OF = 0; //!< GLONASS L1 OF
719static constexpr uint8_t UBX_SIGID_GLO_L2OF = 2; //!< GLONASS L2 OF
720static constexpr uint8_t UBX_SIGID_NAVIC_L5A = 0; //!< NavIC L5 A
721// clang-format on
722///@}
723
724// ---------------------------------------------------------------------------------------------------------------------
725/**
726 * @name UBX-ACK-ACK message
727 * @{
728 */
729
730//! UBX-ACK-ACK (version 0, output) payload
731struct UBX_ACK_ACK_V0_GROUP0 // clang-format off
732{
733 uint8_t clsId; //!< Class ID of ack'ed message
734 uint8_t msgId; //!< Message ID of ack'ed message
735}; // clang-format on
736
737// clang-format off
738static constexpr std::size_t UBX_ACK_ACK_V0_SIZE = sizeof(UBX_ACK_ACK_V0_GROUP0) + UBX_FRAME_SIZE; //!< @todo documentation
739// clang-format on
740
741///@}
742// ---------------------------------------------------------------------------------------------------------------------
743/**
744 * @name UBX-ACK-NAK message
745 * @{
746 */
747
748//! UBX-ACK-NCK (version 0, output) payload
749struct UBX_ACK_NAK_V0_GROUP0 // clang-format off
750{
751 uint8_t clsId; //!< Class ID of not-ack'ed message
752 uint8_t msgId; //!< Message ID of not-ack'ed message
753};
754// clang-format on
755
756// clang-format off
757static constexpr std::size_t UBX_ACK_NAK_V0_SIZE = sizeof(UBX_ACK_NAK_V0_GROUP0) + UBX_FRAME_SIZE; //!< @todo documentation
758// clang-format on
759
760///@}
761// ---------------------------------------------------------------------------------------------------------------------
762/**
763 * @name UBX-CFG-VALSET message
764 * @{
765 */
766
767//! UBX-CFG-VALSET (version 0, input) message payload header
768struct UBX_CFG_VALSET_V0_GROUP0 // clang-format off
769{
770 uint8_t version; //!< Message version (#UBX_CFG_VALSET_V1_VERSION)
771 uint8_t layers; //!< Configuration layers
772 uint8_t reserved[2]; //!< Reserved (set to 0x00)
773};
774
775static_assert(sizeof(UBX_CFG_VALSET_V0_GROUP0) == 4, "");
776
777//! UBX-CFG-VALSET (version 1, input) message payload header
778struct UBX_CFG_VALSET_V1_GROUP0 // clang-format off
779{
780 uint8_t version; //!< Message version (#UBX_CFG_VALSET_V1_VERSION)
781 uint8_t layers; //!< Configuration layers
782 uint8_t transaction; //!< Transaction mode
783 uint8_t reserved; //!< Reserved (set to 0x00)
784};
785
786static_assert(sizeof(UBX_CFG_VALSET_V1_GROUP0) == 4, "");
787
788// clang-format off
789static constexpr uint8_t UBX_CFG_VALSET_VERSION(const uint8_t* msg) { return msg[UBX_HEAD_SIZE]; } //!< @todo documentation
790
791static constexpr uint8_t UBX_CFG_VALSET_V0_VERSION = 0x00; //!< UBX-CFG-VALSET.version value
792static constexpr std::size_t UBX_CFG_VALSET_V0_MIN_SIZE = sizeof(UBX_CFG_VALSET_V0_GROUP0) + UBX_FRAME_SIZE; //!< @todo documentation
793static constexpr uint8_t UBX_CFG_VALSET_V0_LAYERS_RAM = 0x01; //!< UBX-CFG-VALSET.layers flag: layer RAM
794static constexpr uint8_t UBX_CFG_VALSET_V0_LAYERS_BBR = 0x02; //!< UBX-CFG-VALSET.layers flag: layer BBR
795static constexpr uint8_t UBX_CFG_VALSET_V0_LAYERS_FLASH = 0x04; //!< UBX-CFG-VALSET.layers flag: layer Flash
796static constexpr uint8_t UBX_CFG_VALSET_V0_RESERVED = 0x00; //!< UBX-CFG-VALSET.reserved value
797static constexpr std::size_t UBX_CFG_VALSET_V0_MAX_KV = 64; //!< UBX-CFG-VALSET.cfgData: maximum number of key-value pairs
798static constexpr std::size_t UBX_CFG_VALSET_V0_CFGDATA_MAX_SIZE = UBX_CFG_VALSET_V0_MAX_KV * (4 + 8); //!< UBX-CFG-VALSET.cfgData maximum size
799static constexpr std::size_t UBX_CFG_VALSET_V0_MAX_SIZE = UBX_CFG_VALSET_V0_MIN_SIZE + UBX_CFG_VALSET_V0_CFGDATA_MAX_SIZE; //!< @todo documentation
800
801static constexpr uint8_t UBX_CFG_VALSET_V1_VERSION = 0x01; //!< UBX-CFG-VALSET.version value
802static constexpr std::size_t UBX_CFG_VALSET_V1_MIN_SIZE = sizeof(UBX_CFG_VALSET_V1_GROUP0) + UBX_FRAME_SIZE; //!< @todo documentation
803static constexpr uint8_t UBX_CFG_VALSET_V1_LAYER_RAM = 0x01; //!< UBX-CFG-VALSET.layers flag: layer RAM
804static constexpr uint8_t UBX_CFG_VALSET_V1_LAYER_BBR = 0x02; //!< UBX-CFG-VALSET.layers flag: layer BBR
805static constexpr uint8_t UBX_CFG_VALSET_V1_LAYER_FLASH = 0x04; //!< UBX-CFG-VALSET.layers flag: layer Flash
806static constexpr uint8_t UBX_CFG_VALSET_V1_TRANSACTION_NONE = 0; //!< UBX-CFG-VALSET.transaction value: no transaction
807static constexpr uint8_t UBX_CFG_VALSET_V1_TRANSACTION_BEGIN = 1; //!< UBX-CFG-VALSET.transaction value: transaction begin
808static constexpr uint8_t UBX_CFG_VALSET_V1_TRANSACTION_CONTINUE = 2; //!< UBX-CFG-VALSET.transaction value: transaction continue
809static constexpr uint8_t UBX_CFG_VALSET_V1_TRANSACTION_END = 3; //!< UBX-CFG-VALSET.transaction value: transaction: end
810static constexpr uint8_t UBX_CFG_VALSET_V1_RESERVED = 0x00; //!< UBX-CFG-VALSET.reserved value
811static constexpr std::size_t UBX_CFG_VALSET_V1_MAX_KV = 64; //!< UBX-CFG-VALSET.cfgData: maximum number of key-value pairs
812static constexpr std::size_t UBX_CFG_VALSET_V1_CFGDATA_MAX_SIZE = UBX_CFG_VALSET_V1_MAX_KV * (4 + 8); //!< UBX-CFG-VALSET.cfgData maximum size
813static constexpr std::size_t UBX_CFG_VALSET_V1_MAX_SIZE = UBX_CFG_VALSET_V1_MIN_SIZE + UBX_CFG_VALSET_V1_CFGDATA_MAX_SIZE; //!< @todo documentation
814// clang-format on
815
816///@}
817// ---------------------------------------------------------------------------------------------------------------------
818/**
819 * @name UBX-CFG-VALGET message
820 * @{
821 */
822
823//! UBX-CFG-VALGET (version 0, poll) message payload header
824struct UBX_CFG_VALGET_V0_GROUP0 // clang-format off
825{
826 uint8_t version; //!< Message version (#UBX_CFG_VALGET_V0_VERSION)
827 uint8_t layer; //!< Configuration layer
828 uint16_t position; //!< Number of values to skip in result set
829}; // clang-format on
830
831static_assert(sizeof(UBX_CFG_VALGET_V0_GROUP0) == 4, "");
832
833//! UBX-CFG-VALGET (version 1, output) message payload header
834struct UBX_CFG_VALGET_V1_GROUP0 // clang-format off
835{
836 uint8_t version; //!< Message version (#UBX_CFG_VALGET_V1_VERSION)
837 uint8_t layer; //!< Configuration layer
838 uint16_t position; //!< Number of values to skip in result set
839}; // clang-format on
840
841static_assert(sizeof(UBX_CFG_VALGET_V1_GROUP0) == 4, "");
842
843// clang-format off
844static constexpr uint8_t UBX_CFG_VALGET_VERSION(const uint8_t* msg) { return msg[UBX_HEAD_SIZE]; } //!< @todo documentation
845
846static constexpr uint8_t UBX_CFG_VALGET_V0_VERSION = 0x00; //!< UBX-CFG-VALGET.version value
847static constexpr std::size_t UBX_CFG_VALGET_V0_MIN_SIZE = sizeof(UBX_CFG_VALGET_V0_GROUP0) + UBX_FRAME_SIZE; //!< @todo documentation
848static constexpr uint8_t UBX_CFG_VALGET_V0_LAYER_RAM = 0; //!< UBX-CFG-VALGET.layers value: layer RAM
849static constexpr uint8_t UBX_CFG_VALGET_V0_LAYER_BBR = 1; //!< UBX-CFG-VALGET.layers value: layer BBR
850static constexpr uint8_t UBX_CFG_VALGET_V0_LAYER_FLASH = 2; //!< UBX-CFG-VALGET.layers value: layer Flash
851static constexpr uint8_t UBX_CFG_VALGET_V0_LAYER_DEFAULT = 7; //!< UBX-CFG-VALGET.layers value: layer Default
852static constexpr std::size_t UBX_CFG_VALGET_V0_MAX_K = 64; //!< UBX-CFG-VALGET.cfgData maximum number of keys
853static constexpr std::size_t UBX_CFG_VALGET_V0_KEYS_MAX_SIZE = UBX_CFG_VALGET_V0_MAX_K * sizeof(uint32_t); //!< UBX-CFG-VALGET.keys maximum size
854static constexpr uint32_t UBX_CFG_VALGET_V0_GROUP_WILDCARD(const uint32_t groupId) { return groupId | 0x0000ffff; } //!< UBX-CFG-VALGET.keys group wildcard
855static constexpr uint32_t UBX_CFG_VALGET_V0_ALL_WILDCARD = 0x0fffffff; //!< UBX-CFG-VALGET.keys all wildcard
856static constexpr std::size_t UBX_CFG_VALGET_V0_MAX_SIZE = UBX_CFG_VALGET_V0_MIN_SIZE + UBX_CFG_VALGET_V0_KEYS_MAX_SIZE; //!< @todo documentation
857
858static constexpr uint8_t UBX_CFG_VALGET_V1_VERSION = 0x01; //!< UBX-CFG-VALGET.version value
859static constexpr std::size_t UBX_CFG_VALGET_V1_MIN_SIZE = sizeof(UBX_CFG_VALGET_V1_GROUP0) + UBX_FRAME_SIZE; //!< @todo documentation
860static constexpr uint8_t UBX_CFG_VALGET_V1_LAYER_RAM = 0; //!< UBX-CFG-VALGET.layers value: layer RAM
861static constexpr uint8_t UBX_CFG_VALGET_V1_LAYER_BBR = 1; //!< UBX-CFG-VALGET.layers value: layer BBR
862static constexpr uint8_t UBX_CFG_VALGET_V1_LAYER_FLASH = 2; //!< UBX-CFG-VALGET.layers value: layer Flash
863static constexpr uint8_t UBX_CFG_VALGET_V1_LAYER_DEFAULT = 7; //!< UBX-CFG-VALGET.layers value: layer Default
864static constexpr std::size_t UBX_CFG_VALGET_V1_MAX_KV = 64; //!< UBX-CFG-VALGET.cfgData maximum number of keys
865static constexpr std::size_t UBX_CFG_VALGET_V1_CFGDATA_MAX_SIZE = UBX_CFG_VALGET_V1_MAX_KV * (sizeof(uint32_t) + sizeof(uint64_t)); //!< UBX-CFG-VALGET.keys maximum size
866static constexpr uint32_t UBX_CFG_VALGET_V1_GROUP_WILDCARD(const uint32_t groupId) { return groupId | 0x0000ffff; } //!< UBX-CFG-VALGET.keys group wildcard
867static constexpr uint32_t UBX_CFG_VALGET_V1_ALL_WILDCARD = 0x0fffffff; //!< UBX-CFG-VALGET.keys all wildcard
868static constexpr std::size_t UBX_CFG_VALGET_V1_MAX_SIZE = UBX_CFG_VALGET_V1_MIN_SIZE + UBX_CFG_VALGET_V1_CFGDATA_MAX_SIZE; //!< @todo documentation
869// clang-format on
870
871///@}
872// ---------------------------------------------------------------------------------------------------------------------
873/**
874 * @name UBX-CFG-VALDEL message
875 * @{
876 */
877
878//! UBX-CFG-VALDEL (version 1, input) message payload header
879struct UBX_CFG_VALDEL_V1_GROUP0 // clang-format off
880{
881 uint8_t version; //!< Message version (#UBX_CFG_VALGET_V1_VERSION)
882 uint8_t layers; //!< Configuration layers
883 uint8_t transaction; //!< Transaction mode
884 uint8_t reserved; //!< Reserved (set to 0x00)
885}; // clang-format on
886
887static_assert(sizeof(UBX_CFG_VALDEL_V1_GROUP0) == 4, "");
888
889// clang-format off
890static constexpr uint8_t UBX_CFG_VALDEL_VERSION(const uint8_t* msg) { return msg[UBX_HEAD_SIZE]; } //!< @todo documentation
891static constexpr uint8_t UBX_CFG_VALDEL_V1_VERSION = 0x01; //!< UBX-CFG-VALDEL.version value
892static constexpr std::size_t UBX_CFG_VALDEL_V1_MIN_SIZE = sizeof(UBX_CFG_VALDEL_V1_GROUP0) + UBX_FRAME_SIZE; //!< @todo documentation
893static constexpr uint8_t UBX_CFG_VALDEL_V1_LAYER_BBR = 0x02; //!< UBX-CFG-VALDEL.layers flag: layer BBR
894static constexpr uint8_t UBX_CFG_VALDEL_V1_LAYER_FLASH = 0x04; //!< UBX-CFG-VALDEL.layers flag: layer Flash
895static constexpr uint8_t UBX_CFG_VALDEL_V1_TRANSACTION_NONE = 0; //!< UBX-CFG-VALDEL.transaction value: no transaction
896static constexpr uint8_t UBX_CFG_VALDEL_V1_TRANSACTION_BEGIN = 1; //!< UBX-CFG-VALDEL.transaction value: transaction begin
897static constexpr uint8_t UBX_CFG_VALDEL_V1_TRANSACTION_CONTINUE = 2; //!< UBX-CFG-VALDEL.transaction value: transaction continue
898static constexpr uint8_t UBX_CFG_VALDEL_V1_TRANSACTION_END = 3; //!< UBX-CFG-VALDEL.transaction value: transaction: end
899static constexpr uint8_t UBX_CFG_VALDEL_V1_RESERVED = 0x00; //!< UBX-CFG-VALDEL.reserved value
900static constexpr std::size_t UBX_CFG_VALDEL_V1_MAX_K = 64; //!< UBX-CFG-VALDEL.cfgData maximum number of key IDs
901static constexpr std::size_t UBX_CFG_VALDEL_V1_KEYS_MAX_SIZE = UBX_CFG_VALDEL_V1_MAX_K * 4; //!< UBX-CFG-VALDEL.keys maximum size
902static constexpr std::size_t UBX_CFG_VALDEL_V1_MAX_SIZE = UBX_CFG_VALDEL_V1_MIN_SIZE + UBX_CFG_VALDEL_V1_KEYS_MAX_SIZE; //!< @todo documentation
903// clang-format on
904
905///@}
906// ---------------------------------------------------------------------------------------------------------------------
907/**
908 * @name UBX-CFG-RST message
909 * @{
910 */
911
912//! UBX-CFG-RST (version 0, command) message payload
913struct UBX_CFG_RST_V0_GROUP0 // clang-format off
914{
915 uint16_t navBbrMask; //!< BBR sections to clear
916 uint8_t resetMode; //!< Reset type
917 uint8_t reserved; //!< Reserved
918}; // clang-format on
919
920static_assert(sizeof(UBX_CFG_RST_V0_GROUP0) == 4, "");
921
922// clang-format off
923static constexpr std::size_t UBX_CFG_RST_V0_SIZE = sizeof(UBX_CFG_RST_V0_GROUP0) + UBX_FRAME_SIZE; //!< @todo documentation
924static constexpr uint16_t UBX_CFG_RST_V0_NAVBBR_NONE = 0x0001; //!< Nothing
925static constexpr uint16_t UBX_CFG_RST_V0_NAVBBR_EPH = 0x0001; //!< Ephemeris
926static constexpr uint16_t UBX_CFG_RST_V0_NAVBBR_ALM = 0x0002; //!< Almanac
927static constexpr uint16_t UBX_CFG_RST_V0_NAVBBR_HEALTH = 0x0004; //!< Health
928static constexpr uint16_t UBX_CFG_RST_V0_NAVBBR_KLOB = 0x0008; //!< Klobuchar parameters
929static constexpr uint16_t UBX_CFG_RST_V0_NAVBBR_POS = 0x0010; //!< Position
930static constexpr uint16_t UBX_CFG_RST_V0_NAVBBR_CLKD = 0x0020; //!< Clock drift
931static constexpr uint16_t UBX_CFG_RST_V0_NAVBBR_OSC = 0x0040; //!< Oscillator parameters
932static constexpr uint16_t UBX_CFG_RST_V0_NAVBBR_UTC = 0x0080; //!< UTC and leap second parameters
933static constexpr uint16_t UBX_CFG_RST_V0_NAVBBR_RTC = 0x0100; //!< RTC
934static constexpr uint16_t UBX_CFG_RST_V0_NAVBBR_AOP = 0x8000; //!< AssistNow Autonomous
935static constexpr uint16_t UBX_CFG_RST_V0_NAVBBR_HOTSTART = 0x0000; //!< Hostsart (keep all data)
936static constexpr uint16_t UBX_CFG_RST_V0_NAVBBR_WARMSTART = 0x0001; //!< Warmstart (clear ephemerides)
937static constexpr uint16_t UBX_CFG_RST_V0_NAVBBR_COLDSTART = 0xffff; //!< Coldstart (erase all data)
938static constexpr uint8_t UBX_CFG_RST_V0_RESETMODE_HW_FORCED = 0x00; //!< Forced, immediate hardware reset
939static constexpr uint8_t UBX_CFG_RST_V0_RESETMODE_SW = 0x01; //!< Controlled software reset
940static constexpr uint8_t UBX_CFG_RST_V0_RESETMODE_GNSS = 0x02; //!< Restart GNSS
941static constexpr uint8_t UBX_CFG_RST_V0_RESETMODE_HW_CONTROLLED = 0x04; //!< Controlled hardware reset
942static constexpr uint8_t UBX_CFG_RST_V0_RESETMODE_GNSS_STOP = 0x08; //!< Stop GNSS
943static constexpr uint8_t UBX_CFG_RST_V0_RESETMODE_GNSS_START = 0x09; //!< Start GNSS
944static constexpr uint8_t UBX_CFG_RST_V0_RESERVED = 0x00; //!< Reserved
945// clang-format on
946
947///@}
948// ---------------------------------------------------------------------------------------------------------------------
949/**
950 * @name UBX-CFG-CFG message
951 * @{
952 */
953
954//! UBX-CFG-CFG (version 0, command) message head
955struct UBX_CFG_CFG_V0_GROUP0 // clang-format off
956{
957 uint32_t clearMask; //!< @todo documentation
958 uint32_t saveMask; //!< @todo documentation
959 uint32_t loadMask; //!< @todo documentation
960}; // clang-format on
961
962static_assert(sizeof(UBX_CFG_CFG_V0_GROUP0) == 12, "");
963
964//! UBX-CFG-CFG (version 0, command) message optional group
965struct UBX_PACKED UBX_CFG_CFG_V0_GROUP1 // clang-format off
966{
967 uint8_t deviceMask; //!< @todo documentation
968};// clang-format off
969
970static_assert(sizeof(UBX_CFG_CFG_V0_GROUP1) == 1, "");
971
972// clang-format off
973static constexpr std::size_t UBX_CFG_CFG_V0_MIN_SIZE = sizeof(UBX_CFG_CFG_V0_GROUP0) + UBX_FRAME_SIZE; //!< @todo documentation
974static constexpr std::size_t UBX_CFG_CFG_V0_MAX_SIZE = UBX_CFG_CFG_V0_MIN_SIZE + sizeof(UBX_CFG_CFG_V0_GROUP1); //!< @todo documentation
975static constexpr uint32_t UBX_CFG_CFG_V0_CLEAR_NONE = 0x00000000; //!< Clear no config
976static constexpr uint32_t UBX_CFG_CFG_V0_CLEAR_ALL = 0xffffffff; //!< Clear all config
977static constexpr uint32_t UBX_CFG_CFG_V0_SAVE_NONE = 0x00000000; //!< Save no config
978static constexpr uint32_t UBX_CFG_CFG_V0_SAVE_ALL = 0xffffffff; //!< Save all config
979static constexpr uint32_t UBX_CFG_CFG_V0_LOAD_NONE = 0x00000000; //!< Load no config
980static constexpr uint32_t UBX_CFG_CFG_V0_LOAD_ALL = 0xffffffff; //!< Load all config
981static constexpr uint8_t UBX_CFG_CFG_V0_DEVICE_BBR = 0x01; //!< Layer BBR
982static constexpr uint8_t UBX_CFG_CFG_V0_DEVICE_FLASH = 0x02; //!< Layer Flash
983// clang-format on
984
985///@}
986// ---------------------------------------------------------------------------------------------------------------------
987/**
988 * @name UBX-ESF-MEAS message
989 * @{
990 */
991
992//! UBX-ESF-MEAS (version 0, input and output) message head
993struct UBX_ESF_MEAS_V0_GROUP0 // clang-format off
994{
995 uint32_t timeTag; //!< @todo documentation
996 uint16_t flags; //!< @todo documentation
997 uint16_t id; //!< @todo documentation
998}; // clang-format on
999
1000static_assert(sizeof(UBX_ESF_MEAS_V0_GROUP0) == 8, "");
1001
1002//! UBX-ESF-MEAS (version 0, input and output) data
1003struct UBX_ESF_MEAS_V0_GROUP1 // clang-format off
1004{
1005 uint32_t data; //!< @todo documentation
1006}; // clang-format on
1007
1008static_assert(sizeof(UBX_ESF_MEAS_V0_GROUP1) == 4, "");
1009
1010//! UBX-ESF-MEAS (version 0, input and output) timetag
1011struct UBX_ESF_MEAS_V0_GROUP2 // clang-format off
1012{
1013 uint32_t calibTtag; //!< @todo documentation
1014}; // clang-format on
1015
1016static_assert(sizeof(UBX_ESF_MEAS_V0_GROUP2) == 4, "");
1017
1018// clang-format off
1019static constexpr std::size_t UBX_ESF_MEAS_V0_MIN_SIZE = sizeof(UBX_ESF_MEAS_V0_GROUP0) + UBX_FRAME_SIZE; //!< @todo documentation
1020static constexpr uint8_t UBX_ESF_MEAS_V0_FLAGS_TIMEMARKSENT(const uint16_t flags) { return flags & 0x03; } //!< @todo documentation
1021static constexpr uint8_t UBX_ESF_MEAS_V0_FLAGS_TIMEMARKSENT_NONE = 0; //!< @todo documentation
1022static constexpr uint8_t UBX_ESF_MEAS_V0_FLAGS_TIMEMARKSENT_EXT0 = 1; //!< @todo documentation
1023static constexpr uint8_t UBX_ESF_MEAS_V0_FLAGS_TIMEMARKSENT_EXT1 = 2; //!< @todo documentation
1024static constexpr bool UBX_ESF_MEAS_V0_FLAGS_CALIBTTAGVALID(const uint16_t flags) { return (flags & 0x0008) == 0x0008; } //!< @todo documentation
1025static constexpr std::size_t UBX_ESF_MEAS_V0_FLAGS_NUMMEAS(const uint16_t flags) { return (flags >> 11) & 0x1f; } //!< @todo documentation
1026static constexpr uint32_t UBX_ESF_MEAS_V0_DATA_DATAFIELD(const uint32_t data) { return data & 0x00ffffff; } //!< @todo documentation
1027static constexpr uint8_t UBX_ESF_MEAS_V0_DATA_DATATYPE(const uint32_t data) { return (data >> 24) & 0x0000003f; } //!< same enum as UBX-ESF-STATUS.type it seems
1028static constexpr double UBX_ESF_MEAS_V0_CALIBTTAG_SCALE = 1e-3; //!< @todo documentation
1029static constexpr std::size_t UBX_ESF_MEAS_V0_SIZE(const uint8_t* msg) { return /* argh.. nice message design! */ \
1030 sizeof(UBX_ESF_MEAS_V0_GROUP0) + UBX_FRAME_SIZE + (UBX_ESF_MEAS_V0_FLAGS_NUMMEAS(*((uint16_t *)&((uint8_t *)(msg))[UBX_HEAD_SIZE + 4])) * sizeof(UBX_ESF_MEAS_V0_GROUP1)) +
1031 (UBX_ESF_MEAS_V0_FLAGS_CALIBTTAGVALID(*((uint16_t *)&((uint8_t *)(msg))[UBX_HEAD_SIZE + 4])) ? sizeof(UBX_ESF_MEAS_V0_GROUP2) : 0); } //!< @todo documentation
1032// clang-format on
1033
1034///@}
1035// ---------------------------------------------------------------------------------------------------------------------
1036/**
1037 * @name UBX-ESF-STATUS message
1038 * @{
1039 */
1040
1041//! UBX-ESF-STATUS (version 0, output) message head
1042struct UBX_ESF_STATUS_V2_GROUP0 // clang-format off
1043{
1044 uint32_t iTOW; //!< @todo documentation
1045 uint8_t version; //!< @todo documentation
1046 uint8_t initStatus1; //!< @todo documentation
1047 uint8_t initStatus2; //!< @todo documentation
1048 uint8_t reserved0[5]; //!< @todo documentation
1049 uint8_t fusionMode; //!< @todo documentation
1050 uint8_t reserved1[2]; //!< @todo documentation
1051 uint8_t numSens; //!< @todo documentation
1052}; // clang-format on
1053
1054static_assert(sizeof(UBX_ESF_STATUS_V2_GROUP0) == 16, "");
1055
1056//! UBX-ESF-STATUS (version 0, output) per-sensor status
1057struct UBX_ESF_STATUS_V2_GROUP1 // clang-format off
1058{
1059 uint8_t sensStatus1; //!< @todo documentation
1060 uint8_t sensStatus2; //!< @todo documentation
1061 uint8_t freq; //!< @todo documentation
1062 uint8_t faults; //!< @todo documentation
1063}; // clang-format on
1064
1065static_assert(sizeof(UBX_ESF_STATUS_V2_GROUP1) == 4, "");
1066
1067// clang-format off
1068static constexpr uint8_t UBX_ESF_STATUS_VERSION(const uint8_t* msg) { return msg[UBX_HEAD_SIZE + 4]; } //!< @todo documentation
1069static constexpr uint8_t UBX_ESF_STATUS_V2_VERSION = 0x02; //!< @todo documentation
1070static constexpr std::size_t UBX_ESF_STATUS_V2_MIN_SIZE = sizeof(UBX_ESF_STATUS_V2_GROUP0) + UBX_FRAME_SIZE; //!< @todo documentation
1071static constexpr std::size_t UBX_ESF_STATUS_V2_SIZE(const uint8_t* msg) { return //!< @todo documentation
1072 sizeof(UBX_ESF_STATUS_V2_GROUP0) + UBX_FRAME_SIZE + (((uint8_t *)(msg))[UBX_HEAD_SIZE + 15] * sizeof(UBX_ESF_STATUS_V2_GROUP1)); } //!< @todo documentation
1073static constexpr double UBX_ESF_STATUS_V2_ITOW_SCALE = 1e-3; //!< @todo documentation
1074static constexpr uint8_t UBX_ESF_STATUS_V2_INITSTATUS1_WTINITSTATUS(const uint8_t initStatus1) { return initStatus1 & 0x03; } //!< @todo documentation
1075static constexpr uint8_t UBX_ESF_STATUS_V2_INITSTATUS1_WTINITSTATUS_OFF = 0; //!< @todo documentation
1076static constexpr uint8_t UBX_ESF_STATUS_V2_INITSTATUS1_WTINITSTATUS_INITALIZING = 1; //!< @todo documentation
1077static constexpr uint8_t UBX_ESF_STATUS_V2_INITSTATUS1_WTINITSTATUS_INITIALIZED = 2; //!< @todo documentation
1078static constexpr uint8_t UBX_ESF_STATUS_V2_INITSTATUS1_MNTALGSTATUS(const uint8_t initStatus1) { return (initStatus1 >> 2) & 0x07; } //!< @todo documentation
1079static constexpr uint8_t UBX_ESF_STATUS_V2_INITSTATUS1_MNTALGSTATUS_OFF = 0; //!< @todo documentation
1080static constexpr uint8_t UBX_ESF_STATUS_V2_INITSTATUS1_MNTALGSTATUS_INITALIZING = 1; //!< @todo documentation
1081static constexpr uint8_t UBX_ESF_STATUS_V2_INITSTATUS1_MNTALGSTATUS_INITIALIZED1 = 2; //!< @todo documentation
1082static constexpr uint8_t UBX_ESF_STATUS_V2_INITSTATUS1_MNTALGSTATUS_INITIALIZED2 = 3; //!< @todo documentation
1083static constexpr uint8_t UBX_ESF_STATUS_V2_INITSTATUS1_INSINITSTATUS(const uint8_t initStatus1) { return (initStatus1 >> 5) & 0x07; } //!< @todo documentation
1084static constexpr uint8_t UBX_ESF_STATUS_V2_INITSTATUS1_INSINITSTATUS_OFF = 0; //!< @todo documentation
1085static constexpr uint8_t UBX_ESF_STATUS_V2_INITSTATUS1_INSINITSTATUS_INITALIZING = 1; //!< @todo documentation
1086static constexpr uint8_t UBX_ESF_STATUS_V2_INITSTATUS1_INSINITSTATUS_INITIALIZED1 = 2; //!< @todo documentation
1087static constexpr uint8_t UBX_ESF_STATUS_V2_INITSTATUS1_INSINITSTATUS_INITIALIZED2 = 3; //!< @todo documentation
1088static constexpr uint8_t UBX_ESF_STATUS_V2_INITSTATUS2_IMUINITSTATUS(const uint8_t initStatus2) { return initStatus2 & 0x03; } //!< @todo documentation
1089static constexpr uint8_t UBX_ESF_STATUS_V2_INITSTATUS2_IMUINITSTATUS_OFF = 0; //!< @todo documentation
1090static constexpr uint8_t UBX_ESF_STATUS_V2_INITSTATUS2_IMUINITSTATUS_INITALIZING = 1; //!< @todo documentation
1091static constexpr uint8_t UBX_ESF_STATUS_V2_INITSTATUS2_IMUINITSTATUS_INITIALIZED1 = 2; //!< @todo documentation
1092static constexpr uint8_t UBX_ESF_STATUS_V2_INITSTATUS2_IMUINITSTATUS_INITIALIZED2 = 3; //!< @todo documentation
1093static constexpr uint8_t UBX_ESF_STATUS_V2_FUSIONMODE_INIT = 0x00; //!< @todo documentation
1094static constexpr uint8_t UBX_ESF_STATUS_V2_FUSIONMODE_FUSION = 0x01; //!< @todo documentation
1095static constexpr uint8_t UBX_ESF_STATUS_V2_FUSIONMODE_SUSPENDED = 0x02; //!< @todo documentation
1096static constexpr uint8_t UBX_ESF_STATUS_V2_FUSIONMODE_DISABLED = 0x03; //!< @todo documentation
1097static constexpr uint8_t UBX_ESF_STATUS_V2_SENSSTATUS1_TYPE(const uint8_t sensStatus1) { return sensStatus1 & 0x3f; } //!< same enum as UBX-ESF-MEAS.dataType it seems //!< @todo documentation
1098static constexpr uint8_t UBX_ESF_STATUS_V2_SENSSTATUS1_USED = 0x40; //!< @todo documentation
1099static constexpr uint8_t UBX_ESF_STATUS_V2_SENSSTATUS1_READY = 0x80; //!< @todo documentation
1100static constexpr uint8_t UBX_ESF_STATUS_V2_SENSSTATUS2_CALIBSTATUS(const uint8_t sensStatus2) { return sensStatus2 & 0x03; } //!< @todo documentation
1101static constexpr uint8_t UBX_ESF_STATUS_V2_SENSSTATUS2_CALIBSTATUS_NOTCALIB = 0; //!< @todo documentation
1102static constexpr uint8_t UBX_ESF_STATUS_V2_SENSSTATUS2_CALIBSTATUS_CALIBRATING = 1; //!< @todo documentation
1103static constexpr uint8_t UBX_ESF_STATUS_V2_SENSSTATUS2_CALIBSTATUS_CALIBRATED1 = 2; //!< @todo documentation
1104static constexpr uint8_t UBX_ESF_STATUS_V2_SENSSTATUS2_CALIBSTATUS_CALIBRATED2 = 3; //!< @todo documentation
1105static constexpr uint8_t UBX_ESF_STATUS_V2_SENSSTATUS2_TIMESTATUS(const uint8_t sensStatus2) { return (sensStatus2 >> 2) & 0x03; } //!< @todo documentation
1106static constexpr uint8_t UBX_ESF_STATUS_V2_SENSSTATUS2_TIMESTATUS_NODATA = 0; //!< @todo documentation
1107static constexpr uint8_t UBX_ESF_STATUS_V2_SENSSTATUS2_TIMESTATUS_FIRSTBYTE = 1; //!< @todo documentation
1108static constexpr uint8_t UBX_ESF_STATUS_V2_SENSSTATUS2_TIMESTATUS_EVENT = 2; //!< @todo documentation
1109static constexpr uint8_t UBX_ESF_STATUS_V2_SENSSTATUS2_TIMESTATUS_TIMETAG = 3; //!< @todo documentation
1110static constexpr uint8_t UBX_ESF_STATUS_V2_FAULTS_BADMEAS = 0x01; //!< @todo documentation
1111static constexpr uint8_t UBX_ESF_STATUS_V2_FAULTS_BADTTAG = 0x02; //!< @todo documentation
1112static constexpr uint8_t UBX_ESF_STATUS_V2_FAULTS_MISSINGMEAS = 0x04; //!< @todo documentation
1113static constexpr uint8_t UBX_ESF_STATUS_V2_FAULTS_NOISYMEAS = 0x08; //!< @todo documentation
1114// clang-format on
1115
1116///@}
1117// ---------------------------------------------------------------------------------------------------------------------
1118/**
1119 * @name UBX-MON-COMMS message
1120 * @{
1121 */
1122
1123//! UBX-MON-COMMS (version 0, output) payload head
1124struct UBX_MON_COMMS_V0_GROUP0 // clang-format off
1125{
1126 uint8_t version; //!< @todo documentation
1127 uint8_t nPorts; //!< @todo documentation
1128 uint8_t txErrors; //!< @todo documentation
1129 uint8_t reserved0; //!< @todo documentation
1130 uint8_t protIds[4]; //!< @todo documentation
1131}; // clang-format on
1132
1133static_assert(sizeof(UBX_MON_COMMS_V0_GROUP0) == 8, "");
1134
1135//! UBX-MON-COMMS (version 0, output) payload repeated group
1136struct UBX_MON_COMMS_V0_GROUP1 // clang-format off
1137{
1138 // Similar to UBX-MON-HW3.pinId this seems to be made up of two values actually:
1139 // - a port ID (probably same enum as in u-center's UBX-CFG-PRT: 0 = I2C, 1 = UART1, 2 = UART2, 3 = USB, 4 = SPI)
1140 // - a "bank" of ports (0, 1, ...)
1141 // u-center only shows some of the ports it seems (why?!)
1142 uint16_t portId; //!< @todo documentation
1143 uint16_t txPending; //!< @todo documentation
1144 uint32_t txBytes; //!< @todo documentation
1145 uint8_t txUsage; //!< @todo documentation
1146 uint8_t txPeakUsage; //!< @todo documentation
1147 uint16_t rxPending; //!< @todo documentation
1148 uint32_t rxBytes; //!< @todo documentation
1149 uint8_t rxUsage; //!< @todo documentation
1150 uint8_t rxPeakUsage; //!< @todo documentation
1151 uint16_t overrunErrors; //!< @todo documentation
1152 uint16_t msgs[4]; //!< @todo documentation
1153 uint8_t reserved1[8]; //!< @todo documentation
1154 uint32_t skipped; //!< @todo documentation
1155}; // clang-format on
1156
1157static_assert(sizeof(UBX_MON_COMMS_V0_GROUP1) == 40, "");
1158
1159// clang-format off
1160static constexpr uint8_t UBX_MON_COMMS_VERSION(const uint8_t* msg) { return msg[UBX_HEAD_SIZE]; } //!< @todo documentation
1161static constexpr uint8_t UBX_MON_COMMS_V0_VERSION = 0x00; //!< @todo documentation
1162static constexpr std::size_t UBX_MON_COMMS_V0_MIN_SIZE = sizeof(UBX_MON_COMMS_V0_GROUP0) + UBX_FRAME_SIZE; //!< @todo documentation
1163static constexpr std::size_t UBX_MON_COMMS_V0_SIZE(const uint8_t* msg) { return //!< @todo documentation
1164 sizeof(UBX_MON_COMMS_V0_GROUP0) + UBX_FRAME_SIZE + (((uint8_t *)(msg))[UBX_HEAD_SIZE + 1] * sizeof(UBX_MON_COMMS_V0_GROUP1)); } //!< @todo documentation
1165static constexpr bool UBX_MON_COMMS_V0_TXERRORS_MEM(const uint8_t txErrors) { return (txErrors & 0x01) == 0x01; } //!< @todo documentation
1166static constexpr bool UBX_MON_COMMS_V0_TXERRORS_ALLOC(const uint8_t txErrors) { return (txErrors & 0x02) == 0x02; } //!< @todo documentation
1167static constexpr uint8_t UBX_MON_COMMS_V0_TXERRORS_OUTPUTPORT(const uint8_t txErrors) { return (txErrors >> 3) & 0x7; } //!< @todo documentation
1168static constexpr uint8_t UBX_MON_COMMS_V0_TXERRORS_OUTPUTPORT_NA = 0; //!< @todo documentation
1169static constexpr uint8_t UBX_MON_COMMS_V0_TXERRORS_OUTPUTPORT_I2C = 1; //!< @todo documentation
1170static constexpr uint8_t UBX_MON_COMMS_V0_TXERRORS_OUTPUTPORT_UART1 = 2; //!< @todo documentation
1171static constexpr uint8_t UBX_MON_COMMS_V0_TXERRORS_OUTPUTPORT_UART2 = 3; //!< @todo documentation
1172static constexpr uint8_t UBX_MON_COMMS_V0_TXERRORS_OUTPUTPORT_USB = 4; //!< @todo documentation
1173static constexpr uint8_t UBX_MON_COMMS_V0_TXERRORS_OUTPUTPORT_SPI = 5; //!< @todo documentation
1174static constexpr uint8_t UBX_MON_COMMS_V0_PROTIDS_UBX = 0x00; //!< @todo documentation
1175static constexpr uint8_t UBX_MON_COMMS_V0_PROTIDS_NMEA = 0x01; //!< @todo documentation
1176static constexpr uint8_t UBX_MON_COMMS_V0_PROTIDS_RAW = 0x03; //!< probably.. see UBX-MON-MSGPP
1177static constexpr uint8_t UBX_MON_COMMS_V0_PROTIDS_RTCM2 = 0x02; //!< @todo documentation
1178static constexpr uint8_t UBX_MON_COMMS_V0_PROTIDS_RTCM3 = 0x05; //!< @todo documentation
1179static constexpr uint8_t UBX_MON_COMMS_V0_PROTIDS_SPARTN = 0x06; //!< @todo documentation
1180static constexpr uint8_t UBX_MON_COMMS_V0_PROTIDS_OTHER = 0xff; //!< @todo documentation
1181// clang-format on
1182
1183///@}
1184// ---------------------------------------------------------------------------------------------------------------------
1185/**
1186 * @name UBX-MON-HW message
1187 * @{
1188 */
1189
1190//! UBX-MON-HW (version 0, output)
1191struct UBX_MON_HW_V0_GROUP0 // clang-format off
1192{
1193 uint32_t pinSel; //!< @todo documentation
1194 uint32_t pinBank; //!< @todo documentation
1195 uint32_t pinDir; //!< @todo documentation
1196 uint32_t pinVal; //!< @todo documentation
1197 uint16_t noisePerMS; //!< @todo documentation
1198 uint16_t agcCnt; //!< @todo documentation
1199 uint8_t aStatus; //!< @todo documentation
1200 uint8_t aPower; //!< @todo documentation
1201 uint8_t flags; //!< @todo documentation
1202 uint8_t reserved0; //!< @todo documentation
1203 uint32_t usedMask; //!< @todo documentation
1204 uint8_t VP[17]; //!< @todo documentation
1205 uint8_t jamInd; //!< @todo documentation
1206 uint8_t reserved1[2]; //!< @todo documentation
1207 uint32_t pinIrq; //!< @todo documentation
1208 uint32_t pullH; //!< @todo documentation
1209 uint32_t pullL; //!< @todo documentation
1210}; // clang-format on
1211
1212static_assert(sizeof(UBX_MON_HW_V0_GROUP0) == 60, "");
1213
1214// clang-format off
1215static constexpr std::size_t UBX_MON_HW_V0_SIZE = sizeof(UBX_MON_HW_V0_GROUP0) + UBX_FRAME_SIZE; //!< @todo documentation
1216static constexpr uint8_t UBX_MON_HW_V0_FLAGS_RTCCALIB = 0x01; //!< @todo documentation
1217static constexpr uint8_t UBX_MON_HW_V0_FLAGS_SAFEBOOT = 0x02; //!< @todo documentation
1218static constexpr uint8_t UBX_MON_HW_V0_FLAGS_JAMMINGSTATE(const uint8_t flags) { return (flags >> 2) & 0x03; } //!< @todo documentation
1219static constexpr uint8_t UBX_MON_HW_V0_FLAGS_JAMMINGSTATE_UNKNOWN = 0x00; //!< @todo documentation
1220static constexpr uint8_t UBX_MON_HW_V0_FLAGS_JAMMINGSTATE_OK = 0x01; //!< @todo documentation
1221static constexpr uint8_t UBX_MON_HW_V0_FLAGS_JAMMINGSTATE_WARNING = 0x02; //!< @todo documentation
1222static constexpr uint8_t UBX_MON_HW_V0_FLAGS_JAMMINGSTATE_CRITICAL = 0x03; //!< @todo documentation
1223static constexpr uint8_t UBX_MON_HW_V0_FLAGS_XTALABSENT = 0x10; //!< @todo documentation
1224static constexpr uint8_t UBX_MON_HW_V0_ASTATUS_INIT = 0x00; //!< @todo documentation
1225static constexpr uint8_t UBX_MON_HW_V0_ASTATUS_UNKNOWN = 0x01; //!< @todo documentation
1226static constexpr uint8_t UBX_MON_HW_V0_ASTATUS_OK = 0x02; //!< @todo documentation
1227static constexpr uint8_t UBX_MON_HW_V0_ASTATUS_SHORT = 0x03; //!< @todo documentation
1228static constexpr uint8_t UBX_MON_HW_V0_ASTATUS_OPEN = 0x04; //!< @todo documentation
1229static constexpr uint8_t UBX_MON_HW_V0_APOWER_OFF = 0x00; //!< @todo documentation
1230static constexpr uint8_t UBX_MON_HW_V0_APOWER_ON = 0x01; //!< @todo documentation
1231static constexpr uint8_t UBX_MON_HW_V0_APOWER_UNKNOWN = 0x02; //!< @todo documentation
1232static constexpr uint16_t UBX_MON_HW_V0_NOISEPERMS_MAX = 200; //!< This seems to be what u-center uses..
1233static constexpr uint16_t UBX_MON_HW_V0_AGCCNT_MAX = 8191; //!< @todo documentation
1234static constexpr uint8_t UBX_MON_HW_V0_JAMIND_MAX = 255; //!< @todo documentation
1235// clang-format on
1236
1237///@}
1238// ---------------------------------------------------------------------------------------------------------------------
1239/**
1240 * @name UBX-MON-HW2 message
1241 * @{
1242 */
1243
1244//! UBX-MON-HW (version 0, output) payload
1245struct UBX_MON_HW2_V0_GROUP0 // clang-format off
1246{
1247 int8_t ofsI; //!< @todo documentation
1248 uint8_t magI; //!< @todo documentation
1249 int8_t ofsQ; //!< @todo documentation
1250 uint8_t magQ; //!< @todo documentation
1251 uint8_t cfgSource; //!< @todo documentation
1252 uint8_t reserved0[3]; //!< @todo documentation
1253 uint32_t lowLevCfg; //!< @todo documentation
1254 uint8_t reserved1[8]; //!< @todo documentation
1255 uint32_t postStatus; //!< @todo documentation
1256 uint8_t reserved2[3]; //!< @todo documentation
1257}; // clang-format on
1258
1259static_assert(sizeof(UBX_MON_HW2_V0_GROUP0) == 28, "");
1260
1261// clang-format off
1262static constexpr std::size_t UBX_MON_HW2_V0_SIZE = sizeof(UBX_MON_HW2_V0_GROUP0) + UBX_FRAME_SIZE; //!< @todo documentation+ UBX_FRAME_SIZE
1263static constexpr uint8_t UBX_MON_HW2_V0_CFGSOURCE_ROM = 114; //!< @todo documentation
1264static constexpr uint8_t UBX_MON_HW2_V0_CFGSOURCE_OTP = 111; //!< @todo documentation
1265static constexpr uint8_t UBX_MON_HW2_V0_CFGSOURCE_PIN = 112; //!< @todo documentation
1266static constexpr uint8_t UBX_MON_HW2_V0_CFGSOURCE_FLASH = 102; //!< @todo documentation
1267// clang-format on
1268
1269///@}
1270// ---------------------------------------------------------------------------------------------------------------------
1271/**
1272 * @name UBX-MON-HW3 message
1273 * @{
1274 */
1275
1276//! UBX-MON-HW3 (version 0, output) payload
1277struct UBX_MON_HW3_V0_GROUP0 // clang-format off
1278{
1279 uint8_t version; //!< @todo documentation
1280 uint8_t nPins; //!< @todo documentation
1281 uint8_t flags; //!< @todo documentation
1282 char hwVersion[10]; //!< @todo documentation
1283 uint8_t reserved0[9]; //!< @todo documentation
1284}; // clang-format on
1285
1286static_assert(sizeof(UBX_MON_HW3_V0_GROUP0) == 22, "");
1287
1288//! UBX-MON-HW3 (version 0, output) payload
1289struct UBX_PACKED UBX_MON_HW3_V0_GROUP1 // clang-format off
1290{
1291 uint16_t pinId; //!< @todo documentation // u-center shows ((pinId & 0xff00) >> 8) | ((pinId & 0x00ff) << 8), seems to be: (pinNo << 8) | pinBank
1292 uint16_t pinMask; //!< @todo documentation
1293 uint8_t VP; //!< @todo documentation
1294 uint8_t reserved1; //!< @todo documentation
1295}; // clang-format on
1296
1297static_assert(sizeof(UBX_MON_HW3_V0_GROUP1) == 6, "");
1298
1299// clang-format off
1300static constexpr uint8_t UBX_MON_HW3_VERSION(const uint8_t* msg) { return msg[UBX_HEAD_SIZE]; } //!< @todo documentation
1301static constexpr uint8_t UBX_MON_HW3_V0_VERSION = 0x00; //!< @todo documentation
1302static constexpr std::size_t UBX_MON_HW3_V0_MIN_SIZE = sizeof(UBX_MON_HW3_V0_GROUP0) + UBX_FRAME_SIZE; //!< @todo documentation
1303static constexpr std::size_t UBX_MON_HW3_V0_SIZE(const uint8_t* msg) { return //!< @todo documentation
1304 sizeof(UBX_MON_HW3_V0_GROUP0) + UBX_FRAME_SIZE + (((uint8_t*)(msg))[UBX_HEAD_SIZE + 1] * sizeof(UBX_MON_HW3_V0_GROUP1)); } //!< @todo documentation
1305static constexpr bool UBX_MON_HW3_V0_FLAGS_RTCCALIB(const uint8_t flags) { return (flags & 0x01) == 0x01; } //!< @todo documentation
1306static constexpr bool UBX_MON_HW3_V0_FLAGS_SAFEBOOT(const uint8_t flags) { return (flags & 0x02) == 0x02; } //!< @todo documentation
1307static constexpr bool UBX_MON_HW3_V0_FLAGS_XTALABSENT(const uint8_t flags) { return (flags & 0x04) == 0x04; } //!< @todo documentation
1308static constexpr uint8_t UBX_MON_HW3_V0_PINMASK_PERIPHPIO(const uint16_t pinMask) { return pinMask & 0x01; } //!< @todo documentation
1309static constexpr uint8_t UBX_MON_HW3_V0_PINMASK_PERIPHPIO_PERIPH = 0; //!< @todo documentation
1310static constexpr uint8_t UBX_MON_HW3_V0_PINMASK_PERIPHPIO_PIO = 1; //!< @todo documentation
1311static constexpr uint8_t UBX_MON_HW3_V0_PINMASK_PINBANK(const uint16_t pinMask) { return (pinMask >> 1) & 0x01; } //!< @todo documentation
1312static constexpr uint8_t UBX_MON_HW3_V0_PINMASK_PINBANK_A = 0; //!< @todo documentation
1313static constexpr uint8_t UBX_MON_HW3_V0_PINMASK_PINBANK_B = 1; //!< @todo documentation
1314static constexpr uint8_t UBX_MON_HW3_V0_PINMASK_PINBANK_C = 2; //!< @todo documentation
1315static constexpr uint8_t UBX_MON_HW3_V0_PINMASK_PINBANK_D = 3; //!< @todo documentation
1316static constexpr uint8_t UBX_MON_HW3_V0_PINMASK_PINBANK_E = 4; //!< @todo documentation
1317static constexpr uint8_t UBX_MON_HW3_V0_PINMASK_PINBANK_F = 5; //!< @todo documentation
1318static constexpr uint8_t UBX_MON_HW3_V0_PINMASK_PINBANK_G = 6; //!< @todo documentation
1319static constexpr uint8_t UBX_MON_HW3_V0_PINMASK_PINBANK_H = 7; //!< @todo documentation
1320static constexpr uint8_t UBX_MON_HW3_V0_PINMASK_DIRECTION(const uint16_t pinMask) { return (pinMask >> 4) & 0x01; } //!< @todo documentation
1321static constexpr uint8_t UBX_MON_HW3_V0_PINMASK_DIRECTION_OUT = 0; //!< @todo documentation
1322static constexpr uint8_t UBX_MON_HW3_V0_PINMASK_DIRECTION_IN = 1; //!< @todo documentation
1323static constexpr bool UBX_MON_HW3_V0_PINMASK_VALUE(const uint16_t pinMask) { return (pinMask & 0x0020) == 0x0020; } //!< @todo documentation
1324static constexpr bool UBX_MON_HW3_V0_PINMASK_VPMANAGER(const uint16_t pinMask) { return (pinMask & 0x0040) == 0x0040; } //!< @todo documentation
1325static constexpr bool UBX_MON_HW3_V0_PINMASK_PIOIRQ(const uint16_t pinMask) { return (pinMask & 0x0080) == 0x0080; } //!< @todo documentation
1326static constexpr bool UBX_MON_HW3_V0_PINMASK_PIOPULLHIGH(const uint16_t pinMask) { return (pinMask & 0x0100) == 0x0100; } //!< @todo documentation
1327static constexpr bool UBX_MON_HW3_V0_PINMASK_PIOPULLLOW(const uint16_t pinMask) { return (pinMask & 0x0200) == 0x0200; } //!< @todo documentation
1328// clang-format on
1329
1330///@}
1331// ---------------------------------------------------------------------------------------------------------------------
1332/**
1333 * @name UBX-MON-RF message
1334 * @{
1335 */
1336
1337//! UBX-MON-RF (version 0, output) payload head
1338struct UBX_MON_RF_V0_GROUP0 // clang-format off
1339{
1340 uint8_t version; //!< @todo documentation
1341 uint8_t nBlocks; //!< @todo documentation
1342 uint8_t reserved[2]; //!< @todo documentation
1343};
1344// clang-format on
1345
1346static_assert(sizeof(UBX_MON_RF_V0_GROUP0) == 4, "");
1347
1348//! UBX-MON-RF (version 0, output) payload repeated group
1349struct UBX_MON_RF_V0_GROUP1 // clang-format off
1350{
1351 uint8_t blockId; //!< @todo documentation
1352 uint8_t flags; //!< @todo documentation
1353 uint8_t antStatus; //!< @todo documentation
1354 uint8_t antPower; //!< @todo documentation
1355 uint32_t postStatus; //!< @todo documentation
1356 uint8_t reserved1[4]; //!< @todo documentation
1357 uint16_t noisePerMS; //!< @todo documentation
1358 uint16_t agcCnt; //!< @todo documentation
1359 uint8_t jamInd; //!< @todo documentation
1360 int8_t ofsI; //!< @todo documentation
1361 int8_t magI; //!< @todo documentation
1362 int8_t ofsQ; //!< @todo documentation
1363 int8_t magQ; //!< @todo documentation
1364 uint8_t reserved2[3]; //!< @todo documentation
1365}; // clang-format on
1366
1367static_assert(sizeof(UBX_MON_RF_V0_GROUP1) == 24, "");
1368
1369// clang-format off
1370static constexpr uint8_t UBX_MON_RF_VERSION(const uint8_t* msg) { return msg[UBX_HEAD_SIZE]; } //!< @todo documentation
1371static constexpr uint8_t UBX_MON_RF_V0_VERSION = 0x00; //!< @todo documentation
1372static constexpr std::size_t UBX_MON_RF_V0_MIN_SIZE = sizeof(UBX_MON_RF_V0_GROUP0) + UBX_FRAME_SIZE; //!< @todo documentation
1373static constexpr std::size_t UBX_MON_RF_V0_SIZE(const uint8_t* msg) { return
1374 sizeof(UBX_MON_RF_V0_GROUP0) + UBX_FRAME_SIZE + (((uint8_t *)(msg))[UBX_HEAD_SIZE + 1] * sizeof(UBX_MON_RF_V0_GROUP1)); } //!< @todo documentation
1375static constexpr uint8_t UBX_MON_RF_V0_FLAGS_JAMMINGSTATE(const uint8_t flags) { return flags & 0x03; } //!< @todo documentation
1376static constexpr uint8_t UBX_MON_RF_V0_FLAGS_JAMMINGSTATE_UNKN = 0; //!< @todo documentation
1377static constexpr uint8_t UBX_MON_RF_V0_FLAGS_JAMMINGSTATE_OK = 1; //!< @todo documentation
1378static constexpr uint8_t UBX_MON_RF_V0_FLAGS_JAMMINGSTATE_WARN = 2; //!< @todo documentation
1379static constexpr uint8_t UBX_MON_RF_V0_FLAGS_JAMMINGSTATE_CRIT = 3; //!< @todo documentation
1380static constexpr uint8_t UBX_MON_RF_V0_ANTSTATUS_INIT = 0; //!< @todo documentation
1381static constexpr uint8_t UBX_MON_RF_V0_ANTSTATUS_DONTKNOW = 1; //!< @todo documentation
1382static constexpr uint8_t UBX_MON_RF_V0_ANTSTATUS_OK = 2; //!< @todo documentation
1383static constexpr uint8_t UBX_MON_RF_V0_ANTSTATUS_SHORT = 3; //!< @todo documentation
1384static constexpr uint8_t UBX_MON_RF_V0_ANTSTATUS_OPEN = 4; //!< @todo documentation
1385static constexpr uint8_t UBX_MON_RF_V0_ANTPOWER_OFF = 0; //!< @todo documentation
1386static constexpr uint8_t UBX_MON_RF_V0_ANTPOWER_ON = 1; //!< @todo documentation
1387static constexpr uint8_t UBX_MON_RF_V0_ANTPOWER_DONTKNOW = 2; //!< @todo documentation
1388static constexpr uint16_t UBX_MON_RF_V0_NOISEPERMS_MAX = 200; //!< This seems to be what u-center uses..
1389static constexpr uint16_t UBX_MON_RF_V0_AGCCNT_MAX = 8191; //!< @todo documentation
1390static constexpr uint8_t UBX_MON_RF_V0_JAMIND_MAX = 255; //!< @todo documentation
1391// clang-format on
1392
1393///@}
1394
1395// ---------------------------------------------------------------------------------------------------------------------
1396/**
1397 * @name UBX-MON-SPAN message
1398 * @{
1399 */
1400
1401//! UBX-MON-RF (version 0, output) payload head
1402struct UBX_MON_SPAN_V0_GROUP0 // clang-format off
1403{
1404 uint8_t version; //!< @todo documentation
1405 uint8_t numRfBlocks; //!< @todo documentation
1406 uint8_t reserved[2]; //!< @todo documentation
1407}; // clang-format on
1408
1409static_assert(sizeof(UBX_MON_SPAN_V0_GROUP0) == 4, "");
1410
1411static constexpr std::size_t UBX_MON_SPAN_V0_NUM_BINS = 255; //!< Number of bins
1412
1413//! UBX-MON-RF (version 0, output) payload repeated group
1414struct UBX_MON_SPAN_V0_GROUP1 // clang-format off
1415{
1416 uint8_t spectrum[UBX_MON_SPAN_V0_NUM_BINS]; //!< @todo documentation
1417 uint32_t span; //!< @todo documentation
1418 uint32_t res; //!< @todo documentation
1419 uint32_t center; //!< @todo documentation
1420 uint8_t pga; //!< @todo documentation
1421 uint8_t reserved[3]; //!< @todo documentation
1422}; // clang-format on
1423
1424static_assert(sizeof(UBX_MON_SPAN_V0_GROUP1) == 272, "");
1425
1426// clang-format off
1427static constexpr uint8_t UBX_MON_SPAN_VERSION(const uint8_t* msg) { return msg[UBX_HEAD_SIZE]; } //!< @todo documentation
1428static constexpr uint8_t UBX_MON_SPAN_V0_VERSION = 0x00; //!< @todo documentation
1429static constexpr std::size_t UBX_MON_SPAN_V0_MIN_SIZE = sizeof(UBX_MON_SPAN_V0_GROUP0) + UBX_FRAME_SIZE; //!< @todo documentation
1430static constexpr std::size_t UBX_MON_SPAN_V0_SIZE(const uint8_t* msg) { return
1431 sizeof(UBX_MON_SPAN_V0_GROUP0) + UBX_FRAME_SIZE + (((uint8_t *)(msg))[UBX_HEAD_SIZE + 1] * sizeof(UBX_MON_SPAN_V0_GROUP1)); } //!< @todo documentation
1432static constexpr double UBX_MON_SPAN_BIN_CENT_FREQ(const uint32_t center, const uint32_t span, const int ix) { return
1433 (double)center + ((double)span * (((double)(ix) - 128.0) / 256.0)); } //!< @todo documentation
1434// clang-format on
1435
1436// ---------------------------------------------------------------------------------------------------------------------
1437/**
1438 * @name UBX-MON-SYS message
1439 * @{
1440 */
1441
1442//! UBX-MON-SYS (version 1, output) payload
1443struct UBX_MON_SYS_V1_GROUP0 // clang-format off
1444{
1445 uint8_t msgVer; //!< @todo documentation
1446 uint8_t bootType; //!< @todo documentation
1447 uint8_t cpuLoad; //!< @todo documentation
1448 uint8_t cpuLoadMax; //!< @todo documentation
1449 uint8_t memUsage; //!< @todo documentation
1450 uint8_t memUsageMax; //!< @todo documentation
1451 uint8_t ioUsage; //!< @todo documentation
1452 uint8_t ioUsageMax; //!< @todo documentation
1453 uint32_t runTime; //!< @todo documentation
1454 uint16_t noticeCount; //!< @todo documentation
1455 uint16_t warnCount; //!< @todo documentation
1456 uint16_t errorCount; //!< @todo documentation
1457 int8_t tempValue; //!< @todo documentation
1458 uint8_t reserved[5]; //!< @todo documentation
1459}; // clang-format on
1460
1461static_assert(sizeof(UBX_MON_SYS_V1_GROUP0) == 24, "");
1462
1463// clang-format off
1464static constexpr uint8_t UBX_MON_SYS_VERSION(const uint8_t* msg) { return msg[UBX_HEAD_SIZE]; } //!< @todo documentation
1465static constexpr uint8_t UBX_MON_SYS_V1_VERSION = 0x01; //!< @todo documentation
1466static constexpr std::size_t UBX_MON_SYS_V1_SIZE = sizeof(UBX_MON_SYS_V1_GROUP0) + UBX_FRAME_SIZE; //!< @todo documentation
1467static constexpr uint8_t UBX_MON_SYS_V1_BOOTTYPE_UNKNOWN = 0; //!< Boot type: unknown
1468static constexpr uint8_t UBX_MON_SYS_V1_BOOTTYPE_COLDSTART = 1; //!< Boot type: cold Start
1469static constexpr uint8_t UBX_MON_SYS_V1_BOOTTYPE_WATCHDOG = 2; //!< Boot type: watchdog
1470static constexpr uint8_t UBX_MON_SYS_V1_BOOTTYPE_HWRESET = 3; //!< Boot type: hardware reset
1471static constexpr uint8_t UBX_MON_SYS_V1_BOOTTYPE_HWBACKUP = 4; //!< Boot type: hardware backup
1472static constexpr uint8_t UBX_MON_SYS_V1_BOOTTYPE_SWBACKUP = 5; //!< Boot type: software backup
1473static constexpr uint8_t UBX_MON_SYS_V1_BOOTTYPE_SWRESET = 6; //!< Boot type: software reset
1474static constexpr uint8_t UBX_MON_SYS_V1_BOOTTYPE_VIOFAIL = 7; //!< Boot type: VIO fail
1475static constexpr uint8_t UBX_MON_SYS_V1_BOOTTYPE_VDDXFAIL = 8; //!< Boot type: VDD_X fail
1476static constexpr uint8_t UBX_MON_SYS_V1_BOOTTYPE_VDDRFFAIL = 9; //!< Boot type: VDD_RF fail
1477static constexpr uint8_t UBX_MON_SYS_V1_BOOTTYPE_VCOREHIGHFAIL = 10; //!< Boot type: V_CORE_HIGH fail
1478static constexpr uint8_t UBX_MON_SYS_V1_BOOTTYPE_SYSTEMRESET = 11; //!< Boot type: system reset
1479// clang-format on
1480
1481///@}
1482// ---------------------------------------------------------------------------------------------------------------------
1483/**
1484 * @name UBX-MON-TEMP message
1485 * @{
1486 */
1487
1488//! UBX-MON-TEMP (version 0, output) message payload (no docu available, but u-center shows it...)
1489struct UBX_MON_TEMP_V0_GROUP0 // clang-format off
1490{
1491 uint8_t version; //!< probably version.. @todo documentation
1492 uint8_t reserved0[3]; //!< @todo documentation
1493 int16_t temperature; //!< @todo documentation
1494 uint8_t unknown; //!< unit? 1 = C? @todo documentation
1495 uint8_t reserved1[5]; //!< @todo documentation
1496}; // clang-format on
1497
1498static_assert(sizeof(UBX_MON_TEMP_V0_GROUP0) == 12, "");
1499
1500// clang-format off
1501static constexpr uint8_t UBX_MON_TEMP_VERSION(const uint8_t* msg) { return msg[UBX_HEAD_SIZE]; } //!< @todo documentation
1502static constexpr uint8_t UBX_MON_TEMP_V0_VERSION = 0x00; //!< @todo documentation
1503static constexpr std::size_t UBX_MON_TEMP_V0_SIZE = sizeof(UBX_MON_TEMP_V0_GROUP0) + UBX_FRAME_SIZE; //!< @todo documentation
1504// clang-format on
1505
1506///@}
1507// ---------------------------------------------------------------------------------------------------------------------
1508/**
1509 * @name UBX-MON-VER message
1510 * @{
1511 */
1512//! UBX-MON-VER (version 0, output) message payload header
1513struct UBX_MON_VER_V0_GROUP0 // clang-format off
1514{
1515 char swVersion[30]; //!< @todo documentation
1516 char hwVersion[10]; //!< @todo documentation
1517}; // clang-format on
1518
1519static_assert(sizeof(UBX_MON_VER_V0_GROUP0) == 40, "");
1520
1521//! UBX-MON-VER (version 0, output) optional repeated field
1522struct UBX_MON_VER_V0_GROUP1 // clang-format off
1523{
1524 char extension[30]; //!< @todo documentation
1525}; // clang-format on
1526
1527static_assert(sizeof(UBX_MON_VER_V0_GROUP1) == 30, "");
1528
1529// clang-format off
1530static constexpr uint8_t UBX_MON_VER_V0_MIN_SIZE = sizeof(UBX_MON_VER_V0_GROUP0) + UBX_FRAME_SIZE; //!< @todo documentation
1531// clang-format on
1532
1533///@}
1534// ---------------------------------------------------------------------------------------------------------------------
1535/**
1536 * @name UBX-NAV-ATT message
1537 * @{
1538 */
1539
1540//! UBX-NAV-ATT (version 0, output) payload
1541struct UBX_NAV_ATT_V0_GROUP0 // clang-format off
1542{
1543 uint32_t iTOW; //!< @todo documentation
1544 uint8_t version; //!< @todo documentation
1545 uint8_t reserved0[3]; //!< @todo documentation
1546 int32_t roll; //!< @todo documentation
1547 int32_t pitch; //!< @todo documentation
1548 int32_t heading; //!< @todo documentation
1549 uint32_t accRoll; //!< @todo documentation
1550 uint32_t accPitch; //!< @todo documentation
1551 uint32_t accHeading; //!< @todo documentation
1552}; // clang-format on
1553
1554static_assert(sizeof(UBX_NAV_ATT_V0_GROUP0) == 32, "");
1555
1556// clang-format off
1557static constexpr uint8_t UBX_NAV_ATT_VERSION(const uint8_t* msg) { return msg[UBX_HEAD_SIZE + sizeof(uint32_t)]; } //!< @todo documentation
1558static constexpr uint8_t UBX_NAV_ATT_V0_VERSION = 0x00; //!< @todo documentation
1559static constexpr std::size_t UBX_NAV_ATT_V0_SIZE = sizeof(UBX_NAV_ATT_V0_GROUP0) + UBX_FRAME_SIZE; //!< @todo documentation
1560static constexpr double UBX_NAV_ATT_V0_ITOW_SCALE = 1e-3; //!< @todo documentation
1561static constexpr double UBX_NAV_ATT_V0_RPH_SCALING = 1e-5; //!< @todo documentation
1562// clang-format on
1563
1564///@}
1565// ---------------------------------------------------------------------------------------------------------------------
1566/**
1567 * @name UBX-NAV-CLOCK message
1568 * @{
1569 */
1570
1571//! UBX-NAV-CLOCK payload
1572struct UBX_NAV_CLOCK_V0_GROUP0 // clang-format off
1573{
1574 uint32_t iTow; //!< @todo documentation
1575 int32_t clkB; //!< @todo documentation
1576 int32_t clkD; //!< @todo documentation
1577 uint32_t tAcc; //!< @todo documentation
1578 uint32_t fAcc; //!< @todo documentation
1579}; // clang-format on
1580
1581static_assert(sizeof(UBX_NAV_CLOCK_V0_GROUP0) == 20, "");
1582
1583// clang-format off
1584static constexpr std::size_t UBX_NAV_CLOCK_V0_SIZE = sizeof(UBX_NAV_CLOCK_V0_GROUP0) + UBX_FRAME_SIZE; //!< @todo documentation
1585static constexpr double UBX_NAV_CLOCK_V0_CLKB_SCALE = 1e-9; //!< @todo documentation
1586static constexpr double UBX_NAV_CLOCK_V0_CLKD_SCALE = 1e-9; //!< @todo documentation
1587static constexpr double UBX_NAV_CLOCK_V0_TACC_SCALE = 1e-9; //!< @todo documentation
1588static constexpr double UBX_NAV_CLOCK_V0_FACC_SCALE = 1e-12; //!< @todo documentation
1589// clang-format on
1590
1591///@}
1592// ---------------------------------------------------------------------------------------------------------------------
1593/**
1594 * @name UBX-NAV-COV message
1595 * @{
1596 */
1597
1598//! UBX-NAV-COV (version 0, output) payload head
1599struct UBX_NAV_COV_V0_GROUP0 // clang-format off
1600{
1601 uint32_t iTOW; //!< @todo documentation
1602 uint8_t version; //!< @todo documentation
1603 uint8_t posCovValid; //!< @todo documentation
1604 uint8_t velCovValid; //!< @todo documentation
1605 uint8_t reserved[9]; //!< @todo documentation
1606 float posCovNN; //!< @todo documentation
1607 float posCovNE; //!< @todo documentation
1608 float posCovND; //!< @todo documentation
1609 float posCovEE; //!< @todo documentation
1610 float posCovED; //!< @todo documentation
1611 float posCovDD; //!< @todo documentation
1612 float velCovNN; //!< @todo documentation
1613 float velCovNE; //!< @todo documentation
1614 float velCovND; //!< @todo documentation
1615 float velCovEE; //!< @todo documentation
1616 float velCovED; //!< @todo documentation
1617 float velCovDD; //!< @todo documentation
1618};
1619// clang-format on
1620
1621static_assert(sizeof(UBX_NAV_COV_V0_GROUP0) == 64, "");
1622
1623// clang-format off
1624static constexpr uint8_t UBX_NAV_COV_VERSION(const uint8_t* msg) { return msg[UBX_HEAD_SIZE + sizeof(uint32_t)]; } //!< @todo documentation
1625static constexpr uint8_t UBX_NAV_COV_V0_VERSION = 0x00; //!< @todo documentation
1626static constexpr std::size_t UBX_NAV_COV_V0_SIZE = sizeof(UBX_NAV_COV_V0_GROUP0) + UBX_FRAME_SIZE; //!< @todo documentation
1627static constexpr double UBX_NAV_COV_V0_ITOW_SCALE = 1e-3; //!< @todo documentation
1628// clang-format on
1629
1630///@}
1631// ---------------------------------------------------------------------------------------------------------------------
1632/**
1633 * @name UBX-NAV-DOP message
1634 * @{
1635 */
1636
1637//! UBX-NAV-DOP payload
1639{ // clang-format off
1640 uint32_t iTOW; //!< @todo documentation
1641 uint16_t gDOP; //!< @todo documentation
1642 uint16_t pDOP; //!< @todo documentation
1643 uint16_t tDOP; //!< @todo documentation
1644 uint16_t vDOP; //!< @todo documentation
1645 uint16_t hDOP; //!< @todo documentation
1646 uint16_t nDOP; //!< @todo documentation
1647 uint16_t eDOP; //!< @todo documentation
1648}; // clang-format on
1649
1650static_assert(sizeof(UBX_NAV_DOP_V0_GROUP0) == 18, "");
1651
1652// clang-format off
1653static constexpr std::size_t UBX_NAV_DOP_V0_SIZE = sizeof(UBX_NAV_DOP_V0_GROUP0) + UBX_FRAME_SIZE; //!< @todo documentation
1654static constexpr double UBX_NAV_DOP_V0_XDOP_SCALE = 1e-2; //!< @todo documentation
1655// clang-format on
1656
1657///@}
1658// ---------------------------------------------------------------------------------------------------------------------
1659/**
1660 * @name UBX-NAV-EELL message
1661 * @{
1662 */
1663
1664//! UBX-NAV-EELL (version 0, output) payload head
1665struct UBX_NAV_EELL_V0_GROUP0 // clang-format off
1666{
1667 uint32_t iTOW; //!< @todo documentation
1668 uint8_t version; //!< @todo documentation
1669 uint8_t reserved; //!< @todo documentation
1670 uint16_t errEllipseOrient; //!< @todo documentation
1671 uint32_t errEllipseMajor; //!< @todo documentation
1672 uint32_t errEllipseMinor; //!< @todo documentation
1673}; // clang-format on
1674
1675static_assert(sizeof(UBX_NAV_EELL_V0_GROUP0) == 16, "");
1676
1677// clang-format off
1678static constexpr uint8_t UBX_NAV_EELL_VERSION(const uint8_t* msg) { return msg[UBX_HEAD_SIZE]; } //!< @todo documentation
1679static constexpr uint8_t UBX_NAV_EELL_V0_VERSION = 0x00; //!< @todo documentation
1680static constexpr std::size_t UBX_NAV_EELL_V0_SIZE = sizeof(UBX_NAV_EELL_V0_GROUP0) + UBX_FRAME_SIZE; //!< @todo documentation
1681static constexpr double UBX_NAV_EELL_V0_ITOW_SCALE = 1e-3; //!< @todo documentation
1682static constexpr double UBX_NAV_EELL_V0_ELLIPSEORIENT_SCALE = 1e-2; //!< @todo documentation
1683static constexpr double UBX_NAV_EELL_V0_ELLIPSEMAJOR_SCALE = 1e-3; //!< @todo documentation
1684static constexpr double UBX_NAV_EELL_V0_ELLIPSEMINOR_SCALE = 1e-3; //!< @todo documentation
1685// clang-format on
1686
1687///@}
1688// ---------------------------------------------------------------------------------------------------------------------
1689/**
1690 * @name UBX-NAV-EOE message
1691 * @{
1692 */
1693
1694//! UBX-NAV-EOE (version 0, output) payload
1696{ // clang-format off
1697 uint32_t iTOW; //!< @todo documentation
1698}; // clang-format on
1699
1700static_assert(sizeof(UBX_NAV_EOE_V0_GROUP0) == 4, "");
1701
1702// clang-format off
1703static constexpr std::size_t UBX_NAV_EOE_V0_SIZE = sizeof(UBX_NAV_EOE_V0_GROUP0) + UBX_FRAME_SIZE; //!< @todo documentation
1704static constexpr double UBX_NAV_EOE_V0_ITOW_SCALE = 1e-3; //!< @todo documentation
1705// clang-format on
1706
1707///@}
1708// ---------------------------------------------------------------------------------------------------------------------
1709/**
1710 * @name UBX-NAV-HPPOSECEF message
1711 * @{
1712 */
1713
1714//! UBX-NAV-HPPOSECEF (version 0, output) payload
1716{ // clang-format off
1717 uint8_t version; //!< @todo documentation
1718 uint8_t reserved[3]; //!< @todo documentation
1719 uint32_t iTOW; //!< @todo documentation
1720 int32_t ecefX; //!< @todo documentation
1721 int32_t ecefY; //!< @todo documentation
1722 int32_t ecefZ; //!< @todo documentation
1723 int8_t ecefXHp; //!< @todo documentation
1724 int8_t ecefYHp; //!< @todo documentation
1725 int8_t ecefZHp; //!< @todo documentation
1726 uint8_t flags; //!< @todo documentation
1727 uint32_t pAcc; //!< @todo documentation
1728}; // clang-format on
1729
1730static_assert(sizeof(UBX_NAV_HPPOSECEF_V0_GROUP0) == 28, "");
1731
1732// clang-format off
1733static constexpr uint8_t UBX_NAV_HPPOSECEF_VERSION(const uint8_t* msg) { return msg[UBX_HEAD_SIZE]; } //!< @todo documentation
1734static constexpr uint8_t UBX_NAV_HPPOSECEF_V0_VERSION = 0x00; //!< @todo documentation
1735static constexpr std::size_t UBX_NAV_HPPOSECEF_V0_SIZE = sizeof(UBX_NAV_HPPOSECEF_V0_GROUP0) + UBX_FRAME_SIZE; //!< @todo documentation
1736static constexpr double UBX_NAV_HPPOSECEF_V0_ITOW_SCALE = 1e-3; //!< @todo documentation
1737static constexpr double UBX_NAV_HPPOSECEF_V0_ECEF_XYZ_SCALE = 1e-2; //!< @todo documentation
1738static constexpr double UBX_NAV_HPPOSECEF_V0_ECEF_XYZ_HP_SCALE = 1e-4; //!< @todo documentation
1739static constexpr double UBX_NAV_HPPOSECEF_V0_PACC_SCALE = 1e-4; //!< @todo documentation
1740static constexpr bool UBX_NAV_HPPOSECEF_V0_FLAGS_INVALIDECEF(const uint8_t flags) { return (flags & 0x01) == 0x01; } //!< @todo documentation
1741// clang-format on
1742
1743///@}
1744// ---------------------------------------------------------------------------------------------------------------------
1745/**
1746 * @name UBX-NAV-HPPOSLLH message
1747 * @{
1748 */
1749
1750//! UBX-NAV-HPPOSLLH (version 0) payload
1751struct UBX_NAV_HPPOSLLH_V0_GROUP0 // clang-format off
1752{
1753 uint8_t version; //!< @todo documentation
1754 uint8_t reserved[2]; //!< @todo documentation
1755 uint8_t flags; //!< @todo documentation
1756 uint32_t iTOW; //!< @todo documentation
1757 int32_t lon; //!< @todo documentation
1758 int32_t lat; //!< @todo documentation
1759 int32_t height; //!< @todo documentation
1760 int32_t hMSL; //!< @todo documentation
1761 int8_t lonHp; //!< @todo documentation
1762 int8_t latHp; //!< @todo documentation
1763 int8_t heightHp; //!< @todo documentation
1764 int8_t hMSLHp; //!< @todo documentation
1765 uint32_t hAcc; //!< @todo documentation
1766 uint32_t vAcc; //!< @todo documentation
1767}; // clang-format on
1768
1769static_assert(sizeof(UBX_NAV_HPPOSLLH_V0_GROUP0) == 36, "");
1770
1771// clang-format off
1772static constexpr uint8_t UBX_NAV_HPPOSLLH_VERSION(const uint8_t* msg) { return msg[UBX_HEAD_SIZE]; } //!< @todo documentation
1773static constexpr uint8_t UBX_NAV_HPPOSLLH_V0_VERSION = 0x00; //!< @todo documentation
1774static constexpr std::size_t UBX_NAV_HPPOSLLH_V0_SIZE = sizeof(UBX_NAV_HPPOSLLH_V0_GROUP0) + UBX_FRAME_SIZE; //!< @todo documentation
1775static constexpr uint8_t UBX_NAV_HPPOSLLH_V0_FLAGS_INVALIDLLH = 0x01; //!< @todo documentation
1776static constexpr double UBX_NAV_HPPOSLLH_V0_ITOW_SCALE = 1e-3; //!< @todo documentation
1777static constexpr double UBX_NAV_HPPOSLLH_V0_LL_SCALE = 1e-7; //!< @todo documentation
1778static constexpr double UBX_NAV_HPPOSLLH_V0_H_SCALE = 1e-3; //!< @todo documentation
1779static constexpr double UBX_NAV_HPPOSLLH_V0_LL_HP_SCALE = 1e-9; //!< @todo documentation
1780static constexpr double UBX_NAV_HPPOSLLH_V0_H_HP_SCALE = 1e-4; //!< @todo documentation
1781static constexpr double UBX_NAV_HPPOSLLH_V0_ACC_SCALE = 1e-4; //!< @todo documentation
1782// clang-format on
1783
1784///@}
1785// ---------------------------------------------------------------------------------------------------------------------
1786/**
1787 * @name UBX-NAV-POSECEF message
1788 * @{
1789 */
1790
1791//! UBX-NAV-POSECEF (version 0, output) payload
1792struct UBX_NAV_POSECEF_V0_GROUP0 // clang-format off
1793{
1794 uint32_t iTOW; //!< @todo documentation
1795 int32_t ecefX; //!< @todo documentation
1796 int32_t ecefY; //!< @todo documentation
1797 int32_t ecefZ; //!< @todo documentation
1798 uint32_t pAcc; //!< @todo documentation
1799}; // clang-format on
1800
1801static_assert(sizeof(UBX_NAV_POSECEF_V0_GROUP0) == 20, "");
1802
1803// clang-format off
1804static constexpr std::size_t UBX_NAV_POSECEF_V0_SIZE = sizeof(UBX_NAV_POSECEF_V0_GROUP0) + UBX_FRAME_SIZE; //!< @todo documentation
1805static constexpr double UBX_NAV_POSECEF_V0_ECEF_XYZ_SCALE = 1e-2; //!< @todo documentation
1806static constexpr double UBX_NAV_POSECEF_V0_PACC_SCALE = 1e-2; //!< @todo documentation
1807// clang-format on
1808
1809///@}
1810// ---------------------------------------------------------------------------------------------------------------------
1811/**
1812 * @name UBX-NAV-PVT message
1813 * @{
1814 */
1815
1816//! UBX-NAV-PVT (version 1, output) payload
1817struct UBX_NAV_PVT_V1_GROUP0 // clang-format off
1818 {
1819 uint32_t iTOW; //!< @todo documentation
1820 uint16_t year; //!< @todo documentation
1821 uint8_t month; //!< @todo documentation
1822 uint8_t day; //!< @todo documentation
1823 uint8_t hour; //!< @todo documentation
1824 uint8_t min; //!< @todo documentation
1825 uint8_t sec; //!< @todo documentation
1826 uint8_t valid; //!< @todo documentation
1827 uint32_t tAcc; //!< @todo documentation
1828 int32_t nano; //!< @todo documentation
1829 uint8_t fixType; //!< @todo documentation
1830 uint8_t flags; //!< @todo documentation
1831 uint8_t flags2; //!< @todo documentation
1832 uint8_t numSV; //!< @todo documentation
1833 int32_t lon; //!< @todo documentation
1834 int32_t lat; //!< @todo documentation
1835 int32_t height; //!< @todo documentation
1836 int32_t hMSL; //!< @todo documentation
1837 uint32_t hAcc; //!< @todo documentation
1838 uint32_t vAcc; //!< @todo documentation
1839 int32_t velN; //!< @todo documentation
1840 int32_t velE; //!< @todo documentation
1841 int32_t velD; //!< @todo documentation
1842 int32_t gSpeed; //!< @todo documentation
1843 int32_t headMot; //!< @todo documentation
1844 uint32_t sAcc; //!< @todo documentation
1845 uint32_t headAcc; //!< @todo documentation
1846 uint16_t pDOP; //!< @todo documentation
1847 uint8_t flags3; //!< @todo documentation
1848 uint8_t reserved[5]; //!< @todo documentation
1849 int32_t headVeh; //!< @todo documentation
1850 int16_t magDec; //!< @todo documentation
1851 uint16_t magAcc; //!< @todo documentation
1852}; // clang-format on
1853
1854static_assert(sizeof(UBX_NAV_PVT_V1_GROUP0) == 92, "");
1855
1856// clang-format off
1857static constexpr std::size_t UBX_NAV_PVT_V1_SIZE = sizeof(UBX_NAV_PVT_V1_GROUP0) + UBX_FRAME_SIZE; //!< @todo documentation
1858static constexpr double UBX_NAV_PVT_V1_ITOW_SCALE = 1e-3; //!< @todo documentation
1859static constexpr bool UBX_NAV_PVT_V1_VALID_VALIDDATE(const uint8_t valid) { return (valid & 0x01) == 0x01; } //!< @todo documentation
1860static constexpr bool UBX_NAV_PVT_V1_VALID_VALIDTIME(const uint8_t valid) { return (valid & 0x02) == 0x02; } //!< @todo documentation
1861static constexpr bool UBX_NAV_PVT_V1_VALID_FULLYRESOLVED(const uint8_t valid) { return (valid & 0x04) == 0x04; } //!< @todo documentation
1862static constexpr bool UBX_NAV_PVT_V1_VALID_VALIDMAG(const uint8_t valid) { return (valid & 0x08) == 0x08; } //!< @todo documentation
1863static constexpr uint8_t UBX_NAV_PVT_V1_FIXTYPE_NOFIX = 0; //!< @todo documentation
1864static constexpr uint8_t UBX_NAV_PVT_V1_FIXTYPE_DRONLY = 1; //!< @todo documentation
1865static constexpr uint8_t UBX_NAV_PVT_V1_FIXTYPE_2D = 2; //!< @todo documentation
1866static constexpr uint8_t UBX_NAV_PVT_V1_FIXTYPE_3D = 3; //!< @todo documentation
1867static constexpr uint8_t UBX_NAV_PVT_V1_FIXTYPE_3D_DR = 4; //!< @todo documentation
1868static constexpr uint8_t UBX_NAV_PVT_V1_FIXTYPE_TIME = 5; //!< @todo documentation
1869static constexpr bool UBX_NAV_PVT_V1_FLAGS_GNSSFIXOK(const uint8_t flags) { return (flags & 0x01) == 0x01; } //!< @todo documentation
1870static constexpr bool UBX_NAV_PVT_V1_FLAGS_DIFFSOLN(const uint8_t flags) { return (flags & 0x02) == 0x02; } //!< @todo documentation
1871static constexpr uint8_t UBX_NAV_PVT_V1_FLAGS_CARRSOLN(const uint8_t flags) { return (flags >> 6) & 0x03; } //!< @todo documentation
1872static constexpr uint8_t UBX_NAV_PVT_V1_FLAGS_CARRSOLN_NO = 0; //!< @todo documentation
1873static constexpr uint8_t UBX_NAV_PVT_V1_FLAGS_CARRSOLN_FLOAT = 1; //!< @todo documentation
1874static constexpr uint8_t UBX_NAV_PVT_V1_FLAGS_CARRSOLN_FIXED = 2; //!< @todo documentation
1875static constexpr bool UBX_NAV_PVT_V1_FLAGS2_CONFAVAIL(const uint8_t flags2) { return (flags2 & 0x20) == 0x20; } //!< @todo documentation
1876static constexpr bool UBX_NAV_PVT_V1_FLAGS2_CONFDATE(const uint8_t flags2) { return (flags2 & 0x40) == 0x40; } //!< @todo documentation
1877static constexpr bool UBX_NAV_PVT_V1_FLAGS2_CONFTIME(const uint8_t flags2) { return (flags2 & 0x80) == 0x80; } //!< @todo documentation
1878static constexpr bool UBX_NAV_PVT_V1_FLAGS3_INVALIDLLH(const uint8_t flags3) { return (flags3 & 0x01) == 0x01; } //!< @todo documentation
1879static constexpr double UBX_NAV_PVT_V1_LAT_SCALE = 1e-7; //!< @todo documentation
1880static constexpr double UBX_NAV_PVT_V1_LON_SCALE = 1e-7; //!< @todo documentation
1881static constexpr double UBX_NAV_PVT_V1_HEIGHT_SCALE = 1e-3; //!< @todo documentation
1882static constexpr double UBX_NAV_PVT_V1_HACC_SCALE = 1e-3; //!< @todo documentation
1883static constexpr double UBX_NAV_PVT_V1_VACC_SCALE = 1e-3; //!< @todo documentation
1884static constexpr double UBX_NAV_PVT_V1_VELNED_SCALE = 1e-3; //!< @todo documentation
1885static constexpr double UBX_NAV_PVT_V1_GSPEED_SCALE = 1e-3; //!< @todo documentation
1886static constexpr double UBX_NAV_PVT_V1_HEADMOT_SCALE = 1e-5; //!< @todo documentation
1887static constexpr double UBX_NAV_PVT_V1_SACC_SCALE = 1e-3; //!< @todo documentation
1888static constexpr double UBX_NAV_PVT_V1_HEADACC_SCALE = 1e-5; //!< @todo documentation
1889static constexpr double UBX_NAV_PVT_V1_PDOP_SCALE = 1e-2; //!< @todo documentation
1890static constexpr double UBX_NAV_PVT_V1_TACC_SCALE = 1e-9; //!< @todo documentation
1891static constexpr double UBX_NAV_PVT_V1_NANO_SCALE = 1e-9; //!< @todo documentation
1892// clang-format on
1893
1894///@}
1895// ---------------------------------------------------------------------------------------------------------------------
1896/**
1897 * @name UBX-NAV-RELPOSNED message
1898 * @{
1899 */
1900
1901//! UBX-NAV-RELPOSNED (version 1, output) payload
1902struct UBX_NAV_RELPOSNED_V1_GROUP0 // clang-format off
1903{
1904 uint8_t version; //!< @todo documentation
1905 uint8_t reserved0; //!< @todo documentation
1906 uint16_t refStationId; //!< @todo documentation
1907 uint32_t iTOW; //!< @todo documentation
1908 int32_t relPosN; //!< @todo documentation
1909 int32_t relPosE; //!< @todo documentation
1910 int32_t relPosD; //!< @todo documentation
1911 int32_t relPosLength; //!< @todo documentation
1912 int32_t relPosHeading; //!< @todo documentation
1913 uint8_t reserved1[4]; //!< @todo documentation
1914 int8_t relPosHPN; //!< @todo documentation
1915 int8_t relPosHPE; //!< @todo documentation
1916 int8_t relPosHPD; //!< @todo documentation
1917 int8_t relPosHPLength; //!< @todo documentation
1918 uint32_t accN; //!< @todo documentation
1919 uint32_t accE; //!< @todo documentation
1920 uint32_t accD; //!< @todo documentation
1921 uint32_t accLength; //!< @todo documentation
1922 uint32_t accHeading; //!< @todo documentation
1923 uint8_t reserved2[4]; //!< @todo documentation
1924 uint32_t flags; //!< @todo documentation
1925}; // clang-format on
1926
1927static_assert(sizeof(UBX_NAV_RELPOSNED_V1_GROUP0) == 64, "");
1928
1929// clang-format off
1930static constexpr uint8_t UBX_NAV_RELPOSNED_VERSION(const uint8_t* msg) { return msg[UBX_HEAD_SIZE]; } //!< @todo documentation
1931static constexpr uint8_t UBX_NAV_RELPOSNED_V1_VERSION = 0x01; //!< @todo documentation
1932static constexpr std::size_t UBX_NAV_RELPOSNED_V1_SIZE = sizeof(UBX_NAV_RELPOSNED_V1_GROUP0) + UBX_FRAME_SIZE; //!< @todo documentation
1933static constexpr double UBX_NAV_RELPOSNED_V1_ITOW_SCALE = 1e-3; //!< @todo documentation
1934static constexpr double UBX_NAV_RELPOSNED_V1_RELPOSN_E_D_SCALE = 1e-2; //!< @todo documentation
1935static constexpr double UBX_NAV_RELPOSNED_V1_RELPOSLENGTH_SCALE = 1e-2; //!< @todo documentation
1936static constexpr double UBX_NAV_RELPOSNED_V1_RELPOSHEADING_SCALE = 1e-5; //!< @todo documentation
1937static constexpr double UBX_NAV_RELPOSNED_V1_RELPOSHPN_E_D_SCALE = 1e-4; //!< @todo documentation
1938static constexpr double UBX_NAV_RELPOSNED_V1_RELPOSHPLENGTH_SCALE = 1e-4; //!< @todo documentation
1939static constexpr double UBX_NAV_RELPOSNED_V1_ACCN_E_D_SCALE = 1e-4; //!< @todo documentation
1940static constexpr double UBX_NAV_RELPOSNED_V1_ACCLENGTH_SCALE = 1e-4; //!< @todo documentation
1941static constexpr double UBX_NAV_RELPOSNED_V1_ACCHEADING_SCALE = 1e-5; //!< @todo documentation
1942static constexpr bool UBX_NAV_RELPOSNED_V1_FLAGS_GNSSFIXOK(const uint32_t flags) { return (flags & 0x00000001) == 0x00000001; } //!< @todo documentation
1943static constexpr bool UBX_NAV_RELPOSNED_V1_FLAGS_DIFFSOLN(const uint32_t flags) { return (flags & 0x00000002) == 0x00000002; } //!< @todo documentation
1944static constexpr bool UBX_NAV_RELPOSNED_V1_FLAGS_RELPOSVALID(const uint32_t flags) { return (flags & 0x00000004) == 0x00000004; } //!< @todo documentation
1945static constexpr uint8_t UBX_NAV_RELPOSNED_V1_FLAGS_CARRSOLN(const uint32_t flags) { return (flags >> 3) & 0x03; } //!< @todo documentation
1946static constexpr uint8_t UBX_NAV_RELPOSNED_V1_FLAGS_CARRSOLN_NO = 0; //!< @todo documentation
1947static constexpr uint8_t UBX_NAV_RELPOSNED_V1_FLAGS_CARRSOLN_FLOAT = 1; //!< @todo documentation
1948static constexpr uint8_t UBX_NAV_RELPOSNED_V1_FLAGS_CARRSOLN_FIXED = 2; //!< @todo documentation
1949static constexpr bool UBX_NAV_RELPOSNED_V1_FLAGS_ISMOVING(const uint32_t flags) { return (flags & 0x00000020) == 0x00000020; } //!< @todo documentation
1950static constexpr bool UBX_NAV_RELPOSNED_V1_FLAGS_REFPOSMISS(const uint32_t flags) { return (flags & 0x00000040) == 0x00000040; } //!< @todo documentation
1951static constexpr bool UBX_NAV_RELPOSNED_V1_FLAGS_REFOBSMISS(const uint32_t flags) { return (flags & 0x00000080) == 0x00000080; } //!< @todo documentation
1952static constexpr bool UBX_NAV_RELPOSNED_V1_FLAGS_RELPOSHEADINGVALID(const uint32_t flags) { return (flags & 0x00000100) == 0x00000100; } //!< @todo documentation
1953static constexpr bool UBX_NAV_RELPOSNED_V1_FLAGS_RELPOSNORMALIZED(const uint32_t flags) { return (flags & 0x00000200) == 0x00000200; } //!< @todo documentation
1954// clang-format on
1955
1956///@}
1957// ---------------------------------------------------------------------------------------------------------------------
1958/**
1959 * @name UBX-NAV-SAT message
1960 * @{
1961 */
1962
1963//! UBX-NAV-SAT (version 1, output) payload head
1964struct UBX_NAV_SAT_V1_GROUP0 // clang-format off
1965{
1966 uint32_t iTOW; //!< @todo documentation
1967 uint8_t version; //!< @todo documentation
1968 uint8_t numSvs; //!< @todo documentation
1969 uint8_t reserved[2]; //!< @todo documentation
1970}; // clang-format on
1971
1972static_assert(sizeof(UBX_NAV_SAT_V1_GROUP0) == 8, "");
1973
1974//! UBX-NAV-SAT (version 1, output) payload repeated group
1975struct UBX_NAV_SAT_V1_GROUP1 // clang-format off
1976{
1977 uint8_t gnssId; //!< @todo documentation
1978 uint8_t svId; //!< @todo documentation
1979 uint8_t cno; //!< @todo documentation
1980 int8_t elev; //!< @todo documentation
1981 int16_t azim; //!< @todo documentation
1982 int16_t prRes; //!< @todo documentation
1983 uint32_t flags; //!< @todo documentation
1984}; // clang-format on
1985
1986static_assert(sizeof(UBX_NAV_SAT_V1_GROUP1) == 12, "");
1987
1988// clang-format off
1989static constexpr uint8_t UBX_NAV_SAT_VERSION(const uint8_t* msg) { return msg[UBX_HEAD_SIZE + sizeof(uint32_t)]; } //!< @todo documentation
1990static constexpr uint8_t UBX_NAV_SAT_V1_VERSION = 0x01; //!< @todo documentation
1991static constexpr std::size_t UBX_NAV_SAT_V1_MIN_SIZE = sizeof(UBX_NAV_SAT_V1_GROUP0) + UBX_FRAME_SIZE; //!< @todo documentation
1992static constexpr double UBX_NAV_SAT_V1_ITOW_SCALE = 1e-3; //!< @todo documentation
1993// Note: only those flags relevant for a SV are defined below. All other info should be taken from UBX-NAV-SIG. //!< @todo documentation
1994static constexpr uint8_t UBX_NAV_SAT_V1_FLAGS_ORBITSOURCE(const uint32_t flags) { return (flags >> 8) & 0x00000007; } //!< @todo documentation
1995static constexpr uint8_t UBX_NAV_SAT_V1_FLAGS_ORBITSOURCE_NONE = 0; //!< @todo documentation
1996static constexpr uint8_t UBX_NAV_SAT_V1_FLAGS_ORBITSOURCE_EPH = 1; //!< @todo documentation
1997static constexpr uint8_t UBX_NAV_SAT_V1_FLAGS_ORBITSOURCE_ALM = 2; //!< @todo documentation
1998static constexpr uint8_t UBX_NAV_SAT_V1_FLAGS_ORBITSOURCE_ANO = 3; //!< @todo documentation
1999static constexpr uint8_t UBX_NAV_SAT_V1_FLAGS_ORBITSOURCE_ANA = 4; //!< @todo documentation
2000static constexpr uint8_t UBX_NAV_SAT_V1_FLAGS_ORBITSOURCE_OTHER1 = 5; //!< @todo documentation
2001static constexpr uint8_t UBX_NAV_SAT_V1_FLAGS_ORBITSOURCE_OTHER2 = 6; //!< @todo documentation
2002static constexpr uint8_t UBX_NAV_SAT_V1_FLAGS_ORBITSOURCE_OTHER3 = 7; //!< @todo documentation
2003static constexpr bool UBX_NAV_SAT_V1_FLAGS_EPHAVAIL(const uint32_t flags) { return (flags & 0x00000800) == 0x00000800; } //!< @todo documentation
2004static constexpr bool UBX_NAV_SAT_V1_FLAGS_ALMAVAIL(const uint32_t flags) { return (flags & 0x00001000) == 0x00001000; } //!< @todo documentation
2005static constexpr bool UBX_NAV_SAT_V1_FLAGS_ANOAVAIL(const uint32_t flags) { return (flags & 0x00002000) == 0x00002000; } //!< @todo documentation
2006static constexpr bool UBX_NAV_SAT_V1_FLAGS_AOPAVAIL(const uint32_t flags) { return (flags & 0x00004000) == 0x00004000; } //!< @todo documentation
2007// clang-format on
2008
2009///@}
2010// ---------------------------------------------------------------------------------------------------------------------
2011/**
2012 * @name UBX-NAV-SIG message
2013 * @{
2014 */
2015
2016//! UBX-NAV-SIG (version 0, output) payload head
2017struct UBX_NAV_SIG_V0_GROUP0 // clang-format off
2018{
2019 uint32_t iTOW; //!< @todo documentation
2020 uint8_t version; //!< @todo documentation
2021 uint8_t numSigs; //!< @todo documentation
2022 uint8_t reserved[2]; //!< @todo documentation
2023}; // clang-format on
2024
2025static_assert(sizeof(UBX_NAV_SIG_V0_GROUP0) == 8, "");
2026
2027//! UBX-NAV-SIG (version 0, output) payload repeated group
2028struct UBX_NAV_SIG_V0_GROUP1 // clang-format off
2029{
2030 uint8_t gnssId; //!< @todo documentation
2031 uint8_t svId; //!< @todo documentation
2032 uint8_t sigId; //!< @todo documentation
2033 uint8_t freqId; //!< @todo documentation
2034 int16_t prRes; //!< @todo documentation
2035 uint8_t cno; //!< @todo documentation
2036 uint8_t qualityInd; //!< @todo documentation
2037 uint8_t corrSource; //!< @todo documentation
2038 uint8_t ionoModel; //!< @todo documentation
2039 uint16_t sigFlags; //!< @todo documentation
2040 uint8_t reserved[4]; //!< @todo documentation
2041}; // clang-format on
2042
2043static_assert(sizeof(UBX_NAV_SIG_V0_GROUP1) == 16, "");
2044
2045// clang-format off
2046static constexpr uint8_t UBX_NAV_SIG_VERSION(const uint8_t* msg) { return msg[UBX_HEAD_SIZE + sizeof(uint32_t)]; } //!< @todo documentation
2047static constexpr uint8_t UBX_NAV_SIG_V0_VERSION = 0x00; //!< @todo documentation
2048static constexpr std::size_t UBX_NAV_SIG_V0_MIN_SIZE = sizeof(UBX_NAV_SIG_V0_GROUP0) + UBX_FRAME_SIZE; //!< @todo documentation
2049static constexpr double UBX_NAV_SIG_V0_ITOW_SCALE = 1e-3; //!< @todo documentation
2050static constexpr std::size_t UBX_NAV_SIG_V0_FREQID_OFFS = 7; //!< @todo documentation
2051static constexpr uint8_t UBX_NAV_SIG_V0_QUALITYIND_NOSIG = 0; //!< @todo documentation
2052static constexpr uint8_t UBX_NAV_SIG_V0_QUALITYIND_SEARCH = 1; //!< @todo documentation
2053static constexpr uint8_t UBX_NAV_SIG_V0_QUALITYIND_ACQUIRED = 2; //!< @todo documentation
2054static constexpr uint8_t UBX_NAV_SIG_V0_QUALITYIND_UNUSED = 3; //!< @todo documentation
2055static constexpr uint8_t UBX_NAV_SIG_V0_QUALITYIND_CODELOCK = 4; //!< @todo documentation
2056static constexpr uint8_t UBX_NAV_SIG_V0_QUALITYIND_CARRLOCK1 = 5; //!< @todo documentation
2057static constexpr uint8_t UBX_NAV_SIG_V0_QUALITYIND_CARRLOCK2 = 6; //!< @todo documentation
2058static constexpr uint8_t UBX_NAV_SIG_V0_QUALITYIND_CARRLOCK3 = 7; //!< @todo documentation
2059static constexpr uint8_t UBX_NAV_SIG_V0_IONOMODEL_NONE = 0; //!< @todo documentation
2060static constexpr uint8_t UBX_NAV_SIG_V0_IONOMODEL_KLOB_GPS = 1; //!< @todo documentation
2061static constexpr uint8_t UBX_NAV_SIG_V0_IONOMODEL_SBAS = 2; //!< @todo documentation
2062static constexpr uint8_t UBX_NAV_SIG_V0_IONOMODEL_KLOB_BDS = 3; //!< @todo documentation
2063static constexpr uint8_t UBX_NAV_SIG_V0_IONOMODEL_DUALFREQ = 8; //!< @todo documentation
2064static constexpr uint8_t UBX_NAV_SIG_V0_SIGFLAGS_HEALTH(const uint16_t sigFlags) { return sigFlags & 0x03; } //!< @todo documentation
2065static constexpr uint8_t UBX_NAV_SIG_V0_SIGFLAGS_HEALTH_UNKNO = 0; //!< @todo documentation
2066static constexpr uint8_t UBX_NAV_SIG_V0_SIGFLAGS_HEALTH_HEALTHY = 1; //!< @todo documentation
2067static constexpr uint8_t UBX_NAV_SIG_V0_SIGFLAGS_HEALTH_UNHEALTHY = 2; //!< @todo documentation
2068static constexpr bool UBX_NAV_SIG_V0_SIGFLAGS_PR_SMOOTHED(const uint16_t sigFlags) { return (sigFlags & 0x0004) == 0x0004; } //!< @todo documentation
2069static constexpr bool UBX_NAV_SIG_V0_SIGFLAGS_PR_USED(const uint16_t sigFlags) { return (sigFlags & 0x0008) == 0x0008; } //!< @todo documentation
2070static constexpr bool UBX_NAV_SIG_V0_SIGFLAGS_CR_USED(const uint16_t sigFlags) { return (sigFlags & 0x0010) == 0x0010; } //!< @todo documentation
2071static constexpr bool UBX_NAV_SIG_V0_SIGFLAGS_DO_USED(const uint16_t sigFlags) { return (sigFlags & 0x0020) == 0x0020; } //!< @todo documentation
2072static constexpr bool UBX_NAV_SIG_V0_SIGFLAGS_PR_CORR_USED(const uint16_t sigFlags) { return (sigFlags & 0x0040) == 0x0040; } //!< @todo documentation
2073static constexpr bool UBX_NAV_SIG_V0_SIGFLAGS_CR_CORR_USED(const uint16_t sigFlags) { return (sigFlags & 0x0080) == 0x0080; } //!< @todo documentation
2074static constexpr bool UBX_NAV_SIG_V0_SIGFLAGS_DO_CORR_USED(const uint16_t sigFlags) { return (sigFlags & 0x0100) == 0x0100; } //!< @todo documentation
2075static constexpr uint8_t UBX_NAV_SIG_V0_CORRSOURCE_NONE = 0; //!< @todo documentation
2076static constexpr uint8_t UBX_NAV_SIG_V0_CORRSOURCE_SBAS = 1; //!< @todo documentation
2077static constexpr uint8_t UBX_NAV_SIG_V0_CORRSOURCE_BDS = 2; //!< @todo documentation
2078static constexpr uint8_t UBX_NAV_SIG_V0_CORRSOURCE_RTCM2 = 3; //!< @todo documentation
2079static constexpr uint8_t UBX_NAV_SIG_V0_CORRSOURCE_RTCM3_OSR = 4; //!< @todo documentation
2080static constexpr uint8_t UBX_NAV_SIG_V0_CORRSOURCE_RTCM3_SSR = 5; //!< @todo documentation
2081static constexpr uint8_t UBX_NAV_SIG_V0_CORRSOURCE_QZSS_SLAS = 6; //!< @todo documentation
2082static constexpr uint8_t UBX_NAV_SIG_V0_CORRSOURCE_SPARTN = 7; //!< @todo documentation
2083static constexpr double UBX_NAV_SIG_V0_PRRES_SCALE = 1e-1; //!< @todo documentation
2084// clang-format on
2085
2086///@}
2087// ---------------------------------------------------------------------------------------------------------------------
2088/**
2089 * @name UBX-NAV-STATUS message
2090 * @{
2091 */
2092
2093//! UBX-NAV-STATUS payload
2094struct UBX_NAV_STATUS_V0_GROUP0 // clang-format off
2095{
2096 uint32_t iTow; //!< @todo documentation
2097 uint8_t gpsFix; //!< @todo documentation
2098 uint8_t flags; //!< @todo documentation
2099 uint8_t fixStat; //!< @todo documentation
2100 uint8_t flags2; //!< @todo documentation
2101 uint32_t ttff; //!< @todo documentation
2102 uint32_t msss; //!< @todo documentation
2103}; // clang-format on
2104
2105static_assert(sizeof(UBX_NAV_STATUS_V0_GROUP0) == 16, "");
2106
2107// clang-format off
2108static constexpr std::size_t UBX_NAV_STATUS_V0_SIZE = sizeof(UBX_NAV_STATUS_V0_GROUP0) + UBX_FRAME_SIZE; //!< @todo documentation
2109static constexpr double UBX_NAV_STATUS_V0_ITOW_SCALE = 1e-3; //!< @todo documentation
2110static constexpr uint8_t UBX_NAV_STATUS_V0_FIXTYPE_NOFIX = 0; //!< @todo documentation
2111static constexpr uint8_t UBX_NAV_STATUS_V0_FIXTYPE_DRONLY = 1; //!< @todo documentation
2112static constexpr uint8_t UBX_NAV_STATUS_V0_FIXTYPE_2D = 2; //!< @todo documentation
2113static constexpr uint8_t UBX_NAV_STATUS_V0_FIXTYPE_3D = 3; //!< @todo documentation
2114static constexpr uint8_t UBX_NAV_STATUS_V0_FIXTYPE_3D_DR = 4; //!< @todo documentation
2115static constexpr uint8_t UBX_NAV_STATUS_V0_FIXTYPE_TIME = 5; //!< @todo documentation
2116static constexpr bool UBX_NAV_STATUS_V0_FLAGS_GPSFIXOK(const uint8_t flags) { return (flags & 0x01) == 0x01; } //!< @todo documentation
2117static constexpr bool UBX_NAV_STATUS_V0_FLAGS_DIFFSOLN(const uint8_t flags) { return (flags & 0x02) == 0x02; } //!< @todo documentation
2118static constexpr bool UBX_NAV_STATUS_V0_FLAGS_WKNSET(const uint8_t flags) { return (flags & 0x04) == 0x04; } //!< @todo documentation
2119static constexpr bool UBX_NAV_STATUS_V0_FLAGS_TOWSET(const uint8_t flags) { return (flags & 0x08) == 0x08; } //!< @todo documentation
2120static constexpr bool UBX_NAV_STATUS_V0_FIXSTAT_DIFFCORR(const uint8_t fixStat) { return (fixStat & 0x01) == 0x01; } //!< @todo documentation
2121static constexpr bool UBX_NAV_STATUS_V0_FIXSTAT_CARRSOLNVALID(const uint8_t fixStat) { return (fixStat & 0x02) == 0x02; } //!< @todo documentation
2122static constexpr uint8_t UBX_NAV_STATUS_V0_FLAGS2_PSMSTATE(const uint8_t flags2) { return flags2 & 0x03; } //!< @todo documentation
2123static constexpr uint8_t UBX_NAV_STATUS_V0_FLAGS2_PSMSTATE_ACQUISITION = 0; //!< @todo documentation
2124static constexpr uint8_t UBX_NAV_STATUS_V0_FLAGS2_PSMSTATE_TRACKING = 1; //!< @todo documentation
2125static constexpr uint8_t UBX_NAV_STATUS_V0_FLAGS2_PSMSTATE_POWEROPT = 2; //!< @todo documentation
2126static constexpr uint8_t UBX_NAV_STATUS_V0_FLAGS2_PSMSTATE_INACTIVE = 3; //!< @todo documentation
2127static constexpr uint8_t UBX_NAV_STATUS_V0_FLAGS2_SPOOFDETSTATE(const uint8_t flags2) { return (flags2 >> 3) & 0x03; } //!< @todo documentation
2128static constexpr uint8_t UBX_NAV_STATUS_V0_FLAGS2_SPOOFDETSTATE_UNKNOWN = 0; //!< @todo documentation
2129static constexpr uint8_t UBX_NAV_STATUS_V0_FLAGS2_SPOOFDETSTATE_NONE = 1; //!< @todo documentation
2130static constexpr uint8_t UBX_NAV_STATUS_V0_FLAGS2_SPOOFDETSTATE_INDICATED = 2; //!< @todo documentation
2131static constexpr uint8_t UBX_NAV_STATUS_V0_FLAGS2_SPOOFDETSTATE_AFFIRMED = 3; //!< @todo documentation
2132static constexpr uint8_t UBX_NAV_STATUS_V0_FLAGS2_CARRSOLN(const uint8_t flags2) { return (flags2 >> 6) & 0x03; } //!< @todo documentation
2133static constexpr uint8_t UBX_NAV_STATUS_V0_FLAGS2_CARRSOLN_NO = 0; //!< @todo documentation
2134static constexpr uint8_t UBX_NAV_STATUS_V0_FLAGS2_CARRSOLN_FLOAT = 1; //!< @todo documentation
2135static constexpr uint8_t UBX_NAV_STATUS_V0_FLAGS2_CARRSOLN_FIXED = 2; //!< @todo documentation
2136static constexpr double UBX_NAV_STATUS_V0_TTFF_SCALE = 1e-3; //!< @todo documentation
2137static constexpr double UBX_NAV_STATUS_V0_MSSS_SCALE = 1e-3; //!< @todo documentation
2138// clang-format on
2139
2140///@}
2141// ---------------------------------------------------------------------------------------------------------------------
2142/**
2143 * @name UBX-NAV-TIMEGPS message
2144 * @{
2145 */
2146
2147//! UBX-NAV-TIMEGPS payload
2148struct UBX_NAV_TIMEGPS_V0_GROUP0 // clang-format off
2149{
2150 uint32_t iTow; //!< @todo documentation
2151 int32_t fTOW; //!< @todo documentation
2152 int16_t week; //!< @todo documentation
2153 int8_t leapS; //!< @todo documentation
2154 uint8_t valid; //!< @todo documentation
2155 uint32_t tAcc; //!< @todo documentation
2156}; // clang-format on
2157
2158static_assert(sizeof(UBX_NAV_TIMEGPS_V0_GROUP0) == 16, "");
2159
2160// clang-format off
2161static constexpr std::size_t UBX_NAV_TIMEGPS_V0_SIZE = sizeof(UBX_NAV_TIMEGPS_V0_GROUP0) + UBX_FRAME_SIZE; //!< @todo documentation
2162static constexpr double UBX_NAV_TIMEGPS_V0_ITOW_SCALE = 1e-3; //!< @todo documentation
2163static constexpr double UBX_NAV_TIMEGPS_V0_FTOW_SCALE = 1e-9; //!< @todo documentation
2164static constexpr double UBX_NAV_TIMEGPS_V0_TACC_SCALE = 1e-9; //!< @todo documentation
2165static constexpr bool UBX_NAV_TIMEGPS_V0_VALID_TOWVALID(const uint8_t valid) { return (valid & 0x01) == 0x01; } //!< @todo documentation
2166static constexpr bool UBX_NAV_TIMEGPS_V0_VALID_WEEKVALID(const uint8_t valid) { return (valid & 0x02) == 0x02; } //!< @todo documentation
2167static constexpr bool UBX_NAV_TIMEGPS_V0_VALID_LEAPSVALID(const uint8_t valid) { return (valid & 0x04) == 0x04; } //!< @todo documentation
2168// clang-format on
2169
2170///@}
2171// ---------------------------------------------------------------------------------------------------------------------
2172/**
2173 * @name UBX-NAV-TIMEGAL message
2174 * @{
2175 */
2176
2177//! UBX-NAV-TIMEGAL payload
2178struct UBX_NAV_TIMEGAL_V0_GROUP0 // clang-format off
2179{
2180 uint32_t iTow; //!< @todo documentation
2181 uint32_t galTow; //!< @todo documentation
2182 int32_t fGalTow; //!< @todo documentation
2183 int16_t galWno; //!< @todo documentation
2184 int8_t leapS; //!< @todo documentation
2185 uint8_t valid; //!< @todo documentation
2186 uint32_t tAcc; //!< @todo documentation
2187}; // clang-format on
2188
2189static_assert(sizeof(UBX_NAV_TIMEGAL_V0_GROUP0) == 20, "");
2190
2191// clang-format off
2192static constexpr std::size_t UBX_NAV_TIMEGAL_V0_SIZE = sizeof(UBX_NAV_TIMEGAL_V0_GROUP0) + UBX_FRAME_SIZE; //!< @todo documentation
2193static constexpr double UBX_NAV_TIMEGAL_V0_ITOW_SCALE = 1e-3; //!< @todo documentation
2194static constexpr double UBX_NAV_TIMEGAL_V0_FGALTOW_SCALE = 1e-9; //!< @todo documentation
2195static constexpr double UBX_NAV_TIMEGAL_V0_TACC_SCALE = 1e-9; //!< @todo documentation
2196static constexpr bool UBX_NAV_TIMEGAL_V0_VALID_GALTOWVALID(const uint8_t valid) { return (valid & 0x01) == 0x01; } //!< @todo documentation
2197static constexpr bool UBX_NAV_TIMEGAL_V0_VALID_GALWNOVALID(const uint8_t valid) { return (valid & 0x02) == 0x02; } //!< @todo documentation
2198static constexpr bool UBX_NAV_TIMEGAL_V0_VALID_LEAPSVALID(const uint8_t valid) { return (valid & 0x04) == 0x04; } //!< @todo documentation
2199// clang-format on
2200
2201///@}
2202// ---------------------------------------------------------------------------------------------------------------------
2203/**
2204 * @name UBX-NAV-TIMEBDS message
2205 * @{
2206 */
2207
2208//! UBX-NAV-TIMEBDS payload
2209struct UBX_NAV_TIMEBDS_V0_GROUP0 // clang-format off
2210{
2211 uint32_t iTow; //!< @todo documentation
2212 uint32_t SOW; //!< @todo documentation
2213 int32_t fSOW; //!< @todo documentation
2214 int16_t week; //!< @todo documentation
2215 int8_t leapS; //!< @todo documentation
2216 uint8_t valid; //!< @todo documentation
2217 uint32_t tAcc; //!< @todo documentation
2218}; // clang-format on
2219
2220static_assert(sizeof(UBX_NAV_TIMEBDS_V0_GROUP0) == 20, "");
2221
2222// clang-format off
2223static constexpr uint32_t UBX_NAV_TIMEBDS_V0_SIZE = sizeof(UBX_NAV_TIMEBDS_V0_GROUP0) + UBX_FRAME_SIZE; //!< @todo documentation
2224static constexpr double UBX_NAV_TIMEBDS_V0_ITOW_SCALE = 1e-3; //!< @todo documentation
2225static constexpr double UBX_NAV_TIMEBDS_V0_FSOW_SCALE = 1e-9; //!< @todo documentation
2226static constexpr double UBX_NAV_TIMEBDS_V0_TACC_SCALE = 1e-9; //!< @todo documentation
2227static constexpr bool UBX_NAV_TIMEBDS_V0_VALID_SOWVALID(const uint8_t valid) { return (valid & 0x01) == 0x01; } //!< @todo documentation
2228static constexpr bool UBX_NAV_TIMEBDS_V0_VALID_WEEKVALID(const uint8_t valid) { return (valid & 0x02) == 0x02; } //!< @todo documentation
2229static constexpr bool UBX_NAV_TIMEBDS_V0_VALID_LEAPSVALID(const uint8_t valid) { return (valid & 0x04) == 0x04; } //!< @todo documentation
2230// clang-format on
2231
2232///@}
2233// ---------------------------------------------------------------------------------------------------------------------
2234/**
2235 * @name UBX-NAV-TIMEGLO message
2236 * @{
2237 */
2238
2239//! UBX-NAV-TIMEGLO payload
2240struct UBX_NAV_TIMEGLO_V0_GROUP0 // clang-format off
2241{
2242 uint32_t iTow; //!< @todo documentation
2243 uint32_t TOD; //!< @todo documentation
2244 int32_t fTOD; //!< @todo documentation
2245 uint16_t Nt; //!< @todo documentation
2246 uint8_t N4; //!< @todo documentation
2247 uint8_t valid; //!< @todo documentation
2248 uint32_t tAcc; //!< @todo documentation
2249}; // clang-format on
2250
2251static_assert(sizeof(UBX_NAV_TIMEGLO_V0_GROUP0) == 20, "");
2252
2253// clang-format off
2254static constexpr double UBX_NAV_TIMEGLO_V0_SIZE = sizeof(UBX_NAV_TIMEGLO_V0_GROUP0) + UBX_FRAME_SIZE; //!< @todo documentation
2255static constexpr double UBX_NAV_TIMEGLO_V0_ITOW_SCALE = 1e-3; //!< @todo documentation
2256static constexpr double UBX_NAV_TIMEGLO_V0_FTOD_SCALE = 1e-9; //!< @todo documentation
2257static constexpr double UBX_NAV_TIMEGLO_V0_TACC_SCALE = 1e-9; //!< @todo documentation
2258static constexpr bool UBX_NAV_TIMEGLO_V0_VALID_TODVALID(const uint8_t valid) { return (valid & 0x01) == 0x01; } //!< @todo documentation
2259static constexpr bool UBX_NAV_TIMEGLO_V0_VALID_DATEVALID(const uint8_t valid) { return (valid & 0x02) == 0x02; } //!< @todo documentation
2260// clang-format on
2261
2262///@}
2263// ---------------------------------------------------------------------------------------------------------------------
2264/**
2265 * @name UBX-NAV-TIMEUTC message
2266 * @{
2267 */
2268
2269//! UBX-NAV-TIMEUTC payload
2270struct UBX_NAV_TIMEUTC_V0_GROUP0 // clang-format off
2271 {
2272 uint32_t iTow; //!< @todo documentation
2273 uint32_t tAcc; //!< @todo documentation
2274 int32_t nano; //!< @todo documentation
2275 uint16_t year; //!< @todo documentation
2276 uint8_t month; //!< @todo documentation
2277 uint8_t day; //!< @todo documentation
2278 uint8_t hour; //!< @todo documentation
2279 uint8_t min; //!< @todo documentation
2280 uint8_t sec; //!< @todo documentation
2281 uint8_t valid; //!< @todo documentation
2282}; // clang-format on
2283
2284static_assert(sizeof(UBX_NAV_TIMEUTC_V0_GROUP0) == 20, "");
2285
2286// clang-format off
2287static constexpr std::size_t UBX_NAV_TIMEUTC_V0_SIZE = sizeof(UBX_NAV_TIMEUTC_V0_GROUP0) + UBX_FRAME_SIZE; //!< @todo documentation
2288static constexpr double UBX_NAV_TIMEUTC_V0_ITOW_SCALE = 1e-3; //!< @todo documentation
2289static constexpr double UBX_NAV_TIMEUTC_V0_TACC_SCALE = 1e-9; //!< @todo documentation
2290static constexpr double UBX_NAV_TIMEUTC_V0_NANO_SCALE = 1e-9; //!< @todo documentation
2291static constexpr uint8_t UBX_NAV_TIMEUTC_V0_VALID_VALIDTOW(const uint8_t valid) { return (valid & 0x01) == 0x01; } //!< @todo documentation
2292static constexpr uint8_t UBX_NAV_TIMEUTC_V0_VALID_VALIDWKN(const uint8_t valid) { return (valid & 0x02) == 0x02; } //!< @todo documentation
2293static constexpr uint8_t UBX_NAV_TIMEUTC_V0_VALID_VALIDUTC(const uint8_t valid) { return (valid & 0x04) == 0x04; } //!< @todo documentation
2294static constexpr bool UBX_NAV_TIMEUTC_V0_VALID_AUTHSTATUS(const uint8_t valid) { return (valid & 0x08) == 0x08; } //!< @todo documentation
2295static constexpr uint8_t UBX_NAV_TIMEUTC_V0_VALID_UTCSTANDARD(const uint8_t valid) { return (valid >> 4) & 0x0f; } //!< @todo documentation
2296static constexpr uint8_t UBX_NAV_TIMEUTC_V0_VALID_UTCSTANDARD_INFONA = 0; //!< @todo documentation
2297static constexpr uint8_t UBX_NAV_TIMEUTC_V0_VALID_UTCSTANDARD_CRL = 1; //!< @todo documentation
2298static constexpr uint8_t UBX_NAV_TIMEUTC_V0_VALID_UTCSTANDARD_NIST = 2; //!< @todo documentation
2299static constexpr uint8_t UBX_NAV_TIMEUTC_V0_VALID_UTCSTANDARD_USNO = 3; //!< @todo documentation
2300static constexpr uint8_t UBX_NAV_TIMEUTC_V0_VALID_UTCSTANDARD_BIPM = 4; //!< @todo documentation
2301static constexpr uint8_t UBX_NAV_TIMEUTC_V0_VALID_UTCSTANDARD_EU = 5; //!< @todo documentation
2302static constexpr uint8_t UBX_NAV_TIMEUTC_V0_VALID_UTCSTANDARD_SU = 6; //!< @todo documentation
2303static constexpr uint8_t UBX_NAV_TIMEUTC_V0_VALID_UTCSTANDARD_NTSC = 7; //!< @todo documentation
2304static constexpr uint8_t UBX_NAV_TIMEUTC_V0_VALID_UTCSTANDARD_NPLI = 8; //!< @todo documentation
2305static constexpr uint8_t UBX_NAV_TIMEUTC_V0_VALID_UTCSTANDARD_UNNOWN = 15; //!< @todo documentation
2306// clang-format on
2307
2308///@}
2309// ---------------------------------------------------------------------------------------------------------------------
2310/**
2311 * @name UBX-NAV-TIMELS message
2312 * @{
2313 */
2314
2315//! UBX-NAV-TIMELS payload
2316struct UBX_NAV_TIMELS_V0_GROUP0 // clang-format off
2317{
2318 uint32_t iTOW; //!< @todo documentation
2319 uint8_t version; //!< @todo documentation
2320 uint8_t reserved0[3]; //!< @todo documentation
2321 uint8_t srcOfCurrLs; //!< @todo documentation
2322 int8_t currLs; //!< @todo documentation
2323 uint8_t srcOfLsChange; //!< @todo documentation
2324 int8_t lsChange; //!< @todo documentation
2325 int32_t timeToLsEvent; //!< @todo documentation
2326 uint16_t dateOfLsGpsWn; //!< @todo documentation
2327 uint16_t dateOfLsGpsDn; //!< @todo documentation
2328 uint8_t reserved1[3]; //!< @todo documentation
2329 uint8_t valid; //!< @todo documentation
2330}; // clang-format on
2331
2332static_assert(sizeof(UBX_NAV_TIMELS_V0_GROUP0) == 24, "");
2333
2334// clang-format off
2335static constexpr std::size_t UBX_NAV_TIMELS_V0_SIZE = sizeof(UBX_NAV_TIMELS_V0_GROUP0) + UBX_FRAME_SIZE; //!< @todo documentation
2336static constexpr double UBX_NAV_TIMELS_V0_ITOW_SCALE = 1e-3; //!< @todo documentation
2337static constexpr uint8_t UBX_NAV_TIMELS_V0_SRCOFCURRLS_DEFAULT = 0; //!< @todo documentation
2338static constexpr uint8_t UBX_NAV_TIMELS_V0_SRCOFCURRLS_GPSGLO = 1; //!< @todo documentation
2339static constexpr uint8_t UBX_NAV_TIMELS_V0_SRCOFCURRLS_GPS = 2; //!< @todo documentation
2340static constexpr uint8_t UBX_NAV_TIMELS_V0_SRCOFCURRLS_SBAS = 3; //!< @todo documentation
2341static constexpr uint8_t UBX_NAV_TIMELS_V0_SRCOFCURRLS_BDS = 4; //!< @todo documentation
2342static constexpr uint8_t UBX_NAV_TIMELS_V0_SRCOFCURRLS_GAL = 5; //!< @todo documentation
2343static constexpr uint8_t UBX_NAV_TIMELS_V0_SRCOFCURRLS_CONFIG = 7; //!< @todo documentation
2344static constexpr uint8_t UBX_NAV_TIMELS_V0_SRCOFCURRLS_UNKNOWN = 255; //!< @todo documentation
2345static constexpr uint8_t UBX_NAV_TIMELS_V0_SRCOFCURRLSCHANGE_NONE = 0; //!< @todo documentation
2346static constexpr uint8_t UBX_NAV_TIMELS_V0_SRCOFCURRLSCHANGE_GPS = 2; //!< @todo documentation
2347static constexpr uint8_t UBX_NAV_TIMELS_V0_SRCOFCURRLSCHANGE_SBAS = 3; //!< @todo documentation
2348static constexpr uint8_t UBX_NAV_TIMELS_V0_SRCOFCURRLSCHANGE_BDS = 4; //!< @todo documentation
2349static constexpr uint8_t UBX_NAV_TIMELS_V0_SRCOFCURRLSCHANGE_GAL = 5; //!< @todo documentation
2350static constexpr uint8_t UBX_NAV_TIMELS_V0_SRCOFCURRLSCHANGE_GLO = 6; //!< @todo documentation
2351static constexpr bool UBX_NAV_TIMELS_V0_VALID_CURRLSVALID(const uint8_t valid) { return (valid & 0x01) == 0x01; } //!< @todo documentation
2352static constexpr bool UBX_NAV_TIMELS_V0_VALID_TIMETOLSEVENTVALID(const uint8_t valid) { return (valid & 0x02) == 0x02; } //!< @todo documentation
2353// clang-format on
2354
2355///@}
2356// ---------------------------------------------------------------------------------------------------------------------
2357/**
2358 * @name UBX-NAV-VELECEF message
2359 * @{
2360 */
2361
2362//! UBX-NAV-VELECEF payload
2363struct UBX_NAV_VELECEF_V0_GROUP0 // clang-format off
2364{
2365 uint32_t iTOW; //!< @todo documentation
2366 int32_t ecefVX; //!< @todo documentation
2367 int32_t ecefVY; //!< @todo documentation
2368 int32_t ecefVZ; //!< @todo documentation
2369 uint32_t sAcc; //!< @todo documentation
2370}; // clang-format on
2371
2372static_assert(sizeof(UBX_NAV_VELECEF_V0_GROUP0) == 20, "");
2373
2374// clang-format off
2375static constexpr std::size_t UBX_NAV_VELECEF_V0_SIZE = sizeof(UBX_NAV_VELECEF_V0_GROUP0) + UBX_FRAME_SIZE; //!< @todo documentation
2376static constexpr double UBX_NAV_VELECEF_V0_ITOW_SCALE = 1e-3; //!< @todo documentation
2377static constexpr double UBX_NAV_VELECEF_V0_ECEF_XYZ_SCALE = 1e-2; //!< @todo documentation
2378static constexpr double UBX_NAV_VELECEF_V0_SACC_SCALE = 1e-2; //!< @todo documentation
2379// clang-format on
2380
2381///@}
2382
2383// ---------------------------------------------------------------------------------------------------------------------
2384/**
2385 * @name UBX-RXM-RAWX message
2386 * @{
2387 */
2388
2389//! UBX-RXM-RAWX (version 1, output) payload head
2390struct UBX_RXM_RAWX_V1_GROUP0 // clang-format off
2391{
2392 double rcvTow; //!< @todo documentation
2393 uint16_t week; //!< @todo documentation
2394 int8_t leapS; //!< @todo documentation
2395 uint8_t numMeas; //!< @todo documentation
2396 uint8_t recStat; //!< @todo documentation
2397 uint8_t version; //!< @todo documentation
2398 uint8_t reserved[2]; //!< @todo documentation
2399}; // clang-format on
2400
2401static_assert(sizeof(UBX_RXM_RAWX_V1_GROUP0) == 16, "");
2402
2403//! UBX-RXM-RAWX (version 1, output) payload repeated group
2404struct UBX_RXM_RAWX_V1_GROUP1 // clang-format off
2405{
2406 double prMeas; //!< @todo documentation
2407 double cpMeas; //!< @todo documentation
2408 float doMeas; //!< @todo documentation
2409 uint8_t gnssId; //!< @todo documentation
2410 uint8_t svId; //!< @todo documentation
2411 uint8_t sigId; //!< @todo documentation
2412 uint8_t freqId; //!< @todo documentation
2413 uint16_t locktime; //!< @todo documentation
2414 uint8_t cno; //!< @todo documentation
2415 uint8_t prStdev; //!< @todo documentation
2416 uint8_t cpStdev; //!< @todo documentation
2417 uint8_t doStdev; //!< @todo documentation
2418 uint8_t trkStat; //!< @todo documentation
2419 uint8_t reserved[1]; //!< @todo documentation
2420}; // clang-format on
2421
2422static_assert(sizeof(UBX_RXM_RAWX_V1_GROUP1) == 32, "");
2423
2424// clang-format off
2425static constexpr uint8_t UBX_RXM_RAWX_VERSION(const uint8_t* msg) { return msg[UBX_HEAD_SIZE + 13]; } //!< @todo documentation
2426static constexpr uint8_t UBX_RXM_RAWX_V1_VERSION = 0x01; //!< @todo documentation
2427static constexpr std::size_t UBX_RXM_RAWX_V1_MIN_SIZE = sizeof(UBX_RXM_RAWX_V1_GROUP0) + UBX_FRAME_SIZE; //!< @todo documentation
2428static constexpr bool UBX_RXM_RAWX_V1_RECSTAT_LEAPSEC(const uint8_t recStat) { return (recStat & 0x01) == 0x01; } //!< @todo documentation
2429static constexpr bool UBX_RXM_RAWX_V1_RECSTAT_CLKRESET(const uint8_t recStat) { return (recStat & 0x02) == 0x02; } //!< @todo documentation
2430static constexpr uint8_t UBX_RXM_RAWX_V1_PRSTDEV_PRSTD(const uint8_t prStdev) { return prStdev & 0x0f; } //!< @todo documentation
2431static constexpr double UBX_RXM_RAWX_V1_PRSTD_SCALE(const double prStd) { return 0.01 * std::exp2(prStd); } //!< @todo documentation
2432static constexpr uint8_t UBX_RXM_RAWX_V1_CPSTDEV_CPSTD(const uint8_t cpStdev) { return cpStdev & 0x0f; } //!< @todo documentation
2433static constexpr double UBX_RXM_RAWX_V1_CPSTD_SCALE(const double cpStd) { return 0.004 * cpStd; } //!< @todo documentation
2434static constexpr uint8_t UBX_RXM_RAWX_V1_DOSTDEV_DOSTD(const uint8_t doStdev) { return doStdev & 0x0f; } //!< @todo documentation
2435static constexpr double UBX_RXM_RAWX_V1_DOSTD_SCALE(const double doStd) { return 0.002 * std::exp2(doStd); } //!< @todo documentation
2436static constexpr double UBX_RXM_RAWX_V1_LOCKTIME_SCALE = 1e-3; //!< @todo documentation
2437static constexpr bool UBX_RXM_RAWX_V1_TRKSTAT_PRVALID(const uint8_t trkStat) { return (trkStat & 0x01) == 0x01; } //!< @todo documentation
2438static constexpr bool UBX_RXM_RAWX_V1_TRKSTAT_CPVALID(const uint8_t trkStat) { return (trkStat & 0x02) == 0x02; } //!< @todo documentation
2439static constexpr bool UBX_RXM_RAWX_V1_TRKSTAT_HALFCYC(const uint8_t trkStat) { return (trkStat & 0x04) == 0x04; } //!< @todo documentation
2440static constexpr bool UBX_RXM_RAWX_V1_TRKSTAT_SUBHALFCYC(const uint8_t trkStat) { return (trkStat & 0x08) == 0x08; } //!< @todo documentation
2441static constexpr int UBX_RXM_RAWX_V1_GROUP1_FREQID_TO_SLOT(const uint8_t freqId) { return (int)freqId - 7; } //!< @todo documentation
2442static constexpr std::size_t UBX_RXM_RAWX_V1_SIZE(const uint8_t *msg) { return
2443 ((sizeof(UBX_RXM_RAWX_V1_GROUP0) + UBX_FRAME_SIZE + (((uint8_t *)(msg))[UBX_HEAD_SIZE + 11] * sizeof(UBX_RXM_RAWX_V1_GROUP1)))); } //!< @todo documentation
2444
2445// clang-format on
2446
2447///@}
2448// ---------------------------------------------------------------------------------------------------------------------
2449/**
2450 * @name UBX-RXM-RTCM message
2451 * @{
2452 */
2453
2454//! UBX-RXM-RTCM (version 2, output)
2455struct UBX_RXM_RTCM_V2_GROUP0 // clang-format off
2456{
2457 uint8_t version; //!< @todo documentation
2458 uint8_t flags; //!< @todo documentation
2459 uint16_t subType; //!< @todo documentation
2460 uint16_t refStation; //!< @todo documentation
2461 uint16_t msgType; //!< @todo documentation
2462}; // clang-format on
2463
2464static_assert(sizeof(UBX_RXM_RTCM_V2_GROUP0) == 8, "");
2465
2466// clang-format off
2467static constexpr uint8_t UBX_RXM_RTCM_VERSION(const uint8_t* msg) { return msg[UBX_HEAD_SIZE]; } //!< @todo documentation
2468static constexpr uint8_t UBX_RXM_RTCM_V2_VERSION = 0x02; //!< @todo documentation
2469static constexpr std::size_t UBX_RXM_RTCM_V2_SIZE = sizeof(UBX_RXM_RTCM_V2_GROUP0) + UBX_FRAME_SIZE; //!< @todo documentation
2470static constexpr bool UBX_RXM_RTCM_V2_FLAGS_CRCFAILED(const uint8_t flags) { return (flags & 0x01) == 0x01; } //!< @todo documentation
2471static constexpr uint8_t UBX_RXM_RTCM_V2_FLAGS_MSGUSED(const uint8_t flags) { return (flags >> 1) & 0x03; } //!< @todo documentation
2472static constexpr uint8_t UBX_RXM_RTCM_V2_FLAGS_MSGUSED_UNKNOWN = 0x00; //!< @todo documentation
2473static constexpr uint8_t UBX_RXM_RTCM_V2_FLAGS_MSGUSED_UNUSED = 0x01; //!< @todo documentation
2474static constexpr uint8_t UBX_RXM_RTCM_V2_FLAGS_MSGUSED_USED = 0x02; //!< @todo documentation
2475// clang-format on
2476
2477///@}
2478// ---------------------------------------------------------------------------------------------------------------------
2479/**
2480 * @name UBX-RXM-SFRBX message
2481 * @{
2482 */
2483
2484//! UBX-RXM-SFRBX (version 2, output) payload head
2485struct UBX_RXM_SFRBX_V2_GROUP0 // clang-format off
2486{
2487 uint8_t gnssId; //!< @todo documentation
2488 uint8_t svId; //!< @todo documentation
2489 uint8_t sigId; //!< interface description says "reserved", but u-center says "sigId"...
2490 uint8_t freqId; //!< @todo documentation
2491 uint8_t numWords; //!< @todo documentation
2492 uint8_t chn; //!< @todo documentation
2493 uint8_t version; //!< @todo documentation
2494 uint8_t reserved1; //!< @todo documentation
2495}; // clang-format on
2496
2497static_assert(sizeof(UBX_RXM_SFRBX_V2_GROUP0) == 8, "");
2498
2499//! UBX-RXM-SFRBX (version 2, output) payload repeated group
2500struct UBX_RXM_SFRBX_V2_GROUP1 // clang-format off
2501{
2502 uint32_t dwrd; //!< @todo documentation
2503}; // clang-format on
2504
2505static_assert(sizeof(UBX_RXM_SFRBX_V2_GROUP1) == 4, "");
2506
2507// clang-format off
2508static constexpr uint8_t UBX_RXM_SFRBX_VERSION(const uint8_t* msg) { return msg[UBX_HEAD_SIZE + 6]; } //!< @todo documentation
2509static constexpr uint8_t UBX_RXM_SFRBX_V2_VERSION = 0x02; //!< @todo documentation
2510static constexpr std::size_t UBX_RXM_SFRBX_V2_MIN_SIZE = sizeof(UBX_RXM_SFRBX_V2_GROUP0) + UBX_FRAME_SIZE; //!< @todo documentation
2511static constexpr int UBX_RXM_SFRBX_V2_GROUP0_FREQID_TO_SLOT(const uint8_t freqId) { return (int)freqId - 7; } //!< @todo documentation
2512// clang-format on
2513
2514///@}
2515
2516// ---------------------------------------------------------------------------------------------------------------------
2517/**
2518 * @name UBX-RXM-SPARTN message
2519 * @{
2520 */
2521
2522//! UBX-RXM-SPARTN (version 1, output)
2523struct UBX_RXM_SPARTN_V1_GROUP0 // clang-format off
2524{
2525 uint8_t version; //!< @todo documentation
2526 uint8_t flags; //!< @todo documentation
2527 uint16_t subType; //!< @todo documentation
2528 uint8_t reserved[2]; //!< @todo documentation
2529 uint16_t msgType; //!< @todo documentation
2530}; // clang-format on
2531
2532// clang-format off
2533static constexpr uint8_t UBX_RXM_SPARTN_VERSION(const uint8_t* msg) { return msg[UBX_HEAD_SIZE]; } //!< @todo documentation
2534static constexpr uint8_t UBX_RXM_SPARTN_V1_VERSION = 0x01; //!< @todo documentation
2535static constexpr std::size_t UBX_RXM_SPARTN_V1_SIZE = sizeof(UBX_RXM_SPARTN_V1_GROUP0) + UBX_FRAME_SIZE; //!< @todo documentation
2536static constexpr uint8_t UBX_RXM_SPARTN_V1_FLAGS_MSGUSED(const uint8_t flags) { return (flags >> 1) & 0x03; } //!< @todo documentation
2537static constexpr uint8_t UBX_RXM_SPARTN_V1_FLAGS_MSGUSED_UNKNOWN = 0x00; //!< @todo documentation
2538static constexpr uint8_t UBX_RXM_SPARTN_V1_FLAGS_MSGUSED_UNUSED = 0x01; //!< @todo documentation
2539static constexpr uint8_t UBX_RXM_SPARTN_V1_FLAGS_MSGUSED_USED = 0x02; //!< @todo documentation
2540// clang-format on
2541
2542///@}
2543// ---------------------------------------------------------------------------------------------------------------------
2544/**
2545 * @name UBX-TIM-SVIN message
2546 * @{
2547 */
2548
2549//! UBX-TIM_SVIN payload
2550struct UBX_TIM_SVIN_V0_GROUP0 // clang-format off
2551{
2552 uint32_t dur; //!< @todo documentation
2553 int32_t meanX; //!< @todo documentation
2554 int32_t meanY; //!< @todo documentation
2555 int32_t meanZ; //!< @todo documentation
2556 uint32_t meanV; //!< @todo documentation
2557 uint32_t obs; //!< @todo documentation
2558 uint8_t valid; //!< @todo documentation
2559 uint8_t active; //!< @todo documentation
2560 uint16_t reserved; //!< @todo documentation
2561}; // clang-format on
2562
2563static_assert(sizeof(UBX_TIM_SVIN_V0_GROUP0) == 28, "");
2564
2565// clang-format off
2566static constexpr std::size_t UBX_TIM_SVIN_V0_SIZE = sizeof(UBX_TIM_SVIN_V0_GROUP0) + UBX_FRAME_SIZE; //!< @todo documentation
2567// clang-format on
2568
2569///@}
2570// ---------------------------------------------------------------------------------------------------------------------
2571/**
2572 * @name UBX-TIM-TM2 message
2573 * @{
2574 */
2575
2576//! UBX-TIM-TM2 payload
2577struct UBX_TIM_TM2_V0_GROUP0 // clang-format off
2578{
2579 uint8_t ch; //!< @todo documentation
2580 uint8_t flags; //!< @todo documentation
2581 uint16_t count; //!< @todo documentation
2582 uint16_t wnR; //!< @todo documentation
2583 uint16_t wnF; //!< @todo documentation
2584 uint32_t towMsR; //!< @todo documentation
2585 uint32_t towSubMsR; //!< @todo documentation
2586 uint32_t towMsF; //!< @todo documentation
2587 uint32_t towSubMsF; //!< @todo documentation
2588 uint32_t accEst; //!< @todo documentation
2589}; // clang-format on
2590
2591static_assert(sizeof(UBX_TIM_TM2_V0_GROUP0) == 28, "");
2592
2593// clang-format off
2594static constexpr std::size_t UBX_TIM_TM2_V0_SIZE = sizeof(UBX_TIM_TM2_V0_GROUP0) + UBX_FRAME_SIZE; //!< @todo documentation
2595static constexpr uint8_t UBX_TIM_TM2_V0_FLAGS_MODE(const uint8_t flags) { return flags & 0x01; } //!< @todo documentation
2596static constexpr uint8_t UBX_TIM_TM2_V0_FLAGS_MODE_SINGLE = 0; //!< @todo documentation
2597static constexpr uint8_t UBX_TIM_TM2_V0_FLAGS_MODE_RUNNING = 1; //!< @todo documentation
2598static constexpr uint8_t UBX_TIM_TM2_V0_FLAGS_RUN(const uint8_t flags) { return (flags >> 1) & 0x01; } //!< @todo documentation
2599static constexpr uint8_t UBX_TIM_TM2_V0_FLAGS_RUN_ARMED = 0; //!< @todo documentation
2600static constexpr uint8_t UBX_TIM_TM2_V0_FLAGS_RUN_STOPPED = 1; //!< @todo documentation
2601static constexpr bool UBX_TIM_TM2_V0_FLAGS_NEWFALLINGEDGE(const uint8_t flags) { return (flags & 0x04) == 0x04; } //!< @todo documentation
2602static constexpr uint8_t UBX_TIM_TM2_V0_FLAGS_TIMEBASE(const uint8_t flags) { return (flags >> 3) & 0x03; } //!< @todo documentation
2603static constexpr uint8_t UBX_TIM_TM2_V0_FLAGS_TIMEBASE_RX = 0; //!< @todo documentation
2604static constexpr uint8_t UBX_TIM_TM2_V0_FLAGS_TIMEBASE_GNSS = 1; //!< @todo documentation
2605static constexpr uint8_t UBX_TIM_TM2_V0_FLAGS_TIMEBASE_UTC = 2; //!< @todo documentation
2606static constexpr bool UBX_TIM_TM2_V0_FLAGS_UTCACAVAIL(const uint8_t flags) { return (flags & 0x20) == 0x20; } //!< @todo documentation
2607static constexpr bool UBX_TIM_TM2_V0_FLAGS_TIMEVALID(const uint8_t flags) { return (flags & 0x40) == 0x40; } //!< @todo documentation
2608static constexpr bool UBX_TIM_TM2_V0_FLAGS_NEWRISINGEDGE(const uint8_t flags) { return (flags & 0x80) == 0x80; } //!< @todo documentation
2609static constexpr double UBX_TIM_TM2_V0_TOW_SCALE = 1e-3; //!< @todo documentation
2610static constexpr double UBX_TIM_TM2_V0_SUBMS_SCALE = 1e-9; //!< @todo documentation
2611static constexpr double UBX_TIM_TM2_V0_ACCEST_SCALE = 1e-9; //!< @todo documentation
2612// clang-format on
2613
2614///@}
2615// ---------------------------------------------------------------------------------------------------------------------
2616/**
2617 * @name UBX-TIM_TP message
2618 * @{
2619 */
2620
2621//! UBX-TIM-TP payload
2622struct UBX_TIM_TP_V0_GROUP0 // clang-format off
2623{
2624 uint32_t towMs; //!< @todo documentation
2625 uint32_t towSubMs; //!< @todo documentation
2626 int32_t qErr; //!< @todo documentation
2627 uint16_t week; //!< @todo documentation
2628 uint8_t flags; //!< @todo documentation
2629 uint8_t refInfo; //!< @todo documentation
2630}; // clang-format on
2631
2632static_assert(sizeof(UBX_TIM_TP_V0_GROUP0) == 16, "");
2633
2634// clang-format off
2635static constexpr std::size_t UBX_TIM_TP_V0_SIZE = sizeof(UBX_TIM_TP_V0_GROUP0) + UBX_FRAME_SIZE; //!< @todo documentation
2636static constexpr double UBX_TIM_TP_V0_TOWMS_SCALE = 1e-3; //!< @todo documentation
2637static constexpr double UBX_TIM_TP_V0_TOWSUBMS_SCALE = 0x1.0624dd2f1a9fcp-42; //!< perl -e 'printf "%a", 2**-32 * 1e-3'
2638static constexpr double UBX_TIM_TP_V0_TOWSUBMS_SCALE_APPROX = 2.3283064365386963e-18; //!< perl -e 'printf "%.18g", 2**-32 * 1e-8'
2639static constexpr uint8_t UBX_TIM_TP_V0_FLAGS_TIMEBASE(const uint8_t flags) { return flags & 0x01; } //!< @todo documentation
2640static constexpr uint8_t UBX_TIM_TP_V0_FLAGS_TIMEBASE_GNSS = 0; //!< @todo documentation
2641static constexpr uint8_t UBX_TIM_TP_V0_FLAGS_TIMEBASE_UTC = 1; //!< @todo documentation
2642static constexpr bool UBX_TIM_TP_V0_FLAGS_UTC(const uint8_t flags) { return (flags & 0x02) == 0x02; } //!< @todo documentation
2643static constexpr uint8_t UBX_TIM_TP_V0_FLAGS_RAIM(const uint8_t flags) { return (flags >> 2) & 0x03; } //!< @todo documentation
2644static constexpr uint8_t UBX_TIM_TP_V0_FLAGS_RAIM_NA = 0; //!< @todo documentation
2645static constexpr uint8_t UBX_TIM_TP_V0_FLAGS_RAIM_INACTIVE = 1; //!< @todo documentation
2646static constexpr uint8_t UBX_TIM_TP_V0_FLAGS_RAIM_ACTIVE = 2; //!< @todo documentation
2647static constexpr bool UBX_TIM_TP_V0_FLAGS_QERRINVALID(const uint8_t flags) { return (flags & 0x10) == 0x10; } //!< @todo documentation
2648static constexpr bool UBX_TIM_TP_V0_FLAGS_TPNOTLOCKED(const uint8_t flags) { return (flags & 0x20) == 0x20; } //!< @todo documentation
2649static constexpr uint8_t UBX_TIM_TP_V0_REFINFO_TIMEREFGNSS(const uint8_t refInfo) { return refInfo & 0x0f; } //!< @todo documentation
2650static constexpr uint8_t UBX_TIM_TP_V0_REFINFO_TIMEREFGNSS_GPS = 0; //!< @todo documentation
2651static constexpr uint8_t UBX_TIM_TP_V0_REFINFO_TIMEREFGNSS_GLO = 1; //!< @todo documentation
2652static constexpr uint8_t UBX_TIM_TP_V0_REFINFO_TIMEREFGNSS_BDS = 2; //!< @todo documentation
2653static constexpr uint8_t UBX_TIM_TP_V0_REFINFO_TIMEREFGNSS_GAL = 3; //!< @todo documentation
2654static constexpr uint8_t UBX_TIM_TP_V0_REFINFO_TIMEREFGNSS_NAVIC = 4; //!< @todo documentation
2655static constexpr uint8_t UBX_TIM_TP_V0_REFINFO_TIMEREFGNSS_UNKNOWN = 15; //!< @todo documentation
2656static constexpr uint8_t UBX_TIM_TP_V0_REFINFO_UTCSTANDARD(const uint8_t refInfo) { return (refInfo >> 4) & 0x0f; } //!< @todo documentation
2657static constexpr uint8_t UBX_TIM_TP_V0_REFINFO_UTCSTANDARD_INFONA = 0; //!< @todo documentation
2658static constexpr uint8_t UBX_TIM_TP_V0_REFINFO_UTCSTANDARD_CRL = 1; //!< @todo documentation
2659static constexpr uint8_t UBX_TIM_TP_V0_REFINFO_UTCSTANDARD_NIST = 2; //!< @todo documentation
2660static constexpr uint8_t UBX_TIM_TP_V0_REFINFO_UTCSTANDARD_USNO = 3; //!< @todo documentation
2661static constexpr uint8_t UBX_TIM_TP_V0_REFINFO_UTCSTANDARD_BIPM = 4; //!< @todo documentation
2662static constexpr uint8_t UBX_TIM_TP_V0_REFINFO_UTCSTANDARD_EU = 5; //!< @todo documentation
2663static constexpr uint8_t UBX_TIM_TP_V0_REFINFO_UTCSTANDARD_SU = 6; //!< @todo documentation
2664static constexpr uint8_t UBX_TIM_TP_V0_REFINFO_UTCSTANDARD_NTSC = 7; //!< @todo documentation
2665static constexpr uint8_t UBX_TIM_TP_V0_REFINFO_UTCSTANDARD_NPLI = 8; //!< @todo documentation
2666static constexpr uint8_t UBX_TIM_TP_V0_REFINFO_UTCSTANDARD_UNNOWN = 15; //!< @todo documentation
2667// clang-format on
2668
2669///@}
2670// ---------------------------------------------------------------------------------------------------------------------
2671
2672#undef UBX_PACKED
2673
2674/* ****************************************************************************************************************** */
2675} // namespace ubx
2676} // namespace parser
2677} // namespace common
2678} // namespace fpsdk
2679#endif // __FPSDK_COMMON_PARSER_UBX_HPP__
Parser UBX routines and types.
Definition ubx.hpp:49
static constexpr uint16_t UBX_CFG_RST_V0_NAVBBR_COLDSTART
Coldstart (erase all data)
Definition ubx.hpp:937
static constexpr uint8_t UBX_ACK_NAK_MSGID
UBX-ACK-NAK message ID.
Definition ubx.hpp:227
static constexpr uint8_t UBX_ESF_STATUS_V2_SENSSTATUS2_CALIBSTATUS_CALIBRATED1
Definition ubx.hpp:1103
static constexpr uint8_t UBX_NAV_VELECEF_MSGID
UBX-NAV-VELECEF message ID.
Definition ubx.hpp:395
static constexpr uint8_t UBX_NAV_STATUS_V0_FLAGS2_PSMSTATE_INACTIVE
Definition ubx.hpp:2126
static constexpr bool UBX_ESF_MEAS_V0_FLAGS_CALIBTTAGVALID(const uint16_t flags)
Definition ubx.hpp:1024
static constexpr const char * UBX_TIM_TM2_STRID
UBX-TIM-TM2 message name.
Definition ubx.hpp:478
static constexpr uint8_t UBX_RXM_SPARTN_V1_VERSION
Definition ubx.hpp:2534
static constexpr double UBX_NAV_TIMEGLO_V0_SIZE
Definition ubx.hpp:2254
static constexpr uint8_t UBX_RXM_RTCM_V2_VERSION
Definition ubx.hpp:2468
static constexpr uint8_t UBX_MON_HW3_V0_PINMASK_PINBANK_G
Definition ubx.hpp:1318
static constexpr uint8_t UBX_MON_SYS_V1_BOOTTYPE_VCOREHIGHFAIL
Boot type: V_CORE_HIGH fail.
Definition ubx.hpp:1477
static constexpr double UBX_NAV_TIMEBDS_V0_ITOW_SCALE
Definition ubx.hpp:2224
static constexpr uint8_t UBX_NAV_HPPOSLLH_V0_VERSION
Definition ubx.hpp:1773
static constexpr double UBX_NAV_SIG_V0_PRRES_SCALE
Definition ubx.hpp:2083
static constexpr uint8_t UBX_MON_COMMS_V0_TXERRORS_OUTPUTPORT_UART2
Definition ubx.hpp:1171
static constexpr uint8_t UBX_TIM_TP_V0_REFINFO_UTCSTANDARD_SU
Definition ubx.hpp:2663
static constexpr uint8_t UBX_ESF_STATUS_V2_VERSION
Definition ubx.hpp:1069
static constexpr const char * UBX_ESF_ALG_STRID
UBX-ESF-ALG message name.
Definition ubx.hpp:242
static constexpr uint8_t UBX_NAV_SIG_V0_IONOMODEL_NONE
Definition ubx.hpp:2059
static constexpr uint8_t UBX_NUM_QZSS
Q01-Q10 ("Jxx" in RINEX)
Definition ubx.hpp:668
static constexpr uint8_t UBX_CFG_VALGET_V0_LAYER_RAM
UBX-CFG-VALGET.layers value: layer RAM.
Definition ubx.hpp:848
static constexpr uint8_t UBX_MON_HW_V0_ASTATUS_UNKNOWN
Definition ubx.hpp:1225
static constexpr bool UBX_NAV_RELPOSNED_V1_FLAGS_RELPOSHEADINGVALID(const uint32_t flags)
Definition ubx.hpp:1952
static constexpr double UBX_NAV_CLOCK_V0_FACC_SCALE
Definition ubx.hpp:1588
static constexpr uint16_t UBX_CFG_RST_V0_NAVBBR_WARMSTART
Warmstart (clear ephemerides)
Definition ubx.hpp:936
static constexpr const char * UBX_NAV2_POSECEF_STRID
UBX-NAV2-POSECEF message name.
Definition ubx.hpp:410
static constexpr uint8_t UBX_NAV_PVAT_MSGID
UBX-NAV-PVAT message ID.
Definition ubx.hpp:355
static constexpr uint8_t UBX_RXM_COR_MSGID
UBX-RXM-COR message ID.
Definition ubx.hpp:447
static constexpr uint8_t UBX_NAV_SBAS_MSGID
UBX-NAV-SBAS message ID.
Definition ubx.hpp:365
static constexpr uint8_t UBX_NAV_PVT_V1_FIXTYPE_3D_DR
Definition ubx.hpp:1867
static constexpr uint8_t UBX_NAV_RELPOSNED_V1_FLAGS_CARRSOLN_NO
Definition ubx.hpp:1946
static constexpr uint8_t UBX_NAV_SIG_V0_CORRSOURCE_QZSS_SLAS
Definition ubx.hpp:2081
static constexpr const char * UBX_NAV2_STRID
UBX-NAV2 class name.
Definition ubx.hpp:207
static constexpr uint8_t UBX_MON_SYS_V1_BOOTTYPE_SWBACKUP
Boot type: software backup.
Definition ubx.hpp:1472
static constexpr const char * UBX_CFG_VALDEL_STRID
UBX-CFG-VALDEL message name.
Definition ubx.hpp:236
static constexpr uint8_t UBX_TIM_VRFY_MSGID
UBX-TIM-VRFY message ID.
Definition ubx.hpp:481
static constexpr uint8_t UBX_FIRST_GPS
G01.
Definition ubx.hpp:671
static constexpr uint8_t UBX_RXM_RTCM_V2_FLAGS_MSGUSED_UNUSED
Definition ubx.hpp:2473
static constexpr uint8_t UBX_MON_SYS_V1_BOOTTYPE_VIOFAIL
Boot type: VIO fail.
Definition ubx.hpp:1474
static constexpr uint8_t UBX_NAV_SIG_V0_QUALITYIND_CARRLOCK2
Definition ubx.hpp:2057
static constexpr bool UBX_NAV_STATUS_V0_FIXSTAT_DIFFCORR(const uint8_t fixStat)
Definition ubx.hpp:2120
static constexpr uint8_t UBX_RTCM3_TYPE1074_MSGID
UBX-RTCM3-TYPE1074 message ID.
Definition ubx.hpp:567
static constexpr const char * UBX_RTCM3_TYPE4072_1_STRID
UBX-RTCM3-TYPE4072_1 message name.
Definition ubx.hpp:596
static constexpr const char * UBX_NAV_RESETODO_STRID
UBX-NAV-RESETODO message name.
Definition ubx.hpp:362
static constexpr uint8_t UBX_CFG_RST_V0_RESETMODE_SW
Controlled software reset.
Definition ubx.hpp:939
static constexpr std::size_t UBX_NAV_HPPOSLLH_V0_SIZE
Definition ubx.hpp:1774
static constexpr const char * UBX_INF_DEBUG_STRID
UBX-INF-DEBUG message name.
Definition ubx.hpp:252
static constexpr uint8_t UBX_MON_HW3_MSGID
UBX-MON-HW3 message ID.
Definition ubx.hpp:303
static constexpr uint8_t UBX_MON_SYS_V1_BOOTTYPE_UNKNOWN
Boot type: unknown.
Definition ubx.hpp:1467
static constexpr uint8_t UBX_NMEA_STANDARD_TXT_MSGID
UBX-NMEA-STANDARD_TXT message ID.
Definition ubx.hpp:525
static constexpr uint8_t UBX_CFG_RST_V0_RESERVED
Reserved.
Definition ubx.hpp:944
static constexpr uint8_t UBX_NMEA_STANDARD_GRS_MSGID
UBX-NMEA-STANDARD_GRS message ID.
Definition ubx.hpp:513
static constexpr const char * UBX_NAV2_SVIN_STRID
UBX-NAV2-SVIN message name.
Definition ubx.hpp:426
static constexpr uint8_t UBX_MON_COMMS_V0_TXERRORS_OUTPUTPORT_USB
Definition ubx.hpp:1172
static constexpr uint8_t UBX_SIGID_GLO_L2OF
GLONASS L2 OF.
Definition ubx.hpp:719
static constexpr uint8_t UBX_NAV_RELPOSNED_MSGID
UBX-NAV-RELPOSNED message ID.
Definition ubx.hpp:359
static constexpr uint8_t UBX_TIM_TP_V0_REFINFO_UTCSTANDARD_INFONA
Definition ubx.hpp:2657
static constexpr uint8_t UBX_TIM_TP_V0_FLAGS_TIMEBASE_UTC
Definition ubx.hpp:2641
static constexpr uint8_t UBX_MON_SYS_MSGID
UBX-MON-SYS message ID.
Definition ubx.hpp:319
static constexpr uint8_t UBX_CFG_VALSET_V0_LAYERS_RAM
UBX-CFG-VALSET.layers flag: layer RAM.
Definition ubx.hpp:793
static constexpr uint8_t UBX_NAV2_TIMEGLO_MSGID
UBX-NAV2-TIMEGLO message ID.
Definition ubx.hpp:431
static constexpr bool UBX_RXM_RAWX_V1_TRKSTAT_PRVALID(const uint8_t trkStat)
Definition ubx.hpp:2437
static constexpr std::size_t UBX_CFG_VALSET_V1_MIN_SIZE
Definition ubx.hpp:802
static constexpr const char * UBX_MON_SPAN_STRID
UBX-MON-SPAN message name.
Definition ubx.hpp:318
static constexpr const char * UBX_NAV_TIMETRUSTED_STRID
UBX-NAV-TIMETRUSTED message name.
Definition ubx.hpp:392
static constexpr const char * UBX_NMEA_STANDARD_GSV_STRID
UBX-NMEA-STANDARD_GSV message name.
Definition ubx.hpp:520
static constexpr bool UBX_RXM_RAWX_V1_TRKSTAT_HALFCYC(const uint8_t trkStat)
Definition ubx.hpp:2439
static constexpr const char * UBX_MON_HW_STRID
UBX-MON-HW message name.
Definition ubx.hpp:300
static constexpr const char * UBX_MON_TXBUF_STRID
UBX-MON-TXBUF message name.
Definition ubx.hpp:324
static constexpr uint8_t UBX_RTCM3_TYPE1094_MSGID
UBX-RTCM3-TYPE1094 message ID.
Definition ubx.hpp:579
static constexpr uint8_t UBX_MON_RF_V0_ANTPOWER_OFF
Definition ubx.hpp:1385
static constexpr std::size_t UBX_CFG_VALDEL_V1_KEYS_MAX_SIZE
UBX-CFG-VALDEL.keys maximum size.
Definition ubx.hpp:901
static constexpr bool UBX_NAV_PVT_V1_FLAGS2_CONFTIME(const uint8_t flags2)
Definition ubx.hpp:1877
static constexpr const char * UBX_NMEA_PUBX_POSITION_STRID
UBX-NMEA-PUBX_POSITION message name.
Definition ubx.hpp:536
static constexpr uint8_t UBX_NMEA_STANDARD_GSA_MSGID
UBX-NMEA-STANDARD_GSA message ID.
Definition ubx.hpp:515
static constexpr const char * UBX_NAV_ODO_STRID
UBX-NAV-ODO message name.
Definition ubx.hpp:346
static constexpr bool UBX_NAV_TIMEBDS_V0_VALID_WEEKVALID(const uint8_t valid)
Definition ubx.hpp:2228
static constexpr const char * UBX_MON_VER_STRID
UBX-MON-VER message name.
Definition ubx.hpp:326
static constexpr uint8_t UBX_ESF_STATUS_V2_INITSTATUS1_WTINITSTATUS(const uint8_t initStatus1)
Definition ubx.hpp:1074
static constexpr uint8_t UBX_SIGID_SBAS_L1CA
SBAS L1 C/A.
Definition ubx.hpp:692
static constexpr std::size_t UBX_CFG_VALGET_V1_MAX_SIZE
Definition ubx.hpp:868
static constexpr uint8_t UBX_MON_SYS_V1_BOOTTYPE_WATCHDOG
Boot type: watchdog.
Definition ubx.hpp:1469
static constexpr uint8_t UBX_NAV_SVIN_MSGID
UBX-NAV-SVIN message ID.
Definition ubx.hpp:375
static constexpr uint16_t UBX_CFG_RST_V0_NAVBBR_RTC
RTC.
Definition ubx.hpp:933
static constexpr uint8_t UBX_CFG_RST_MSGID
UBX-CFG-RST message ID.
Definition ubx.hpp:233
static constexpr std::size_t UBX_TIM_SVIN_V0_SIZE
Definition ubx.hpp:2566
static constexpr uint8_t UBX_TIM_TP_V0_REFINFO_TIMEREFGNSS_GAL
Definition ubx.hpp:2653
static constexpr double UBX_NAV_STATUS_V0_TTFF_SCALE
Definition ubx.hpp:2136
static constexpr uint8_t UBX_MON_HW_V0_APOWER_UNKNOWN
Definition ubx.hpp:1231
static constexpr bool UBX_MON_HW3_V0_PINMASK_VPMANAGER(const uint16_t pinMask)
Definition ubx.hpp:1324
static constexpr const char * UBX_MON_TEMP_STRID
UBX-MON-TEMP message name.
Definition ubx.hpp:322
static constexpr uint8_t UBX_NAV_TIMEUTC_V0_VALID_VALIDUTC(const uint8_t valid)
Definition ubx.hpp:2293
static constexpr uint8_t UBX_MON_HW2_V0_CFGSOURCE_PIN
Definition ubx.hpp:1265
static constexpr std::size_t UBX_CFG_VALSET_V0_MAX_SIZE
Definition ubx.hpp:799
static constexpr const char * UBX_NAV_TIMEGAL_STRID
UBX-NAV-TIMEGAL message name.
Definition ubx.hpp:380
static constexpr uint8_t UBX_CFG_VALSET_V1_RESERVED
UBX-CFG-VALSET.reserved value.
Definition ubx.hpp:810
static constexpr uint8_t UBX_NAV_VELNED_MSGID
UBX-NAV-VELNED message ID.
Definition ubx.hpp:397
static constexpr const char * UBX_NAV_POSLLH_STRID
UBX-NAV-POSLLH message name.
Definition ubx.hpp:354
static constexpr const char * UBX_NAV_EELL_STRID
UBX-NAV-EELL message name.
Definition ubx.hpp:336
static constexpr uint8_t UBX_MON_CLSID
UBX-MON class ID.
Definition ubx.hpp:202
static constexpr uint8_t UBX_CFG_RST_V0_RESETMODE_GNSS_STOP
Stop GNSS.
Definition ubx.hpp:942
static constexpr bool UBX_MON_COMMS_V0_TXERRORS_MEM(const uint8_t txErrors)
Definition ubx.hpp:1165
static constexpr double UBX_NAV_HPPOSECEF_V0_PACC_SCALE
Definition ubx.hpp:1739
static constexpr uint8_t UBX_CFG_VALGET_V1_LAYER_RAM
UBX-CFG-VALGET.layers value: layer RAM.
Definition ubx.hpp:860
static constexpr const char * UBX_NMEA_PUBX_RATE_STRID
UBX-NMEA-PUBX_RATE message name.
Definition ubx.hpp:538
static constexpr const char * UBX_UPD_FLDET_STRID
UBX-UPD-FLDET message name.
Definition ubx.hpp:484
static constexpr uint8_t UBX_CFG_VALDEL_MSGID
UBX-CFG-VALDEL message ID.
Definition ubx.hpp:235
static constexpr const char * UBX_NAV2_TIMEGAL_STRID
UBX-NAV2-TIMEGAL message name.
Definition ubx.hpp:430
static constexpr uint8_t UBX_RXM_MEASX_MSGID
UBX-RXM-MEASX message ID.
Definition ubx.hpp:449
static constexpr const char * UBX_NAV_PVAT_STRID
UBX-NAV-PVAT message name.
Definition ubx.hpp:356
static constexpr const char * UBX_RTCM3_TYPE1097_STRID
UBX-RTCM3-TYPE1097 message name.
Definition ubx.hpp:584
static constexpr uint8_t UBX_RTCM3_TYPE1004_MSGID
UBX-RTCM3-TYPE1004 message ID.
Definition ubx.hpp:549
static constexpr uint8_t UBX_NMEA_PUBX_RATE_MSGID
UBX-NMEA-PUBX_RATE message ID.
Definition ubx.hpp:537
static constexpr uint8_t UBX_TIM_TP_V0_FLAGS_RAIM_INACTIVE
Definition ubx.hpp:2645
static constexpr uint8_t UBX_NAV_RELPOSNED_V1_FLAGS_CARRSOLN_FIXED
Definition ubx.hpp:1948
static constexpr const char * UBX_RTCM3_TYPE1125_STRID
UBX-RTCM3-TYPE1125 message name.
Definition ubx.hpp:588
static constexpr uint8_t UBX_SIGID_QZSS_L2CL
QZSS L2 CL.
Definition ubx.hpp:715
static constexpr uint8_t UBX_RTCM3_TYPE1087_MSGID
UBX-RTCM3-TYPE1087 message ID.
Definition ubx.hpp:577
static constexpr double UBX_NAV_RELPOSNED_V1_RELPOSHEADING_SCALE
Definition ubx.hpp:1936
static constexpr const char * UBX_NAV_TIMEUTC_STRID
UBX-NAV-TIMEUTC message name.
Definition ubx.hpp:394
static constexpr uint8_t UBX_CFG_VALSET_V1_TRANSACTION_CONTINUE
UBX-CFG-VALSET.transaction value: transaction continue.
Definition ubx.hpp:808
static constexpr const char * UBX_INF_NOTICE_STRID
UBX-INF-NOTICE message name.
Definition ubx.hpp:256
static constexpr uint16_t UBX_CFG_RST_V0_NAVBBR_NONE
Nothing.
Definition ubx.hpp:924
static constexpr const char * UBX_MGA_GAL_STRID
UBX-MGA-GAL message name.
Definition ubx.hpp:286
static constexpr uint8_t UBX_TIM_TP_V0_FLAGS_TIMEBASE(const uint8_t flags)
Definition ubx.hpp:2639
static constexpr const char * UBX_RTCM3_TYPE1087_STRID
UBX-RTCM3-TYPE1087 message name.
Definition ubx.hpp:578
static constexpr uint8_t UBX_MON_RF_V0_FLAGS_JAMMINGSTATE_OK
Definition ubx.hpp:1377
static constexpr uint8_t UBX_MON_HW_V0_FLAGS_RTCCALIB
Definition ubx.hpp:1216
static constexpr uint8_t UBX_SIGID_BDS_B1ID1
BeiDou B1I D1.
Definition ubx.hpp:702
static constexpr uint8_t UBX_INF_CLSID
UBX-INF class ID.
Definition ubx.hpp:196
static constexpr double UBX_NAV_TIMEGLO_V0_ITOW_SCALE
Definition ubx.hpp:2255
static constexpr uint8_t UBX_INF_NOTICE_MSGID
UBX-INF-NOTICE message ID.
Definition ubx.hpp:255
static constexpr double UBX_TIM_TM2_V0_ACCEST_SCALE
Definition ubx.hpp:2611
static constexpr const char * UBX_NAV_SOL_STRID
UBX-NAV-SOL message name.
Definition ubx.hpp:372
static constexpr uint8_t UBX_NAV_SAT_V1_VERSION
Definition ubx.hpp:1990
static constexpr uint16_t UBX_CFG_RST_V0_NAVBBR_POS
Position.
Definition ubx.hpp:929
static constexpr uint8_t UBX_NAV_STATUS_V0_FLAGS2_SPOOFDETSTATE_INDICATED
Definition ubx.hpp:2130
static constexpr uint8_t UBX_RXM_RAWX_V1_DOSTDEV_DOSTD(const uint8_t doStdev)
Definition ubx.hpp:2434
static constexpr uint8_t UBX_MON_IO_MSGID
UBX-MON-IO message ID.
Definition ubx.hpp:305
static constexpr double UBX_NAV_ATT_V0_ITOW_SCALE
Definition ubx.hpp:1560
static constexpr uint8_t UBX_NAV_TIMEGLO_MSGID
UBX-NAV-TIMEGLO message ID.
Definition ubx.hpp:381
static constexpr uint8_t UBX_MON_RF_V0_JAMIND_MAX
Definition ubx.hpp:1390
static constexpr uint8_t UBX_NMEA_STANDARD_GST_MSGID
UBX-NMEA-STANDARD_GST message ID.
Definition ubx.hpp:517
static constexpr uint8_t UBX_NAV2_TIMELS_MSGID
UBX-NAV2-TIMELS message ID.
Definition ubx.hpp:435
static constexpr uint8_t UBX_SIGID_QZSS_L5Q
QZSS L5 Q.
Definition ubx.hpp:717
static constexpr uint8_t UBX_MON_TEMP_V0_VERSION
Definition ubx.hpp:1502
static constexpr uint8_t UBX_LOG_INFO_MSGID
UBX-LOG-INFO message ID.
Definition ubx.hpp:267
static constexpr uint8_t UBX_TIM_TP_V0_REFINFO_UTCSTANDARD_NIST
Definition ubx.hpp:2659
static constexpr uint8_t UBX_RXM_SPARTN_V1_FLAGS_MSGUSED_UNUSED
Definition ubx.hpp:2538
static constexpr uint8_t UBX_MON_HW3_V0_PINMASK_PERIPHPIO_PIO
Definition ubx.hpp:1310
static constexpr bool UBX_NAV_RELPOSNED_V1_FLAGS_DIFFSOLN(const uint32_t flags)
Definition ubx.hpp:1943
static constexpr uint8_t UBX_ESF_CLSID
UBX-ESF class ID.
Definition ubx.hpp:194
static constexpr uint8_t UBX_ESF_STATUS_V2_FUSIONMODE_FUSION
Definition ubx.hpp:1094
static constexpr uint32_t UBX_ESF_MEAS_V0_DATA_DATAFIELD(const uint32_t data)
Definition ubx.hpp:1026
static constexpr bool UBX_TIM_TM2_V0_FLAGS_TIMEVALID(const uint8_t flags)
Definition ubx.hpp:2607
static constexpr const char * UBX_RTCM3_TYPE1005_STRID
UBX-RTCM3-TYPE1005 message name.
Definition ubx.hpp:552
static constexpr bool UBX_NAV_TIMEUTC_V0_VALID_AUTHSTATUS(const uint8_t valid)
Definition ubx.hpp:2294
static constexpr uint8_t UBX_SIGID_GAL_E1C
Galileo E1 C.
Definition ubx.hpp:693
static constexpr const char * UBX_RTCM3_TYPE1095_STRID
UBX-RTCM3-TYPE1095 message name.
Definition ubx.hpp:582
static constexpr uint8_t UBX_SIGID_BDS_B2AP
BeiDou B2 ap (pilot)
Definition ubx.hpp:710
static constexpr std::size_t UBX_ESF_MEAS_V0_FLAGS_NUMMEAS(const uint16_t flags)
Definition ubx.hpp:1025
static constexpr uint8_t UBX_NAV_STATUS_V0_FLAGS2_PSMSTATE(const uint8_t flags2)
Definition ubx.hpp:2122
static constexpr double UBX_NAV_EELL_V0_ELLIPSEMINOR_SCALE
Definition ubx.hpp:1684
static constexpr uint8_t UBX_GNSSID_SBAS
SBAS.
Definition ubx.hpp:650
static constexpr uint16_t UBX_CFG_RST_V0_NAVBBR_HOTSTART
Hostsart (keep all data)
Definition ubx.hpp:935
static constexpr uint8_t UBX_MON_SPAN_V0_VERSION
Definition ubx.hpp:1428
static constexpr const char * UBX_NMEA_STANDARD_GLQ_STRID
UBX-NMEA-STANDARD_GLQ message name.
Definition ubx.hpp:504
static constexpr const char * UBX_NAV2_TIMEUTC_STRID
UBX-NAV2-TIMEUTC message name.
Definition ubx.hpp:442
static constexpr uint8_t UBX_MON_HW3_V0_PINMASK_PINBANK_F
Definition ubx.hpp:1317
static constexpr uint8_t UBX_NAV_PVT_V1_FIXTYPE_2D
Definition ubx.hpp:1865
static constexpr uint8_t UBX_NAV_TIMETRUSTED_MSGID
UBX-NAV-TIMETRUSTED message ID.
Definition ubx.hpp:391
static constexpr uint8_t UBX_SEC_OSNMA_MSGID
UBX-SEC-OSNMA message ID.
Definition ubx.hpp:469
static constexpr uint8_t UBX_LOG_FINDTIME_MSGID
UBX-LOG-FINDTIME message ID.
Definition ubx.hpp:265
static constexpr uint8_t UBX_RTCM3_TYPE1012_MSGID
UBX-RTCM3-TYPE1012 message ID.
Definition ubx.hpp:563
static constexpr const char * UBX_NAV_VELNED_STRID
UBX-NAV-VELNED message name.
Definition ubx.hpp:398
static constexpr uint8_t UBX_NAV_HPPOSECEF_VERSION(const uint8_t *msg)
Definition ubx.hpp:1733
static constexpr double UBX_NAV_RELPOSNED_V1_RELPOSHPLENGTH_SCALE
Definition ubx.hpp:1938
static constexpr uint8_t UBX_NAV_TIMEUTC_V0_VALID_UTCSTANDARD_NPLI
Definition ubx.hpp:2304
static constexpr const char * UBX_NMEA_STANDARD_GGA_STRID
UBX-NMEA-STANDARD_GGA message name.
Definition ubx.hpp:500
static constexpr uint8_t UBX_NAV_SAT_V1_FLAGS_ORBITSOURCE_OTHER2
Definition ubx.hpp:2001
static constexpr const char * UBX_UPD_STRID
UBX-UPD class name.
Definition ubx.hpp:215
static constexpr uint8_t UBX_SIGID_GAL_E1B
Galileo E1 B.
Definition ubx.hpp:694
static constexpr uint32_t UBX_CFG_VALGET_V1_GROUP_WILDCARD(const uint32_t groupId)
UBX-CFG-VALGET.keys group wildcard.
Definition ubx.hpp:866
static constexpr std::size_t UBX_MON_HW3_V0_MIN_SIZE
Definition ubx.hpp:1302
static constexpr double UBX_NAV_HPPOSLLH_V0_ACC_SCALE
Definition ubx.hpp:1781
static constexpr uint8_t UBX_NAV_SIG_V0_SIGFLAGS_HEALTH_HEALTHY
Definition ubx.hpp:2066
static constexpr double UBX_NAV_TIMELS_V0_ITOW_SCALE
Definition ubx.hpp:2336
static constexpr double UBX_NAV_PVT_V1_HEADMOT_SCALE
Definition ubx.hpp:1886
static constexpr uint8_t UBX_RXM_SPARTN_V1_FLAGS_MSGUSED_USED
Definition ubx.hpp:2539
static constexpr uint8_t UBX_MON_SYS_VERSION(const uint8_t *msg)
Definition ubx.hpp:1464
static constexpr uint8_t UBX_MON_RF_VERSION(const uint8_t *msg)
Definition ubx.hpp:1370
static constexpr uint8_t UBX_SEC_SIG_MSGID
UBX-SEC-SIG message ID.
Definition ubx.hpp:471
static constexpr uint8_t UBX_MON_SYS_V1_BOOTTYPE_VDDXFAIL
Boot type: VDD_X fail.
Definition ubx.hpp:1475
static constexpr std::size_t UBX_CFG_VALDEL_V1_MIN_SIZE
Definition ubx.hpp:892
static constexpr const char * UBX_NMEA_STANDARD_ZDA_STRID
UBX-NMEA-STANDARD_ZDA message name.
Definition ubx.hpp:532
static constexpr uint8_t UBX_RXM_SPARTNKEY_MSGID
UBX-RXM-SPARTNKEY message ID.
Definition ubx.hpp:467
static constexpr double UBX_NAV_HPPOSECEF_V0_ITOW_SCALE
Definition ubx.hpp:1736
static constexpr std::size_t UBX_CFG_VALSET_V1_CFGDATA_MAX_SIZE
UBX-CFG-VALSET.cfgData maximum size.
Definition ubx.hpp:812
static constexpr const char * UBX_NAV2_ODO_STRID
UBX-NAV2-ODO message name.
Definition ubx.hpp:408
static constexpr const char * UBX_RXM_SPARTNKEY_STRID
UBX-RXM-SPARTNKEY message name.
Definition ubx.hpp:468
static constexpr std::size_t UBX_CFG_VALSET_V0_MIN_SIZE
Definition ubx.hpp:792
static constexpr const char * UBX_MGA_GLO_STRID
UBX-MGA-GLO message name.
Definition ubx.hpp:288
static constexpr uint8_t UBX_MON_HW2_V0_CFGSOURCE_FLASH
Definition ubx.hpp:1266
static constexpr uint8_t UBX_UPD_CLSID
UBX-UPD class ID.
Definition ubx.hpp:214
static constexpr bool UBX_NAV_PVT_V1_FLAGS3_INVALIDLLH(const uint8_t flags3)
Definition ubx.hpp:1878
static constexpr uint8_t UBX_NAV_PL_MSGID
UBX-NAV-PL message ID.
Definition ubx.hpp:349
static constexpr uint8_t UBX_NMEA_STANDARD_GPQ_MSGID
UBX-NMEA-STANDARD_GPQ message ID.
Definition ubx.hpp:509
static constexpr uint16_t UBX_CFG_RST_V0_NAVBBR_HEALTH
Health.
Definition ubx.hpp:927
static constexpr uint8_t UBX_CFG_VALDEL_V1_RESERVED
UBX-CFG-VALDEL.reserved value.
Definition ubx.hpp:899
static constexpr uint8_t UBX_NMEA_STANDARD_DTM_MSGID
UBX-NMEA-STANDARD_DTM message ID.
Definition ubx.hpp:491
static constexpr double UBX_ESF_STATUS_V2_ITOW_SCALE
Definition ubx.hpp:1073
static constexpr uint8_t UBX_MGA_GAL_MSGID
UBX-MGA-GAL message ID.
Definition ubx.hpp:285
static constexpr uint8_t UBX_MON_HW3_V0_VERSION
Definition ubx.hpp:1301
static constexpr uint8_t UBX_ESF_STATUS_V2_INITSTATUS1_INSINITSTATUS(const uint8_t initStatus1)
Definition ubx.hpp:1083
static constexpr uint8_t UBX_MON_COMMS_V0_PROTIDS_OTHER
Definition ubx.hpp:1180
static constexpr uint8_t UBX_LOG_RETR_MSGID
UBX-LOG-RETR message ID.
Definition ubx.hpp:269
static constexpr uint8_t UBX_NAV_COV_VERSION(const uint8_t *msg)
Definition ubx.hpp:1624
static constexpr uint8_t UBX_RXM_RTCM_V2_FLAGS_MSGUSED(const uint8_t flags)
Definition ubx.hpp:2471
static constexpr uint8_t UBX_RTCM3_TYPE1033_MSGID
UBX-RTCM3-TYPE1033 message ID.
Definition ubx.hpp:565
static constexpr const char * UBX_NMEA_STRID
UBX-NMEA class name.
Definition ubx.hpp:217
static constexpr double UBX_NAV_RELPOSNED_V1_RELPOSHPN_E_D_SCALE
Definition ubx.hpp:1937
static constexpr uint8_t UBX_UPD_FLDET_MSGID
UBX-UPD-FLDET message ID.
Definition ubx.hpp:483
static constexpr uint8_t UBX_ESF_STATUS_V2_FAULTS_MISSINGMEAS
Definition ubx.hpp:1112
static constexpr uint8_t UBX_NMEA_STANDARD_VTG_MSGID
UBX-NMEA-STANDARD_VTG message ID.
Definition ubx.hpp:529
static constexpr double UBX_NAV_TIMEGPS_V0_TACC_SCALE
Definition ubx.hpp:2164
static constexpr uint8_t UBX_ESF_STATUS_V2_INITSTATUS2_IMUINITSTATUS_INITALIZING
Definition ubx.hpp:1090
static constexpr const char * UBX_SEC_UNIQID_STRID
UBX-SEC-UNIQID message name.
Definition ubx.hpp:476
static constexpr uint8_t UBX_CFG_VALGET_V1_LAYER_DEFAULT
UBX-CFG-VALGET.layers value: layer Default.
Definition ubx.hpp:863
static constexpr uint8_t UBX_GNSSID_GPS
GPS.
Definition ubx.hpp:649
static constexpr uint8_t UBX_TIM_TM2_V0_FLAGS_TIMEBASE_RX
Definition ubx.hpp:2603
static constexpr uint8_t UBX_RXM_RLM_MSGID
UBX-RXM-RLM message ID.
Definition ubx.hpp:459
static constexpr uint8_t UBX_NMEA_STANDARD_GAQ_MSGID
UBX-NMEA-STANDARD_GAQ message ID.
Definition ubx.hpp:493
static constexpr bool UBX_NAV_SIG_V0_SIGFLAGS_DO_CORR_USED(const uint16_t sigFlags)
Definition ubx.hpp:2074
static constexpr uint16_t UBX_CFG_RST_V0_NAVBBR_ALM
Almanac.
Definition ubx.hpp:926
static constexpr const char * UBX_NAV2_POSLLH_STRID
UBX-NAV2-POSLLH message name.
Definition ubx.hpp:412
static constexpr uint8_t UBX_NAV_SAT_V1_FLAGS_ORBITSOURCE_NONE
Definition ubx.hpp:1995
static constexpr uint8_t UBX_MON_COMMS_V0_PROTIDS_RTCM2
Definition ubx.hpp:1177
static constexpr bool UBX_NAV_STATUS_V0_FLAGS_WKNSET(const uint8_t flags)
Definition ubx.hpp:2118
static constexpr const char * UBX_NAV_PL_STRID
UBX-NAV-PL message name.
Definition ubx.hpp:350
static constexpr uint8_t UBX_NAV_TIMELS_V0_SRCOFCURRLSCHANGE_NONE
Definition ubx.hpp:2345
static constexpr double UBX_TIM_TP_V0_TOWSUBMS_SCALE_APPROX
perl -e 'printf "%.18g", 2**-32 * 1e-8'
Definition ubx.hpp:2638
static constexpr double UBX_NAV_PVT_V1_NANO_SCALE
Definition ubx.hpp:1891
static constexpr uint8_t UBX_NMEA_STANDARD_VLW_MSGID
UBX-NMEA-STANDARD_VLW message ID.
Definition ubx.hpp:527
static constexpr uint8_t UBX_NAV_STATUS_V0_FLAGS2_CARRSOLN(const uint8_t flags2)
Definition ubx.hpp:2132
static constexpr const char * UBX_NAV_HPPOSLLH_STRID
UBX-NAV-HPPOSLLH message name.
Definition ubx.hpp:344
static constexpr uint8_t UBX_TIM_TM2_V0_FLAGS_TIMEBASE_GNSS
Definition ubx.hpp:2604
static constexpr double UBX_NAV_TIMEGAL_V0_FGALTOW_SCALE
Definition ubx.hpp:2194
static constexpr std::size_t UBX_ESF_STATUS_V2_MIN_SIZE
Definition ubx.hpp:1070
static constexpr uint8_t UBX_SIGID_BDS_B1CD
BeiDou B1 Cd (data)
Definition ubx.hpp:709
static constexpr const char * UBX_NMEA_STANDARD_GST_STRID
UBX-NMEA-STANDARD_GST message name.
Definition ubx.hpp:518
static constexpr uint8_t UBX_NAV_ORB_MSGID
UBX-NAV-ORB message ID.
Definition ubx.hpp:347
static constexpr uint8_t UBX_RXM_RAWX_V1_PRSTDEV_PRSTD(const uint8_t prStdev)
Definition ubx.hpp:2430
static constexpr uint8_t UBX_ESF_STATUS_V2_FUSIONMODE_INIT
Definition ubx.hpp:1093
static constexpr uint8_t UBX_NAV_EELL_VERSION(const uint8_t *msg)
Definition ubx.hpp:1678
static constexpr bool UBX_NAV_RELPOSNED_V1_FLAGS_RELPOSNORMALIZED(const uint32_t flags)
Definition ubx.hpp:1953
static constexpr uint8_t UBX_NAV_SAT_MSGID
UBX-NAV-SAT message ID.
Definition ubx.hpp:363
static constexpr uint8_t UBX_NAV_SIG_V0_CORRSOURCE_RTCM2
Definition ubx.hpp:2078
static constexpr uint8_t UBX_CFG_VALGET_V1_LAYER_BBR
UBX-CFG-VALGET.layers value: layer BBR.
Definition ubx.hpp:861
static constexpr uint16_t UBX_CFG_RST_V0_NAVBBR_KLOB
Klobuchar parameters.
Definition ubx.hpp:928
static constexpr uint8_t UBX_NAV_TIMEBDS_MSGID
UBX-NAV-TIMEBDS message ID.
Definition ubx.hpp:377
static constexpr double UBX_NAV_PVT_V1_SACC_SCALE
Definition ubx.hpp:1887
static constexpr uint8_t UBX_NAV_TIMEUTC_V0_VALID_UTCSTANDARD_EU
Definition ubx.hpp:2301
static constexpr uint8_t UBX_MON_HW_V0_JAMIND_MAX
Definition ubx.hpp:1234
static constexpr uint8_t UBX_MON_HW3_V0_PINMASK_DIRECTION_IN
Definition ubx.hpp:1322
static constexpr const char * UBX_NAV2_SBAS_STRID
UBX-NAV2-SBAS message name.
Definition ubx.hpp:418
static constexpr uint8_t UBX_MON_TXBUF_MSGID
UBX-MON-TXBUF message ID.
Definition ubx.hpp:323
static constexpr double UBX_NAV_PVT_V1_HACC_SCALE
Definition ubx.hpp:1882
static constexpr uint8_t UBX_SIGID_GAL_E5AQ
Galileo E5 aQ.
Definition ubx.hpp:696
static constexpr uint8_t UBX_CFG_VALGET_V0_LAYER_DEFAULT
UBX-CFG-VALGET.layers value: layer Default.
Definition ubx.hpp:851
static constexpr uint8_t UBX_MON_HW_V0_ASTATUS_INIT
Definition ubx.hpp:1224
static constexpr double UBX_NAV_PVT_V1_PDOP_SCALE
Definition ubx.hpp:1889
static constexpr double UBX_NAV_EELL_V0_ELLIPSEORIENT_SCALE
Definition ubx.hpp:1682
static constexpr const char * UBX_TIM_TP_STRID
UBX-TIM-TP message name.
Definition ubx.hpp:480
static constexpr uint8_t UBX_MGA_CLSID
UBX-MGA class ID.
Definition ubx.hpp:200
static constexpr const char * UBX_LOG_RETRPOS_STRID
UBX-LOG-RETRPOS message name.
Definition ubx.hpp:272
static constexpr bool UBX_MON_HW3_V0_FLAGS_RTCCALIB(const uint8_t flags)
Definition ubx.hpp:1305
static constexpr std::size_t UBX_MON_HW3_V0_SIZE(const uint8_t *msg)
Definition ubx.hpp:1303
static constexpr bool UBX_NAV_SIG_V0_SIGFLAGS_PR_CORR_USED(const uint16_t sigFlags)
Definition ubx.hpp:2072
static constexpr uint8_t UBX_NAV2_COV_MSGID
UBX-NAV2-COV message ID.
Definition ubx.hpp:401
static constexpr std::size_t UBX_CFG_CFG_V0_MAX_SIZE
Definition ubx.hpp:974
static constexpr uint8_t UBX_NAV_TIMEUTC_V0_VALID_UTCSTANDARD_INFONA
Definition ubx.hpp:2296
static constexpr uint8_t UBX_NAV2_CLOCK_MSGID
UBX-NAV2-CLOCK message ID.
Definition ubx.hpp:399
static constexpr uint8_t UBX_NAV_STATUS_V0_FIXTYPE_TIME
Definition ubx.hpp:2115
static constexpr uint8_t UBX_NAV2_TIMEQZSS_MSGID
UBX-NAV2-TIMEQZSS message ID.
Definition ubx.hpp:437
static constexpr uint8_t UBX_ESF_STATUS_V2_INITSTATUS2_IMUINITSTATUS_OFF
Definition ubx.hpp:1089
static constexpr uint8_t UBX_CFG_VALSET_V1_LAYER_BBR
UBX-CFG-VALSET.layers flag: layer BBR.
Definition ubx.hpp:804
static constexpr uint8_t UBX_RXM_RTCM_V2_FLAGS_MSGUSED_UNKNOWN
Definition ubx.hpp:2472
static constexpr std::size_t UBX_MON_HW_V0_SIZE
Definition ubx.hpp:1215
static constexpr uint8_t UBX_ESF_STATUS_V2_INITSTATUS1_INSINITSTATUS_INITALIZING
Definition ubx.hpp:1085
static constexpr uint8_t UBX_MON_COMMS_V0_PROTIDS_NMEA
Definition ubx.hpp:1175
static constexpr uint8_t UBX_NAV_TIMEUTC_V0_VALID_UTCSTANDARD_CRL
Definition ubx.hpp:2297
static constexpr uint8_t UBX_NAV_STATUS_V0_FLAGS2_PSMSTATE_ACQUISITION
Definition ubx.hpp:2123
static constexpr uint8_t UBX_NAV_ATT_VERSION(const uint8_t *msg)
Definition ubx.hpp:1557
static constexpr uint8_t UBX_CFG_VALSET_V1_TRANSACTION_NONE
UBX-CFG-VALSET.transaction value: no transaction.
Definition ubx.hpp:806
static constexpr uint8_t UBX_ESF_STATUS_V2_SENSSTATUS2_CALIBSTATUS_NOTCALIB
Definition ubx.hpp:1101
static constexpr const char * UBX_LOG_RETRPOSX_STRID
UBX-LOG-RETRPOSX message name.
Definition ubx.hpp:274
static constexpr double UBX_NAV_DOP_V0_XDOP_SCALE
Definition ubx.hpp:1654
static constexpr uint8_t UBX_CFG_CFG_V0_DEVICE_FLASH
Layer Flash.
Definition ubx.hpp:982
static constexpr const char * UBX_RTCM3_TYPE1007_STRID
UBX-RTCM3-TYPE1007 message name.
Definition ubx.hpp:556
static constexpr const char * UBX_NMEA_STANDARD_GSA_STRID
UBX-NMEA-STANDARD_GSA message name.
Definition ubx.hpp:516
static constexpr uint8_t UBX_LOG_RETRPOS_MSGID
UBX-LOG-RETRPOS message ID.
Definition ubx.hpp:271
static constexpr const char * UBX_MON_RXBUF_STRID
UBX-MON-RXBUF message name.
Definition ubx.hpp:314
static constexpr uint8_t UBX_RTCM3_TYPE1075_MSGID
UBX-RTCM3-TYPE1075 message ID.
Definition ubx.hpp:569
static constexpr uint8_t UBX_NMEA_STANDARD_GBQ_MSGID
UBX-NMEA-STANDARD_GBQ message ID.
Definition ubx.hpp:495
static constexpr uint8_t UBX_RXM_RAWX_V1_VERSION
Definition ubx.hpp:2426
static constexpr bool UBX_NAV_STATUS_V0_FLAGS_GPSFIXOK(const uint8_t flags)
Definition ubx.hpp:2116
static constexpr double UBX_NAV_TIMEUTC_V0_ITOW_SCALE
Definition ubx.hpp:2288
static constexpr double UBX_ESF_MEAS_V0_CALIBTTAG_SCALE
Definition ubx.hpp:1028
static constexpr uint8_t UBX_GNSSID_QZSS
QZSS.
Definition ubx.hpp:653
static constexpr uint8_t UBX_MON_RF_V0_ANTSTATUS_INIT
Definition ubx.hpp:1380
static constexpr const char * UBX_NAV_STATUS_STRID
UBX-NAV-STATUS message name.
Definition ubx.hpp:374
static constexpr const char * UBX_RTCM3_TYPE1074_STRID
UBX-RTCM3-TYPE1074 message name.
Definition ubx.hpp:568
static constexpr const char * UBX_NMEA_STANDARD_GBS_STRID
UBX-NMEA-STANDARD_GBS message name.
Definition ubx.hpp:498
static constexpr uint8_t UBX_MON_RF_V0_ANTPOWER_ON
Definition ubx.hpp:1386
static constexpr uint8_t UBX_MON_COMMS_V0_TXERRORS_OUTPUTPORT_UART1
Definition ubx.hpp:1170
static constexpr double UBX_RXM_RAWX_V1_LOCKTIME_SCALE
Definition ubx.hpp:2436
static constexpr const char * UBX_NAV2_VELECEF_STRID
UBX-NAV2-VELECEF message name.
Definition ubx.hpp:444
static constexpr uint8_t UBX_NAV_ATT_V0_VERSION
Definition ubx.hpp:1558
static constexpr std::size_t UBX_CFG_VALDEL_V1_MAX_K
UBX-CFG-VALDEL.cfgData maximum number of key IDs.
Definition ubx.hpp:900
static constexpr const char * UBX_MGA_GPS_STRID
UBX-MGA-GPS message name.
Definition ubx.hpp:290
static constexpr uint8_t UBX_NAV_STATUS_V0_FIXTYPE_2D
Definition ubx.hpp:2112
static constexpr std::size_t UBX_RXM_SFRBX_V2_MIN_SIZE
Definition ubx.hpp:2510
static constexpr uint8_t UBX_NAV_STATUS_V0_FIXTYPE_3D
Definition ubx.hpp:2113
static constexpr uint8_t UBX_ESF_STATUS_V2_INITSTATUS1_MNTALGSTATUS_INITIALIZED1
Definition ubx.hpp:1081
static constexpr double UBX_NAV_PVT_V1_TACC_SCALE
Definition ubx.hpp:1890
static constexpr uint8_t UBX_MON_PATCH_MSGID
UBX-MON-PATCH message ID.
Definition ubx.hpp:309
static constexpr uint8_t UBX_CFG_VALSET_V0_LAYERS_FLASH
UBX-CFG-VALSET.layers flag: layer Flash.
Definition ubx.hpp:795
static constexpr uint8_t UBX_NAV_TIMEUTC_V0_VALID_UTCSTANDARD_NTSC
Definition ubx.hpp:2303
static constexpr uint8_t UBX_NAV_POSLLH_MSGID
UBX-NAV-POSLLH message ID.
Definition ubx.hpp:353
static constexpr uint8_t UBX_CFG_CLSID
UBX-CFG class ID.
Definition ubx.hpp:192
static constexpr bool UBX_NAV_RELPOSNED_V1_FLAGS_REFPOSMISS(const uint32_t flags)
Definition ubx.hpp:1950
static constexpr uint8_t UBX_ESF_STATUS_V2_SENSSTATUS2_TIMESTATUS_EVENT
Definition ubx.hpp:1108
static constexpr std::size_t UBX_NAV_ATT_V0_SIZE
Definition ubx.hpp:1559
static constexpr uint8_t UBX_INF_ERROR_MSGID
UBX-INF-ERROR message ID.
Definition ubx.hpp:253
static constexpr const char * UBX_MON_GNSS_STRID
UBX-MON-GNSS message name.
Definition ubx.hpp:298
static constexpr std::size_t UBX_TIM_TM2_V0_SIZE
Definition ubx.hpp:2594
static constexpr uint8_t UBX_ESF_STATUS_V2_INITSTATUS1_WTINITSTATUS_OFF
Definition ubx.hpp:1075
static constexpr uint8_t UBX_NAV_PVT_V1_FLAGS_CARRSOLN_FIXED
Definition ubx.hpp:1874
static constexpr bool UBX_NAV_SIG_V0_SIGFLAGS_DO_USED(const uint16_t sigFlags)
Definition ubx.hpp:2071
static constexpr uint8_t UBX_NAV2_DOP_MSGID
UBX-NAV2-DOP message ID.
Definition ubx.hpp:403
static constexpr const char * UBX_RXM_PMP_STRID
UBX-RXM-PMP message name.
Definition ubx.hpp:452
static constexpr std::size_t UBX_NAV_HPPOSECEF_V0_SIZE
Definition ubx.hpp:1735
static constexpr uint8_t UBX_UPD_SAFEBOOT_MSGID
UBX-UPD-SAFEBOOT message ID.
Definition ubx.hpp:487
static constexpr uint8_t UBX_RTCM3_TYPE1085_MSGID
UBX-RTCM3-TYPE1085 message ID.
Definition ubx.hpp:575
static constexpr const char * UBX_SEC_SIGLOG_STRID
UBX-SEC-SIGLOG message name.
Definition ubx.hpp:474
static constexpr double UBX_NAV_EOE_V0_ITOW_SCALE
Definition ubx.hpp:1704
static constexpr uint8_t UBX_NMEA_STANDARD_RLM_MSGID
UBX-NMEA-STANDARD_RLM message ID.
Definition ubx.hpp:521
static constexpr uint8_t UBX_NAV_SIG_V0_QUALITYIND_CODELOCK
Definition ubx.hpp:2055
static constexpr double UBX_NAV_CLOCK_V0_TACC_SCALE
Definition ubx.hpp:1587
static constexpr const char * UBX_RXM_RAWX_STRID
UBX-RXM-RAWX message name.
Definition ubx.hpp:458
static constexpr uint8_t UBX_RXM_SFRBX_MSGID
UBX-RXM-SFRBX message ID.
Definition ubx.hpp:463
static constexpr uint8_t UBX_MON_HW_V0_ASTATUS_OK
Definition ubx.hpp:1226
static constexpr const char * UBX_NMEA_STANDARD_GQQ_STRID
UBX-NMEA-STANDARD_GQQ message name.
Definition ubx.hpp:512
static constexpr std::size_t UBX_MON_SPAN_V0_SIZE(const uint8_t *msg)
Definition ubx.hpp:1430
static constexpr uint8_t UBX_MON_HW_V0_FLAGS_JAMMINGSTATE_UNKNOWN
Definition ubx.hpp:1219
static constexpr const char * UBX_NMEA_PUBX_TIME_STRID
UBX-NMEA-PUBX_TIME message name.
Definition ubx.hpp:542
static constexpr uint8_t UBX_NAV_SAT_V1_FLAGS_ORBITSOURCE_ALM
Definition ubx.hpp:1997
static constexpr bool UBX_NAV_PVT_V1_VALID_VALIDTIME(const uint8_t valid)
Definition ubx.hpp:1860
static constexpr uint8_t UBX_SIGID_QZSS_L1CA
QZSS L1 C/A.
Definition ubx.hpp:712
static constexpr uint8_t UBX_ESF_STATUS_V2_SENSSTATUS2_TIMESTATUS_FIRSTBYTE
Definition ubx.hpp:1107
static constexpr uint8_t UBX_MGA_BDS_MSGID
UBX-MGA-BDS message ID.
Definition ubx.hpp:281
static constexpr uint8_t UBX_NAV_SLAS_MSGID
UBX-NAV-SLAS message ID.
Definition ubx.hpp:369
static constexpr const char * UBX_MON_STRID
UBX-MON class name.
Definition ubx.hpp:203
static constexpr const char * UBX_NAV2_TIMENAVIC_STRID
UBX-NAV2-TIMENAVIC message name.
Definition ubx.hpp:440
static constexpr uint8_t UBX_ESF_STATUS_V2_SENSSTATUS2_TIMESTATUS(const uint8_t sensStatus2)
Definition ubx.hpp:1105
static constexpr uint8_t UBX_RXM_CLSID
UBX-RXM class ID.
Definition ubx.hpp:208
static constexpr uint8_t UBX_RXM_RAWX_V1_CPSTDEV_CPSTD(const uint8_t cpStdev)
Definition ubx.hpp:2432
static constexpr uint8_t UBX_RXM_SPARTN_V1_FLAGS_MSGUSED_UNKNOWN
Definition ubx.hpp:2537
static constexpr const char * UBX_RTCM3_TYPE1006_STRID
UBX-RTCM3-TYPE1006 message name.
Definition ubx.hpp:554
static constexpr const char * UBX_RTCM3_TYPE1077_STRID
UBX-RTCM3-TYPE1077 message name.
Definition ubx.hpp:572
static constexpr const char * UBX_NMEA_STANDARD_VTG_STRID
UBX-NMEA-STANDARD_VTG message name.
Definition ubx.hpp:530
static constexpr double UBX_RXM_RAWX_V1_PRSTD_SCALE(const double prStd)
Definition ubx.hpp:2431
static constexpr std::size_t UBX_ESF_MEAS_V0_SIZE(const uint8_t *msg)
Definition ubx.hpp:1029
static constexpr bool UBX_NAV_SAT_V1_FLAGS_ALMAVAIL(const uint32_t flags)
Definition ubx.hpp:2004
static constexpr uint8_t UBX_MON_SYS_V1_BOOTTYPE_SYSTEMRESET
Boot type: system reset.
Definition ubx.hpp:1478
static constexpr uint8_t UBX_RTCM3_TYPE1006_MSGID
UBX-RTCM3-TYPE1006 message ID.
Definition ubx.hpp:553
static constexpr uint8_t UBX_NAV_CLSID
UBX-NAV class ID.
Definition ubx.hpp:204
static constexpr uint8_t UBX_RXM_RAWX_VERSION(const uint8_t *msg)
Definition ubx.hpp:2425
static constexpr uint8_t UBX_ESF_MEAS_V0_FLAGS_TIMEMARKSENT_NONE
Definition ubx.hpp:1021
static constexpr std::size_t UBX_CFG_VALSET_V0_CFGDATA_MAX_SIZE
UBX-CFG-VALSET.cfgData maximum size.
Definition ubx.hpp:798
static constexpr double UBX_NAV_PVT_V1_VACC_SCALE
Definition ubx.hpp:1883
static constexpr uint8_t UBX_MON_SYS_V1_VERSION
Definition ubx.hpp:1465
static constexpr const char * UBX_MON_RF_STRID
UBX-MON-RF message name.
Definition ubx.hpp:312
static constexpr uint32_t UBX_CFG_CFG_V0_LOAD_ALL
Load all config.
Definition ubx.hpp:980
static constexpr bool UBX_TIM_TM2_V0_FLAGS_NEWRISINGEDGE(const uint8_t flags)
Definition ubx.hpp:2608
static constexpr uint8_t UBX_RTCM3_TYPE1007_MSGID
UBX-RTCM3-TYPE1007 message ID.
Definition ubx.hpp:555
static constexpr uint8_t UBX_NAV_EOE_MSGID
UBX-NAV-EOE message ID.
Definition ubx.hpp:337
static constexpr const char * UBX_NAV_TIMENAVIC_STRID
UBX-NAV-TIMENAVIC message name.
Definition ubx.hpp:390
static constexpr uint8_t UBX_MON_HW_MSGID
UBX-MON-HW message ID.
Definition ubx.hpp:299
static constexpr uint8_t UBX_SIGID_GLO_L1OF
GLONASS L1 OF.
Definition ubx.hpp:718
static constexpr const char * UBX_NMEA_STANDARD_GNQ_STRID
UBX-NMEA-STANDARD_GNQ message name.
Definition ubx.hpp:506
static constexpr bool UBX_NAV_TIMEBDS_V0_VALID_LEAPSVALID(const uint8_t valid)
Definition ubx.hpp:2229
static constexpr uint8_t UBX_NMEA_STANDARD_GLQ_MSGID
UBX-NMEA-STANDARD_GLQ message ID.
Definition ubx.hpp:503
static constexpr double UBX_NAV_TIMEGPS_V0_FTOW_SCALE
Definition ubx.hpp:2163
static constexpr uint8_t UBX_CFG_PWR_MSGID
UBX-CFG-PWR message ID.
Definition ubx.hpp:231
static constexpr uint8_t UBX_NAV_SAT_V1_FLAGS_ORBITSOURCE_OTHER3
Definition ubx.hpp:2002
static constexpr uint8_t UBX_NAV2_STATUS_MSGID
UBX-NAV2-STATUS message ID.
Definition ubx.hpp:423
static constexpr const char * UBX_UPD_SOS_STRID
UBX-UPD-SOS message name.
Definition ubx.hpp:490
static constexpr uint8_t UBX_RTCM3_TYPE1097_MSGID
UBX-RTCM3-TYPE1097 message ID.
Definition ubx.hpp:583
static constexpr bool UBX_NAV_HPPOSECEF_V0_FLAGS_INVALIDECEF(const uint8_t flags)
Definition ubx.hpp:1740
static constexpr std::size_t UBX_NAV_STATUS_V0_SIZE
Definition ubx.hpp:2108
static constexpr uint8_t UBX_MON_HW_V0_FLAGS_JAMMINGSTATE_OK
Definition ubx.hpp:1220
static constexpr uint8_t UBX_NAV_TIMEUTC_V0_VALID_UTCSTANDARD_UNNOWN
Definition ubx.hpp:2305
static constexpr const char * UBX_NAV2_EOE_STRID
UBX-NAV2-EOE message name.
Definition ubx.hpp:406
static constexpr int UBX_RXM_RAWX_V1_GROUP1_FREQID_TO_SLOT(const uint8_t freqId)
Definition ubx.hpp:2441
static constexpr uint16_t UBX_CFG_RST_V0_NAVBBR_EPH
Ephemeris.
Definition ubx.hpp:925
static constexpr bool UBX_NAV_TIMEGPS_V0_VALID_WEEKVALID(const uint8_t valid)
Definition ubx.hpp:2166
static constexpr std::size_t UBX_MON_RF_V0_MIN_SIZE
Definition ubx.hpp:1372
static constexpr double UBX_MON_SPAN_BIN_CENT_FREQ(const uint32_t center, const uint32_t span, const int ix)
Definition ubx.hpp:1432
static constexpr uint32_t UBX_CFG_VALGET_V1_ALL_WILDCARD
UBX-CFG-VALGET.keys all wildcard.
Definition ubx.hpp:867
std::size_t UbxMonVerToVerStr(char *str, const std::size_t size, const uint8_t *msg, const std::size_t msg_size)
Stringify UBX-MON-VER message (software version and module name)
static constexpr uint8_t UBX_NAV_SIG_V0_SIGFLAGS_HEALTH_UNHEALTHY
Definition ubx.hpp:2067
static constexpr std::size_t UBX_RXM_SPARTN_V1_SIZE
Definition ubx.hpp:2535
static constexpr uint8_t UBX_NAV_PVT_V1_FIXTYPE_TIME
Definition ubx.hpp:1868
static constexpr uint8_t UBX_NAV_SIG_V0_SIGFLAGS_HEALTH(const uint16_t sigFlags)
Definition ubx.hpp:2064
static constexpr double UBX_NAV_TIMEBDS_V0_TACC_SCALE
Definition ubx.hpp:2226
std::size_t UbxRxmSfrbxInfo(char *info, const std::size_t size, const uint8_t *msg, const std::size_t msg_size)
Stringify UBX-RXM-SFRBX, for debugging.
static constexpr uint8_t UBX_NAV_STATUS_V0_FLAGS2_PSMSTATE_TRACKING
Definition ubx.hpp:2124
static constexpr const char * UBX_NMEA_STANDARD_RLM_STRID
UBX-NMEA-STANDARD_RLM message name.
Definition ubx.hpp:522
static constexpr bool UBX_RXM_RTCM_V2_FLAGS_CRCFAILED(const uint8_t flags)
Definition ubx.hpp:2470
static constexpr uint8_t UBX_LOG_STR_MSGID
UBX-LOG-STR message ID.
Definition ubx.hpp:277
static constexpr uint8_t UBX_CFG_VALGET_VERSION(const uint8_t *msg)
Definition ubx.hpp:844
static constexpr uint8_t UBX_NAV_SAT_VERSION(const uint8_t *msg)
Definition ubx.hpp:1989
static constexpr uint8_t UBX_MON_HW2_MSGID
UBX-MON-HW2 message ID.
Definition ubx.hpp:301
static constexpr uint8_t UBX_CFG_VALDEL_V1_TRANSACTION_BEGIN
UBX-CFG-VALDEL.transaction value: transaction begin.
Definition ubx.hpp:896
static constexpr uint8_t UBX_ACK_CLSID
UBX-ACK class ID.
Definition ubx.hpp:190
static constexpr double UBX_NAV_RELPOSNED_V1_ACCHEADING_SCALE
Definition ubx.hpp:1941
static constexpr const char * UBX_RTCM3_TYPE1010_STRID
UBX-RTCM3-TYPE1010 message name.
Definition ubx.hpp:560
static constexpr bool UBX_NAV_TIMEGAL_V0_VALID_GALTOWVALID(const uint8_t valid)
Definition ubx.hpp:2196
static constexpr uint8_t UBX_NAV_SIG_V0_CORRSOURCE_SBAS
Definition ubx.hpp:2076
static constexpr uint8_t UBX_NAV2_TIMENAVIC_MSGID
UBX-NAV2-TIMENAVIC message ID.
Definition ubx.hpp:439
static constexpr uint8_t UBX_RXM_SPARTN_VERSION(const uint8_t *msg)
Definition ubx.hpp:2533
static constexpr const char * UBX_NMEA_STANDARD_GPQ_STRID
UBX-NMEA-STANDARD_GPQ message name.
Definition ubx.hpp:510
static constexpr std::size_t UBX_ESF_MEAS_V0_MIN_SIZE
Definition ubx.hpp:1019
static constexpr uint8_t UBX_UPD_POS_MSGID
UBX-UPD-POS message ID.
Definition ubx.hpp:485
static constexpr uint8_t UBX_ESF_STATUS_V2_INITSTATUS1_INSINITSTATUS_OFF
Definition ubx.hpp:1084
static constexpr std::size_t UBX_CFG_VALGET_V0_KEYS_MAX_SIZE
UBX-CFG-VALGET.keys maximum size.
Definition ubx.hpp:853
static constexpr std::size_t UBX_NAV_PVT_V1_SIZE
Definition ubx.hpp:1857
static constexpr double UBX_TIM_TP_V0_TOWSUBMS_SCALE
perl -e 'printf "%a", 2**-32 * 1e-3'
Definition ubx.hpp:2637
static constexpr uint8_t UBX_MON_HW3_V0_PINMASK_PERIPHPIO(const uint16_t pinMask)
Definition ubx.hpp:1308
static constexpr double UBX_TIM_TM2_V0_TOW_SCALE
Definition ubx.hpp:2609
static constexpr double UBX_NAV_RELPOSNED_V1_RELPOSLENGTH_SCALE
Definition ubx.hpp:1935
static constexpr uint8_t UBX_NMEA_STANDARD_GNQ_MSGID
UBX-NMEA-STANDARD_GNQ message ID.
Definition ubx.hpp:505
static constexpr uint8_t UBX_NAV_SIG_V0_CORRSOURCE_RTCM3_SSR
Definition ubx.hpp:2080
static constexpr const char * UBX_MON_COMMS_STRID
UBX-MON-COMMS message name.
Definition ubx.hpp:296
static constexpr double UBX_NAV_VELECEF_V0_ITOW_SCALE
Definition ubx.hpp:2376
static constexpr uint8_t UBX_MON_COMMS_MSGID
UBX-MON-COMMS message ID.
Definition ubx.hpp:295
static constexpr const char * UBX_NAV_SVIN_STRID
UBX-NAV-SVIN message name.
Definition ubx.hpp:376
static constexpr bool UBX_NAV_PVT_V1_VALID_FULLYRESOLVED(const uint8_t valid)
Definition ubx.hpp:1861
static constexpr uint8_t UBX_TIM_TP_MSGID
UBX-TIM-TP message ID.
Definition ubx.hpp:479
static constexpr std::size_t UBX_CFG_VALSET_V1_MAX_SIZE
Definition ubx.hpp:813
static constexpr uint8_t UBX_TIM_TP_V0_REFINFO_TIMEREFGNSS_NAVIC
Definition ubx.hpp:2654
static constexpr uint8_t UBX_TIM_TP_V0_FLAGS_RAIM_ACTIVE
Definition ubx.hpp:2646
static constexpr uint8_t UBX_RTCM3_CLSID
UBX-RTCM3 class ID.
Definition ubx.hpp:218
static constexpr std::size_t UBX_NAV_SAT_V1_MIN_SIZE
Definition ubx.hpp:1991
static constexpr const char * UBX_RXM_MEASX_STRID
UBX-RXM-MEASX message name.
Definition ubx.hpp:450
static constexpr uint8_t UBX_RTCM3_TYPE1005_MSGID
UBX-RTCM3-TYPE1005 message ID.
Definition ubx.hpp:551
static constexpr uint8_t UBX_RXM_SFRBX_VERSION(const uint8_t *msg)
Definition ubx.hpp:2508
static constexpr uint8_t UBX_TIM_TM2_V0_FLAGS_TIMEBASE(const uint8_t flags)
Definition ubx.hpp:2602
static constexpr uint8_t UBX_ESF_INS_MSGID
UBX-ESF-INS message ID.
Definition ubx.hpp:243
static constexpr uint8_t UBX_SIGID_GPS_L2CL
GPS L2 CL.
Definition ubx.hpp:688
static constexpr const char * UBX_RTCM3_TYPE1001_STRID
UBX-RTCM3-TYPE1001 message name.
Definition ubx.hpp:544
static constexpr uint8_t UBX_MON_COMMS_VERSION(const uint8_t *msg)
Definition ubx.hpp:1160
static constexpr uint8_t UBX_RXM_SPARTN_MSGID
UBX-RXM-SPARTN message ID.
Definition ubx.hpp:465
static constexpr const char * UBX_NMEA_STANDARD_GBQ_STRID
UBX-NMEA-STANDARD_GBQ message name.
Definition ubx.hpp:496
static constexpr uint8_t UBX_ESF_STATUS_V2_INITSTATUS1_MNTALGSTATUS_INITALIZING
Definition ubx.hpp:1080
static constexpr const char * UBX_NAV2_VELNED_STRID
UBX-NAV2-VELNED message name.
Definition ubx.hpp:446
static constexpr std::size_t UBX_MON_SPAN_V0_MIN_SIZE
Definition ubx.hpp:1429
static constexpr uint8_t UBX_TIM_CLSID
UBX-TIM class ID.
Definition ubx.hpp:212
static constexpr const char * UBX_NMEA_PUBX_CONFIG_STRID
UBX-NMEA-PUBX_CONFIG message name.
Definition ubx.hpp:534
static constexpr const char * UBX_NMEA_PUBX_SVSTATUS_STRID
UBX-NMEA-PUBX_SVSTATUS message name.
Definition ubx.hpp:540
static constexpr bool UBX_MON_HW3_V0_FLAGS_SAFEBOOT(const uint8_t flags)
Definition ubx.hpp:1306
static constexpr uint8_t UBX_FIRST_SBAS
S120 ("Sxx" in RINEX)
Definition ubx.hpp:672
static constexpr uint8_t UBX_TIM_TP_V0_REFINFO_TIMEREFGNSS_GLO
Definition ubx.hpp:2651
static constexpr uint8_t UBX_SIGID_GPS_L5Q
GPS L5 Q.
Definition ubx.hpp:691
static constexpr const char * UBX_RTCM3_TYPE1084_STRID
UBX-RTCM3-TYPE1084 message name.
Definition ubx.hpp:574
static constexpr uint8_t UBX_ESF_STATUS_V2_SENSSTATUS2_TIMESTATUS_NODATA
Definition ubx.hpp:1106
static constexpr uint8_t UBX_NAV_COV_MSGID
UBX-NAV-COV message ID.
Definition ubx.hpp:331
static constexpr const char * UBX_NAV2_TIMEQZSS_STRID
UBX-NAV2-TIMEQZSS message name.
Definition ubx.hpp:438
static constexpr uint8_t UBX_NAV_POSECEF_MSGID
UBX-NAV-POSECEF message ID.
Definition ubx.hpp:351
static constexpr uint8_t UBX_NAV_TIMEUTC_V0_VALID_UTCSTANDARD_USNO
Definition ubx.hpp:2299
static constexpr uint8_t UBX_NAV_PVT_V1_FIXTYPE_DRONLY
Definition ubx.hpp:1864
static constexpr uint8_t UBX_MON_SYS_V1_BOOTTYPE_HWBACKUP
Boot type: hardware backup.
Definition ubx.hpp:1471
static constexpr uint8_t UBX_MON_COMMS_V0_PROTIDS_RTCM3
Definition ubx.hpp:1178
static constexpr const char * UBX_RTCM3_TYPE1009_STRID
UBX-RTCM3-TYPE1009 message name.
Definition ubx.hpp:558
static constexpr uint8_t UBX_ESF_STATUS_V2_INITSTATUS1_MNTALGSTATUS(const uint8_t initStatus1)
Definition ubx.hpp:1078
static constexpr uint8_t UBX_MON_RF_V0_ANTPOWER_DONTKNOW
Definition ubx.hpp:1387
static constexpr uint8_t UBX_NAV_STATUS_V0_FLAGS2_SPOOFDETSTATE(const uint8_t flags2)
Definition ubx.hpp:2127
static constexpr uint8_t UBX_SIGID_GAL_E6A
Galileo E6 A.
Definition ubx.hpp:701
static constexpr uint8_t UBX_MGA_GPS_MSGID
UBX-MGA-GPS message ID.
Definition ubx.hpp:289
static constexpr double UBX_NAV_HPPOSLLH_V0_LL_HP_SCALE
Definition ubx.hpp:1779
static constexpr const char * UBX_NMEA_STANDARD_RMC_STRID
UBX-NMEA-STANDARD_RMC message name.
Definition ubx.hpp:524
static constexpr uint8_t UBX_NAV_SIG_V0_CORRSOURCE_RTCM3_OSR
Definition ubx.hpp:2079
static constexpr const char * UBX_NAV2_PVT_STRID
UBX-NAV2-PVT message name.
Definition ubx.hpp:414
static constexpr uint8_t UBX_TIM_TP_V0_FLAGS_RAIM(const uint8_t flags)
Definition ubx.hpp:2643
static constexpr bool UBX_NAV_SIG_V0_SIGFLAGS_PR_SMOOTHED(const uint16_t sigFlags)
Definition ubx.hpp:2068
static constexpr uint8_t UBX_NAV_ODO_MSGID
UBX-NAV-ODO message ID.
Definition ubx.hpp:345
static constexpr uint8_t UBX_MON_COMMS_V0_VERSION
Definition ubx.hpp:1161
static constexpr double UBX_NAV_HPPOSECEF_V0_ECEF_XYZ_SCALE
Definition ubx.hpp:1737
static constexpr const char * UBX_LOG_FINDTIME_STRID
UBX-LOG-FINDTIME message name.
Definition ubx.hpp:266
static constexpr std::size_t UBX_MON_COMMS_V0_MIN_SIZE
Definition ubx.hpp:1162
static constexpr uint16_t UBX_MON_RF_V0_AGCCNT_MAX
Definition ubx.hpp:1389
static constexpr uint8_t UBX_NMEA_PUBX_TIME_MSGID
UBX-NMEA-PUBX_TIME message ID.
Definition ubx.hpp:541
static constexpr uint8_t UBX_RTCM3_TYPE1003_MSGID
UBX-RTCM3-TYPE1003 message ID.
Definition ubx.hpp:547
static constexpr uint8_t UBX_NAV_STATUS_MSGID
UBX-NAV-STATUS message ID.
Definition ubx.hpp:373
static constexpr const char * UBX_CFG_STRID
UBX-CFG class name.
Definition ubx.hpp:193
static constexpr const char * UBX_CFG_VALSET_STRID
UBX-CFG-VALSET message name.
Definition ubx.hpp:240
static constexpr uint8_t UBX_MON_HW_V0_FLAGS_JAMMINGSTATE_CRITICAL
Definition ubx.hpp:1222
static constexpr uint8_t UBX_NAV_SIG_V0_CORRSOURCE_BDS
Definition ubx.hpp:2077
static constexpr bool UBX_NAV_PVT_V1_VALID_VALIDDATE(const uint8_t valid)
Definition ubx.hpp:1859
static constexpr const char * UBX_MON_RXR_STRID
UBX-MON-RXR message name.
Definition ubx.hpp:316
static constexpr const char * UBX_NAV_VELECEF_STRID
UBX-NAV-VELECEF message name.
Definition ubx.hpp:396
static constexpr bool UBX_MON_HW3_V0_PINMASK_PIOPULLHIGH(const uint16_t pinMask)
Definition ubx.hpp:1326
static constexpr uint32_t UBX_CFG_CFG_V0_SAVE_ALL
Save all config.
Definition ubx.hpp:978
static constexpr const char * UBX_NAV2_STATUS_STRID
UBX-NAV2-STATUS message name.
Definition ubx.hpp:424
static constexpr double UBX_NAV_TIMEGLO_V0_FTOD_SCALE
Definition ubx.hpp:2256
static constexpr uint8_t UBX_MON_COMMS_V0_TXERRORS_OUTPUTPORT(const uint8_t txErrors)
Definition ubx.hpp:1167
static constexpr uint8_t UBX_MON_HW_V0_ASTATUS_OPEN
Definition ubx.hpp:1228
static constexpr const char * UBX_MON_HW2_STRID
UBX-MON-HW2 message name.
Definition ubx.hpp:302
static constexpr uint8_t UBX_NAV2_TIMEGPS_MSGID
UBX-NAV2-TIMEGPS message ID.
Definition ubx.hpp:433
static constexpr uint8_t UBX_CFG_VALGET_V1_VERSION
UBX-CFG-VALGET.version value.
Definition ubx.hpp:858
static constexpr std::size_t UBX_FRAME_SIZE
Size (in bytes) of UBX frame.
Definition ubx.hpp:60
static constexpr uint8_t UBX_UPD_SOS_MSGID
UBX-UPD-SOS message ID.
Definition ubx.hpp:489
static constexpr uint8_t UBX_NAV_SIG_V0_CORRSOURCE_NONE
Definition ubx.hpp:2075
std::array< UbxMsgInfo, 186 > UbxMessagesInfo
UBX messages lookup table.
Definition ubx.hpp:612
static constexpr uint32_t UBX_CFG_CFG_V0_SAVE_NONE
Save no config.
Definition ubx.hpp:977
static constexpr double UBX_NAV_TIMEGAL_V0_TACC_SCALE
Definition ubx.hpp:2195
static constexpr const char * UBX_MON_MSGPP_STRID
UBX-MON-MSGPP message name.
Definition ubx.hpp:308
static constexpr uint8_t UBX_NAV_TIMELS_V0_SRCOFCURRLS_CONFIG
Definition ubx.hpp:2343
static constexpr uint8_t UBX_NAV_PVT_V1_FIXTYPE_3D
Definition ubx.hpp:1866
static constexpr uint8_t UBX_NMEA_STANDARD_GGA_MSGID
UBX-NMEA-STANDARD_GGA message ID.
Definition ubx.hpp:499
static constexpr uint8_t UBX_MON_HW3_V0_PINMASK_PINBANK_B
Definition ubx.hpp:1313
static constexpr double UBX_NAV_TIMEBDS_V0_FSOW_SCALE
Definition ubx.hpp:2225
static constexpr std::size_t UBX_CFG_VALSET_V0_MAX_KV
UBX-CFG-VALSET.cfgData: maximum number of key-value pairs.
Definition ubx.hpp:797
static constexpr std::size_t UBX_NAV_VELECEF_V0_SIZE
Definition ubx.hpp:2375
static constexpr uint8_t UBX_LOG_CREATE_MSGID
UBX-LOG-CREATE message ID.
Definition ubx.hpp:261
static constexpr std::size_t UBX_RXM_RAWX_V1_MIN_SIZE
Definition ubx.hpp:2427
static constexpr uint8_t UBX_FIRST_GAL
E01.
Definition ubx.hpp:673
static constexpr uint8_t UBX_NAV2_VELECEF_MSGID
UBX-NAV2-VELECEF message ID.
Definition ubx.hpp:443
static constexpr uint8_t UBX_MON_COMMS_V0_TXERRORS_OUTPUTPORT_I2C
Definition ubx.hpp:1169
static constexpr std::size_t UBX_NAV_POSECEF_V0_SIZE
Definition ubx.hpp:1804
static constexpr uint8_t UBX_ACK_ACK_MSGID
UBX-ACK-ACK message ID.
Definition ubx.hpp:225
static constexpr uint8_t UBX_ESF_STATUS_V2_INITSTATUS2_IMUINITSTATUS(const uint8_t initStatus2)
Definition ubx.hpp:1088
static constexpr std::size_t UBX_NAV_EOE_V0_SIZE
Definition ubx.hpp:1703
static constexpr uint8_t UBX_NAV_TIMENAVIC_MSGID
UBX-NAV-TIMENAVIC message ID.
Definition ubx.hpp:389
static constexpr uint8_t UBX_MON_HW_V0_FLAGS_JAMMINGSTATE(const uint8_t flags)
Definition ubx.hpp:1218
static constexpr uint8_t UBX_MON_COMMS_V0_PROTIDS_RAW
probably.. see UBX-MON-MSGPP
Definition ubx.hpp:1176
static constexpr const char * UBX_NAV_ORB_STRID
UBX-NAV-ORB message name.
Definition ubx.hpp:348
static constexpr uint8_t UBX_MON_GNSS_MSGID
UBX-MON-GNSS message ID.
Definition ubx.hpp:297
static constexpr const char * UBX_NAV_POSECEF_STRID
UBX-NAV-POSECEF message name.
Definition ubx.hpp:352
static constexpr const char * UBX_NAV_TIMEGPS_STRID
UBX-NAV-TIMEGPS message name.
Definition ubx.hpp:384
static constexpr uint8_t UBX_NUM_NAVIC
N01-N14 ("Ixx" in RINEX)
Definition ubx.hpp:670
static constexpr uint8_t UBX_GNSSID_NAVIC
NavIC.
Definition ubx.hpp:655
static constexpr const char * UBX_LOG_ERASE_STRID
UBX-LOG-ERASE message name.
Definition ubx.hpp:264
static constexpr uint8_t UBX_NAV_TIMEGAL_MSGID
UBX-NAV-TIMEGAL message ID.
Definition ubx.hpp:379
static constexpr const char * UBX_MON_SYS_STRID
UBX-MON-SYS message name.
Definition ubx.hpp:320
static constexpr std::size_t UBX_MON_RF_V0_SIZE(const uint8_t *msg)
Definition ubx.hpp:1373
static constexpr bool UBX_NAV_TIMEGAL_V0_VALID_GALWNOVALID(const uint8_t valid)
Definition ubx.hpp:2197
static constexpr bool UBX_TIM_TM2_V0_FLAGS_UTCACAVAIL(const uint8_t flags)
Definition ubx.hpp:2606
static constexpr const char * UBX_RTCM3_STRID
UBX-RTCM3 class name.
Definition ubx.hpp:219
static constexpr bool UBX_NAV_TIMEGLO_V0_VALID_DATEVALID(const uint8_t valid)
Definition ubx.hpp:2259
static constexpr uint8_t UBX_MON_TEMP_VERSION(const uint8_t *msg)
Definition ubx.hpp:1501
static constexpr const char * UBX_SEC_SIG_STRID
UBX-SEC-SIG message name.
Definition ubx.hpp:472
static constexpr const char * UBX_UPD_SAFEBOOT_STRID
UBX-UPD-SAFEBOOT message name.
Definition ubx.hpp:488
static constexpr std::size_t UBX_NAV_RELPOSNED_V1_SIZE
Definition ubx.hpp:1932
static constexpr uint8_t UBX_SIGID_BDS_B1ID2
BeiDou B1I D2.
Definition ubx.hpp:703
static constexpr std::size_t UBX_ESF_STATUS_V2_SIZE(const uint8_t *msg)
Definition ubx.hpp:1071
static constexpr const char * UBX_NAV2_CLOCK_STRID
UBX-NAV2-CLOCK message name.
Definition ubx.hpp:400
static constexpr const char * UBX_MGA_INI_STRID
UBX-MGA-INI message name.
Definition ubx.hpp:292
static constexpr const char * UBX_SEC_OSNMA_STRID
UBX-SEC-OSNMA message name.
Definition ubx.hpp:470
static constexpr std::size_t UBX_NAV_TIMEGPS_V0_SIZE
Definition ubx.hpp:2161
static constexpr uint8_t UBX_NAV_TIMEUTC_V0_VALID_VALIDTOW(const uint8_t valid)
Definition ubx.hpp:2291
static constexpr uint8_t UBX_NAV_ATT_MSGID
UBX-NAV-ATT message ID.
Definition ubx.hpp:327
static constexpr uint8_t UBX_MON_MSGPP_MSGID
UBX-MON-MSGPP message ID.
Definition ubx.hpp:307
static constexpr bool UBX_NAV_RELPOSNED_V1_FLAGS_GNSSFIXOK(const uint32_t flags)
Definition ubx.hpp:1942
static constexpr uint8_t UBX_GNSSID_NONE
None.
Definition ubx.hpp:648
static constexpr bool UBX_RXM_RAWX_V1_TRKSTAT_SUBHALFCYC(const uint8_t trkStat)
Definition ubx.hpp:2440
static constexpr bool UBX_TIM_TP_V0_FLAGS_TPNOTLOCKED(const uint8_t flags)
Definition ubx.hpp:2648
static constexpr uint8_t UBX_NAV_CLOCK_MSGID
UBX-NAV-CLOCK message ID.
Definition ubx.hpp:329
static constexpr uint8_t UBX_MON_HW_V0_FLAGS_SAFEBOOT
Definition ubx.hpp:1217
static constexpr bool UBX_NAV_STATUS_V0_FLAGS_DIFFSOLN(const uint8_t flags)
Definition ubx.hpp:2117
static constexpr uint8_t UBX_NAV_TIMELS_V0_SRCOFCURRLS_GPSGLO
Definition ubx.hpp:2338
static constexpr uint8_t UBX_CFG_VALGET_V0_VERSION
UBX-CFG-VALGET.version value.
Definition ubx.hpp:846
static constexpr uint8_t UBX_NAV_SIG_VERSION(const uint8_t *msg)
Definition ubx.hpp:2046
static constexpr double UBX_NAV_PVT_V1_VELNED_SCALE
Definition ubx.hpp:1884
static constexpr uint8_t UBX_NAV_SIG_V0_IONOMODEL_SBAS
Definition ubx.hpp:2061
static constexpr uint8_t UBX_SIGID_QZSS_L5I
QZSS L5 I.
Definition ubx.hpp:716
static constexpr uint8_t UBX_NMEA_PUBX_POSITION_MSGID
UBX-NMEA-PUBX_POSITION message ID.
Definition ubx.hpp:535
static constexpr uint8_t UBX_RTCM3_TYPE4072_1_MSGID
UBX-RTCM3-TYPE4072_1 message ID.
Definition ubx.hpp:595
static constexpr std::size_t UBX_CFG_VALGET_V1_CFGDATA_MAX_SIZE
UBX-CFG-VALGET.keys maximum size.
Definition ubx.hpp:865
static constexpr const char * UBX_MGA_DBD_STRID
UBX-MGA-DBD message name.
Definition ubx.hpp:284
static constexpr bool UBX_NAV_TIMEGAL_V0_VALID_LEAPSVALID(const uint8_t valid)
Definition ubx.hpp:2198
static constexpr uint8_t UBX_RXM_RTCM_V2_FLAGS_MSGUSED_USED
Definition ubx.hpp:2474
static constexpr bool UBX_NAV_PVT_V1_FLAGS2_CONFDATE(const uint8_t flags2)
Definition ubx.hpp:1876
static constexpr const char * UBX_RTCM3_TYPE4072_0_STRID
UBX-RTCM3-TYPE4072_0 message name.
Definition ubx.hpp:594
static constexpr double UBX_TIM_TP_V0_TOWMS_SCALE
Definition ubx.hpp:2636
static constexpr const char * UBX_NAV2_DOP_STRID
UBX-NAV2-DOP message name.
Definition ubx.hpp:404
static constexpr bool UBX_NAV_SIG_V0_SIGFLAGS_CR_USED(const uint16_t sigFlags)
Definition ubx.hpp:2070
static constexpr const char * UBX_INF_TEST_STRID
UBX-INF-TEST message name.
Definition ubx.hpp:258
static constexpr uint8_t UBX_RTCM3_TYPE1124_MSGID
UBX-RTCM3-TYPE1124 message ID.
Definition ubx.hpp:585
static constexpr uint8_t UBX_TIM_TP_V0_FLAGS_RAIM_NA
Definition ubx.hpp:2644
static constexpr double UBX_NAV_CLOCK_V0_CLKD_SCALE
Definition ubx.hpp:1586
static constexpr double UBX_NAV_RELPOSNED_V1_ACCLENGTH_SCALE
Definition ubx.hpp:1940
bool UbxMakeMessage(std::vector< uint8_t > &msg, const uint8_t cls_id, const uint8_t msg_id, const std::vector< uint8_t > &payload)
Make a UBX message.
static constexpr uint8_t UBX_MON_HW3_V0_PINMASK_DIRECTION(const uint16_t pinMask)
Definition ubx.hpp:1320
static constexpr uint8_t UBX_SIGID_GAL_E5BQ
Galileo E5 bQ.
Definition ubx.hpp:698
static constexpr const char * UBX_SEC_STRID
UBX-SEC class name.
Definition ubx.hpp:211
static constexpr uint8_t UBX_ESF_STATUS_V2_SENSSTATUS1_TYPE(const uint8_t sensStatus1)
same enum as UBX-ESF-MEAS.dataType it seems //!<
Definition ubx.hpp:1097
static constexpr uint8_t UBX_MON_HW3_V0_PINMASK_PINBANK_C
Definition ubx.hpp:1314
static constexpr const char * UBX_UPD_POS_STRID
UBX-UPD-POS message name.
Definition ubx.hpp:486
static constexpr uint8_t UBX_RXM_PMP_MSGID
UBX-RXM-PMP message ID.
Definition ubx.hpp:451
static constexpr std::size_t UBX_NAV_TIMEGAL_V0_SIZE
Definition ubx.hpp:2192
static constexpr bool UBX_RXM_RAWX_V1_RECSTAT_LEAPSEC(const uint8_t recStat)
Definition ubx.hpp:2428
static constexpr double UBX_NAV_POSECEF_V0_ECEF_XYZ_SCALE
Definition ubx.hpp:1805
static constexpr uint32_t UBX_CFG_CFG_V0_LOAD_NONE
Load no config.
Definition ubx.hpp:979
static constexpr uint8_t UBX_ESF_STATUS_V2_INITSTATUS1_INSINITSTATUS_INITIALIZED2
Definition ubx.hpp:1087
static constexpr uint8_t UBX_SIGID_GPS_L5I
GPS L5 I.
Definition ubx.hpp:690
static constexpr const char * UBX_INF_ERROR_STRID
UBX-INF-ERROR message name.
Definition ubx.hpp:254
static constexpr const char * UBX_INF_WARNING_STRID
UBX-INF-WARNING message name.
Definition ubx.hpp:260
static constexpr uint8_t UBX_NAV_STATUS_V0_FIXTYPE_DRONLY
Definition ubx.hpp:2111
static constexpr double UBX_NAV_VELECEF_V0_ECEF_XYZ_SCALE
Definition ubx.hpp:2377
static constexpr std::size_t UBX_CFG_VALSET_V1_MAX_KV
UBX-CFG-VALSET.cfgData: maximum number of key-value pairs.
Definition ubx.hpp:811
static constexpr uint8_t UBX_NAV_TIMEUTC_V0_VALID_UTCSTANDARD(const uint8_t valid)
Definition ubx.hpp:2295
static constexpr const char * UBX_NAV_PVT_STRID
UBX-NAV-PVT message name.
Definition ubx.hpp:358
static constexpr const char * UBX_NAV_TIMELS_STRID
UBX-NAV-TIMELS message name.
Definition ubx.hpp:386
static constexpr double UBX_NAV_COV_V0_ITOW_SCALE
Definition ubx.hpp:1627
static constexpr double UBX_NAV_HPPOSLLH_V0_H_SCALE
Definition ubx.hpp:1778
static constexpr uint8_t UBX_NAV_TIMEGPS_MSGID
UBX-NAV-TIMEGPS message ID.
Definition ubx.hpp:383
static constexpr uint8_t UBX_MON_COMMS_V0_TXERRORS_OUTPUTPORT_NA
Definition ubx.hpp:1168
static constexpr const char * UBX_NMEA_STANDARD_GNS_STRID
UBX-NMEA-STANDARD_GNS message name.
Definition ubx.hpp:508
static constexpr bool UBX_NAV_SAT_V1_FLAGS_ANOAVAIL(const uint32_t flags)
Definition ubx.hpp:2005
static constexpr bool UBX_NAV_SIG_V0_SIGFLAGS_CR_CORR_USED(const uint16_t sigFlags)
Definition ubx.hpp:2073
static constexpr uint8_t UBX_NAV_SIG_V0_QUALITYIND_ACQUIRED
Definition ubx.hpp:2053
static constexpr const char * UBX_NMEA_STANDARD_TXT_STRID
UBX-NMEA-STANDARD_TXT message name.
Definition ubx.hpp:526
static constexpr uint16_t UBX_CFG_RST_V0_NAVBBR_AOP
AssistNow Autonomous.
Definition ubx.hpp:934
static constexpr uint8_t UBX_NAV_TIMELS_V0_SRCOFCURRLSCHANGE_GPS
Definition ubx.hpp:2346
static constexpr bool UBX_NAV_TIMELS_V0_VALID_CURRLSVALID(const uint8_t valid)
Definition ubx.hpp:2351
static constexpr uint8_t UBX_CFG_VALSET_MSGID
UBX-CFG-VALSET message ID.
Definition ubx.hpp:239
static constexpr std::size_t UBX_CFG_VALDEL_V1_MAX_SIZE
Definition ubx.hpp:902
static constexpr uint8_t UBX_SIGID_GPS_L2CM
GPS L2 CM.
Definition ubx.hpp:689
static constexpr uint8_t UBX_TIM_TP_V0_REFINFO_UTCSTANDARD_NPLI
Definition ubx.hpp:2665
static constexpr uint16_t UBX_MON_HW_V0_NOISEPERMS_MAX
This seems to be what u-center uses..
Definition ubx.hpp:1232
const UbxClassesInfo & UbxGetClassesInfo()
Get UBX classes lookup table.
static constexpr uint8_t UBX_NMEA_STANDARD_GLL_MSGID
UBX-NMEA-STANDARD_GLL message ID.
Definition ubx.hpp:501
static constexpr double UBX_NAV_HPPOSECEF_V0_ECEF_XYZ_HP_SCALE
Definition ubx.hpp:1738
static constexpr uint8_t UBX_MON_RXR_MSGID
UBX-MON-RXR message ID.
Definition ubx.hpp:315
static constexpr uint8_t UBX_TIM_TM2_V0_FLAGS_RUN_ARMED
Definition ubx.hpp:2599
static constexpr uint8_t UBX_MON_HW2_V0_CFGSOURCE_OTP
Definition ubx.hpp:1264
static constexpr uint8_t UBX_NAV2_CLSID
UBX-NAV2 class ID.
Definition ubx.hpp:206
static constexpr uint8_t UBX_ESF_STATUS_V2_FAULTS_BADTTAG
Definition ubx.hpp:1111
static constexpr uint8_t UBX_MON_RF_V0_FLAGS_JAMMINGSTATE(const uint8_t flags)
Definition ubx.hpp:1375
static constexpr const char * UBX_NAV_TIMEQZSS_STRID
UBX-NAV-TIMEQZSS message name.
Definition ubx.hpp:388
constexpr uint8_t UbxClsId(const uint8_t *msg)
Get class ID from message.
Definition ubx.hpp:75
static constexpr uint8_t UBX_NAV2_SLAS_MSGID
UBX-NAV2-SLAS message ID.
Definition ubx.hpp:421
static constexpr double UBX_NAV_RELPOSNED_V1_RELPOSN_E_D_SCALE
Definition ubx.hpp:1934
static constexpr const char * UBX_RTCM3_TYPE1127_STRID
UBX-RTCM3-TYPE1127 message name.
Definition ubx.hpp:590
static constexpr uint8_t UBX_TIM_TP_V0_REFINFO_TIMEREFGNSS(const uint8_t refInfo)
Definition ubx.hpp:2649
static constexpr const char * UBX_ACK_NAK_STRID
UBX-ACK-NAK message name.
Definition ubx.hpp:228
static constexpr std::size_t UBX_CFG_VALGET_V1_MAX_KV
UBX-CFG-VALGET.cfgData maximum number of keys.
Definition ubx.hpp:864
static constexpr uint8_t UBX_MON_HW3_V0_PINMASK_PINBANK_A
Definition ubx.hpp:1312
static constexpr uint8_t UBX_CFG_VALSET_VERSION(const uint8_t *msg)
Definition ubx.hpp:789
static constexpr uint8_t UBX_NAV_PVT_V1_FLAGS_CARRSOLN_NO
Definition ubx.hpp:1872
static constexpr const char * UBX_MGA_ACK_STRID
UBX-MGA-ACK message name.
Definition ubx.hpp:280
static constexpr const char * UBX_NAV2_TIMEGLO_STRID
UBX-NAV2-TIMEGLO message name.
Definition ubx.hpp:432
static constexpr uint8_t UBX_CFG_CFG_V0_DEVICE_BBR
Layer BBR.
Definition ubx.hpp:981
bool UbxGetMessageName(char *name, const std::size_t size, const uint8_t *msg, const std::size_t msg_size)
Get UBX message name.
static constexpr bool UBX_NAV_TIMEGLO_V0_VALID_TODVALID(const uint8_t valid)
Definition ubx.hpp:2258
static constexpr std::size_t UBX_NAV_DOP_V0_SIZE
Definition ubx.hpp:1653
static constexpr uint8_t UBX_NMEA_PUBX_SVSTATUS_MSGID
UBX-NMEA-PUBX_SVSTATUS message ID.
Definition ubx.hpp:539
static constexpr const char * UBX_RTCM3_TYPE1002_STRID
UBX-RTCM3-TYPE1002 message name.
Definition ubx.hpp:546
static constexpr double UBX_NAV_STATUS_V0_MSSS_SCALE
Definition ubx.hpp:2137
bool UbxGetMessageInfo(char *info, const std::size_t size, const uint8_t *msg, const std::size_t msg_size)
Get UBX message info.
static constexpr uint8_t UBX_CFG_CFG_MSGID
UBX-CFG-CFG message ID.
Definition ubx.hpp:229
static constexpr uint8_t UBX_SIGID_NONE
None.
Definition ubx.hpp:686
static constexpr bool UBX_TIM_TP_V0_FLAGS_UTC(const uint8_t flags)
Definition ubx.hpp:2642
static constexpr bool UBX_TIM_TM2_V0_FLAGS_NEWFALLINGEDGE(const uint8_t flags)
Definition ubx.hpp:2601
static constexpr uint8_t UBX_CFG_VALDEL_V1_TRANSACTION_CONTINUE
UBX-CFG-VALDEL.transaction value: transaction continue.
Definition ubx.hpp:897
static constexpr uint8_t UBX_NAV_TIMEUTC_V0_VALID_UTCSTANDARD_BIPM
Definition ubx.hpp:2300
static constexpr uint8_t UBX_SIGID_NAVIC_L5A
NavIC L5 A.
Definition ubx.hpp:720
static constexpr uint8_t UBX_NAV2_SBAS_MSGID
UBX-NAV2-SBAS message ID.
Definition ubx.hpp:417
static constexpr const char * UBX_NAV2_TIMEGPS_STRID
UBX-NAV2-TIMEGPS message name.
Definition ubx.hpp:434
static constexpr uint8_t UBX_RTCM3_TYPE1084_MSGID
UBX-RTCM3-TYPE1084 message ID.
Definition ubx.hpp:573
static constexpr double UBX_NAV_TIMEGLO_V0_TACC_SCALE
Definition ubx.hpp:2257
static constexpr const char * UBX_INF_STRID
UBX-INF class name.
Definition ubx.hpp:197
static constexpr uint8_t UBX_CFG_VALSET_V1_TRANSACTION_BEGIN
UBX-CFG-VALSET.transaction value: transaction begin.
Definition ubx.hpp:807
static constexpr uint8_t UBX_TIM_TP_V0_REFINFO_TIMEREFGNSS_BDS
Definition ubx.hpp:2652
static constexpr double UBX_NAV_PVT_V1_HEIGHT_SCALE
Definition ubx.hpp:1881
static constexpr uint8_t UBX_NUM_GAL
E01-E36.
Definition ubx.hpp:666
static constexpr uint8_t UBX_NAV_SIG_V0_QUALITYIND_UNUSED
Definition ubx.hpp:2054
static constexpr uint8_t UBX_CFG_RST_V0_RESETMODE_HW_CONTROLLED
Controlled hardware reset.
Definition ubx.hpp:941
static constexpr uint8_t UBX_NAV_RELPOSNED_V1_FLAGS_CARRSOLN(const uint32_t flags)
Definition ubx.hpp:1945
static constexpr uint8_t UBX_ESF_STATUS_V2_INITSTATUS1_MNTALGSTATUS_OFF
Definition ubx.hpp:1079
static constexpr uint8_t UBX_TIM_TM2_V0_FLAGS_RUN_STOPPED
Definition ubx.hpp:2600
static constexpr uint32_t UBX_CFG_CFG_V0_CLEAR_NONE
Clear no config.
Definition ubx.hpp:975
static constexpr bool UBX_NAV_TIMEBDS_V0_VALID_SOWVALID(const uint8_t valid)
Definition ubx.hpp:2227
static constexpr uint8_t UBX_NAV_TIMELS_V0_SRCOFCURRLS_GAL
Definition ubx.hpp:2342
static constexpr uint8_t UBX_RTCM3_TYPE1010_MSGID
UBX-RTCM3-TYPE1010 message ID.
Definition ubx.hpp:559
static constexpr uint8_t UBX_NAV_STATUS_V0_FLAGS2_PSMSTATE_POWEROPT
Definition ubx.hpp:2125
static constexpr uint8_t UBX_ESF_STATUS_V2_FAULTS_NOISYMEAS
Definition ubx.hpp:1113
static constexpr std::size_t UBX_CFG_VALGET_V0_MIN_SIZE
Definition ubx.hpp:847
static constexpr uint8_t UBX_NAV_SIG_V0_QUALITYIND_CARRLOCK3
Definition ubx.hpp:2058
static constexpr uint8_t UBX_NMEA_STANDARD_GBS_MSGID
UBX-NMEA-STANDARD_GBS message ID.
Definition ubx.hpp:497
static constexpr double UBX_NAV_ATT_V0_RPH_SCALING
Definition ubx.hpp:1561
static constexpr uint8_t UBX_RXM_SFRBX_V2_VERSION
Definition ubx.hpp:2509
static constexpr const char * UBX_NAV_TIMEGLO_STRID
UBX-NAV-TIMEGLO message name.
Definition ubx.hpp:382
static constexpr uint8_t UBX_MON_SYS_V1_BOOTTYPE_HWRESET
Boot type: hardware reset.
Definition ubx.hpp:1470
static constexpr uint8_t UBX_RXM_PMREQ_MSGID
UBX-RXM-PMREQ message ID.
Definition ubx.hpp:453
static constexpr const char * UBX_CFG_VALGET_STRID
UBX-CFG-VALGET message name.
Definition ubx.hpp:238
static constexpr uint8_t UBX_TIM_TM2_V0_FLAGS_TIMEBASE_UTC
Definition ubx.hpp:2605
static constexpr uint8_t UBX_RTCM3_TYPE1127_MSGID
UBX-RTCM3-TYPE1127 message ID.
Definition ubx.hpp:589
static constexpr double UBX_NAV_HPPOSLLH_V0_ITOW_SCALE
Definition ubx.hpp:1776
static constexpr uint8_t UBX_TIM_TM2_V0_FLAGS_MODE(const uint8_t flags)
Definition ubx.hpp:2595
static constexpr uint8_t UBX_CFG_VALDEL_V1_LAYER_FLASH
UBX-CFG-VALDEL.layers flag: layer Flash.
Definition ubx.hpp:894
static constexpr uint8_t UBX_LOG_ERASE_MSGID
UBX-LOG-ERASE message ID.
Definition ubx.hpp:263
static constexpr uint32_t UBX_NAV_TIMEBDS_V0_SIZE
Definition ubx.hpp:2223
static constexpr uint8_t UBX_RTCM3_TYPE1009_MSGID
UBX-RTCM3-TYPE1009 message ID.
Definition ubx.hpp:557
static constexpr uint8_t UBX_CFG_RST_V0_RESETMODE_GNSS_START
Start GNSS.
Definition ubx.hpp:943
static constexpr bool UBX_NAV_STATUS_V0_FLAGS_TOWSET(const uint8_t flags)
Definition ubx.hpp:2119
static constexpr uint16_t UBX_CFG_RST_V0_NAVBBR_CLKD
Clock drift.
Definition ubx.hpp:930
static constexpr const char * UBX_CFG_PWR_STRID
UBX-CFG-PWR message name.
Definition ubx.hpp:232
static constexpr uint8_t UBX_SIGID_BDS_B1CP
BeiDou B1 Cp (pilot)
Definition ubx.hpp:708
static constexpr std::size_t UBX_MON_SYS_V1_SIZE
Definition ubx.hpp:1466
static constexpr const char * UBX_RTCM3_TYPE1003_STRID
UBX-RTCM3-TYPE1003 message name.
Definition ubx.hpp:548
static constexpr uint8_t UBX_MON_RF_V0_FLAGS_JAMMINGSTATE_UNKN
Definition ubx.hpp:1376
static constexpr uint8_t UBX_NAV_STATUS_V0_FLAGS2_SPOOFDETSTATE_NONE
Definition ubx.hpp:2129
static constexpr double UBX_NAV_HPPOSLLH_V0_LL_SCALE
Definition ubx.hpp:1777
static constexpr const char * UBX_RXM_SFRBX_STRID
UBX-RXM-SFRBX message name.
Definition ubx.hpp:464
static constexpr uint8_t UBX_RTCM3_TYPE1125_MSGID
UBX-RTCM3-TYPE1125 message ID.
Definition ubx.hpp:587
static constexpr uint8_t UBX_NAV_PVT_V1_FLAGS_CARRSOLN(const uint8_t flags)
Definition ubx.hpp:1871
static constexpr uint8_t UBX_NAV_TIMEUTC_V0_VALID_UTCSTANDARD_NIST
Definition ubx.hpp:2298
static constexpr uint8_t UBX_RXM_SPARTN_V1_FLAGS_MSGUSED(const uint8_t flags)
Definition ubx.hpp:2536
static constexpr uint8_t UBX_MON_HW_V0_APOWER_OFF
Definition ubx.hpp:1229
static constexpr uint8_t UBX_NAV_HPPOSECEF_MSGID
UBX-NAV-HPPOSECEF message ID.
Definition ubx.hpp:341
static constexpr const char * UBX_RTCM3_TYPE1085_STRID
UBX-RTCM3-TYPE1085 message name.
Definition ubx.hpp:576
static constexpr bool UBX_NAV_SAT_V1_FLAGS_AOPAVAIL(const uint32_t flags)
Definition ubx.hpp:2006
static constexpr double UBX_TIM_TM2_V0_SUBMS_SCALE
Definition ubx.hpp:2610
static constexpr std::size_t UBX_CFG_VALGET_V0_MAX_SIZE
Definition ubx.hpp:856
static constexpr uint8_t UBX_NAV_STATUS_V0_FLAGS2_SPOOFDETSTATE_UNKNOWN
Definition ubx.hpp:2128
static constexpr double UBX_NAV_TIMEGAL_V0_ITOW_SCALE
Definition ubx.hpp:2193
static constexpr uint8_t UBX_NUM_SBAS
S120-S158.
Definition ubx.hpp:665
static constexpr const char * UBX_NAV2_TIMELS_STRID
UBX-NAV2-TIMELS message name.
Definition ubx.hpp:436
static constexpr uint8_t UBX_NAV_HPPOSECEF_V0_VERSION
Definition ubx.hpp:1734
static constexpr uint8_t UBX_MON_RF_MSGID
UBX-MON-RF message ID.
Definition ubx.hpp:311
static constexpr uint8_t UBX_MON_SYS_V1_BOOTTYPE_COLDSTART
Boot type: cold Start.
Definition ubx.hpp:1468
static constexpr uint8_t UBX_MON_COMMS_V0_TXERRORS_OUTPUTPORT_SPI
Definition ubx.hpp:1173
static constexpr const char * UBX_NMEA_STANDARD_DTM_STRID
UBX-NMEA-STANDARD_DTM message name.
Definition ubx.hpp:492
static constexpr const char * UBX_RTCM3_TYPE1230_STRID
UBX-RTCM3-TYPE1230 message name.
Definition ubx.hpp:592
static constexpr uint8_t UBX_ESF_MEAS_MSGID
UBX-ESF-MEAS message ID.
Definition ubx.hpp:245
static constexpr uint8_t UBX_RXM_RAWX_MSGID
UBX-RXM-RAWX message ID.
Definition ubx.hpp:457
static constexpr uint8_t UBX_MON_SYS_V1_BOOTTYPE_VDDRFFAIL
Boot type: VDD_RF fail.
Definition ubx.hpp:1476
static constexpr uint8_t UBX_SIGID_GAL_E5BI
Galileo E5 bI.
Definition ubx.hpp:697
static constexpr uint8_t UBX_CFG_VALDEL_V1_TRANSACTION_NONE
UBX-CFG-VALDEL.transaction value: no transaction.
Definition ubx.hpp:895
static constexpr const char * UBX_NAV_CLOCK_STRID
UBX-NAV-CLOCK message name.
Definition ubx.hpp:330
static constexpr const char * UBX_LOG_STR_STRID
UBX-LOG-STR message name.
Definition ubx.hpp:278
static constexpr uint8_t UBX_SEC_CLSID
UBX-SEC class ID.
Definition ubx.hpp:210
const UbxMessagesInfo & UbxGetMessagesInfo()
Get UBX messages lookup table.
static constexpr bool UBX_NAV_PVT_V1_FLAGS2_CONFAVAIL(const uint8_t flags2)
Definition ubx.hpp:1875
static constexpr uint8_t UBX_LOG_RETRSTR_MSGID
UBX-LOG-RETRSTR message ID.
Definition ubx.hpp:275
static constexpr uint8_t UBX_CFG_VALSET_V1_LAYER_FLASH
UBX-CFG-VALSET.layers flag: layer Flash.
Definition ubx.hpp:805
static constexpr const char * UBX_RTCM3_TYPE1011_STRID
UBX-RTCM3-TYPE1011 message name.
Definition ubx.hpp:562
static constexpr bool UBX_NAV_RELPOSNED_V1_FLAGS_ISMOVING(const uint32_t flags)
Definition ubx.hpp:1949
static constexpr uint8_t UBX_NAV_TIMELS_V0_SRCOFCURRLSCHANGE_BDS
Definition ubx.hpp:2348
static constexpr uint8_t UBX_NAV2_ODO_MSGID
UBX-NAV2-ODO message ID.
Definition ubx.hpp:407
static constexpr uint8_t UBX_ESF_STATUS_V2_INITSTATUS1_WTINITSTATUS_INITIALIZED
Definition ubx.hpp:1077
static constexpr bool UBX_NAV_PVT_V1_FLAGS_GNSSFIXOK(const uint8_t flags)
Definition ubx.hpp:1869
static constexpr uint8_t UBX_SYNC_2
UBX frame sync char 2.
Definition ubx.hpp:63
static constexpr uint8_t UBX_RTCM3_TYPE1077_MSGID
UBX-RTCM3-TYPE1077 message ID.
Definition ubx.hpp:571
static constexpr uint8_t UBX_NAV_SAT_V1_FLAGS_ORBITSOURCE_EPH
Definition ubx.hpp:1996
static constexpr uint8_t UBX_ESF_STATUS_V2_INITSTATUS2_IMUINITSTATUS_INITIALIZED2
Definition ubx.hpp:1092
static constexpr uint8_t UBX_TIM_TP_V0_REFINFO_TIMEREFGNSS_GPS
Definition ubx.hpp:2650
static constexpr const char * UBX_NAV_STRID
UBX-NAV class name.
Definition ubx.hpp:205
static constexpr double UBX_NAV_TIMEGPS_V0_ITOW_SCALE
Definition ubx.hpp:2162
static constexpr uint8_t UBX_SEC_SIGLOG_MSGID
UBX-SEC-SIGLOG message ID.
Definition ubx.hpp:473
static constexpr uint16_t UBX_MON_RF_V0_NOISEPERMS_MAX
This seems to be what u-center uses..
Definition ubx.hpp:1388
static constexpr std::size_t UBX_NAV_CLOCK_V0_SIZE
Definition ubx.hpp:1584
static constexpr const char * UBX_RXM_PMREQ_STRID
UBX-RXM-PMREQ message name.
Definition ubx.hpp:454
static constexpr uint32_t UBX_CFG_VALGET_V0_GROUP_WILDCARD(const uint32_t groupId)
UBX-CFG-VALGET.keys group wildcard.
Definition ubx.hpp:854
static constexpr uint8_t UBX_NAV_PVT_MSGID
UBX-NAV-PVT message ID.
Definition ubx.hpp:357
static constexpr std::size_t UBX_TIM_TP_V0_SIZE
Definition ubx.hpp:2635
static constexpr uint8_t UBX_NMEA_CLSID
UBX-NMEA class ID.
Definition ubx.hpp:216
static constexpr uint8_t UBX_TIM_TP_V0_REFINFO_UTCSTANDARD(const uint8_t refInfo)
Definition ubx.hpp:2656
static constexpr uint8_t UBX_NAV_HPPOSLLH_V0_FLAGS_INVALIDLLH
Definition ubx.hpp:1775
static constexpr uint8_t UBX_CFG_VALSET_V0_RESERVED
UBX-CFG-VALSET.reserved value.
Definition ubx.hpp:796
static constexpr bool UBX_MON_COMMS_V0_TXERRORS_ALLOC(const uint8_t txErrors)
Definition ubx.hpp:1166
static constexpr uint8_t UBX_INF_TEST_MSGID
UBX-INF-TEST message ID.
Definition ubx.hpp:257
static constexpr const char * UBX_NAV_GEOFENCE_STRID
UBX-NAV-GEOFENCE message name.
Definition ubx.hpp:340
static constexpr bool UBX_TIM_TP_V0_FLAGS_QERRINVALID(const uint8_t flags)
Definition ubx.hpp:2647
static constexpr uint8_t UBX_NAV2_SAT_MSGID
UBX-NAV2-SAT message ID.
Definition ubx.hpp:415
static constexpr uint8_t UBX_CFG_VALSET_V1_LAYER_RAM
UBX-CFG-VALSET.layers flag: layer RAM.
Definition ubx.hpp:803
static constexpr bool UBX_NAV_PVT_V1_FLAGS_DIFFSOLN(const uint8_t flags)
Definition ubx.hpp:1870
static constexpr uint8_t UBX_NAV_TIMELS_V0_SRCOFCURRLSCHANGE_GAL
Definition ubx.hpp:2349
static constexpr uint8_t UBX_ESF_ALG_MSGID
UBX-ESF-ALG message ID.
Definition ubx.hpp:241
static constexpr uint8_t UBX_CFG_VALSET_V0_VERSION
UBX-CFG-VALSET.version value.
Definition ubx.hpp:791
static constexpr uint8_t UBX_NAV_GEOFENCE_MSGID
UBX-NAV-GEOFENCE message ID.
Definition ubx.hpp:339
static constexpr bool UBX_NAV_PVT_V1_VALID_VALIDMAG(const uint8_t valid)
Definition ubx.hpp:1862
static constexpr bool UBX_NAV_STATUS_V0_FIXSTAT_CARRSOLNVALID(const uint8_t fixStat)
Definition ubx.hpp:2121
static constexpr const char * UBX_NAV_ATT_STRID
UBX-NAV-ATT message name.
Definition ubx.hpp:328
static constexpr uint8_t UBX_CFG_VALGET_V0_LAYER_FLASH
UBX-CFG-VALGET.layers value: layer Flash.
Definition ubx.hpp:850
static constexpr bool UBX_NAV_SAT_V1_FLAGS_EPHAVAIL(const uint32_t flags)
Definition ubx.hpp:2003
static constexpr const char * UBX_ESF_RAW_STRID
UBX-ESF-RAW message name.
Definition ubx.hpp:248
static constexpr uint8_t UBX_NAV_STATUS_V0_FLAGS2_SPOOFDETSTATE_AFFIRMED
Definition ubx.hpp:2131
static constexpr std::size_t UBX_NAV_SIG_V0_FREQID_OFFS
Definition ubx.hpp:2050
static constexpr uint8_t UBX_NAV_SAT_V1_FLAGS_ORBITSOURCE_OTHER1
Definition ubx.hpp:2000
static constexpr uint8_t UBX_NAV2_TIMEBDS_MSGID
UBX-NAV2-TIMEBDS message ID.
Definition ubx.hpp:427
static constexpr double UBX_RXM_RAWX_V1_CPSTD_SCALE(const double cpStd)
Definition ubx.hpp:2433
static constexpr uint8_t UBX_ESF_STATUS_VERSION(const uint8_t *msg)
Definition ubx.hpp:1068
static constexpr const char * UBX_NAV_RELPOSNED_STRID
UBX-NAV-RELPOSNED message name.
Definition ubx.hpp:360
static constexpr const char * UBX_ESF_STATUS_STRID
UBX-ESF-STATUS message name.
Definition ubx.hpp:250
static constexpr std::size_t UBX_MON_COMMS_V0_SIZE(const uint8_t *msg)
Definition ubx.hpp:1163
static constexpr uint8_t UBX_GNSSID_GLO
GLONASS.
Definition ubx.hpp:654
static constexpr uint8_t UBX_NAV_DOP_MSGID
UBX-NAV-DOP message ID.
Definition ubx.hpp:333
static constexpr uint8_t UBX_TIM_TP_V0_REFINFO_UTCSTANDARD_NTSC
Definition ubx.hpp:2664
static constexpr std::size_t UBX_CFG_VALGET_V0_MAX_K
UBX-CFG-VALGET.cfgData maximum number of keys.
Definition ubx.hpp:852
static constexpr uint8_t UBX_MGA_QZSS_MSGID
UBX-MGA-QZSS message ID.
Definition ubx.hpp:293
static constexpr uint8_t UBX_MGA_DBD_MSGID
UBX-MGA-DBD message ID.
Definition ubx.hpp:283
static constexpr uint8_t UBX_MON_HW_V0_ASTATUS_SHORT
Definition ubx.hpp:1227
static constexpr uint8_t UBX_NAV2_SVIN_MSGID
UBX-NAV2-SVIN message ID.
Definition ubx.hpp:425
static constexpr uint8_t UBX_NAV2_TIMEUTC_MSGID
UBX-NAV2-TIMEUTC message ID.
Definition ubx.hpp:441
static constexpr const char * UBX_NMEA_STANDARD_GRS_STRID
UBX-NMEA-STANDARD_GRS message name.
Definition ubx.hpp:514
static constexpr uint8_t UBX_MON_RF_V0_ANTSTATUS_OPEN
Definition ubx.hpp:1384
static constexpr double UBX_NAV_STATUS_V0_ITOW_SCALE
Definition ubx.hpp:2109
static constexpr std::size_t UBX_CFG_CFG_V0_MIN_SIZE
Definition ubx.hpp:973
static constexpr uint16_t UBX_MON_HW_V0_AGCCNT_MAX
Definition ubx.hpp:1233
static constexpr uint8_t UBX_MON_HW3_V0_PINMASK_PINBANK_E
Definition ubx.hpp:1316
static constexpr uint8_t UBX_SIGID_BDS_B3ID2
BeiDou B3I D2.
Definition ubx.hpp:707
static constexpr const char * UBX_RXM_STRID
UBX-RXM class name.
Definition ubx.hpp:209
static constexpr uint8_t UBX_MON_RF_V0_ANTSTATUS_OK
Definition ubx.hpp:1382
static constexpr std::size_t UBX_MON_TEMP_V0_SIZE
Definition ubx.hpp:1503
static constexpr std::size_t UBX_NAV_SIG_V0_MIN_SIZE
Definition ubx.hpp:2048
static constexpr uint8_t UBX_MON_SPAN_MSGID
UBX-MON-SPAN message ID.
Definition ubx.hpp:317
static constexpr uint8_t UBX_NAV_STATUS_V0_FLAGS2_CARRSOLN_FIXED
Definition ubx.hpp:2135
static constexpr const char * UBX_CFG_CFG_STRID
UBX-CFG-CFG message name.
Definition ubx.hpp:230
static constexpr uint8_t UBX_FIRST_QZSS
Q01.
Definition ubx.hpp:675
static constexpr uint8_t UBX_NAV_TIMELS_V0_SRCOFCURRLS_BDS
Definition ubx.hpp:2341
static constexpr uint8_t UBX_FIRST_BDS
B01.
Definition ubx.hpp:674
static constexpr uint8_t UBX_MON_HW3_V0_PINMASK_DIRECTION_OUT
Definition ubx.hpp:1321
static constexpr const char * UBX_NMEA_STANDARD_GLL_STRID
UBX-NMEA-STANDARD_GLL message name.
Definition ubx.hpp:502
static constexpr uint8_t UBX_NAV_SAT_V1_FLAGS_ORBITSOURCE_ANO
Definition ubx.hpp:1998
static constexpr uint8_t UBX_NAV_TIMEUTC_V0_VALID_UTCSTANDARD_SU
Definition ubx.hpp:2302
static constexpr uint8_t UBX_TIM_TP_V0_REFINFO_UTCSTANDARD_USNO
Definition ubx.hpp:2660
static constexpr uint8_t UBX_RXM_QZSSL6_MSGID
UBX-RXM-QZSSL6 message ID.
Definition ubx.hpp:455
static constexpr uint8_t UBX_NAV_SIG_V0_QUALITYIND_CARRLOCK1
Definition ubx.hpp:2056
static constexpr uint8_t UBX_MON_HW_V0_FLAGS_XTALABSENT
Definition ubx.hpp:1223
static constexpr uint8_t UBX_NAV_SIG_V0_IONOMODEL_DUALFREQ
Definition ubx.hpp:2063
static constexpr uint8_t UBX_RXM_RTCM_VERSION(const uint8_t *msg)
Definition ubx.hpp:2467
static constexpr uint8_t UBX_CFG_VALSET_V0_LAYERS_BBR
UBX-CFG-VALSET.layers flag: layer BBR.
Definition ubx.hpp:794
static constexpr const char * UBX_ESF_INS_STRID
UBX-ESF-INS message name.
Definition ubx.hpp:244
static constexpr const char * UBX_RXM_RTCM_STRID
UBX-RXM-RTCM message name.
Definition ubx.hpp:462
constexpr uint8_t UbxMsgId(const uint8_t *msg)
Get message ID from message.
Definition ubx.hpp:90
static constexpr std::size_t UBX_NAV_TIMELS_V0_SIZE
Definition ubx.hpp:2335
static constexpr uint8_t UBX_MON_VER_MSGID
UBX-MON-VER message ID.
Definition ubx.hpp:325
static constexpr uint8_t UBX_SEC_UNIQID_MSGID
UBX-SEC-UNIQID message ID.
Definition ubx.hpp:475
static constexpr uint8_t UBX_MGA_INI_MSGID
UBX-MGA-INI message ID.
Definition ubx.hpp:291
std::array< UbxMsgInfo, 15 > UbxClassesInfo
UBX classes lookup table.
Definition ubx.hpp:611
static constexpr uint8_t UBX_NAV_TIMEUTC_MSGID
UBX-NAV-TIMEUTC message ID.
Definition ubx.hpp:393
static constexpr uint8_t UBX_NAV_HPPOSLLH_VERSION(const uint8_t *msg)
Definition ubx.hpp:1772
static constexpr const char * UBX_LOG_STRID
UBX-LOG class name.
Definition ubx.hpp:199
static constexpr uint8_t UBX_SIGID_BDS_B2AD
BeiDou B2 ad (data)
Definition ubx.hpp:711
static constexpr uint8_t UBX_NAV_EELL_MSGID
UBX-NAV-EELL message ID.
Definition ubx.hpp:335
static constexpr const char * UBX_NAV_SBAS_STRID
UBX-NAV-SBAS message name.
Definition ubx.hpp:366
static constexpr uint8_t UBX_NAV_STATUS_V0_FIXTYPE_NOFIX
Definition ubx.hpp:2110
static constexpr const char * UBX_MGA_BDS_STRID
UBX-MGA-BDS message name.
Definition ubx.hpp:282
static constexpr std::size_t UBX_CFG_VALGET_V1_MIN_SIZE
Definition ubx.hpp:859
static constexpr uint8_t UBX_CFG_VALDEL_V1_VERSION
UBX-CFG-VALDEL.version value.
Definition ubx.hpp:891
static constexpr std::size_t UBX_CFG_RST_V0_SIZE
Definition ubx.hpp:923
static constexpr double UBX_NAV_PVT_V1_GSPEED_SCALE
Definition ubx.hpp:1885
static constexpr uint8_t UBX_NAV2_POSECEF_MSGID
UBX-NAV2-POSECEF message ID.
Definition ubx.hpp:409
static constexpr uint8_t UBX_MON_RF_V0_VERSION
Definition ubx.hpp:1371
static constexpr uint8_t UBX_NAV_SIG_V0_IONOMODEL_KLOB_BDS
Definition ubx.hpp:2062
static constexpr uint8_t UBX_SIGID_GAL_E6B
Galileo E6 B.
Definition ubx.hpp:699
static constexpr uint8_t UBX_ESF_STATUS_V2_INITSTATUS1_WTINITSTATUS_INITALIZING
Definition ubx.hpp:1076
static constexpr uint8_t UBX_NMEA_PUBX_CONFIG_MSGID
UBX-NMEA-PUBX_CONFIG message ID.
Definition ubx.hpp:533
static constexpr uint8_t UBX_CFG_RST_V0_RESETMODE_GNSS
Restart GNSS.
Definition ubx.hpp:940
static constexpr uint8_t UBX_MGA_GLO_MSGID
UBX-MGA-GLO message ID.
Definition ubx.hpp:287
static constexpr std::size_t UBX_ACK_NAK_V0_SIZE
Definition ubx.hpp:757
static constexpr uint8_t UBX_NAV_SAT_V1_FLAGS_ORBITSOURCE_ANA
Definition ubx.hpp:1999
static constexpr uint16_t UBX_CFG_RST_V0_NAVBBR_OSC
Oscillator parameters.
Definition ubx.hpp:931
static constexpr int UBX_RXM_SFRBX_V2_GROUP0_FREQID_TO_SLOT(const uint8_t freqId)
Definition ubx.hpp:2511
static constexpr uint8_t UBX_CFG_VALSET_V1_VERSION
UBX-CFG-VALSET.version value.
Definition ubx.hpp:801
static constexpr uint8_t UBX_MON_HW3_VERSION(const uint8_t *msg)
Definition ubx.hpp:1300
static constexpr const char * UBX_RXM_SPARTN_STRID
UBX-RXM-SPARTN message name.
Definition ubx.hpp:466
static constexpr uint8_t UBX_NAV_SAT_V1_FLAGS_ORBITSOURCE(const uint32_t flags)
Definition ubx.hpp:1994
static constexpr uint8_t UBX_NAV2_EOE_MSGID
UBX-NAV2-EOE message ID.
Definition ubx.hpp:405
static constexpr bool UBX_NAV_SIG_V0_SIGFLAGS_PR_USED(const uint16_t sigFlags)
Definition ubx.hpp:2069
static constexpr const char * UBX_RTCM3_TYPE1033_STRID
UBX-RTCM3-TYPE1033 message name.
Definition ubx.hpp:566
static constexpr bool UBX_NAV_TIMEGPS_V0_VALID_TOWVALID(const uint8_t valid)
Definition ubx.hpp:2165
static constexpr uint8_t UBX_ESF_MEAS_V0_FLAGS_TIMEMARKSENT_EXT0
Definition ubx.hpp:1022
static constexpr uint8_t UBX_ESF_STATUS_V2_SENSSTATUS2_CALIBSTATUS(const uint8_t sensStatus2)
Definition ubx.hpp:1100
static constexpr uint32_t UBX_CFG_VALGET_V0_ALL_WILDCARD
UBX-CFG-VALGET.keys all wildcard.
Definition ubx.hpp:855
static constexpr double UBX_NAV_POSECEF_V0_PACC_SCALE
Definition ubx.hpp:1806
static constexpr uint8_t UBX_MON_RF_V0_FLAGS_JAMMINGSTATE_CRIT
Definition ubx.hpp:1379
static constexpr uint8_t UBX_LOG_RETRPOSX_MSGID
UBX-LOG-RETRPOSX message ID.
Definition ubx.hpp:273
static constexpr uint8_t UBX_MON_VER_V0_MIN_SIZE
Definition ubx.hpp:1530
static constexpr uint8_t UBX_NMEA_STANDARD_GQQ_MSGID
UBX-NMEA-STANDARD_GQQ message ID.
Definition ubx.hpp:511
static constexpr const char * UBX_NMEA_STANDARD_GAQ_STRID
UBX-NMEA-STANDARD_GAQ message name.
Definition ubx.hpp:494
static constexpr std::size_t UBX_ACK_ACK_V0_SIZE
Definition ubx.hpp:738
static constexpr bool UBX_MON_HW3_V0_FLAGS_XTALABSENT(const uint8_t flags)
Definition ubx.hpp:1307
static constexpr uint8_t UBX_LOG_CLSID
UBX-LOG class ID.
Definition ubx.hpp:198
static constexpr std::size_t UBX_MON_HW2_V0_SIZE
Definition ubx.hpp:1262
static constexpr uint8_t UBX_GNSSID_GAL
Galileo.
Definition ubx.hpp:651
static constexpr const char * UBX_CFG_RST_STRID
UBX-CFG-RST message name.
Definition ubx.hpp:234
static constexpr uint8_t UBX_CFG_VALSET_V1_TRANSACTION_END
UBX-CFG-VALSET.transaction value: transaction: end.
Definition ubx.hpp:809
static constexpr uint8_t UBX_TIM_TM2_V0_FLAGS_RUN(const uint8_t flags)
Definition ubx.hpp:2598
static constexpr bool UBX_RXM_RAWX_V1_TRKSTAT_CPVALID(const uint8_t trkStat)
Definition ubx.hpp:2438
static constexpr uint8_t UBX_ESF_STATUS_MSGID
UBX-ESF-STATUS message ID.
Definition ubx.hpp:249
static constexpr uint8_t UBX_ESF_STATUS_V2_SENSSTATUS1_READY
Definition ubx.hpp:1099
static constexpr uint8_t UBX_TIM_TM2_V0_FLAGS_MODE_SINGLE
Definition ubx.hpp:2596
static constexpr uint8_t UBX_RTCM3_TYPE1230_MSGID
UBX-RTCM3-TYPE1230 message ID.
Definition ubx.hpp:591
static constexpr const char * UBX_NAV_SLAS_STRID
UBX-NAV-SLAS message name.
Definition ubx.hpp:370
static constexpr const char * UBX_RTCM3_TYPE1075_STRID
UBX-RTCM3-TYPE1075 message name.
Definition ubx.hpp:570
static constexpr uint8_t UBX_MON_HW3_V0_PINMASK_PERIPHPIO_PERIPH
Definition ubx.hpp:1309
static constexpr const char * UBX_ACK_STRID
UBX-ACK class name.
Definition ubx.hpp:191
static constexpr uint8_t UBX_TIM_TP_V0_REFINFO_UTCSTANDARD_BIPM
Definition ubx.hpp:2661
static constexpr std::size_t UBX_RXM_RTCM_V2_SIZE
Definition ubx.hpp:2469
static constexpr uint8_t UBX_CFG_VALDEL_V1_TRANSACTION_END
UBX-CFG-VALDEL.transaction value: transaction: end.
Definition ubx.hpp:898
static constexpr uint8_t UBX_CFG_VALDEL_VERSION(const uint8_t *msg)
Definition ubx.hpp:890
static constexpr std::size_t UBX_NAV_COV_V0_SIZE
Definition ubx.hpp:1626
static constexpr uint8_t UBX_SIGID_GAL_E5AI
Galileo E5 aI.
Definition ubx.hpp:695
static constexpr uint8_t UBX_NAV_STATUS_V0_FLAGS2_CARRSOLN_NO
Definition ubx.hpp:2133
static constexpr uint8_t UBX_SIGID_BDS_B2ID2
BeiDou B2I D2.
Definition ubx.hpp:705
static constexpr bool UBX_NAV_RELPOSNED_V1_FLAGS_REFOBSMISS(const uint32_t flags)
Definition ubx.hpp:1951
static constexpr uint8_t UBX_MON_RXBUF_MSGID
UBX-MON-RXBUF message ID.
Definition ubx.hpp:313
static constexpr uint8_t UBX_CFG_VALGET_V1_LAYER_FLASH
UBX-CFG-VALGET.layers value: layer Flash.
Definition ubx.hpp:862
static constexpr bool UBX_NAV_TIMEGPS_V0_VALID_LEAPSVALID(const uint8_t valid)
Definition ubx.hpp:2167
static constexpr double UBX_NAV_HPPOSLLH_V0_H_HP_SCALE
Definition ubx.hpp:1780
static constexpr uint8_t UBX_RTCM3_TYPE4072_0_MSGID
UBX-RTCM3-TYPE4072_0 message ID.
Definition ubx.hpp:593
static constexpr uint8_t UBX_NAV_TIMEQZSS_MSGID
UBX-NAV-TIMEQZSS message ID.
Definition ubx.hpp:387
static constexpr uint8_t UBX_TIM_TM2_V0_FLAGS_MODE_RUNNING
Definition ubx.hpp:2597
static constexpr uint8_t UBX_MON_SYS_V1_BOOTTYPE_SWRESET
Boot type: software reset.
Definition ubx.hpp:1473
static constexpr const char * UBX_NAV_DOP_STRID
UBX-NAV-DOP message name.
Definition ubx.hpp:334
static constexpr uint8_t UBX_ESF_MEAS_V0_FLAGS_TIMEMARKSENT_EXT1
Definition ubx.hpp:1023
static constexpr uint8_t UBX_CFG_VALDEL_V1_LAYER_BBR
UBX-CFG-VALDEL.layers flag: layer BBR.
Definition ubx.hpp:893
static constexpr double UBX_NAV_SIG_V0_ITOW_SCALE
Definition ubx.hpp:2049
static constexpr bool UBX_MON_HW3_V0_PINMASK_PIOPULLLOW(const uint16_t pinMask)
Definition ubx.hpp:1327
static constexpr uint8_t UBX_NAV2_VELNED_MSGID
UBX-NAV2-VELNED message ID.
Definition ubx.hpp:445
static constexpr uint8_t UBX_SIGID_BDS_B3ID1
BeiDou B3I D1.
Definition ubx.hpp:706
static constexpr uint8_t UBX_TIM_TP_V0_REFINFO_UTCSTANDARD_CRL
Definition ubx.hpp:2658
static constexpr const char * UBX_LOG_CREATE_STRID
UBX-LOG-CREATE message name.
Definition ubx.hpp:262
static constexpr bool UBX_RXM_RAWX_V1_RECSTAT_CLKRESET(const uint8_t recStat)
Definition ubx.hpp:2429
static constexpr const char * UBX_TIM_VRFY_STRID
UBX-TIM-VRFY message name.
Definition ubx.hpp:482
static constexpr uint8_t UBX_CFG_VALGET_V0_LAYER_BBR
UBX-CFG-VALGET.layers value: layer BBR.
Definition ubx.hpp:849
static constexpr uint8_t UBX_TIM_TP_V0_FLAGS_TIMEBASE_GNSS
Definition ubx.hpp:2640
static constexpr double UBX_NAV_PVT_V1_LAT_SCALE
Definition ubx.hpp:1879
static constexpr double UBX_NAV_PVT_V1_HEADACC_SCALE
Definition ubx.hpp:1888
static constexpr uint8_t UBX_NMEA_STANDARD_GSV_MSGID
UBX-NMEA-STANDARD_GSV message ID.
Definition ubx.hpp:519
static constexpr uint8_t UBX_ESF_STATUS_V2_SENSSTATUS2_CALIBSTATUS_CALIBRATING
Definition ubx.hpp:1102
static constexpr const char * UBX_NAV_HPPOSECEF_STRID
UBX-NAV-HPPOSECEF message name.
Definition ubx.hpp:342
bool UbxMessageInfo(const std::string &name, UbxMsgInfo &info)
Get UBX message info.
static constexpr const char * UBX_NMEA_STANDARD_VLW_STRID
UBX-NMEA-STANDARD_VLW message name.
Definition ubx.hpp:528
static constexpr std::size_t UBX_RXM_RAWX_V1_SIZE(const uint8_t *msg)
Definition ubx.hpp:2442
static constexpr double UBX_NAV_VELECEF_V0_SACC_SCALE
Definition ubx.hpp:2378
static constexpr double UBX_NAV_SAT_V1_ITOW_SCALE
Definition ubx.hpp:1992
static constexpr std::size_t UBX_MON_SPAN_V0_NUM_BINS
Number of bins.
Definition ubx.hpp:1411
static constexpr uint8_t UBX_ESF_STATUS_V2_SENSSTATUS2_TIMESTATUS_TIMETAG
Definition ubx.hpp:1109
static constexpr uint8_t UBX_TIM_TP_V0_REFINFO_UTCSTANDARD_UNNOWN
Definition ubx.hpp:2666
static constexpr uint8_t UBX_NAV_PVT_V1_FIXTYPE_NOFIX
Definition ubx.hpp:1863
static constexpr const char * UBX_MON_PATCH_STRID
UBX-MON-PATCH message name.
Definition ubx.hpp:310
static constexpr uint8_t UBX_INF_WARNING_MSGID
UBX-INF-WARNING message ID.
Definition ubx.hpp:259
static constexpr uint8_t UBX_NUM_GPS
G01-G32.
Definition ubx.hpp:664
static constexpr double UBX_NAV_EELL_V0_ITOW_SCALE
Definition ubx.hpp:1681
static constexpr uint8_t UBX_ESF_STATUS_V2_INITSTATUS1_MNTALGSTATUS_INITIALIZED2
Definition ubx.hpp:1082
static constexpr uint8_t UBX_MON_HW3_V0_PINMASK_PINBANK(const uint16_t pinMask)
Definition ubx.hpp:1311
static constexpr const char * UBX_NAV_EOE_STRID
UBX-NAV-EOE message name.
Definition ubx.hpp:338
static constexpr double UBX_NAV_TIMEUTC_V0_NANO_SCALE
Definition ubx.hpp:2290
static constexpr uint8_t UBX_CFG_RST_V0_RESETMODE_HW_FORCED
Forced, immediate hardware reset.
Definition ubx.hpp:938
static constexpr uint8_t UBX_NAV_TIMELS_MSGID
UBX-NAV-TIMELS message ID.
Definition ubx.hpp:385
static constexpr uint8_t UBX_ESF_MEAS_V0_DATA_DATATYPE(const uint32_t data)
same enum as UBX-ESF-STATUS.type it seems
Definition ubx.hpp:1027
static constexpr const char * UBX_LOG_RETR_STRID
UBX-LOG-RETR message name.
Definition ubx.hpp:270
static constexpr uint8_t UBX_SIGID_QZSS_L2CM
QZSS L2 CM.
Definition ubx.hpp:714
static constexpr uint32_t UBX_CFG_CFG_V0_CLEAR_ALL
Clear all config.
Definition ubx.hpp:976
static constexpr uint8_t UBX_MON_HW2_V0_CFGSOURCE_ROM
Definition ubx.hpp:1263
static constexpr const char * UBX_LOG_INFO_STRID
UBX-LOG-INFO message name.
Definition ubx.hpp:268
static constexpr std::size_t UBX_NAV_TIMEUTC_V0_SIZE
Definition ubx.hpp:2287
static constexpr uint8_t UBX_NAV_TIMEUTC_V0_VALID_VALIDWKN(const uint8_t valid)
Definition ubx.hpp:2292
static constexpr uint8_t UBX_CFG_VALGET_MSGID
UBX-CFG-VALGET message ID.
Definition ubx.hpp:237
static constexpr uint8_t UBX_TIM_TM2_MSGID
UBX-TIM-TM2 message ID.
Definition ubx.hpp:477
static constexpr const char * UBX_RTCM3_TYPE1004_STRID
UBX-RTCM3-TYPE1004 message name.
Definition ubx.hpp:550
static constexpr uint8_t UBX_NAV_SIG_MSGID
UBX-NAV-SIG message ID.
Definition ubx.hpp:367
static constexpr const char * UBX_RTCM3_TYPE1094_STRID
UBX-RTCM3-TYPE1094 message name.
Definition ubx.hpp:580
static constexpr bool UBX_NAV_TIMELS_V0_VALID_TIMETOLSEVENTVALID(const uint8_t valid)
Definition ubx.hpp:2352
static constexpr uint8_t UBX_ESF_STATUS_V2_INITSTATUS2_IMUINITSTATUS_INITIALIZED1
Definition ubx.hpp:1091
static constexpr const char * UBX_NAV2_SAT_STRID
UBX-NAV2-SAT message name.
Definition ubx.hpp:416
static constexpr const char * UBX_LOG_RETRSTR_STRID
UBX-LOG-RETRSTR message name.
Definition ubx.hpp:276
static constexpr uint8_t UBX_NAV_PVT_V1_FLAGS_CARRSOLN_FLOAT
Definition ubx.hpp:1873
static constexpr uint8_t UBX_NMEA_STANDARD_ZDA_MSGID
UBX-NMEA-STANDARD_ZDA message ID.
Definition ubx.hpp:531
static constexpr uint16_t UBX_CFG_RST_V0_NAVBBR_UTC
UTC and leap second parameters.
Definition ubx.hpp:932
static constexpr uint8_t UBX_NAV_EELL_V0_VERSION
Definition ubx.hpp:1679
static constexpr uint8_t UBX_ESF_STATUS_V2_INITSTATUS1_INSINITSTATUS_INITIALIZED1
Definition ubx.hpp:1086
static constexpr double UBX_NAV_RELPOSNED_V1_ACCN_E_D_SCALE
Definition ubx.hpp:1939
static constexpr uint8_t UBX_NAV_SIG_V0_IONOMODEL_KLOB_GPS
Definition ubx.hpp:2060
static constexpr uint8_t UBX_MON_SPAN_VERSION(const uint8_t *msg)
Definition ubx.hpp:1427
static constexpr uint8_t UBX_NAV2_POSLLH_MSGID
UBX-NAV2-POSLLH message ID.
Definition ubx.hpp:411
static constexpr const char * UBX_RXM_QZSSL6_STRID
UBX-RXM-QZSSL6 message name.
Definition ubx.hpp:456
static constexpr const char * UBX_ESF_MEAS_STRID
UBX-ESF-MEAS message name.
Definition ubx.hpp:246
static constexpr uint8_t UBX_NAV_RELPOSNED_VERSION(const uint8_t *msg)
Definition ubx.hpp:1930
static constexpr const char * UBX_MON_IO_STRID
UBX-MON-IO message name.
Definition ubx.hpp:306
static constexpr const char * UBX_NAV_SAT_STRID
UBX-NAV-SAT message name.
Definition ubx.hpp:364
static constexpr uint8_t UBX_NAV_TIMELS_V0_SRCOFCURRLS_UNKNOWN
Definition ubx.hpp:2344
static constexpr uint8_t UBX_TIM_TP_V0_REFINFO_UTCSTANDARD_EU
Definition ubx.hpp:2662
static constexpr uint8_t UBX_SIGID_GPS_L1CA
GPS L1 C/A.
Definition ubx.hpp:687
static constexpr uint8_t UBX_RTCM3_TYPE1002_MSGID
UBX-RTCM3-TYPE1002 message ID.
Definition ubx.hpp:545
static constexpr uint8_t UBX_NAV_HPPOSLLH_MSGID
UBX-NAV-HPPOSLLH message ID.
Definition ubx.hpp:343
static constexpr uint8_t UBX_RTCM3_TYPE1001_MSGID
UBX-RTCM3-TYPE1001 message ID.
Definition ubx.hpp:543
static constexpr uint8_t UBX_ESF_MEAS_V0_FLAGS_TIMEMARKSENT(const uint16_t flags)
Definition ubx.hpp:1020
static constexpr uint8_t UBX_MON_RF_V0_FLAGS_JAMMINGSTATE_WARN
Definition ubx.hpp:1378
static constexpr uint8_t UBX_MON_HW_V0_FLAGS_JAMMINGSTATE_WARNING
Definition ubx.hpp:1221
static constexpr uint8_t UBX_RXM_RTCM_MSGID
UBX-RXM-RTCM message ID.
Definition ubx.hpp:461
static constexpr uint8_t UBX_INF_DEBUG_MSGID
UBX-INF-DEBUG message ID.
Definition ubx.hpp:251
static constexpr uint8_t UBX_ESF_STATUS_V2_FUSIONMODE_SUSPENDED
Definition ubx.hpp:1095
static constexpr uint8_t UBX_NAV_TIMELS_V0_SRCOFCURRLS_DEFAULT
Definition ubx.hpp:2337
static constexpr double UBX_NAV_CLOCK_V0_CLKB_SCALE
Definition ubx.hpp:1585
static constexpr uint8_t UBX_SIGID_BDS_B2ID1
BeiDou B2I D1.
Definition ubx.hpp:704
static constexpr uint8_t UBX_NAV_SIG_V0_VERSION
Definition ubx.hpp:2047
static constexpr const char * UBX_RTCM3_TYPE1012_STRID
UBX-RTCM3-TYPE1012 message name.
Definition ubx.hpp:564
static constexpr bool UBX_NAV_RELPOSNED_V1_FLAGS_RELPOSVALID(const uint32_t flags)
Definition ubx.hpp:1944
static constexpr uint8_t UBX_FIRST_GLO
R01.
Definition ubx.hpp:676
static constexpr uint8_t UBX_NAV_SIG_V0_QUALITYIND_NOSIG
Definition ubx.hpp:2051
static constexpr uint8_t UBX_GNSSID_BDS
BeiDou.
Definition ubx.hpp:652
static constexpr double UBX_NAV_RELPOSNED_V1_ITOW_SCALE
Definition ubx.hpp:1933
static constexpr uint8_t UBX_NAV2_PVT_MSGID
UBX-NAV2-PVT message ID.
Definition ubx.hpp:413
static constexpr uint8_t UBX_NAV_TIMELS_V0_SRCOFCURRLSCHANGE_GLO
Definition ubx.hpp:2350
static constexpr uint8_t UBX_NAV_TIMELS_V0_SRCOFCURRLS_GPS
Definition ubx.hpp:2339
static constexpr uint8_t UBX_MON_RF_V0_ANTSTATUS_SHORT
Definition ubx.hpp:1383
static constexpr uint8_t UBX_NAV_STATUS_V0_FIXTYPE_3D_DR
Definition ubx.hpp:2114
static constexpr double UBX_NAV_TIMEUTC_V0_TACC_SCALE
Definition ubx.hpp:2289
static constexpr uint8_t UBX_MON_COMMS_V0_PROTIDS_SPARTN
Definition ubx.hpp:1179
static constexpr uint8_t UBX_MGA_ACK_MSGID
UBX-MGA-ACK message ID.
Definition ubx.hpp:279
static constexpr uint8_t UBX_NAV_TIMELS_V0_SRCOFCURRLS_SBAS
Definition ubx.hpp:2340
static constexpr uint8_t UBX_ESF_STATUS_V2_SENSSTATUS2_CALIBSTATUS_CALIBRATED2
Definition ubx.hpp:1104
static constexpr uint8_t UBX_SIGID_QZSS_L1S
QZSS L1 S.
Definition ubx.hpp:713
static constexpr uint8_t UBX_ESF_STATUS_V2_FUSIONMODE_DISABLED
Definition ubx.hpp:1096
static constexpr uint8_t UBX_ESF_STATUS_V2_SENSSTATUS1_USED
Definition ubx.hpp:1098
static constexpr uint8_t UBX_NMEA_STANDARD_RMC_MSGID
UBX-NMEA-STANDARD_RMC message ID.
Definition ubx.hpp:523
static constexpr uint8_t UBX_NAV_RELPOSNED_V1_FLAGS_CARRSOLN_FLOAT
Definition ubx.hpp:1947
static constexpr uint8_t UBX_MON_HW3_V0_PINMASK_PINBANK_H
Definition ubx.hpp:1319
static constexpr double UBX_RXM_RAWX_V1_DOSTD_SCALE(const double doStd)
Definition ubx.hpp:2435
static constexpr const char * UBX_NAV_SIG_STRID
UBX-NAV-SIG message name.
Definition ubx.hpp:368
static constexpr const char * UBX_MON_HW3_STRID
UBX-MON-HW3 message name.
Definition ubx.hpp:304
static constexpr uint8_t UBX_RTCM3_TYPE1095_MSGID
UBX-RTCM3-TYPE1095 message ID.
Definition ubx.hpp:581
static constexpr uint8_t UBX_MON_TEMP_MSGID
UBX-MON-TEMP message ID.
Definition ubx.hpp:321
static constexpr uint8_t UBX_MON_HW3_V0_PINMASK_PINBANK_D
Definition ubx.hpp:1315
static constexpr uint8_t UBX_NAV_COV_V0_VERSION
Definition ubx.hpp:1625
static constexpr uint8_t UBX_MON_COMMS_V0_PROTIDS_UBX
Definition ubx.hpp:1174
static constexpr uint8_t UBX_TIM_TP_V0_REFINFO_TIMEREFGNSS_UNKNOWN
Definition ubx.hpp:2655
static constexpr const char * UBX_NAV2_TIMEBDS_STRID
UBX-NAV2-TIMEBDS message name.
Definition ubx.hpp:428
static constexpr uint8_t UBX_ESF_RAW_MSGID
UBX-ESF-RAW message ID.
Definition ubx.hpp:247
static constexpr uint8_t UBX_NMEA_STANDARD_GNS_MSGID
UBX-NMEA-STANDARD_GNS message ID.
Definition ubx.hpp:507
static constexpr bool UBX_MON_HW3_V0_PINMASK_PIOIRQ(const uint16_t pinMask)
Definition ubx.hpp:1325
static constexpr const char * UBX_NAV_COV_STRID
UBX-NAV-COV message name.
Definition ubx.hpp:332
static constexpr double UBX_NAV_PVT_V1_LON_SCALE
Definition ubx.hpp:1880
static constexpr uint8_t UBX_MON_RF_V0_ANTSTATUS_DONTKNOW
Definition ubx.hpp:1381
static constexpr uint8_t UBX_SIGID_GAL_E6C
Galileo E6 C.
Definition ubx.hpp:700
static constexpr double UBX_NAV_PVT_V1_ITOW_SCALE
Definition ubx.hpp:1858
static constexpr uint8_t UBX_NAV_SIG_V0_QUALITYIND_SEARCH
Definition ubx.hpp:2052
static constexpr const char * UBX_MGA_STRID
UBX-MGA class name.
Definition ubx.hpp:201
static constexpr uint8_t UBX_RTCM3_TYPE1011_MSGID
UBX-RTCM3-TYPE1011 message ID.
Definition ubx.hpp:561
static constexpr uint8_t UBX_NAV_STATUS_V0_FLAGS2_CARRSOLN_FLOAT
Definition ubx.hpp:2134
static constexpr const char * UBX_RXM_RLM_STRID
UBX-RXM-RLM message name.
Definition ubx.hpp:460
static constexpr uint8_t UBX_SYNC_1
UBX frame sync char 1.
Definition ubx.hpp:62
static constexpr const char * UBX_NAV2_SLAS_STRID
UBX-NAV2-SLAS message name.
Definition ubx.hpp:422
static constexpr std::size_t UBX_HEAD_SIZE
Size of UBX frame header.
Definition ubx.hpp:61
static constexpr uint8_t UBX_NAV_SIG_V0_SIGFLAGS_HEALTH_UNKNO
Definition ubx.hpp:2065
static constexpr const char * UBX_ESF_STRID
UBX-ESF class name.
Definition ubx.hpp:195
static constexpr uint8_t UBX_NUM_GLO
R01-R32.
Definition ubx.hpp:669
static constexpr uint8_t UBX_MON_HW_V0_APOWER_ON
Definition ubx.hpp:1230
static constexpr uint8_t UBX_NAV_SOL_MSGID
UBX-NAV-SOL message ID.
Definition ubx.hpp:371
static constexpr const char * UBX_RTCM3_TYPE1124_STRID
UBX-RTCM3-TYPE1124 message name.
Definition ubx.hpp:586
static constexpr uint8_t UBX_NUM_BDS
B01-B63 ("Cxx" in RINEX)
Definition ubx.hpp:667
static constexpr std::size_t UBX_NAV_EELL_V0_SIZE
Definition ubx.hpp:1680
static constexpr const char * UBX_MGA_QZSS_STRID
UBX-MGA-QZSS message name.
Definition ubx.hpp:294
static constexpr const char * UBX_ACK_ACK_STRID
UBX-ACK-ACK message name.
Definition ubx.hpp:226
static constexpr const char * UBX_RXM_COR_STRID
UBX-RXM-COR message name.
Definition ubx.hpp:448
static constexpr uint8_t UBX_FIRST_NAVIC
N01.
Definition ubx.hpp:677
static constexpr uint8_t UBX_ESF_STATUS_V2_FAULTS_BADMEAS
Definition ubx.hpp:1110
static constexpr double UBX_NAV_EELL_V0_ELLIPSEMAJOR_SCALE
Definition ubx.hpp:1683
static constexpr const char * UBX_NAV_TIMEBDS_STRID
UBX-NAV-TIMEBDS message name.
Definition ubx.hpp:378
static constexpr bool UBX_MON_HW3_V0_PINMASK_VALUE(const uint16_t pinMask)
Definition ubx.hpp:1323
static constexpr const char * UBX_NAV2_COV_STRID
UBX-NAV2-COV message name.
Definition ubx.hpp:402
static constexpr const char * UBX_TIM_STRID
UBX-TIM class name.
Definition ubx.hpp:213
static constexpr uint8_t UBX_NAV_SIG_V0_CORRSOURCE_SPARTN
Definition ubx.hpp:2082
static constexpr uint8_t UBX_NAV_RELPOSNED_V1_VERSION
Definition ubx.hpp:1931
static constexpr uint8_t UBX_NAV2_TIMEGAL_MSGID
UBX-NAV2-TIMEGAL message ID.
Definition ubx.hpp:429
static constexpr uint8_t UBX_NAV2_SIG_MSGID
UBX-NAV2-SIG message ID.
Definition ubx.hpp:419
static constexpr const char * UBX_NAV2_SIG_STRID
UBX-NAV2-SIG message name.
Definition ubx.hpp:420
static constexpr uint8_t UBX_NAV_RESETODO_MSGID
UBX-NAV-RESETODO message ID.
Definition ubx.hpp:361
static constexpr uint8_t UBX_NAV_TIMELS_V0_SRCOFCURRLSCHANGE_SBAS
Definition ubx.hpp:2347
Fixposition SDK: Common library.
Definition doc.hpp:21
Fixposition SDK.
UBX-ACK-ACK (version 0, output) payload.
Definition ubx.hpp:732
uint8_t msgId
Message ID of ack'ed message.
Definition ubx.hpp:734
uint8_t clsId
Class ID of ack'ed message.
Definition ubx.hpp:733
UBX-ACK-NCK (version 0, output) payload.
Definition ubx.hpp:750
uint8_t msgId
Message ID of not-ack'ed message.
Definition ubx.hpp:752
uint8_t clsId
Class ID of not-ack'ed message.
Definition ubx.hpp:751
UBX-CFG-CFG (version 0, command) message head.
Definition ubx.hpp:956
UBX-CFG-CFG (version 0, command) message optional group.
Definition ubx.hpp:966
UBX-CFG-RST (version 0, command) message payload.
Definition ubx.hpp:914
uint16_t navBbrMask
BBR sections to clear.
Definition ubx.hpp:915
UBX-CFG-VALDEL (version 1, input) message payload header.
Definition ubx.hpp:880
uint8_t reserved
Reserved (set to 0x00)
Definition ubx.hpp:884
uint8_t version
Message version (UBX_CFG_VALGET_V1_VERSION)
Definition ubx.hpp:881
UBX-CFG-VALGET (version 0, poll) message payload header.
Definition ubx.hpp:825
uint8_t version
Message version (UBX_CFG_VALGET_V0_VERSION)
Definition ubx.hpp:826
uint16_t position
Number of values to skip in result set.
Definition ubx.hpp:828
UBX-CFG-VALGET (version 1, output) message payload header.
Definition ubx.hpp:835
uint16_t position
Number of values to skip in result set.
Definition ubx.hpp:838
uint8_t version
Message version (UBX_CFG_VALGET_V1_VERSION)
Definition ubx.hpp:836
UBX-CFG-VALSET (version 0, input) message payload header.
Definition ubx.hpp:769
uint8_t reserved[2]
Reserved (set to 0x00)
Definition ubx.hpp:772
uint8_t version
Message version (UBX_CFG_VALSET_V1_VERSION)
Definition ubx.hpp:770
UBX-CFG-VALSET (version 1, input) message payload header.
Definition ubx.hpp:779
uint8_t version
Message version (UBX_CFG_VALSET_V1_VERSION)
Definition ubx.hpp:780
uint8_t reserved
Reserved (set to 0x00)
Definition ubx.hpp:783
UBX-ESF-MEAS (version 0, input and output) message head.
Definition ubx.hpp:994
UBX-ESF-MEAS (version 0, input and output) data.
Definition ubx.hpp:1004
UBX-ESF-MEAS (version 0, input and output) timetag.
Definition ubx.hpp:1012
UBX-ESF-STATUS (version 0, output) message head.
Definition ubx.hpp:1043
UBX-ESF-STATUS (version 0, output) per-sensor status.
Definition ubx.hpp:1058
UBX-MON-COMMS (version 0, output) payload head.
Definition ubx.hpp:1125
UBX-MON-COMMS (version 0, output) payload repeated group.
Definition ubx.hpp:1137
UBX-MON-HW (version 0, output) payload.
Definition ubx.hpp:1246
UBX-MON-HW3 (version 0, output) payload.
Definition ubx.hpp:1278
UBX-MON-HW3 (version 0, output) payload.
Definition ubx.hpp:1290
UBX-MON-HW (version 0, output)
Definition ubx.hpp:1192
UBX-MON-RF (version 0, output) payload head.
Definition ubx.hpp:1339
UBX-MON-RF (version 0, output) payload repeated group.
Definition ubx.hpp:1350
UBX-MON-RF (version 0, output) payload head.
Definition ubx.hpp:1403
UBX-MON-RF (version 0, output) payload repeated group.
Definition ubx.hpp:1415
uint8_t spectrum[UBX_MON_SPAN_V0_NUM_BINS]
Definition ubx.hpp:1416
UBX-MON-SYS (version 1, output) payload.
Definition ubx.hpp:1444
UBX-MON-TEMP (version 0, output) message payload (no docu available, but u-center shows it....
Definition ubx.hpp:1490
UBX-MON-VER (version 0, output) message payload header.
Definition ubx.hpp:1514
UBX-MON-VER (version 0, output) optional repeated field.
Definition ubx.hpp:1523
UBX-NAV-ATT (version 0, output) payload.
Definition ubx.hpp:1542
UBX-NAV-COV (version 0, output) payload head.
Definition ubx.hpp:1600
UBX-NAV-EELL (version 0, output) payload head.
Definition ubx.hpp:1666
UBX-NAV-EOE (version 0, output) payload.
Definition ubx.hpp:1696
UBX-NAV-HPPOSECEF (version 0, output) payload.
Definition ubx.hpp:1716
UBX-NAV-HPPOSLLH (version 0) payload.
Definition ubx.hpp:1752
UBX-NAV-POSECEF (version 0, output) payload.
Definition ubx.hpp:1793
UBX-NAV-PVT (version 1, output) payload.
Definition ubx.hpp:1818
UBX-NAV-RELPOSNED (version 1, output) payload.
Definition ubx.hpp:1903
UBX-NAV-SAT (version 1, output) payload head.
Definition ubx.hpp:1965
UBX-NAV-SAT (version 1, output) payload repeated group.
Definition ubx.hpp:1976
UBX-NAV-SIG (version 0, output) payload head.
Definition ubx.hpp:2018
UBX-NAV-SIG (version 0, output) payload repeated group.
Definition ubx.hpp:2029
UBX-RXM-RAWX (version 1, output) payload head.
Definition ubx.hpp:2391
UBX-RXM-RAWX (version 1, output) payload repeated group.
Definition ubx.hpp:2405
UBX-RXM-RTCM (version 2, output)
Definition ubx.hpp:2456
UBX-RXM-SFRBX (version 2, output) payload head.
Definition ubx.hpp:2486
uint8_t sigId
interface description says "reserved", but u-center says "sigId"...
Definition ubx.hpp:2489
UBX-RXM-SFRBX (version 2, output) payload repeated group.
Definition ubx.hpp:2501
UBX-RXM-SPARTN (version 1, output)
Definition ubx.hpp:2524
UBX class/message lookup table entry.
Definition ubx.hpp:604
uint8_t cls_id_
UBX class ID.
Definition ubx.hpp:605
uint8_t msg_id_
UBX message ID.
Definition ubx.hpp:606
const char * name_
UBX name.
Definition ubx.hpp:607
#define UBX_PACKED
Message struct that must be packed.
Definition ubx.hpp:57