Fixposition SDK 0.0.0-heads/main-0-g8934ce7
Collection of c++ libraries and apps for use with Fixposition products on Linux
Loading...
Searching...
No Matches
sbf.hpp
Go to the documentation of this file.
1/**
2 * \verbatim
3 * ___ ___
4 * \ \ / /
5 * \ \/ / Copyright (c) Fixposition AG (www.fixposition.com) and contributors
6 * / /\ \ License: see the LICENSE file
7 * /__/ \__\
8 *
9 * The information on message structures, IDs, descriptions etc. in this file are from publicly available data, such as:
10 * - mosaic-G5 Reference Guide, copyright 2000-2025 Septentrio NV/SA, part of HEXAGON
11 * (direct download link from https://www.ardusimple.com/how-to-configure-septentrio-mosaic-g5/#documentation)
12 * - sbf2asc source code, (c) Copyright 2002-2015 Septentrio NV/SA
13 * - https://github.com/septentrio-gnss/septentrio_gnss_driver
14 * - https://github.com/rtklibexplorer/RTKLIB
15 * \endverbatim
16 *
17 * @file
18 * @brief Fixposition SDK: Parser SBF routines and types
19 *
20 * @page FPSDK_COMMON_PARSER_SBF Parser SBF routines and types
21 *
22 * **API**: fpsdk_common/parser/sbf.hpp and fpsdk::common::parser::sbf
23 *
24 */
25#ifndef __FPSDK_COMMON_PARSER_SBF_HPP__
26#define __FPSDK_COMMON_PARSER_SBF_HPP__
27
28/* LIBC/STL */
29#include <cstdint>
30#include <limits>
31
32/* EXTERNAL */
33
34/* PACKAGE */
35
36namespace fpsdk {
37namespace common {
38namespace parser {
39/**
40 * @brief Parser SBF routines and types
41 */
42namespace sbf {
43/* ****************************************************************************************************************** */
44
45static constexpr uint8_t SBF_SYNC_1 = '$'; //!< Sync char 1 (like NMEA...)
46static constexpr uint8_t SBF_SYNC_2 = '@'; //!< Sync char 2
47static constexpr std::size_t SBF_HEAD_SIZE = 8; //!< Size of the SBF header (SbfHeader)
48
49/**
50 * @brief Get block type (message ID w/o revision)
51 *
52 * @param[in] msg Pointer to the start of the message
53 *
54 * @note No check on the data provided is done. The caller must ensure that the data is a valid SBF message.
55 *
56 * @returns block type
57 */
58constexpr uint16_t SbfBlockType(const uint8_t* msg)
59{
60 return (((uint16_t)((uint8_t*)msg)[5] << 8) | (uint16_t)((uint8_t*)msg)[4]) & 0x1fff;
61}
62
63/**
64 * @brief Get block revision
65 *
66 * @param[in] msg Pointer to the start of the message
67 *
68 * @note No check on the data provided is done. The caller must ensure that the data is a valid SBF message.
69 *
70 * @returns block type
71 */
72constexpr uint8_t SbfBlockRev(const uint8_t* msg)
73{
74 return ((uint8_t*)msg)[5] >> 5;
75}
76
77/**
78 * @brief Get message size
79 *
80 * @param[in] msg Pointer to the start of the message
81 *
82 * @note No check on the data provided is done. The caller must ensure that the data is a valid SBF message.
83 *
84 * @returns the message size
85 */
86constexpr uint16_t SbfMsgSize(const uint8_t* msg)
87{
88 return (((uint16_t)((uint8_t*)msg)[7] << 8) | (uint16_t)((uint8_t*)msg)[6]);
89}
90
91/**
92 * @brief Get SBF message name
93 *
94 * Generates a name (string) in the form "SBF-NAME", where NAME is a suitable stringifications of the
95 * message ID if known (for example, "SBF-NAVCART", respectively "%05u" formatted message ID if unknown (for
96 * example, "SBF-BLOCK01234").
97 *
98 * @param[out] name String to write the name to
99 * @param[in] size Size of \c name (incl. nul termination)
100 * @param[in] msg Pointer to the SBF message
101 * @param[in] msg_size Size of the \c msg
102 *
103 * @note No check on the data provided is done. The caller must ensure that the data is a valid SBF message.
104 *
105 * @returns true if message name was generated, false if \c name buffer was too small
106 */
107bool SbfGetMessageName(char* name, const std::size_t size, const uint8_t* msg, const std::size_t msg_size);
108
109/**
110 * @brief Get SBF message info
111 *
112 * This stringifies the content of some SBF messages, for debugging.
113 *
114 * @param[out] info String to write the info to
115 * @param[in] size Size of \c name (incl. nul termination)
116 * @param[in] msg Pointer to the SBF message
117 * @param[in] msg_size Size of the \c msg
118 *
119 * @note No check on the data provided is done. The caller must ensure that the data is a valid SBF message.
120 *
121 * @returns true if message info was generated (even if info is empty), false if \c name buffer was too small
122 */
123bool SbfGetMessageInfo(char* info, const std::size_t size, const uint8_t* msg, const std::size_t msg_size);
124
125/**
126 * @brief Get description for a SBF message
127 *
128 * @param[in] type Message block type
129 *
130 * @return the description of the message type, if available, NULL otherwise
131 */
132const char* SbfGetTypeDesc(const uint16_t type);
133
134// ---------------------------------------------------------------------------------------------------------------------
135
136/**
137 * @name SBF messages (names and IDs)
138 *
139 * @{
140 */
141// clang-format off
142// @fp_codegen_begin{FPSDK_COMMON_PARSER_SBF_MESSAGES}
143static constexpr uint16_t SBF_MEASEPOCH_MSGID = 4027; //!< SBF-MEASEPOCH message ID
144static constexpr const char* SBF_MEASEPOCH_STRID = "SBF-MEASEPOCH"; //!< SBF-MEASEPOCH message name
145static constexpr uint16_t SBF_MEASEXTRA_MSGID = 4000; //!< SBF-MEASEXTRA message ID
146static constexpr const char* SBF_MEASEXTRA_STRID = "SBF-MEASEXTRA"; //!< SBF-MEASEXTRA message name
147static constexpr uint16_t SBF_ENDOFMEAS_MSGID = 5922; //!< SBF-ENDOFMEAS message ID
148static constexpr const char* SBF_ENDOFMEAS_STRID = "SBF-ENDOFMEAS"; //!< SBF-ENDOFMEAS message name
149static constexpr uint16_t SBF_GPSRAWCA_MSGID = 4017; //!< SBF-GPSRAWCA message ID
150static constexpr const char* SBF_GPSRAWCA_STRID = "SBF-GPSRAWCA"; //!< SBF-GPSRAWCA message name
151static constexpr uint16_t SBF_GPSRAWL2C_MSGID = 4018; //!< SBF-GPSRAWL2C message ID
152static constexpr const char* SBF_GPSRAWL2C_STRID = "SBF-GPSRAWL2C"; //!< SBF-GPSRAWL2C message name
153static constexpr uint16_t SBF_GPSRAWL5_MSGID = 4019; //!< SBF-GPSRAWL5 message ID
154static constexpr const char* SBF_GPSRAWL5_STRID = "SBF-GPSRAWL5"; //!< SBF-GPSRAWL5 message name
155static constexpr uint16_t SBF_GPSRAWL1C_MSGID = 4221; //!< SBF-GPSRAWL1C message ID
156static constexpr const char* SBF_GPSRAWL1C_STRID = "SBF-GPSRAWL1C"; //!< SBF-GPSRAWL1C message name
157static constexpr uint16_t SBF_GLORAWCA_MSGID = 4026; //!< SBF-GLORAWCA message ID
158static constexpr const char* SBF_GLORAWCA_STRID = "SBF-GLORAWCA"; //!< SBF-GLORAWCA message name
159static constexpr uint16_t SBF_GALRAWFNAV_MSGID = 4022; //!< SBF-GALRAWFNAV message ID
160static constexpr const char* SBF_GALRAWFNAV_STRID = "SBF-GALRAWFNAV"; //!< SBF-GALRAWFNAV message name
161static constexpr uint16_t SBF_GALRAWINAV_MSGID = 4023; //!< SBF-GALRAWINAV message ID
162static constexpr const char* SBF_GALRAWINAV_STRID = "SBF-GALRAWINAV"; //!< SBF-GALRAWINAV message name
163static constexpr uint16_t SBF_GALRAWCNAV_MSGID = 4024; //!< SBF-GALRAWCNAV message ID
164static constexpr const char* SBF_GALRAWCNAV_STRID = "SBF-GALRAWCNAV"; //!< SBF-GALRAWCNAV message name
165static constexpr uint16_t SBF_GEORAWL1_MSGID = 4020; //!< SBF-GEORAWL1 message ID
166static constexpr const char* SBF_GEORAWL1_STRID = "SBF-GEORAWL1"; //!< SBF-GEORAWL1 message name
167static constexpr uint16_t SBF_GEORAWL5_MSGID = 4021; //!< SBF-GEORAWL5 message ID
168static constexpr const char* SBF_GEORAWL5_STRID = "SBF-GEORAWL5"; //!< SBF-GEORAWL5 message name
169static constexpr uint16_t SBF_BDSRAW_MSGID = 4047; //!< SBF-BDSRAW message ID
170static constexpr const char* SBF_BDSRAW_STRID = "SBF-BDSRAW"; //!< SBF-BDSRAW message name
171static constexpr uint16_t SBF_BDSRAWB1C_MSGID = 4218; //!< SBF-BDSRAWB1C message ID
172static constexpr const char* SBF_BDSRAWB1C_STRID = "SBF-BDSRAWB1C"; //!< SBF-BDSRAWB1C message name
173static constexpr uint16_t SBF_BDSRAWB2A_MSGID = 4219; //!< SBF-BDSRAWB2A message ID
174static constexpr const char* SBF_BDSRAWB2A_STRID = "SBF-BDSRAWB2A"; //!< SBF-BDSRAWB2A message name
175static constexpr uint16_t SBF_BDSRAWB2B_MSGID = 4242; //!< SBF-BDSRAWB2B message ID
176static constexpr const char* SBF_BDSRAWB2B_STRID = "SBF-BDSRAWB2B"; //!< SBF-BDSRAWB2B message name
177static constexpr uint16_t SBF_QZSRAWL1CA_MSGID = 4066; //!< SBF-QZSRAWL1CA message ID
178static constexpr const char* SBF_QZSRAWL1CA_STRID = "SBF-QZSRAWL1CA"; //!< SBF-QZSRAWL1CA message name
179static constexpr uint16_t SBF_QZSRAWL2C_MSGID = 4067; //!< SBF-QZSRAWL2C message ID
180static constexpr const char* SBF_QZSRAWL2C_STRID = "SBF-QZSRAWL2C"; //!< SBF-QZSRAWL2C message name
181static constexpr uint16_t SBF_QZSRAWL5_MSGID = 4068; //!< SBF-QZSRAWL5 message ID
182static constexpr const char* SBF_QZSRAWL5_STRID = "SBF-QZSRAWL5"; //!< SBF-QZSRAWL5 message name
183static constexpr uint16_t SBF_QZSRAWL6D_MSGID = 4270; //!< SBF-QZSRAWL6D message ID
184static constexpr const char* SBF_QZSRAWL6D_STRID = "SBF-QZSRAWL6D"; //!< SBF-QZSRAWL6D message name
185static constexpr uint16_t SBF_QZSRAWL6E_MSGID = 4271; //!< SBF-QZSRAWL6E message ID
186static constexpr const char* SBF_QZSRAWL6E_STRID = "SBF-QZSRAWL6E"; //!< SBF-QZSRAWL6E message name
187static constexpr uint16_t SBF_QZSRAWL1C_MSGID = 4227; //!< SBF-QZSRAWL1C message ID
188static constexpr const char* SBF_QZSRAWL1C_STRID = "SBF-QZSRAWL1C"; //!< SBF-QZSRAWL1C message name
189static constexpr uint16_t SBF_QZSRAWL1S_MSGID = 4228; //!< SBF-QZSRAWL1S message ID
190static constexpr const char* SBF_QZSRAWL1S_STRID = "SBF-QZSRAWL1S"; //!< SBF-QZSRAWL1S message name
191static constexpr uint16_t SBF_QZSRAWL5S_MSGID = 4246; //!< SBF-QZSRAWL5S message ID
192static constexpr const char* SBF_QZSRAWL5S_STRID = "SBF-QZSRAWL5S"; //!< SBF-QZSRAWL5S message name
193static constexpr uint16_t SBF_NAVICRAW_MSGID = 4093; //!< SBF-NAVICRAW message ID
194static constexpr const char* SBF_NAVICRAW_STRID = "SBF-NAVICRAW"; //!< SBF-NAVICRAW message name
195static constexpr uint16_t SBF_GPSNAV_MSGID = 5891; //!< SBF-GPSNAV message ID
196static constexpr const char* SBF_GPSNAV_STRID = "SBF-GPSNAV"; //!< SBF-GPSNAV message name
197static constexpr uint16_t SBF_GPSALM_MSGID = 5892; //!< SBF-GPSALM message ID
198static constexpr const char* SBF_GPSALM_STRID = "SBF-GPSALM"; //!< SBF-GPSALM message name
199static constexpr uint16_t SBF_GPSION_MSGID = 5893; //!< SBF-GPSION message ID
200static constexpr const char* SBF_GPSION_STRID = "SBF-GPSION"; //!< SBF-GPSION message name
201static constexpr uint16_t SBF_GPSUTC_MSGID = 5894; //!< SBF-GPSUTC message ID
202static constexpr const char* SBF_GPSUTC_STRID = "SBF-GPSUTC"; //!< SBF-GPSUTC message name
203static constexpr uint16_t SBF_GPSCNAV_MSGID = 4042; //!< SBF-GPSCNAV message ID
204static constexpr const char* SBF_GPSCNAV_STRID = "SBF-GPSCNAV"; //!< SBF-GPSCNAV message name
205static constexpr uint16_t SBF_GLONAV_MSGID = 4004; //!< SBF-GLONAV message ID
206static constexpr const char* SBF_GLONAV_STRID = "SBF-GLONAV"; //!< SBF-GLONAV message name
207static constexpr uint16_t SBF_GLOALM_MSGID = 4005; //!< SBF-GLOALM message ID
208static constexpr const char* SBF_GLOALM_STRID = "SBF-GLOALM"; //!< SBF-GLOALM message name
209static constexpr uint16_t SBF_GLOTIME_MSGID = 4036; //!< SBF-GLOTIME message ID
210static constexpr const char* SBF_GLOTIME_STRID = "SBF-GLOTIME"; //!< SBF-GLOTIME message name
211static constexpr uint16_t SBF_GALNAV_MSGID = 4002; //!< SBF-GALNAV message ID
212static constexpr const char* SBF_GALNAV_STRID = "SBF-GALNAV"; //!< SBF-GALNAV message name
213static constexpr uint16_t SBF_GALALM_MSGID = 4003; //!< SBF-GALALM message ID
214static constexpr const char* SBF_GALALM_STRID = "SBF-GALALM"; //!< SBF-GALALM message name
215static constexpr uint16_t SBF_GALION_MSGID = 4030; //!< SBF-GALION message ID
216static constexpr const char* SBF_GALION_STRID = "SBF-GALION"; //!< SBF-GALION message name
217static constexpr uint16_t SBF_GALUTC_MSGID = 4031; //!< SBF-GALUTC message ID
218static constexpr const char* SBF_GALUTC_STRID = "SBF-GALUTC"; //!< SBF-GALUTC message name
219static constexpr uint16_t SBF_GALGSTGPS_MSGID = 4032; //!< SBF-GALGSTGPS message ID
220static constexpr const char* SBF_GALGSTGPS_STRID = "SBF-GALGSTGPS"; //!< SBF-GALGSTGPS message name
221static constexpr uint16_t SBF_GALSARRLM_MSGID = 4034; //!< SBF-GALSARRLM message ID
222static constexpr const char* SBF_GALSARRLM_STRID = "SBF-GALSARRLM"; //!< SBF-GALSARRLM message name
223static constexpr uint16_t SBF_BDSNAV_MSGID = 4081; //!< SBF-BDSNAV message ID
224static constexpr const char* SBF_BDSNAV_STRID = "SBF-BDSNAV"; //!< SBF-BDSNAV message name
225static constexpr uint16_t SBF_BDSCNAV1_MSGID = 4251; //!< SBF-BDSCNAV1 message ID
226static constexpr const char* SBF_BDSCNAV1_STRID = "SBF-BDSCNAV1"; //!< SBF-BDSCNAV1 message name
227static constexpr uint16_t SBF_BDSCNAV2_MSGID = 4252; //!< SBF-BDSCNAV2 message ID
228static constexpr const char* SBF_BDSCNAV2_STRID = "SBF-BDSCNAV2"; //!< SBF-BDSCNAV2 message name
229static constexpr uint16_t SBF_BDSCNAV3_MSGID = 4253; //!< SBF-BDSCNAV3 message ID
230static constexpr const char* SBF_BDSCNAV3_STRID = "SBF-BDSCNAV3"; //!< SBF-BDSCNAV3 message name
231static constexpr uint16_t SBF_BDSALM_MSGID = 4119; //!< SBF-BDSALM message ID
232static constexpr const char* SBF_BDSALM_STRID = "SBF-BDSALM"; //!< SBF-BDSALM message name
233static constexpr uint16_t SBF_BDSION_MSGID = 4120; //!< SBF-BDSION message ID
234static constexpr const char* SBF_BDSION_STRID = "SBF-BDSION"; //!< SBF-BDSION message name
235static constexpr uint16_t SBF_BDSUTC_MSGID = 4121; //!< SBF-BDSUTC message ID
236static constexpr const char* SBF_BDSUTC_STRID = "SBF-BDSUTC"; //!< SBF-BDSUTC message name
237static constexpr uint16_t SBF_QZSNAV_MSGID = 4095; //!< SBF-QZSNAV message ID
238static constexpr const char* SBF_QZSNAV_STRID = "SBF-QZSNAV"; //!< SBF-QZSNAV message name
239static constexpr uint16_t SBF_QZSALM_MSGID = 4116; //!< SBF-QZSALM message ID
240static constexpr const char* SBF_QZSALM_STRID = "SBF-QZSALM"; //!< SBF-QZSALM message name
241static constexpr uint16_t SBF_NAVICLNAV_MSGID = 4254; //!< SBF-NAVICLNAV message ID
242static constexpr const char* SBF_NAVICLNAV_STRID = "SBF-NAVICLNAV"; //!< SBF-NAVICLNAV message name
243static constexpr uint16_t SBF_GEONAV_MSGID = 5896; //!< SBF-GEONAV message ID
244static constexpr const char* SBF_GEONAV_STRID = "SBF-GEONAV"; //!< SBF-GEONAV message name
245static constexpr uint16_t SBF_GEOALM_MSGID = 5897; //!< SBF-GEOALM message ID
246static constexpr const char* SBF_GEOALM_STRID = "SBF-GEOALM"; //!< SBF-GEOALM message name
247static constexpr uint16_t SBF_PVTCARTESIAN_MSGID = 4006; //!< SBF-PVTCARTESIAN message ID
248static constexpr const char* SBF_PVTCARTESIAN_STRID = "SBF-PVTCARTESIAN"; //!< SBF-PVTCARTESIAN message name
249static constexpr uint16_t SBF_PVTGEODETIC_MSGID = 4007; //!< SBF-PVTGEODETIC message ID
250static constexpr const char* SBF_PVTGEODETIC_STRID = "SBF-PVTGEODETIC"; //!< SBF-PVTGEODETIC message name
251static constexpr uint16_t SBF_POSCOVCARTESIAN_MSGID = 5905; //!< SBF-POSCOVCARTESIAN message ID
252static constexpr const char* SBF_POSCOVCARTESIAN_STRID = "SBF-POSCOVCARTESIAN"; //!< SBF-POSCOVCARTESIAN message name
253static constexpr uint16_t SBF_POSCOVGEODETIC_MSGID = 5906; //!< SBF-POSCOVGEODETIC message ID
254static constexpr const char* SBF_POSCOVGEODETIC_STRID = "SBF-POSCOVGEODETIC"; //!< SBF-POSCOVGEODETIC message name
255static constexpr uint16_t SBF_VELCOVCARTESIAN_MSGID = 5907; //!< SBF-VELCOVCARTESIAN message ID
256static constexpr const char* SBF_VELCOVCARTESIAN_STRID = "SBF-VELCOVCARTESIAN"; //!< SBF-VELCOVCARTESIAN message name
257static constexpr uint16_t SBF_VELCOVGEODETIC_MSGID = 5908; //!< SBF-VELCOVGEODETIC message ID
258static constexpr const char* SBF_VELCOVGEODETIC_STRID = "SBF-VELCOVGEODETIC"; //!< SBF-VELCOVGEODETIC message name
259static constexpr uint16_t SBF_DOP_MSGID = 4001; //!< SBF-DOP message ID
260static constexpr const char* SBF_DOP_STRID = "SBF-DOP"; //!< SBF-DOP message name
261static constexpr uint16_t SBF_BASEVECTORCART_MSGID = 4043; //!< SBF-BASEVECTORCART message ID
262static constexpr const char* SBF_BASEVECTORCART_STRID = "SBF-BASEVECTORCART"; //!< SBF-BASEVECTORCART message name
263static constexpr uint16_t SBF_BASEVECTORGEOD_MSGID = 4028; //!< SBF-BASEVECTORGEOD message ID
264static constexpr const char* SBF_BASEVECTORGEOD_STRID = "SBF-BASEVECTORGEOD"; //!< SBF-BASEVECTORGEOD message name
265static constexpr uint16_t SBF_PVTSUPPORT_MSGID = 4076; //!< SBF-PVTSUPPORT message ID
266static constexpr const char* SBF_PVTSUPPORT_STRID = "SBF-PVTSUPPORT"; //!< SBF-PVTSUPPORT message name
267static constexpr uint16_t SBF_PVTSUPPORTA_MSGID = 4079; //!< SBF-PVTSUPPORTA message ID
268static constexpr const char* SBF_PVTSUPPORTA_STRID = "SBF-PVTSUPPORTA"; //!< SBF-PVTSUPPORTA message name
269static constexpr uint16_t SBF_ENDOFPVT_MSGID = 5921; //!< SBF-ENDOFPVT message ID
270static constexpr const char* SBF_ENDOFPVT_STRID = "SBF-ENDOFPVT"; //!< SBF-ENDOFPVT message name
271static constexpr uint16_t SBF_NAVCART_MSGID = 4272; //!< SBF-NAVCART message ID
272static constexpr const char* SBF_NAVCART_STRID = "SBF-NAVCART"; //!< SBF-NAVCART message name
273static constexpr uint16_t SBF_ATTEULER_MSGID = 5938; //!< SBF-ATTEULER message ID
274static constexpr const char* SBF_ATTEULER_STRID = "SBF-ATTEULER"; //!< SBF-ATTEULER message name
275static constexpr uint16_t SBF_ATTCOVEULER_MSGID = 5939; //!< SBF-ATTCOVEULER message ID
276static constexpr const char* SBF_ATTCOVEULER_STRID = "SBF-ATTCOVEULER"; //!< SBF-ATTCOVEULER message name
277static constexpr uint16_t SBF_AUXANTPOSITIONS_MSGID = 5942; //!< SBF-AUXANTPOSITIONS message ID
278static constexpr const char* SBF_AUXANTPOSITIONS_STRID = "SBF-AUXANTPOSITIONS"; //!< SBF-AUXANTPOSITIONS message name
279static constexpr uint16_t SBF_ENDOFATT_MSGID = 5943; //!< SBF-ENDOFATT message ID
280static constexpr const char* SBF_ENDOFATT_STRID = "SBF-ENDOFATT"; //!< SBF-ENDOFATT message name
281static constexpr uint16_t SBF_RECEIVERTIME_MSGID = 5914; //!< SBF-RECEIVERTIME message ID
282static constexpr const char* SBF_RECEIVERTIME_STRID = "SBF-RECEIVERTIME"; //!< SBF-RECEIVERTIME message name
283static constexpr uint16_t SBF_XPPSOFFSET_MSGID = 5911; //!< SBF-XPPSOFFSET message ID
284static constexpr const char* SBF_XPPSOFFSET_STRID = "SBF-XPPSOFFSET"; //!< SBF-XPPSOFFSET message name
285static constexpr uint16_t SBF_EXTEVENT_MSGID = 5924; //!< SBF-EXTEVENT message ID
286static constexpr const char* SBF_EXTEVENT_STRID = "SBF-EXTEVENT"; //!< SBF-EXTEVENT message name
287static constexpr uint16_t SBF_EXTEVENTPVTCARTESIAN_MSGID = 4037; //!< SBF-EXTEVENTPVTCARTESIAN message ID
288static constexpr const char* SBF_EXTEVENTPVTCARTESIAN_STRID = "SBF-EXTEVENTPVTCARTESIAN"; //!< SBF-EXTEVENTPVTCARTESIAN message name
289static constexpr uint16_t SBF_EXTEVENTPVTGEODETIC_MSGID = 4038; //!< SBF-EXTEVENTPVTGEODETIC message ID
290static constexpr const char* SBF_EXTEVENTPVTGEODETIC_STRID = "SBF-EXTEVENTPVTGEODETIC"; //!< SBF-EXTEVENTPVTGEODETIC message name
291static constexpr uint16_t SBF_EXTEVENTBASEVECTGEOD_MSGID = 4217; //!< SBF-EXTEVENTBASEVECTGEOD message ID
292static constexpr const char* SBF_EXTEVENTBASEVECTGEOD_STRID = "SBF-EXTEVENTBASEVECTGEOD"; //!< SBF-EXTEVENTBASEVECTGEOD message name
293static constexpr uint16_t SBF_EXTEVENTATTEULER_MSGID = 4237; //!< SBF-EXTEVENTATTEULER message ID
294static constexpr const char* SBF_EXTEVENTATTEULER_STRID = "SBF-EXTEVENTATTEULER"; //!< SBF-EXTEVENTATTEULER message name
295static constexpr uint16_t SBF_DIFFCORRIN_MSGID = 5919; //!< SBF-DIFFCORRIN message ID
296static constexpr const char* SBF_DIFFCORRIN_STRID = "SBF-DIFFCORRIN"; //!< SBF-DIFFCORRIN message name
297static constexpr uint16_t SBF_BASESTATION_MSGID = 5949; //!< SBF-BASESTATION message ID
298static constexpr const char* SBF_BASESTATION_STRID = "SBF-BASESTATION"; //!< SBF-BASESTATION message name
299static constexpr uint16_t SBF_LBANDTRACKERSTATUS_MSGID = 4201; //!< SBF-LBANDTRACKERSTATUS message ID
300static constexpr const char* SBF_LBANDTRACKERSTATUS_STRID = "SBF-LBANDTRACKERSTATUS"; //!< SBF-LBANDTRACKERSTATUS message name
301static constexpr uint16_t SBF_LBANDRAW_MSGID = 4212; //!< SBF-LBANDRAW message ID
302static constexpr const char* SBF_LBANDRAW_STRID = "SBF-LBANDRAW"; //!< SBF-LBANDRAW message name
303static constexpr uint16_t SBF_CHANNELSTATUS_MSGID = 4013; //!< SBF-CHANNELSTATUS message ID
304static constexpr const char* SBF_CHANNELSTATUS_STRID = "SBF-CHANNELSTATUS"; //!< SBF-CHANNELSTATUS message name
305static constexpr uint16_t SBF_RECEIVERSTATUS_MSGID = 4014; //!< SBF-RECEIVERSTATUS message ID
306static constexpr const char* SBF_RECEIVERSTATUS_STRID = "SBF-RECEIVERSTATUS"; //!< SBF-RECEIVERSTATUS message name
307static constexpr uint16_t SBF_SATVISIBILITY_MSGID = 4012; //!< SBF-SATVISIBILITY message ID
308static constexpr const char* SBF_SATVISIBILITY_STRID = "SBF-SATVISIBILITY"; //!< SBF-SATVISIBILITY message name
309static constexpr uint16_t SBF_INPUTLINK_MSGID = 4090; //!< SBF-INPUTLINK message ID
310static constexpr const char* SBF_INPUTLINK_STRID = "SBF-INPUTLINK"; //!< SBF-INPUTLINK message name
311static constexpr uint16_t SBF_OUTPUTLINK_MSGID = 4091; //!< SBF-OUTPUTLINK message ID
312static constexpr const char* SBF_OUTPUTLINK_STRID = "SBF-OUTPUTLINK"; //!< SBF-OUTPUTLINK message name
313static constexpr uint16_t SBF_QUALITYIND_MSGID = 4082; //!< SBF-QUALITYIND message ID
314static constexpr const char* SBF_QUALITYIND_STRID = "SBF-QUALITYIND"; //!< SBF-QUALITYIND message name
315static constexpr uint16_t SBF_DISKSTATUS_MSGID = 4059; //!< SBF-DISKSTATUS message ID
316static constexpr const char* SBF_DISKSTATUS_STRID = "SBF-DISKSTATUS"; //!< SBF-DISKSTATUS message name
317static constexpr uint16_t SBF_RFSTATUS_MSGID = 4092; //!< SBF-RFSTATUS message ID
318static constexpr const char* SBF_RFSTATUS_STRID = "SBF-RFSTATUS"; //!< SBF-RFSTATUS message name
319static constexpr uint16_t SBF_GALAUTHSTATUS_MSGID = 4245; //!< SBF-GALAUTHSTATUS message ID
320static constexpr const char* SBF_GALAUTHSTATUS_STRID = "SBF-GALAUTHSTATUS"; //!< SBF-GALAUTHSTATUS message name
321static constexpr uint16_t SBF_RECEIVERSETUP_MSGID = 5902; //!< SBF-RECEIVERSETUP message ID
322static constexpr const char* SBF_RECEIVERSETUP_STRID = "SBF-RECEIVERSETUP"; //!< SBF-RECEIVERSETUP message name
323static constexpr uint16_t SBF_RXMESSAGE_MSGID = 4103; //!< SBF-RXMESSAGE message ID
324static constexpr const char* SBF_RXMESSAGE_STRID = "SBF-RXMESSAGE"; //!< SBF-RXMESSAGE message name
325static constexpr uint16_t SBF_COMMANDS_MSGID = 4015; //!< SBF-COMMANDS message ID
326static constexpr const char* SBF_COMMANDS_STRID = "SBF-COMMANDS"; //!< SBF-COMMANDS message name
327static constexpr uint16_t SBF_COMMENT_MSGID = 5936; //!< SBF-COMMENT message ID
328static constexpr const char* SBF_COMMENT_STRID = "SBF-COMMENT"; //!< SBF-COMMENT message name
329static constexpr uint16_t SBF_BBSAMPLES_MSGID = 4040; //!< SBF-BBSAMPLES message ID
330static constexpr const char* SBF_BBSAMPLES_STRID = "SBF-BBSAMPLES"; //!< SBF-BBSAMPLES message name
331static constexpr uint16_t SBF_ASCIIIN_MSGID = 4075; //!< SBF-ASCIIIN message ID
332static constexpr const char* SBF_ASCIIIN_STRID = "SBF-ASCIIIN"; //!< SBF-ASCIIIN message name
333// @fp_codegen_end{FPSDK_COMMON_PARSER_SBF_MESSAGES}
334// clang-format on
335///@}
336
337// ---------------------------------------------------------------------------------------------------------------------
338
339/**
340 * @brief SBF block header
341 */
343{ // clang-format off
344 uint8_t sync1; //!< = SBF_SYNC_1
345 uint8_t sync2; //!< = SBF_SYNC_2
346 uint16_t id; //!< Block (message) type (bits 0..12) and version (bits 13..15)
347 uint16_t crc; //!< CRC
348 uint16_t length; //!< Block (payload) size
349}; // clang-format on
350
351static_assert(sizeof(SbfHeader) == SBF_HEAD_SIZE, "");
352
353// ---------------------------------------------------------------------------------------------------------------------
354
355// Doxygen is easily confused.. :-/
356//! Message struct that must be packed
357#ifndef _DOXYGEN_
358# define SFB_PACKED __attribute__((packed))
359#else
360# define SFB_PACKED /* packed */
361#endif
362
363// clang-format off
364static constexpr int8_t SBF_DONOTUSE_INT8 = std::numeric_limits<int8_t>::min(); //!< Do-not-use value for int8_t
365static constexpr int16_t SBF_DONOTUSE_INT16 = std::numeric_limits<int16_t>::min(); //!< Do-not-use value for int16_t
366static constexpr int32_t SBF_DONOTUSE_INT32 = std::numeric_limits<int32_t>::min(); //!< Do-not-use value for int32_t
367static constexpr int8_t SBF_DONOTUSE_UINT8 = std::numeric_limits<uint8_t>::min(); //!< Do-not-use value for uint8_t
368static constexpr uint16_t SBF_DONOTUSE_UINT16 = std::numeric_limits<uint16_t>::max(); //!< Do-not-use value for uint16_t
369static constexpr uint32_t SBF_DONOTUSE_UINT32 = std::numeric_limits<uint32_t>::max(); //!< Do-not-use value for uint32_t
370static constexpr float SBF_DONOTUSE_FLOAT = -2e10f; //!< Do-not-use value for float
371static constexpr double SBF_DONOTUSE_DOUBLE = -2e10; //!< Do-not-use value for double
372
373static constexpr bool SbfDoNotUse(const int8_t val) { return val == SBF_DONOTUSE_INT8; } //!< Check if value is do-not-use
374static constexpr bool SbfDoNotUse(const int16_t val) { return val == SBF_DONOTUSE_INT16; } //!< Check if value is do-not-use
375static constexpr bool SbfDoNotUse(const int32_t val) { return val == SBF_DONOTUSE_INT32; } //!< Check if value is do-not-use
376static constexpr bool SbfDoNotUse(const uint8_t val) { return val == SBF_DONOTUSE_UINT8; } //!< Check if value is do-not-use
377static constexpr bool SbfDoNotUse(const uint16_t val) { return val == SBF_DONOTUSE_UINT16; } //!< Check if value is do-not-use
378static constexpr bool SbfDoNotUse(const uint32_t val) { return val == SBF_DONOTUSE_UINT32; } //!< Check if value is do-not-use
379static constexpr bool SbfDoNotUse(const double val) { return val == SBF_DONOTUSE_FLOAT; } //!< Check if value is do-not-use
380static constexpr bool SbfDoNotUse(const float val) { return val == SBF_DONOTUSE_DOUBLE; } //!< Check if value is do-not-use
381// clang-format on
382
383// ---------------------------------------------------------------------------------------------------------------------
384
385// clang-format off
386static constexpr uint8_t SBF_MODEPVT_SOL(const uint8_t mode) { return mode & 0x0f; } //!< GNSS PVT mode
387static constexpr uint8_t SBF_MODEPVT_SOL_NO_GNSS_PVT = 0; //!< No GNSS PVT available (the Error field indicates the cause of the absence of the PVT solution)
388static constexpr uint8_t SBF_MODEPVT_SOL_STANDALONE_PVT = 1; //!< Stand-Alone PVT
389static constexpr uint8_t SBF_MODEPVT_SOL_DIFFERENTIAL_PVT = 2; //!< Differential PVT
390static constexpr uint8_t SBF_MODEPVT_SOL_FIXED_LOCATION = 3; //!< Fixed location
391static constexpr uint8_t SBF_MODEPVT_SOL_RTK_FIXED = 4; //!< RTK with fixed ambiguities
392static constexpr uint8_t SBF_MODEPVT_SOL_RTK_FLOAT = 5; //!< RTK with float ambiguities
393static constexpr uint8_t SBF_MODEPVT_SOL_SBAS_AIDED_PVT = 6; //!< SBAS aided PVT
394static constexpr uint8_t SBF_MODEPVT_SOL_MOVINGBASE_RTK_FIXED = 7; //!< moving-base RTK with fixed ambiguities
395static constexpr uint8_t SBF_MODEPVT_SOL_MOVINGBASE_RTK_FLOAT = 8; //!< moving-base RTK with float ambiguities
396static constexpr uint8_t SBF_MODEPVT_SOL_RESERVED0 = 9; //!< Reserved
397static constexpr uint8_t SBF_MODEPVT_SOL_PPP = 10; //!< Precise point positioning (PPP)
398static constexpr uint8_t SBF_MODEPVT_SOL_RESERVED1 = 12; //!< Reserved
399static constexpr bool SBF_MODEPVT_IS2D(const uint8_t mode) { return (mode & 0x80) == 0x80; } //!< true = 2D mode, false = 3D mode
400// clang-format on
401
402// ---------------------------------------------------------------------------------------------------------------------
403
404// clang-format off
405static constexpr uint8_t SBF_ERRORPVT_NO_ERROR = 0; //!< No Error
406static constexpr uint8_t SBF_ERRORPVT_NOT_ENOUGH_MEAS = 1; //!< Not enough measurements
407static constexpr uint8_t SBF_ERRORPVT_NOT_ENOUGH_EPH = 2; //!< Not enough ephemerides available
408static constexpr uint8_t SBF_ERRORPVT_DOP_TOO_LARGE = 3; //!< DOP too large (larger than 15)
409static constexpr uint8_t SBF_ERRORPVT_RESIDUALS_TOO_LARGE = 4; //!< Sum of squared residuals too large
410static constexpr uint8_t SBF_ERRORPVT_NO_CONVERGENCE = 5; //!< No convergence
411static constexpr uint8_t SBF_ERRORPVT_TOO_MANY_OUTLIERS = 6; //!< Not enough measurements after outlier rejection
412static constexpr uint8_t SBF_ERRORPVT_POS_OUTPUT_PROHIB = 7; //!< Position output prohibited due to export laws
413static constexpr uint8_t SBF_ERRORPVT_NOT_ENOUGH_CORR = 8; //!< Not enough differential corrections available
414static constexpr uint8_t SBF_ERRORPVT_NO_BASE_COORD = 9; //!< Base station coordinates unavailable
415static constexpr uint8_t SBF_ERRORPVT_AMBIGUITIES_UNFIXED = 10; //!< Ambiguities not fixed and user requested to only output RTK-fixed positions
416// clang-format on
417
418// ---------------------------------------------------------------------------------------------------------------------
419
420// clang-format off
421static constexpr uint8_t SBF_TIMESYSTEM_GPS = 0; //!< GPS time
422static constexpr uint8_t SBF_TIMESYSTEM_GAL = 1; //!< Galileo time
423static constexpr uint8_t SBF_TIMESYSTEM_GLO = 3; //!< GLONASS time
424static constexpr uint8_t SBF_TIMESYSTEM_BDS = 4; //!< BeiDou time
425static constexpr uint8_t SBF_TIMESYSTEM_QZSS = 5; //!< QZSS time
426static constexpr uint8_t SBF_TIMESYSTEM_FUGRO = 100; //!< Fugro AtomiChron time
427// clang-format on
428
429// ---------------------------------------------------------------------------------------------------------------------
430
431// clang-format off
432static constexpr uint8_t SBF_DATUM_WGS84_ITRS = 0; //!< WGS84/ITRS
433static constexpr uint8_t SBF_DATUM_DGNSS_BASE = 19; //!< Datum equal to that used by the DGNSS/RTK base station
434static constexpr uint8_t SBF_DATUM_ETRS89 = 30; //!< ETRS89 (ETRF2000 realization)
435static constexpr uint8_t SBF_DATUM_NAD83 = 31; //!< NAD83(2011), North American Datum (2011)
436static constexpr uint8_t SBF_DATUM_NAD83_PA11 = 32; //!< NAD83(PA11), North American Datum, Pacific plate (2011)
437static constexpr uint8_t SBF_DATUM_NAD83_MA11 = 33; //!< NAD83(MA11), North American Datum, Marianas plate (2011)
438static constexpr uint8_t SBF_DATUM_QDA94 = 34; //!< GDA94(2010), Geocentric Datum of Australia (2010)
439static constexpr uint8_t SBF_DATUM_QDA2020 = 35; //!< GDA2020, Geocentric Datum of Australia 2020
440static constexpr uint8_t SBF_DATUM_JGD2011 = 36; //!< JGD2011, Japanese Geodetic Datum 2011
441static constexpr uint8_t SBF_DATUM_USER1 = 250; //!< First user-defined datum
442static constexpr uint8_t SBF_DATUM_USER2 = 251; //!< Second user-defined datum
443// clang-format on
444
445// ---------------------------------------------------------------------------------------------------------------------
446
447// clang-format off
448static constexpr bool SBF_WACORRINFO_ORBCLK_USED(const uint8_t info) { return (info & 0x01) == 0x01; } //!< Set if orbit and satellite clock correction information is used
449static constexpr bool SBF_WACORRINFO_RANGECORR_USED(const uint8_t info) { return (info & 0x02) == 0x02; } //!< Set if range correction information is used
450static constexpr bool SBF_WACORRINFO_IONO_USED(const uint8_t info) { return (info & 0x04) == 0x04; } //!< Set if ionospheric information is used
451static constexpr bool SBF_WACORRINFO_ORBACC_USED(const uint8_t info) { return (info & 0x08) == 0x08; } //!< Set if orbit accuracy information is used (UERE/SISA)
452static constexpr bool SBF_WACORRINFO_DO229_USED(const uint8_t info) { return (info & 0x10) == 0x10; } //!< Set if DO229 Precision Approach mode is active
453static constexpr uint8_t SBF_WACORRINFO_CORRTYPE(const uint8_t info) { return (info >> 4) & 0x03; } //!< Which corrections have been applied
454static constexpr uint8_t SBF_WACORRINFO_CORRTYPE_UNKNOWN = 0; //!< Unknown or not in differential positioning mode
455static constexpr uint8_t SBF_WACORRINFO_CORRTYPE_CORS = 1; //!< Corrections from a physical base
456static constexpr uint8_t SBF_WACORRINFO_CORRTYPE_VRS = 2; //!< Corrections from a virtual base (VRS)
457static constexpr uint8_t SBF_WACORRINFO_CORRTYPE_SSR = 3; //!< SSR corrections
458// clang-format on
459
460// ---------------------------------------------------------------------------------------------------------------------
461
462// clang-format off
463static constexpr uint8_t SBF_ALERTFLAG_RAIM(const uint8_t flag) { return flag & 0x03; } //!< RAIM integrity flag
464static constexpr uint8_t SBF_ALERTFLAG_RAIM_NOTACTIVE = 0; //!< RAIM not active
465static constexpr uint8_t SBF_ALERTFLAG_RAIM_SUCESSFUL = 1; //!< RAIM integrity test successful
466static constexpr uint8_t SBF_ALERTFLAG_RAIM_FAILED = 2; //!< RAIM integrity test failed
467static constexpr bool SBF_ALERTFLAG_GALHPCAFAIL(const uint8_t flag) { return (flag & 0x04) == 0x04; } //!< Galileo GPCA failed
468static constexpr bool SBF_ALERTFLAG_GALIONOSTORM(const uint8_t flag) { return (flag & 0x08) == 0x08; } //!< Galileo ionospheric storm flag
469// clang-format on
470
471// ---------------------------------------------------------------------------------------------------------------------
472
473// clang-format off
474static constexpr uint16_t SBF_PPPINFO_AGEOFLASTSEED(const uint16_t flag) { return flag & 0x0fff; } //!< Age of last seed [s]
475static constexpr uint8_t SBF_PPPINFO_TYPEOFLASTSEED(const uint16_t flag) { return (flag >> 13) & 0x03; } //!< Type of last seed
476static constexpr uint8_t SBF_PPPINFO_TYPEOFLASTSEED_NONE = 0; //!< Not seeded
477static constexpr uint8_t SBF_PPPINFO_TYPEOFLASTSEED_MANUAL = 1; //!< Manual seed
478static constexpr uint8_t SBF_PPPINFO_TYPEOFLASTSEED_DGNSS = 2; //!< Seeded from DGNSS
479static constexpr uint8_t SBF_PPPINFO_TYPEOFLASTSEED_RTKFIXED = 3; //!< Seeded from RTK fixed
480// clang-format on
481
482// ---------------------------------------------------------------------------------------------------------------------
483
484// clang-format off
485static constexpr bool SBF_MISC_BASELINEARP(const uint8_t flag) { return (flag & 0x01) == 0x01; } //!< Baseline points to base station ARP
486static constexpr bool SBF_MISC_ROVERBASEOFFS(const uint8_t flag) { return (flag & 0x02) == 0x02; } //!< Rover phase center offset compensated
487static constexpr uint8_t SBF_MISC_MARKER(const uint8_t flag) { return (flag >> 6) & 0x03; } //!< Marker position
488static constexpr uint8_t SBF_MISC_MARKER_UNKNOWN = 0; //!< Unknown
489static constexpr uint8_t SBF_MISC_MARKER_ARPZERO = 1; //!< ARP-to-marker offset is zero
490static constexpr uint8_t SBF_MISC_MARKER_ARPNONZERO = 2; //!< ARP-to-marker offset is not zero
491// clang-format on
492
493// ---------------------------------------------------------------------------------------------------------------------
494
495// clang-format off
496static constexpr uint8_t SBF_MODEATT_NO_ATT = 0; //!< No attitude
497static constexpr uint8_t SBF_MODEATT_HDG_PITCH_FLOAT = 1; //!< Heading and pitch from float ambiguities
498static constexpr uint8_t SBF_MODEATT_HDG_PITCH_FIXED = 2; //!< Heading and pitch from fixed ambiguities
499static constexpr uint8_t SBF_MODEATT_HDG_PITCH_ROLL_FLOAT = 3; //!< Heading, pitch and roll from float ambiguities
500static constexpr uint8_t SBF_MODEATT_HDG_PITCH_ROLL_FIXED = 4; //!< Heading, pitch and roll from fixed ambiguities
501// clang-format on
502
503// ---------------------------------------------------------------------------------------------------------------------
504
505// clang-format off
506static constexpr uint8_t SBF_ERRORATT_AUX1(const uint8_t mode) { return mode & 0x03; } //!< Error code for Main-Aux1 baseline
507static constexpr uint8_t SBF_ERRORATT_AUX1_NO_ERROR = 0; //!< No error
508static constexpr uint8_t SBF_ERRORATT_AUX1_NOT_ENOUGH_MEAS = 1; //!< Not enough measurements
509static constexpr uint8_t SBF_ERRORATT_AUX1_RESERVED0 = 2; //!< Reserved
510static constexpr uint8_t SBF_ERRORATT_AUX1_RESERVED1 = 3; //!< Reserved
511static constexpr uint8_t SBF_ERRORATT_AUX2(const uint8_t mode) { return (mode >> 2) & 0x03; } //!< Error code for Main-Aux2 baseline
512static constexpr uint8_t SBF_ERRORATT_AUX2_NO_ERROR = 0; //!< No error
513static constexpr uint8_t SBF_ERRORATT_AUX2_NOT_ENOUGH_MEAS = 1; //!< Not enough measurements
514static constexpr uint8_t SBF_ERRORATT_AUX2_RESERVED0 = 2; //!< Reserved
515static constexpr uint8_t SBF_ERRORATT_AUX2_RESERVED1 = 3; //!< Reserved
516static constexpr bool SBF_ERRORATT_NO_ATT(const uint8_t mode) { return (mode & 0x80) == 0x80; } //!< GNSS-based attitude not requested by user
517// clang-format on
518
519// ---------------------------------------------------------------------------------------------------------------------
520
521/**
522 * @brief SBF PVTGeodetic payload (rev 2)
523 */
525{ // clang-format off
526 uint32_t TOW; //!< GPS time of week [ms]
527 uint16_t WNc; //!< GPS week number
528 uint8_t Mode; //!< -> SBF_MODEPVT_...
529 uint8_t Error; //!< -> SBF_ERRORPVT_...
530 double Latitude; //!< Latitude [rad]
531 double Longitude; //!< Longitude [rad]
532 double Height; //!< Ellips. height [m]
533 float Undulation; //!< Geoid undilation [m]
534 float Vn; //!< Velocity north [m/s]
535 float Ve; //!< Velocity east [m/s]
536 float Vu; //!< Velocity up [m/s]
537 float COG; //!< Course over ground [deg]
538 double RxClkBias; //!< Receiver clock bias [ms]
539 float RxClkDrift; //!< Receiver clock drift [ppm]
540 uint8_t TimeSystem; //!< -> SBF_TIMESYSTEM_...
541 uint8_t Datum; //!< -> SBF_DATUM_...
542 uint8_t NrSV; //!< Number of satellites used
543 uint8_t WACorrInfo; //!< Applied corrections (bitfield)
544 uint16_t ReferenceID; //!< Reference station ID
545 uint16_t MeanCorrAge; //!< Mean age of corrections [0.01s]
546 uint32_t SignalInfo; //!< Used signals (bitmask)
547 uint8_t AlertFlag; //!< -> SBF_ALERTFLAG_...
548 // Rev 1
549 uint8_t NrBases; //!< Number of basestations used
550 uint16_t PPPInfo; //!< -> SBF_PPPINFO_...
551 // Rev 2
552 uint16_t Latency; //!< Latency [0.0001s]
553 uint16_t HAccuracy; //!< 2DRMS horizontal accuracy estimate [0.01m]
554 uint16_t VAccuracy; //!< 2-sigma vertical accuracy estimate [0.01m]
555 uint8_t Misc; //!< -> SBF_MISC_...
556 uint8_t padding[1]; //!< Padding
557}; // clang-format on
558
559static_assert(sizeof(SbfPvtGeodeticRev2) == 88, "");
560
561// clang-format off
562static constexpr std::size_t SBF_PVTGEODETIC_REV2_SIZE = sizeof(SbfPvtGeodeticRev2) + SBF_HEAD_SIZE; //!< Size of PVTGeodetic rev 2 message
563// clang-format on
564
565// ---------------------------------------------------------------------------------------------------------------------
566
567/**
568 * @brief SBF PVTCartesian payload (rev 2)
569 */
571{ // clang-format off
572 uint32_t TOW; //!< GPS time of week [ms]
573 uint16_t WNc; //!< GPS week number
574 uint8_t Mode; //!< -> SBF_MODEPVT_...
575 uint8_t Error; //!< -> SBF_ERRORPVT_...
576 double X; //!< X coordinate in coordinate frame specified by Datum [m]
577 double Y; //!< Y coordinate in coordinate frame specified by Datum [m]
578 double Z; //!< Z coordinate in coordinate frame specified by Datum [m]
579 float Undulation; //!< Geoid undilation [m]
580 float Vx; //!< Velocity X [m/s]
581 float Vy; //!< Velocity Y [m/s]
582 float Vz; //!< Velocity Z [m/s]
583 float COG; //!< Course over ground [deg]
584 double RxClkBias; //!< Receiver clock bias [ms]
585 float RxClkDrift; //!< Receiver clock drift [ppm]
586 uint8_t TimeSystem; //!< -> SBF_TIMESYSTEM_...
587 uint8_t Datum; //!< -> SBF_DATUM_...
588 uint8_t NrSV; //!< Number of satellites used
589 uint8_t WACorrInfo; //!< Applied corrections (bitfield)
590 uint16_t ReferenceID; //!< Reference station ID
591 uint16_t MeanCorrAge; //!< Mean age of corrections [0.01s]
592 uint32_t SignalInfo; //!< Used signals (bitmask)
593 uint8_t AlertFlag; //!< -> SBF_ALERTFLAG_...
594 // Rev 1
595 uint8_t NrBases; //!< Number of basestations used
596 uint16_t PPPInfo; //!< -> SBF_PPPINFO_...
597 // Rev 2
598 uint16_t Latency; //!< Latency [0.0001s]
599 uint16_t HAccuracy; //!< 2DRMS horizontal accuracy estimate [0.01m]
600 uint16_t VAccuracy; //!< 2-sigma vertical accuracy estimate [0.01m]
601 uint8_t Misc; //!< -> SBF_MISC_...
602 uint8_t padding[1]; //!< Padding
603}; // clang-format on
604
605static_assert(sizeof(SbfPvtCartesianRev2) == 88, "");
606
607// clang-format off
608static constexpr std::size_t SBF_PVTCARTESIAN_REV2_SIZE = sizeof(SbfPvtCartesianRev2) + SBF_HEAD_SIZE; //!< Size of PVTCartesian rev 2 message
609// clang-format on
610
611// ---------------------------------------------------------------------------------------------------------------------
612
613/**
614 * @brief SBF NavCart payload (rev 0)
615 */
617{ // clang-format off
618 uint32_t TOW; //!< GPS time of week [ms]
619 uint16_t WNc; //!< GPS week number
620 uint8_t Mode; //!< -> SBF_PVTMODE_...
621 uint8_t Error; //!< -> SBF_PVTERROR_
622 double X; //!< X coordinate in coordinate frame specified by Datum [m]
623 double Y; //!< Y coordinate in coordinate frame specified by Datum [m]
624 double Z; //!< Z coordinate in coordinate frame specified by Datum [m]
625 float Undulation; //!< Geoid undilation [m]
626 float Vx; //!< Velocity X [m/s]
627 float Vy; //!< Velocity Y [m/s]
628 float Vz; //!< Velocity Z [m/s]
629 float COG; //!< Course over ground [deg]
630 double RxClkBias; //!< Receiver clock bias [ms]
631 float RxClkDrift; //!< Receiver clock drift [ppm]
632 uint8_t TimeSystem; //!< -> SBF_TIMESYSTEM_...
633 uint8_t Datum; //!< -> SBF_DATUM_...
634 uint8_t NrSV; //!< Number of satellites used
635 uint8_t WACorrInfo; //!< Applied corrections (bitfield)
636 uint16_t ReferenceID; //!< Reference station ID
637 uint16_t MeanCorrAge; //!< Mean age of corrections [0.01s]
638 uint64_t SignalInfo; //!< Used signals (bitmask)
639 uint8_t AlertFlag; //!< -> SBF_ALERTFLAG_...
640 uint8_t NrBases; //!< Number of basestations used
641 uint16_t PPPInfo; //!< -> SBF_PPPINFO_...
642 uint16_t Latency; //!< Latency [0.0001s]
643 uint16_t PosHAcc; //!< 2DRMS horizontal position accuracy estimate [0.01m]
644 uint16_t PosVAcc; //!< 2-sigma vertical position accuracy estimate [0.01m]
645 uint16_t VelHAcc; //!< 2DRMS horizontal velocity accuracy estimate [0.01m]
646 uint16_t VelVacc; //!< 2-sigma vertical velocity accuracy estimate [0.01m]
647 uint8_t Misc; //!< -> SBF_MISC_...
648 uint8_t Reserved; //!< Reserved
649 uint16_t ModeAtt; //!< -> SBF_MODEATT_...
650 uint8_t ErrorAtt; //!< -> SBF_ERRORATT_...
651 uint8_t NrSVAtt; //!< Number of satellites used for attitude
652 float Heading; //!< Heading [deg]
653 float Pitch; //!< Pitch [deg]
654 float Roll; //!< Roll [deg]
655 uint16_t HeadingAcc; //!< 2-sigma heading accuracy estimate [0.001deg]
656 uint16_t PitchAcc; //!< 2-sigma pitch accuracy estimate [0.001deg]
657 uint16_t RollAcc; //!< 2-sigma roll accuracy estimate [0.001deg]
658 uint16_t PDOP; //!< PDOP [0.01]
659 int8_t UTCHour; //!< UTC hours
660 int8_t UTCMin; //!< UTC minutes
661 int16_t UTCmsec; //!< UTC seconds [0.001s]
662 int8_t UTCYear; //!< UTC hours
663 int8_t UTCMonth; //!< UTC hours
664 int8_t UTCDay; //!< UTC day
665 uint8_t Padding[1]; //!< Padding
666}; // clang-format on
667
668static_assert(sizeof(SbfNavCartRev0) == 128, "");
669
670// clang-format off
671static constexpr std::size_t SBF_NAVCART_REV0_SIZE = sizeof(SbfNavCartRev0) + SBF_HEAD_SIZE; //!< Size of NavCart rev 0 message
672// clang-format on
673
674// ---------------------------------------------------------------------------------------------------------------------
675
676/**
677 * @brief SBF MeasEpoch payload (rev 1)
678 */
680{ // clang-format off
681 uint32_t TOW; //!< GPS time of week [ms]
682 uint16_t WNc; //!< GPS week number
683 uint8_t N1; //!< Number of MeasEpochChannelType1Rev0 sub-blocks in this MeasEpoch block
684 uint8_t SB1Length; //!< Length of a MeasEpochChannelType1 sub-block, excluding the nested MeasEpochChannelType2Rev0 sub-blocks
685 uint8_t SB2Length; //!< Length of a MeasEpochChannelType2 sub-block
686 uint8_t CommonFlags; //!< Bit field containing flags common to all measurements
687 uint8_t CumClkJumps; //!< Cumulative millisecond clock jumps since start-up
688 uint8_t Reserved; //!< Reserved
689}; // clang-format on
690
691static_assert(sizeof(MeasEpochRev1) == 12, "");
692
693/**
694 * @brief SBF MeasEpochChannelType1Rev0 (rev 0) sub-block
695 */
697{ // clang-format off
698 uint8_t RxChannel; //!< Receiver channel
699 uint8_t Type; //!< -> MEASEPOCH_CHANNEL_TYPE_...
700 uint8_t SVID; //!< Satellite ID
701 uint8_t Misc; //!< @todo document
702 uint32_t CodeLSB; //!< @todo document
703 int32_t Doppler; //!< @todo document
704 uint16_t CarrierLSB; //!< @todo document
705 int8_t CarrierMSB; //!< @todo document
706 uint8_t CN0; //!< C/N0 [0.25dBHz]
707 uint16_t LockTime; //!< Lock time [s]
708 uint8_t ObsInfo; //!< -> MEASEPOCH_CHANNEL_OBSINFO_...
709 uint8_t N2; //!< Number of MeasEpochChannelType2 sub-blocks contained in this MeasEpochChannelType1 sub-block
710}; // clang-format on
711
712static_assert(sizeof(MeasEpochChannelType1Rev0) == 20, "");
713
714/**
715 * @brief SBF MeasEpochChannelType2Rev0 sub-block
716 */
718{ // clang-format off
719 uint8_t Type; //!< -> SBF_MEASEPOCH_CHANNEL_TYPE_...
720 uint8_t LockTime; //!< Lock time [s]
721 uint8_t CN0; //!< C/N0 [0.25dBHz]
722 uint8_t OffsetsMSB; //!< @todo document
723 int8_t CarrierMSB; //!< @todo document
724 uint8_t ObsInfo; //!< -> SBF_MEASEPOCH_CHANNEL_OBSINFO_...
725 uint16_t CodeOffsetLSB; //!< @todo document
726 uint16_t CarrierLSB; //!< @todo document
727 uint16_t DopplerOffsetLSB; //!< @todo document
728}; // clang-format on
729
730static_assert(sizeof(MeasEpochChannelType2Rev0) == 12, "");
731
732// clang-format off
733static constexpr std::size_t SBF_MEASEPOCH_REV1_MIN_SIZE = sizeof(MeasEpochRev1) + SBF_HEAD_SIZE; //!< Minimal size of MeasEpoch message
734// clang-format on
735
736// clang-format off
737static constexpr uint8_t SBF_MEASEPOCH_CHANNEL_TYPE_SIGIDXLO(const uint8_t type) { return type & 0x1f; } //!< Signal number (part 1)
738static constexpr uint8_t SBF_MEASEPOCH_CHANNEL_TYPE_ANTID(const uint8_t type) { return (type >> 5) & 0x07; } //!< Antenna ID
739static constexpr uint8_t SBF_MEASEPOCH_CHANNEL_TYPE_ANTID_MAIN = 0; //!< Main antenna
740static constexpr uint8_t SBF_MEASEPOCH_CHANNEL_TYPE_ANTID_AUX1 = 1; //!< Aux1 antenna
741static constexpr uint8_t SBF_MEASEPOCH_CHANNEL_TYPE_ANTID_AUX2 = 2; //!< Aux2 antenna
742static constexpr uint8_t SBF_MEASEPOCH_CHANNEL_OBSINFO_SIGIDXHI(const uint8_t info){ return (info >> 3) & 0x1f; } //!< Signal number (part 2)
743// clang-format on
744
745// ---------------------------------------------------------------------------------------------------------------------
746
747/**
748 * @brief SBF ChannelStatus payload (rev 0)
749 */
751{ // clang-format off
752 uint32_t TOW; //!< GPS time of week [ms]
753 uint16_t WNc; //!< GPS week number
754 uint8_t N; //!< Number of ChannelSatInfo sub-blocks
755 uint8_t SB1Length; //!< Length of a ChannelSatInfo sub-block, excluding the nested ChannelStatusChannelType2 sub-blocks
756 uint8_t SB2Length; //!< Length of a ChannelStateInfo sub-block
757 uint8_t Reserved[3]; //!< Reserved
758}; // clang-format on
759
760static_assert(sizeof(ChannelStatusRev0) == 12, "");
761
762/**
763 * @brief SBF ChannelSatInfo payload (rev 0)
764 */
766{ // clang-format off
767 uint8_t SVID; //!< Satellite ID
768 uint8_t FreqNr; //!< GLONASS frequency number
769 uint16_t SVIDFull; //!< If the SVID field is zero, this field contains the satellite ID
770 uint16_t AzimuthRiseSet; //!< -> SBF_CHANNELSTATUS_SI_AZRS_...
771 uint16_t HealthStatus; //!< -> SBF_CHANNELSTATUS_SI_HEALTH_...
772 int8_t Elevation; //!< Elevation [deg]
773 uint8_t N2; //!< Number of ChannelStateInfo blocks following this ChannelSatInfo block.
774 uint8_t RxChannel; //!< Channel number
775 uint8_t Reserved; //!< Reserved
776}; // clang-format on
777
778static_assert(sizeof(ChannelSatInfoRev0) == 12, "");
779
780/**
781 * @brief SBF ChannelStateInfo payload (rev 0)
782 */
784{ // clang-format off
785 uint8_t Antenna; //!< Anntena number (0 = main antenna)
786 uint8_t Reserved; //!< Reserved
787 uint16_t TrackingStatus; //!< -> SBF_CHANNELSTATE_TRKSTA_...
788 uint16_t PVTStatus; //!< -> SBF_CHANNELSTATE_PVTSTA_...
789 uint16_t PVTInfo; //!< Internal info
790}; // clang-format on
791
792static_assert(sizeof(ChannelStateInfoRev0) == 8, "");
793
794// clang-format off
795static constexpr std::size_t SBF_CHANNELSTATUS_REV0_MIN_SIZE = sizeof(ChannelStatusRev0) + SBF_HEAD_SIZE; //!< Minimal size of ChannelStatus message
796// clang-format on
797
798// clang-format off
799static constexpr uint16_t SBF_CHANNELSTATUS_SI_AZRS_AZIMUTH(const uint16_t azrs){ return azrs & 0x1ff; } //!< Azimuth [deg]
800static constexpr uint8_t SBF_CHANNELSTATUS_SI_AZRS_RISESET(const uint16_t azrs){ return (azrs >> 14) & 0x0007; } //!< Rise/set indicator
801static constexpr uint8_t SBF_CHANNELSTATUS_SI_AZRS_RISESET_SETTING = 0; //!< SV is setting
802static constexpr uint8_t SBF_CHANNELSTATUS_SI_AZRS_RISESET_RISING = 1; //!< SV is rising
803static constexpr uint8_t SBF_CHANNELSTATUS_SI_AZRS_RISESET_UNKNOWN = 2; //!< Elevation rate unknown
804static constexpr uint8_t SBF_CHANNELSTATUS_SI_HEALTH_SIG(const uint16_t health, const std::size_t sigIx) { return (health >> (sigIx * 2)) & 0x07; } //!< Signal health
805static constexpr uint8_t SBF_CHANNELSTATUS_SI_HEALTH_SIG_UNKNOWN = 0; //!< Health unknown
806static constexpr uint8_t SBF_CHANNELSTATUS_SI_HEALTH_SIG_HEALTHY = 1; //!< Healthy
807static constexpr uint8_t SBF_CHANNELSTATUS_SI_HEALTH_SIG_UNHEALTHY = 2; //!< Unhealthy
808static constexpr uint8_t SBF_CHANNELSTATE_TRKSTA_SIG(const uint16_t status, const std::size_t sigIx) { return (status >> (sigIx * 2)) & 0x07; } //!< Signal health
809static constexpr uint8_t SBF_CHANNELSTATE_TRKSTA_SIG_IDLE = 0; //!< Idle
810static constexpr uint8_t SBF_CHANNELSTATE_TRKSTA_SIG_SEARCH = 1; //!< Search
811static constexpr uint8_t SBF_CHANNELSTATE_TRKSTA_SIG_SYNC = 2; //!< Sync
812static constexpr uint8_t SBF_CHANNELSTATE_TRKSTA_SIG_TRACKING = 3; //!< Tracking
813static constexpr uint8_t SBF_CHANNELSTATE_PVTSTA_SIG(const uint16_t status, const std::size_t sigIx) { return (status >> (sigIx * 2)) & 0x07; } //!< Signal health
814static constexpr uint8_t SBF_CHANNELSTATE_PVTSTA_SIG_UNUSED = 0; //!< Not used
815static constexpr uint8_t SBF_CHANNELSTATE_PVTSTA_SIG_NOEPH = 1; //!< No ephemeris
816static constexpr uint8_t SBF_CHANNELSTATE_PVTSTA_SIG_USED = 2; //!< Used
817static constexpr uint8_t SBF_CHANNELSTATE_PVTSTA_SIG_REJECTED = 3; //!< Rejected
818// clang-format on
819
820// ---------------------------------------------------------------------------------------------------------------------
821
822/**
823 * @brief SBF EndOfPvt/EndOfAtt/EndOfMeas payload (rev 0)
824 */
826{ // clang-format off
827 uint32_t TOW; //!< GPS time of week [ms]
828 uint16_t WNc; //!< GPS week number
829 uint8_t padding[2]; //!< Padding
830}; // clang-format on
831
832static_assert(sizeof(SbfEndOfAnyRev0) == 8, "");
833
834// clang-format off
835static constexpr std::size_t SBF_ENDOFANY_REV0_SIZE = sizeof(SbfEndOfAnyRev0) + SBF_HEAD_SIZE; //!< Size of EndOfPvt/EndOfAtt/EndOfMeas message
836// clang-format on
837
838// ---------------------------------------------------------------------------------------------------------------------
839
840/**
841 * @brief SBF BBSamples payload head (rev 0)
842 */
844{ // clang-format off
845 uint32_t TOW; //!< GPS time of week [ms]
846 uint16_t WNc; //!< GPS week number
847 uint16_t N; //!< Number of samples
848 uint8_t info; //!< -> SBF_BBSAMPLES_INFO_...
849 uint8_t reserved[3]; //!< Reserved
850 uint32_t SampleFreq; //!< Sampling frequency [Hz] FIXME: looks like this is the span (bandwidth)
851 uint32_t LOFreq; //!< Local oscillator frequency [Hz] FIXME: looks like this is the centre frequency
852}; // clang-format on
853
854/**
855 * @brief SBF BBSamples payload sample (rev 0)
856 */
858{ // clang-format off
859 int8_t I; //!< I component
860 int8_t Q; //!< Q component
861}; // clang-format on
862
863static_assert(sizeof(SbfBBSamplesSampleRev0) == 2, "");
864
865/**
866 * @brief SBF BBSamples payload tail (rev 0)
867 */
869{ // clang-format off
870 float TOWDelta; //!< Time offset [s]
871}; // clang-format on
872
873static_assert(sizeof(SbfBBSamplesTailRev0) == 4, "");
874
875// clang-format off
876static constexpr std::size_t SBF_BBSAMPLES_REV0_MIN_SIZE = sizeof(SbfBBSamplesHeadRev0) + sizeof(SbfBBSamplesTailRev0) + SBF_HEAD_SIZE; //!< Minimal size of BBSamples message
877// clang-format on
878
879// clang-format off
880static constexpr uint8_t SBF_BBSAMPLES_INFO_ANTID(const uint8_t type) { return type & 0x07; } //!< Antenna ID
881static constexpr uint8_t SBF_BBSAMPLES_INFO_ANTID_MAIN = 0; //!< Main antenna
882static constexpr uint8_t SBF_BBSAMPLES_INFO_ANTID_AUX1 = 1; //!< Aux1 antenna
883static constexpr uint8_t SBF_BBSAMPLES_INFO_ANTID_AUX2 = 2; //!< Aux2 antenna
884// clang-format on
885
886/* ****************************************************************************************************************** */
887} // namespace sbf
888} // namespace parser
889} // namespace common
890} // namespace fpsdk
891#endif // __FPSDK_COMMON_PARSER_SBF_HPP__
Parser SBF routines and types.
Definition sbf.hpp:42
static constexpr uint8_t SBF_MODEPVT_SOL(const uint8_t mode)
GNSS PVT mode.
Definition sbf.hpp:386
static constexpr uint8_t SBF_ERRORPVT_DOP_TOO_LARGE
DOP too large (larger than 15)
Definition sbf.hpp:408
static constexpr uint8_t SBF_ALERTFLAG_RAIM_FAILED
RAIM integrity test failed.
Definition sbf.hpp:466
static constexpr const char * SBF_RXMESSAGE_STRID
SBF-RXMESSAGE message name.
Definition sbf.hpp:324
static constexpr uint8_t SBF_PPPINFO_TYPEOFLASTSEED_RTKFIXED
Seeded from RTK fixed.
Definition sbf.hpp:479
static constexpr const char * SBF_BDSRAWB2B_STRID
SBF-BDSRAWB2B message name.
Definition sbf.hpp:176
static constexpr uint8_t SBF_ERRORPVT_AMBIGUITIES_UNFIXED
Ambiguities not fixed and user requested to only output RTK-fixed positions.
Definition sbf.hpp:415
static constexpr uint16_t SBF_RECEIVERTIME_MSGID
SBF-RECEIVERTIME message ID.
Definition sbf.hpp:281
static constexpr uint16_t SBF_GALGSTGPS_MSGID
SBF-GALGSTGPS message ID.
Definition sbf.hpp:219
static constexpr uint8_t SBF_DATUM_JGD2011
JGD2011, Japanese Geodetic Datum 2011.
Definition sbf.hpp:440
static constexpr uint8_t SBF_MODEPVT_SOL_RESERVED1
Reserved.
Definition sbf.hpp:398
static constexpr uint16_t SBF_DOP_MSGID
SBF-DOP message ID.
Definition sbf.hpp:259
static constexpr const char * SBF_BDSRAWB1C_STRID
SBF-BDSRAWB1C message name.
Definition sbf.hpp:172
static constexpr uint8_t SBF_SYNC_1
Sync char 1 (like NMEA...)
Definition sbf.hpp:45
static constexpr bool SBF_WACORRINFO_IONO_USED(const uint8_t info)
Set if ionospheric information is used.
Definition sbf.hpp:450
static constexpr uint16_t SBF_RECEIVERSETUP_MSGID
SBF-RECEIVERSETUP message ID.
Definition sbf.hpp:321
static constexpr bool SbfDoNotUse(const int8_t val)
Check if value is do-not-use.
Definition sbf.hpp:373
static constexpr uint16_t SBF_BBSAMPLES_MSGID
SBF-BBSAMPLES message ID.
Definition sbf.hpp:329
static constexpr const char * SBF_COMMANDS_STRID
SBF-COMMANDS message name.
Definition sbf.hpp:326
static constexpr std::size_t SBF_MEASEPOCH_REV1_MIN_SIZE
Minimal size of MeasEpoch message.
Definition sbf.hpp:733
static constexpr uint16_t SBF_GALRAWCNAV_MSGID
SBF-GALRAWCNAV message ID.
Definition sbf.hpp:163
static constexpr uint16_t SBF_GPSRAWCA_MSGID
SBF-GPSRAWCA message ID.
Definition sbf.hpp:149
static constexpr std::size_t SBF_PVTCARTESIAN_REV2_SIZE
Size of PVTCartesian rev 2 message.
Definition sbf.hpp:608
static constexpr uint8_t SBF_ERRORATT_AUX2_NOT_ENOUGH_MEAS
Not enough measurements.
Definition sbf.hpp:513
static constexpr uint8_t SBF_DATUM_USER1
First user-defined datum.
Definition sbf.hpp:441
static constexpr uint8_t SBF_CHANNELSTATE_PVTSTA_SIG_REJECTED
Rejected.
Definition sbf.hpp:817
static constexpr uint16_t SBF_CHANNELSTATUS_MSGID
SBF-CHANNELSTATUS message ID.
Definition sbf.hpp:303
static constexpr std::size_t SBF_BBSAMPLES_REV0_MIN_SIZE
Minimal size of BBSamples message.
Definition sbf.hpp:876
static constexpr const char * SBF_QUALITYIND_STRID
SBF-QUALITYIND message name.
Definition sbf.hpp:314
static constexpr const char * SBF_QZSRAWL6E_STRID
SBF-QZSRAWL6E message name.
Definition sbf.hpp:186
static constexpr const char * SBF_GPSUTC_STRID
SBF-GPSUTC message name.
Definition sbf.hpp:202
static constexpr uint16_t SBF_GPSRAWL1C_MSGID
SBF-GPSRAWL1C message ID.
Definition sbf.hpp:155
static constexpr uint16_t SBF_GPSUTC_MSGID
SBF-GPSUTC message ID.
Definition sbf.hpp:201
static constexpr uint8_t SBF_ERRORATT_AUX1_RESERVED0
Reserved.
Definition sbf.hpp:509
static constexpr const char * SBF_RECEIVERTIME_STRID
SBF-RECEIVERTIME message name.
Definition sbf.hpp:282
static constexpr uint8_t SBF_CHANNELSTATE_TRKSTA_SIG_TRACKING
Tracking.
Definition sbf.hpp:812
static constexpr uint16_t SBF_GALAUTHSTATUS_MSGID
SBF-GALAUTHSTATUS message ID.
Definition sbf.hpp:319
static constexpr uint8_t SBF_ERRORPVT_NOT_ENOUGH_CORR
Not enough differential corrections available.
Definition sbf.hpp:413
static constexpr bool SBF_MISC_BASELINEARP(const uint8_t flag)
Baseline points to base station ARP.
Definition sbf.hpp:485
static constexpr uint16_t SBF_CHANNELSTATUS_SI_AZRS_AZIMUTH(const uint16_t azrs)
Azimuth [deg].
Definition sbf.hpp:799
static constexpr uint16_t SBF_GPSION_MSGID
SBF-GPSION message ID.
Definition sbf.hpp:199
static constexpr uint16_t SBF_EXTEVENTBASEVECTGEOD_MSGID
SBF-EXTEVENTBASEVECTGEOD message ID.
Definition sbf.hpp:291
static constexpr uint16_t SBF_BASEVECTORCART_MSGID
SBF-BASEVECTORCART message ID.
Definition sbf.hpp:261
static constexpr uint16_t SBF_QZSRAWL1CA_MSGID
SBF-QZSRAWL1CA message ID.
Definition sbf.hpp:177
static constexpr uint8_t SBF_DATUM_NAD83
NAD83(2011), North American Datum (2011)
Definition sbf.hpp:435
static constexpr const char * SBF_GALRAWFNAV_STRID
SBF-GALRAWFNAV message name.
Definition sbf.hpp:160
static constexpr const char * SBF_GPSION_STRID
SBF-GPSION message name.
Definition sbf.hpp:200
static constexpr uint16_t SBF_VELCOVCARTESIAN_MSGID
SBF-VELCOVCARTESIAN message ID.
Definition sbf.hpp:255
static constexpr uint8_t SBF_MISC_MARKER_ARPZERO
ARP-to-marker offset is zero.
Definition sbf.hpp:489
static constexpr uint8_t SBF_ERRORPVT_NO_CONVERGENCE
No convergence.
Definition sbf.hpp:410
static constexpr const char * SBF_PVTSUPPORTA_STRID
SBF-PVTSUPPORTA message name.
Definition sbf.hpp:268
static constexpr uint16_t SBF_ASCIIIN_MSGID
SBF-ASCIIIN message ID.
Definition sbf.hpp:331
static constexpr uint16_t SBF_GLONAV_MSGID
SBF-GLONAV message ID.
Definition sbf.hpp:205
static constexpr const char * SBF_RFSTATUS_STRID
SBF-RFSTATUS message name.
Definition sbf.hpp:318
static constexpr uint8_t SBF_WACORRINFO_CORRTYPE_SSR
SSR corrections.
Definition sbf.hpp:457
static constexpr int16_t SBF_DONOTUSE_INT16
Do-not-use value for int16_t.
Definition sbf.hpp:365
static constexpr uint8_t SBF_ERRORPVT_RESIDUALS_TOO_LARGE
Sum of squared residuals too large.
Definition sbf.hpp:409
static constexpr uint8_t SBF_DATUM_QDA2020
GDA2020, Geocentric Datum of Australia 2020.
Definition sbf.hpp:439
static constexpr bool SBF_WACORRINFO_DO229_USED(const uint8_t info)
Set if DO229 Precision Approach mode is active.
Definition sbf.hpp:452
static constexpr uint8_t SBF_MODEATT_NO_ATT
No attitude.
Definition sbf.hpp:496
static constexpr uint8_t SBF_CHANNELSTATUS_SI_HEALTH_SIG_HEALTHY
Healthy.
Definition sbf.hpp:806
static constexpr bool SBF_WACORRINFO_RANGECORR_USED(const uint8_t info)
Set if range correction information is used.
Definition sbf.hpp:449
static constexpr uint8_t SBF_BBSAMPLES_INFO_ANTID_AUX1
Aux1 antenna.
Definition sbf.hpp:882
static constexpr const char * SBF_SATVISIBILITY_STRID
SBF-SATVISIBILITY message name.
Definition sbf.hpp:308
static constexpr uint8_t SBF_CHANNELSTATE_PVTSTA_SIG(const uint16_t status, const std::size_t sigIx)
Signal health.
Definition sbf.hpp:813
static constexpr uint8_t SBF_DATUM_NAD83_MA11
NAD83(MA11), North American Datum, Marianas plate (2011)
Definition sbf.hpp:437
static constexpr uint16_t SBF_BDSUTC_MSGID
SBF-BDSUTC message ID.
Definition sbf.hpp:235
static constexpr const char * SBF_BASEVECTORCART_STRID
SBF-BASEVECTORCART message name.
Definition sbf.hpp:262
static constexpr const char * SBF_POSCOVCARTESIAN_STRID
SBF-POSCOVCARTESIAN message name.
Definition sbf.hpp:252
static constexpr uint8_t SBF_ERRORPVT_TOO_MANY_OUTLIERS
Not enough measurements after outlier rejection.
Definition sbf.hpp:411
static constexpr const char * SBF_GALSARRLM_STRID
SBF-GALSARRLM message name.
Definition sbf.hpp:222
static constexpr const char * SBF_BDSALM_STRID
SBF-BDSALM message name.
Definition sbf.hpp:232
static constexpr const char * SBF_EXTEVENTATTEULER_STRID
SBF-EXTEVENTATTEULER message name.
Definition sbf.hpp:294
static constexpr uint8_t SBF_ERRORPVT_NO_ERROR
No Error.
Definition sbf.hpp:405
static constexpr uint16_t SBF_BDSNAV_MSGID
SBF-BDSNAV message ID.
Definition sbf.hpp:223
static constexpr uint8_t SBF_PPPINFO_TYPEOFLASTSEED_NONE
Not seeded.
Definition sbf.hpp:476
static constexpr uint8_t SBF_BBSAMPLES_INFO_ANTID(const uint8_t type)
Antenna ID.
Definition sbf.hpp:880
static constexpr const char * SBF_LBANDTRACKERSTATUS_STRID
SBF-LBANDTRACKERSTATUS message name.
Definition sbf.hpp:300
static constexpr uint16_t SBF_QZSRAWL1S_MSGID
SBF-QZSRAWL1S message ID.
Definition sbf.hpp:189
static constexpr uint16_t SBF_GLOTIME_MSGID
SBF-GLOTIME message ID.
Definition sbf.hpp:209
static constexpr std::size_t SBF_CHANNELSTATUS_REV0_MIN_SIZE
Minimal size of ChannelStatus message.
Definition sbf.hpp:795
static constexpr const char * SBF_GALAUTHSTATUS_STRID
SBF-GALAUTHSTATUS message name.
Definition sbf.hpp:320
static constexpr uint16_t SBF_PVTSUPPORTA_MSGID
SBF-PVTSUPPORTA message ID.
Definition sbf.hpp:267
static constexpr const char * SBF_QZSRAWL1CA_STRID
SBF-QZSRAWL1CA message name.
Definition sbf.hpp:178
static constexpr const char * SBF_QZSALM_STRID
SBF-QZSALM message name.
Definition sbf.hpp:240
static constexpr uint16_t SBF_QZSRAWL5_MSGID
SBF-QZSRAWL5 message ID.
Definition sbf.hpp:181
static constexpr uint8_t SBF_ERRORATT_AUX1_NOT_ENOUGH_MEAS
Not enough measurements.
Definition sbf.hpp:508
static constexpr uint16_t SBF_PVTSUPPORT_MSGID
SBF-PVTSUPPORT message ID.
Definition sbf.hpp:265
static constexpr bool SBF_ERRORATT_NO_ATT(const uint8_t mode)
GNSS-based attitude not requested by user.
Definition sbf.hpp:516
static constexpr uint8_t SBF_ERRORPVT_NOT_ENOUGH_MEAS
Not enough measurements.
Definition sbf.hpp:406
static constexpr const char * SBF_GPSNAV_STRID
SBF-GPSNAV message name.
Definition sbf.hpp:196
static constexpr const char * SBF_GALRAWCNAV_STRID
SBF-GALRAWCNAV message name.
Definition sbf.hpp:164
static constexpr uint8_t SBF_MODEATT_HDG_PITCH_FIXED
Heading and pitch from fixed ambiguities.
Definition sbf.hpp:498
static constexpr bool SBF_ALERTFLAG_GALHPCAFAIL(const uint8_t flag)
Galileo GPCA failed.
Definition sbf.hpp:467
bool SbfGetMessageInfo(char *info, const std::size_t size, const uint8_t *msg, const std::size_t msg_size)
Get SBF message info.
static constexpr const char * SBF_QZSRAWL2C_STRID
SBF-QZSRAWL2C message name.
Definition sbf.hpp:180
static constexpr uint16_t SBF_GALRAWFNAV_MSGID
SBF-GALRAWFNAV message ID.
Definition sbf.hpp:159
static constexpr uint16_t SBF_GPSRAWL2C_MSGID
SBF-GPSRAWL2C message ID.
Definition sbf.hpp:151
static constexpr uint16_t SBF_DONOTUSE_UINT16
Do-not-use value for uint16_t.
Definition sbf.hpp:368
static constexpr uint16_t SBF_VELCOVGEODETIC_MSGID
SBF-VELCOVGEODETIC message ID.
Definition sbf.hpp:257
static constexpr uint16_t SBF_LBANDRAW_MSGID
SBF-LBANDRAW message ID.
Definition sbf.hpp:301
static constexpr uint8_t SBF_MEASEPOCH_CHANNEL_TYPE_ANTID_AUX2
Aux2 antenna.
Definition sbf.hpp:741
static constexpr uint16_t SBF_NAVCART_MSGID
SBF-NAVCART message ID.
Definition sbf.hpp:271
static constexpr uint16_t SBF_XPPSOFFSET_MSGID
SBF-XPPSOFFSET message ID.
Definition sbf.hpp:283
static constexpr const char * SBF_QZSRAWL6D_STRID
SBF-QZSRAWL6D message name.
Definition sbf.hpp:184
static constexpr uint8_t SBF_WACORRINFO_CORRTYPE_CORS
Corrections from a physical base.
Definition sbf.hpp:455
static constexpr uint8_t SBF_DATUM_WGS84_ITRS
WGS84/ITRS.
Definition sbf.hpp:432
static constexpr const char * SBF_BDSCNAV3_STRID
SBF-BDSCNAV3 message name.
Definition sbf.hpp:230
static constexpr uint16_t SBF_RFSTATUS_MSGID
SBF-RFSTATUS message ID.
Definition sbf.hpp:317
static constexpr uint16_t SBF_GALION_MSGID
SBF-GALION message ID.
Definition sbf.hpp:215
static constexpr uint16_t SBF_GPSRAWL5_MSGID
SBF-GPSRAWL5 message ID.
Definition sbf.hpp:153
static constexpr const char * SBF_INPUTLINK_STRID
SBF-INPUTLINK message name.
Definition sbf.hpp:310
static constexpr uint16_t SBF_POSCOVGEODETIC_MSGID
SBF-POSCOVGEODETIC message ID.
Definition sbf.hpp:253
static constexpr uint8_t SBF_ERRORPVT_NO_BASE_COORD
Base station coordinates unavailable.
Definition sbf.hpp:414
static constexpr std::size_t SBF_ENDOFANY_REV0_SIZE
Size of EndOfPvt/EndOfAtt/EndOfMeas message.
Definition sbf.hpp:835
static constexpr const char * SBF_GLONAV_STRID
SBF-GLONAV message name.
Definition sbf.hpp:206
static constexpr uint8_t SBF_ERRORPVT_POS_OUTPUT_PROHIB
Position output prohibited due to export laws.
Definition sbf.hpp:412
static constexpr uint16_t SBF_QZSALM_MSGID
SBF-QZSALM message ID.
Definition sbf.hpp:239
static constexpr uint16_t SBF_EXTEVENTPVTGEODETIC_MSGID
SBF-EXTEVENTPVTGEODETIC message ID.
Definition sbf.hpp:289
static constexpr const char * SBF_NAVICRAW_STRID
SBF-NAVICRAW message name.
Definition sbf.hpp:194
static constexpr uint8_t SBF_MISC_MARKER_ARPNONZERO
ARP-to-marker offset is not zero.
Definition sbf.hpp:490
static constexpr uint16_t SBF_ATTCOVEULER_MSGID
SBF-ATTCOVEULER message ID.
Definition sbf.hpp:275
static constexpr uint16_t SBF_MEASEPOCH_MSGID
SBF-MEASEPOCH message ID.
Definition sbf.hpp:143
static constexpr uint8_t SBF_DATUM_QDA94
GDA94(2010), Geocentric Datum of Australia (2010)
Definition sbf.hpp:438
static constexpr uint8_t SBF_SYNC_2
Sync char 2.
Definition sbf.hpp:46
static constexpr uint16_t SBF_BDSION_MSGID
SBF-BDSION message ID.
Definition sbf.hpp:233
static constexpr const char * SBF_EXTEVENTPVTCARTESIAN_STRID
SBF-EXTEVENTPVTCARTESIAN message name.
Definition sbf.hpp:288
static constexpr const char * SBF_GPSRAWCA_STRID
SBF-GPSRAWCA message name.
Definition sbf.hpp:150
static constexpr uint8_t SBF_ERRORATT_AUX1_NO_ERROR
No error.
Definition sbf.hpp:507
static constexpr const char * SBF_GALGSTGPS_STRID
SBF-GALGSTGPS message name.
Definition sbf.hpp:220
static constexpr uint16_t SBF_DISKSTATUS_MSGID
SBF-DISKSTATUS message ID.
Definition sbf.hpp:315
static constexpr const char * SBF_BDSION_STRID
SBF-BDSION message name.
Definition sbf.hpp:234
static constexpr uint16_t SBF_QZSRAWL6D_MSGID
SBF-QZSRAWL6D message ID.
Definition sbf.hpp:183
static constexpr const char * SBF_BASESTATION_STRID
SBF-BASESTATION message name.
Definition sbf.hpp:298
static constexpr uint8_t SBF_CHANNELSTATUS_SI_HEALTH_SIG_UNHEALTHY
Unhealthy.
Definition sbf.hpp:807
static constexpr uint8_t SBF_MEASEPOCH_CHANNEL_TYPE_ANTID(const uint8_t type)
Antenna ID.
Definition sbf.hpp:738
static constexpr uint8_t SBF_ERRORATT_AUX2_RESERVED0
Reserved.
Definition sbf.hpp:514
static constexpr uint16_t SBF_OUTPUTLINK_MSGID
SBF-OUTPUTLINK message ID.
Definition sbf.hpp:311
static constexpr uint8_t SBF_MODEPVT_SOL_STANDALONE_PVT
Stand-Alone PVT.
Definition sbf.hpp:388
static constexpr uint8_t SBF_ERRORATT_AUX1(const uint8_t mode)
Error code for Main-Aux1 baseline.
Definition sbf.hpp:506
static constexpr uint16_t SBF_GALNAV_MSGID
SBF-GALNAV message ID.
Definition sbf.hpp:211
static constexpr uint8_t SBF_MODEPVT_SOL_RTK_FLOAT
RTK with float ambiguities.
Definition sbf.hpp:392
static constexpr uint16_t SBF_QZSRAWL6E_MSGID
SBF-QZSRAWL6E message ID.
Definition sbf.hpp:185
static constexpr uint16_t SBF_GLOALM_MSGID
SBF-GLOALM message ID.
Definition sbf.hpp:207
static constexpr uint8_t SBF_CHANNELSTATE_TRKSTA_SIG(const uint16_t status, const std::size_t sigIx)
Signal health.
Definition sbf.hpp:808
static constexpr uint32_t SBF_DONOTUSE_UINT32
Do-not-use value for uint32_t.
Definition sbf.hpp:369
static constexpr uint16_t SBF_NAVICLNAV_MSGID
SBF-NAVICLNAV message ID.
Definition sbf.hpp:241
static constexpr uint16_t SBF_GPSCNAV_MSGID
SBF-GPSCNAV message ID.
Definition sbf.hpp:203
static constexpr uint8_t SBF_CHANNELSTATUS_SI_AZRS_RISESET_RISING
SV is rising.
Definition sbf.hpp:802
static constexpr const char * SBF_GALALM_STRID
SBF-GALALM message name.
Definition sbf.hpp:214
static constexpr uint8_t SBF_MODEPVT_SOL_DIFFERENTIAL_PVT
Differential PVT.
Definition sbf.hpp:389
static constexpr const char * SBF_COMMENT_STRID
SBF-COMMENT message name.
Definition sbf.hpp:328
bool SbfGetMessageName(char *name, const std::size_t size, const uint8_t *msg, const std::size_t msg_size)
Get SBF message name.
static constexpr uint8_t SBF_ERRORPVT_NOT_ENOUGH_EPH
Not enough ephemerides available.
Definition sbf.hpp:407
static constexpr const char * SBF_QZSNAV_STRID
SBF-QZSNAV message name.
Definition sbf.hpp:238
static constexpr uint8_t SBF_MODEPVT_SOL_MOVINGBASE_RTK_FLOAT
moving-base RTK with float ambiguities
Definition sbf.hpp:395
static constexpr uint8_t SBF_ERRORATT_AUX1_RESERVED1
Reserved.
Definition sbf.hpp:510
static constexpr const char * SBF_BDSRAW_STRID
SBF-BDSRAW message name.
Definition sbf.hpp:170
static constexpr uint16_t SBF_QZSRAWL5S_MSGID
SBF-QZSRAWL5S message ID.
Definition sbf.hpp:191
static constexpr uint16_t SBF_COMMANDS_MSGID
SBF-COMMANDS message ID.
Definition sbf.hpp:325
static constexpr uint16_t SBF_NAVICRAW_MSGID
SBF-NAVICRAW message ID.
Definition sbf.hpp:193
static constexpr uint8_t SBF_CHANNELSTATUS_SI_AZRS_RISESET_SETTING
SV is setting.
Definition sbf.hpp:801
static constexpr uint8_t SBF_ERRORATT_AUX2_RESERVED1
Reserved.
Definition sbf.hpp:515
static constexpr uint16_t SBF_BDSRAWB1C_MSGID
SBF-BDSRAWB1C message ID.
Definition sbf.hpp:171
static constexpr uint16_t SBF_PVTCARTESIAN_MSGID
SBF-PVTCARTESIAN message ID.
Definition sbf.hpp:247
static constexpr uint16_t SBF_POSCOVCARTESIAN_MSGID
SBF-POSCOVCARTESIAN message ID.
Definition sbf.hpp:251
static constexpr uint8_t SBF_CHANNELSTATUS_SI_HEALTH_SIG(const uint16_t health, const std::size_t sigIx)
Signal health.
Definition sbf.hpp:804
static constexpr uint8_t SBF_PPPINFO_TYPEOFLASTSEED_MANUAL
Manual seed.
Definition sbf.hpp:477
constexpr uint16_t SbfBlockType(const uint8_t *msg)
Get block type (message ID w/o revision)
Definition sbf.hpp:58
static constexpr bool SBF_MODEPVT_IS2D(const uint8_t mode)
true = 2D mode, false = 3D mode
Definition sbf.hpp:399
static constexpr int8_t SBF_DONOTUSE_UINT8
Do-not-use value for uint8_t.
Definition sbf.hpp:367
static constexpr uint8_t SBF_ALERTFLAG_RAIM_SUCESSFUL
RAIM integrity test successful.
Definition sbf.hpp:465
static constexpr const char * SBF_GALION_STRID
SBF-GALION message name.
Definition sbf.hpp:216
static constexpr const char * SBF_QZSRAWL1S_STRID
SBF-QZSRAWL1S message name.
Definition sbf.hpp:190
static constexpr const char * SBF_RECEIVERSTATUS_STRID
SBF-RECEIVERSTATUS message name.
Definition sbf.hpp:306
static constexpr uint8_t SBF_DATUM_DGNSS_BASE
Datum equal to that used by the DGNSS/RTK base station.
Definition sbf.hpp:433
static constexpr uint16_t SBF_SATVISIBILITY_MSGID
SBF-SATVISIBILITY message ID.
Definition sbf.hpp:307
static constexpr const char * SBF_VELCOVGEODETIC_STRID
SBF-VELCOVGEODETIC message name.
Definition sbf.hpp:258
static constexpr uint8_t SBF_ERRORATT_AUX2_NO_ERROR
No error.
Definition sbf.hpp:512
static constexpr uint8_t SBF_PPPINFO_TYPEOFLASTSEED_DGNSS
Seeded from DGNSS.
Definition sbf.hpp:478
static constexpr const char * SBF_PVTGEODETIC_STRID
SBF-PVTGEODETIC message name.
Definition sbf.hpp:250
const char * SbfGetTypeDesc(const uint16_t type)
Get description for a SBF message.
static constexpr uint8_t SBF_MODEPVT_SOL_SBAS_AIDED_PVT
SBAS aided PVT.
Definition sbf.hpp:393
static constexpr float SBF_DONOTUSE_FLOAT
Do-not-use value for float.
Definition sbf.hpp:370
static constexpr uint16_t SBF_GEOALM_MSGID
SBF-GEOALM message ID.
Definition sbf.hpp:245
static constexpr const char * SBF_BBSAMPLES_STRID
SBF-BBSAMPLES message name.
Definition sbf.hpp:330
static constexpr uint8_t SBF_MEASEPOCH_CHANNEL_OBSINFO_SIGIDXHI(const uint8_t info)
Signal number (part 2)
Definition sbf.hpp:742
static constexpr uint8_t SBF_CHANNELSTATE_PVTSTA_SIG_USED
Used.
Definition sbf.hpp:816
static constexpr const char * SBF_GALUTC_STRID
SBF-GALUTC message name.
Definition sbf.hpp:218
static constexpr uint8_t SBF_WACORRINFO_CORRTYPE_UNKNOWN
Unknown or not in differential positioning mode.
Definition sbf.hpp:454
static constexpr uint16_t SBF_BDSRAWB2B_MSGID
SBF-BDSRAWB2B message ID.
Definition sbf.hpp:175
static constexpr uint8_t SBF_CHANNELSTATE_PVTSTA_SIG_UNUSED
Not used.
Definition sbf.hpp:814
static constexpr uint8_t SBF_TIMESYSTEM_GLO
GLONASS time.
Definition sbf.hpp:423
static constexpr const char * SBF_GPSRAWL5_STRID
SBF-GPSRAWL5 message name.
Definition sbf.hpp:154
static constexpr uint8_t SBF_MODEATT_HDG_PITCH_ROLL_FIXED
Heading, pitch and roll from fixed ambiguities.
Definition sbf.hpp:500
static constexpr const char * SBF_BASEVECTORGEOD_STRID
SBF-BASEVECTORGEOD message name.
Definition sbf.hpp:264
static constexpr uint16_t SBF_ENDOFPVT_MSGID
SBF-ENDOFPVT message ID.
Definition sbf.hpp:269
static constexpr uint16_t SBF_PVTGEODETIC_MSGID
SBF-PVTGEODETIC message ID.
Definition sbf.hpp:249
static constexpr const char * SBF_AUXANTPOSITIONS_STRID
SBF-AUXANTPOSITIONS message name.
Definition sbf.hpp:278
static constexpr const char * SBF_GEORAWL5_STRID
SBF-GEORAWL5 message name.
Definition sbf.hpp:168
static constexpr const char * SBF_DIFFCORRIN_STRID
SBF-DIFFCORRIN message name.
Definition sbf.hpp:296
static constexpr bool SBF_ALERTFLAG_GALIONOSTORM(const uint8_t flag)
Galileo ionospheric storm flag.
Definition sbf.hpp:468
static constexpr const char * SBF_BDSUTC_STRID
SBF-BDSUTC message name.
Definition sbf.hpp:236
static constexpr uint8_t SBF_MODEPVT_SOL_RESERVED0
Reserved.
Definition sbf.hpp:396
static constexpr uint16_t SBF_GEONAV_MSGID
SBF-GEONAV message ID.
Definition sbf.hpp:243
static constexpr uint8_t SBF_DATUM_NAD83_PA11
NAD83(PA11), North American Datum, Pacific plate (2011)
Definition sbf.hpp:436
static constexpr bool SBF_MISC_ROVERBASEOFFS(const uint8_t flag)
Rover phase center offset compensated.
Definition sbf.hpp:486
static constexpr uint16_t SBF_GALSARRLM_MSGID
SBF-GALSARRLM message ID.
Definition sbf.hpp:221
static constexpr uint16_t SBF_QZSRAWL1C_MSGID
SBF-QZSRAWL1C message ID.
Definition sbf.hpp:187
static constexpr const char * SBF_NAVCART_STRID
SBF-NAVCART message name.
Definition sbf.hpp:272
static constexpr uint16_t SBF_GPSALM_MSGID
SBF-GPSALM message ID.
Definition sbf.hpp:197
static constexpr uint16_t SBF_BDSRAW_MSGID
SBF-BDSRAW message ID.
Definition sbf.hpp:169
static constexpr const char * SBF_GPSALM_STRID
SBF-GPSALM message name.
Definition sbf.hpp:198
constexpr uint16_t SbfMsgSize(const uint8_t *msg)
Get message size.
Definition sbf.hpp:86
static constexpr uint16_t SBF_BASEVECTORGEOD_MSGID
SBF-BASEVECTORGEOD message ID.
Definition sbf.hpp:263
static constexpr const char * SBF_PVTCARTESIAN_STRID
SBF-PVTCARTESIAN message name.
Definition sbf.hpp:248
static constexpr uint8_t SBF_MISC_MARKER_UNKNOWN
Unknown.
Definition sbf.hpp:488
static constexpr uint16_t SBF_BDSRAWB2A_MSGID
SBF-BDSRAWB2A message ID.
Definition sbf.hpp:173
static constexpr uint8_t SBF_TIMESYSTEM_FUGRO
Fugro AtomiChron time.
Definition sbf.hpp:426
static constexpr uint8_t SBF_MODEPVT_SOL_PPP
Precise point positioning (PPP)
Definition sbf.hpp:397
static constexpr const char * SBF_BDSNAV_STRID
SBF-BDSNAV message name.
Definition sbf.hpp:224
static constexpr const char * SBF_EXTEVENTPVTGEODETIC_STRID
SBF-EXTEVENTPVTGEODETIC message name.
Definition sbf.hpp:290
static constexpr uint8_t SBF_MISC_MARKER(const uint8_t flag)
Marker position.
Definition sbf.hpp:487
static constexpr uint16_t SBF_BDSCNAV3_MSGID
SBF-BDSCNAV3 message ID.
Definition sbf.hpp:229
static constexpr const char * SBF_QZSRAWL5_STRID
SBF-QZSRAWL5 message name.
Definition sbf.hpp:182
static constexpr uint8_t SBF_MODEPVT_SOL_FIXED_LOCATION
Fixed location.
Definition sbf.hpp:390
static constexpr const char * SBF_GEORAWL1_STRID
SBF-GEORAWL1 message name.
Definition sbf.hpp:166
static constexpr const char * SBF_CHANNELSTATUS_STRID
SBF-CHANNELSTATUS message name.
Definition sbf.hpp:304
static constexpr uint16_t SBF_ENDOFMEAS_MSGID
SBF-ENDOFMEAS message ID.
Definition sbf.hpp:147
static constexpr const char * SBF_ENDOFPVT_STRID
SBF-ENDOFPVT message name.
Definition sbf.hpp:270
static constexpr uint16_t SBF_GALRAWINAV_MSGID
SBF-GALRAWINAV message ID.
Definition sbf.hpp:161
static constexpr uint8_t SBF_MEASEPOCH_CHANNEL_TYPE_SIGIDXLO(const uint8_t type)
Signal number (part 1)
Definition sbf.hpp:737
static constexpr uint8_t SBF_DATUM_ETRS89
ETRS89 (ETRF2000 realization)
Definition sbf.hpp:434
static constexpr const char * SBF_EXTEVENTBASEVECTGEOD_STRID
SBF-EXTEVENTBASEVECTGEOD message name.
Definition sbf.hpp:292
static constexpr uint16_t SBF_BDSCNAV1_MSGID
SBF-BDSCNAV1 message ID.
Definition sbf.hpp:225
static constexpr const char * SBF_QZSRAWL5S_STRID
SBF-QZSRAWL5S message name.
Definition sbf.hpp:192
static constexpr uint16_t SBF_GALUTC_MSGID
SBF-GALUTC message ID.
Definition sbf.hpp:217
static constexpr uint8_t SBF_MEASEPOCH_CHANNEL_TYPE_ANTID_MAIN
Main antenna.
Definition sbf.hpp:739
static constexpr uint8_t SBF_MODEATT_HDG_PITCH_FLOAT
Heading and pitch from float ambiguities.
Definition sbf.hpp:497
static constexpr uint8_t SBF_CHANNELSTATE_TRKSTA_SIG_SYNC
Sync.
Definition sbf.hpp:811
static constexpr uint8_t SBF_TIMESYSTEM_GAL
Galileo time.
Definition sbf.hpp:422
static constexpr uint8_t SBF_TIMESYSTEM_BDS
BeiDou time.
Definition sbf.hpp:424
static constexpr uint8_t SBF_CHANNELSTATUS_SI_AZRS_RISESET_UNKNOWN
Elevation rate unknown.
Definition sbf.hpp:803
static constexpr uint16_t SBF_DIFFCORRIN_MSGID
SBF-DIFFCORRIN message ID.
Definition sbf.hpp:295
static constexpr uint8_t SBF_ALERTFLAG_RAIM_NOTACTIVE
RAIM not active.
Definition sbf.hpp:464
static constexpr const char * SBF_GLOALM_STRID
SBF-GLOALM message name.
Definition sbf.hpp:208
static constexpr uint16_t SBF_ENDOFATT_MSGID
SBF-ENDOFATT message ID.
Definition sbf.hpp:279
static constexpr uint16_t SBF_PPPINFO_AGEOFLASTSEED(const uint16_t flag)
Age of last seed [s].
Definition sbf.hpp:474
static constexpr const char * SBF_GEONAV_STRID
SBF-GEONAV message name.
Definition sbf.hpp:244
static constexpr uint8_t SBF_CHANNELSTATE_PVTSTA_SIG_NOEPH
No ephemeris.
Definition sbf.hpp:815
static constexpr uint16_t SBF_BASESTATION_MSGID
SBF-BASESTATION message ID.
Definition sbf.hpp:297
static constexpr uint16_t SBF_MEASEXTRA_MSGID
SBF-MEASEXTRA message ID.
Definition sbf.hpp:145
static constexpr const char * SBF_GPSRAWL1C_STRID
SBF-GPSRAWL1C message name.
Definition sbf.hpp:156
static constexpr const char * SBF_QZSRAWL1C_STRID
SBF-QZSRAWL1C message name.
Definition sbf.hpp:188
static constexpr const char * SBF_RECEIVERSETUP_STRID
SBF-RECEIVERSETUP message name.
Definition sbf.hpp:322
static constexpr const char * SBF_MEASEXTRA_STRID
SBF-MEASEXTRA message name.
Definition sbf.hpp:146
static constexpr uint8_t SBF_CHANNELSTATE_TRKSTA_SIG_SEARCH
Search.
Definition sbf.hpp:810
static constexpr uint16_t SBF_EXTEVENTATTEULER_MSGID
SBF-EXTEVENTATTEULER message ID.
Definition sbf.hpp:293
static constexpr const char * SBF_NAVICLNAV_STRID
SBF-NAVICLNAV message name.
Definition sbf.hpp:242
static constexpr int32_t SBF_DONOTUSE_INT32
Do-not-use value for int32_t.
Definition sbf.hpp:366
static constexpr const char * SBF_GALNAV_STRID
SBF-GALNAV message name.
Definition sbf.hpp:212
static constexpr const char * SBF_OUTPUTLINK_STRID
SBF-OUTPUTLINK message name.
Definition sbf.hpp:312
static constexpr uint8_t SBF_CHANNELSTATE_TRKSTA_SIG_IDLE
Idle.
Definition sbf.hpp:809
static constexpr const char * SBF_GALRAWINAV_STRID
SBF-GALRAWINAV message name.
Definition sbf.hpp:162
static constexpr const char * SBF_POSCOVGEODETIC_STRID
SBF-POSCOVGEODETIC message name.
Definition sbf.hpp:254
static constexpr uint8_t SBF_BBSAMPLES_INFO_ANTID_AUX2
Aux2 antenna.
Definition sbf.hpp:883
static constexpr const char * SBF_GPSRAWL2C_STRID
SBF-GPSRAWL2C message name.
Definition sbf.hpp:152
static constexpr uint8_t SBF_MODEPVT_SOL_NO_GNSS_PVT
No GNSS PVT available (the Error field indicates the cause of the absence of the PVT solution)
Definition sbf.hpp:387
static constexpr uint16_t SBF_GEORAWL5_MSGID
SBF-GEORAWL5 message ID.
Definition sbf.hpp:167
static constexpr std::size_t SBF_HEAD_SIZE
Size of the SBF header (SbfHeader)
Definition sbf.hpp:47
static constexpr uint8_t SBF_WACORRINFO_CORRTYPE(const uint8_t info)
Which corrections have been applied.
Definition sbf.hpp:453
static constexpr uint8_t SBF_CHANNELSTATUS_SI_AZRS_RISESET(const uint16_t azrs)
Rise/set indicator.
Definition sbf.hpp:800
static constexpr const char * SBF_ENDOFMEAS_STRID
SBF-ENDOFMEAS message name.
Definition sbf.hpp:148
static constexpr double SBF_DONOTUSE_DOUBLE
Do-not-use value for double.
Definition sbf.hpp:371
static constexpr const char * SBF_ATTCOVEULER_STRID
SBF-ATTCOVEULER message name.
Definition sbf.hpp:276
static constexpr uint16_t SBF_GEORAWL1_MSGID
SBF-GEORAWL1 message ID.
Definition sbf.hpp:165
static constexpr const char * SBF_ENDOFATT_STRID
SBF-ENDOFATT message name.
Definition sbf.hpp:280
static constexpr uint16_t SBF_QZSRAWL2C_MSGID
SBF-QZSRAWL2C message ID.
Definition sbf.hpp:179
static constexpr const char * SBF_ATTEULER_STRID
SBF-ATTEULER message name.
Definition sbf.hpp:274
static constexpr uint8_t SBF_TIMESYSTEM_GPS
GPS time.
Definition sbf.hpp:421
static constexpr uint16_t SBF_COMMENT_MSGID
SBF-COMMENT message ID.
Definition sbf.hpp:327
static constexpr bool SBF_WACORRINFO_ORBCLK_USED(const uint8_t info)
Set if orbit and satellite clock correction information is used.
Definition sbf.hpp:448
static constexpr std::size_t SBF_NAVCART_REV0_SIZE
Size of NavCart rev 0 message.
Definition sbf.hpp:671
static constexpr const char * SBF_GEOALM_STRID
SBF-GEOALM message name.
Definition sbf.hpp:246
static constexpr uint16_t SBF_ATTEULER_MSGID
SBF-ATTEULER message ID.
Definition sbf.hpp:273
static constexpr const char * SBF_BDSRAWB2A_STRID
SBF-BDSRAWB2A message name.
Definition sbf.hpp:174
static constexpr uint16_t SBF_LBANDTRACKERSTATUS_MSGID
SBF-LBANDTRACKERSTATUS message ID.
Definition sbf.hpp:299
static constexpr uint16_t SBF_BDSALM_MSGID
SBF-BDSALM message ID.
Definition sbf.hpp:231
static constexpr uint16_t SBF_RECEIVERSTATUS_MSGID
SBF-RECEIVERSTATUS message ID.
Definition sbf.hpp:305
static constexpr int8_t SBF_DONOTUSE_INT8
Do-not-use value for int8_t.
Definition sbf.hpp:364
static constexpr uint8_t SBF_WACORRINFO_CORRTYPE_VRS
Corrections from a virtual base (VRS)
Definition sbf.hpp:456
static constexpr uint16_t SBF_QZSNAV_MSGID
SBF-QZSNAV message ID.
Definition sbf.hpp:237
static constexpr uint16_t SBF_EXTEVENTPVTCARTESIAN_MSGID
SBF-EXTEVENTPVTCARTESIAN message ID.
Definition sbf.hpp:287
static constexpr const char * SBF_GPSCNAV_STRID
SBF-GPSCNAV message name.
Definition sbf.hpp:204
static constexpr const char * SBF_DOP_STRID
SBF-DOP message name.
Definition sbf.hpp:260
static constexpr uint16_t SBF_EXTEVENT_MSGID
SBF-EXTEVENT message ID.
Definition sbf.hpp:285
static constexpr uint8_t SBF_PPPINFO_TYPEOFLASTSEED(const uint16_t flag)
Type of last seed.
Definition sbf.hpp:475
static constexpr std::size_t SBF_PVTGEODETIC_REV2_SIZE
Size of PVTGeodetic rev 2 message.
Definition sbf.hpp:562
static constexpr const char * SBF_PVTSUPPORT_STRID
SBF-PVTSUPPORT message name.
Definition sbf.hpp:266
static constexpr const char * SBF_EXTEVENT_STRID
SBF-EXTEVENT message name.
Definition sbf.hpp:286
static constexpr uint16_t SBF_QUALITYIND_MSGID
SBF-QUALITYIND message ID.
Definition sbf.hpp:313
static constexpr const char * SBF_DISKSTATUS_STRID
SBF-DISKSTATUS message name.
Definition sbf.hpp:316
static constexpr const char * SBF_MEASEPOCH_STRID
SBF-MEASEPOCH message name.
Definition sbf.hpp:144
static constexpr const char * SBF_XPPSOFFSET_STRID
SBF-XPPSOFFSET message name.
Definition sbf.hpp:284
static constexpr const char * SBF_GLOTIME_STRID
SBF-GLOTIME message name.
Definition sbf.hpp:210
static constexpr uint16_t SBF_GLORAWCA_MSGID
SBF-GLORAWCA message ID.
Definition sbf.hpp:157
static constexpr uint16_t SBF_AUXANTPOSITIONS_MSGID
SBF-AUXANTPOSITIONS message ID.
Definition sbf.hpp:277
static constexpr bool SBF_WACORRINFO_ORBACC_USED(const uint8_t info)
Set if orbit accuracy information is used (UERE/SISA)
Definition sbf.hpp:451
static constexpr const char * SBF_LBANDRAW_STRID
SBF-LBANDRAW message name.
Definition sbf.hpp:302
static constexpr uint8_t SBF_MODEPVT_SOL_MOVINGBASE_RTK_FIXED
moving-base RTK with fixed ambiguities
Definition sbf.hpp:394
static constexpr uint8_t SBF_MODEPVT_SOL_RTK_FIXED
RTK with fixed ambiguities.
Definition sbf.hpp:391
static constexpr uint16_t SBF_BDSCNAV2_MSGID
SBF-BDSCNAV2 message ID.
Definition sbf.hpp:227
static constexpr const char * SBF_GLORAWCA_STRID
SBF-GLORAWCA message name.
Definition sbf.hpp:158
static constexpr uint16_t SBF_RXMESSAGE_MSGID
SBF-RXMESSAGE message ID.
Definition sbf.hpp:323
static constexpr uint8_t SBF_TIMESYSTEM_QZSS
QZSS time.
Definition sbf.hpp:425
static constexpr uint8_t SBF_CHANNELSTATUS_SI_HEALTH_SIG_UNKNOWN
Health unknown.
Definition sbf.hpp:805
constexpr uint8_t SbfBlockRev(const uint8_t *msg)
Get block revision.
Definition sbf.hpp:72
static constexpr const char * SBF_BDSCNAV2_STRID
SBF-BDSCNAV2 message name.
Definition sbf.hpp:228
static constexpr const char * SBF_VELCOVCARTESIAN_STRID
SBF-VELCOVCARTESIAN message name.
Definition sbf.hpp:256
static constexpr uint16_t SBF_INPUTLINK_MSGID
SBF-INPUTLINK message ID.
Definition sbf.hpp:309
static constexpr uint8_t SBF_MODEATT_HDG_PITCH_ROLL_FLOAT
Heading, pitch and roll from float ambiguities.
Definition sbf.hpp:499
static constexpr uint8_t SBF_ERRORATT_AUX2(const uint8_t mode)
Error code for Main-Aux2 baseline.
Definition sbf.hpp:511
static constexpr uint8_t SBF_MEASEPOCH_CHANNEL_TYPE_ANTID_AUX1
Aux1 antenna.
Definition sbf.hpp:740
static constexpr const char * SBF_BDSCNAV1_STRID
SBF-BDSCNAV1 message name.
Definition sbf.hpp:226
static constexpr uint8_t SBF_ALERTFLAG_RAIM(const uint8_t flag)
RAIM integrity flag.
Definition sbf.hpp:463
static constexpr const char * SBF_ASCIIIN_STRID
SBF-ASCIIIN message name.
Definition sbf.hpp:332
static constexpr uint16_t SBF_GPSNAV_MSGID
SBF-GPSNAV message ID.
Definition sbf.hpp:195
static constexpr uint8_t SBF_DATUM_USER2
Second user-defined datum.
Definition sbf.hpp:442
static constexpr uint8_t SBF_BBSAMPLES_INFO_ANTID_MAIN
Main antenna.
Definition sbf.hpp:881
static constexpr uint16_t SBF_GALALM_MSGID
SBF-GALALM message ID.
Definition sbf.hpp:213
Fixposition SDK: Common library.
Definition doc.hpp:21
Fixposition SDK.
#define SFB_PACKED
Message struct that must be packed.
Definition sbf.hpp:360
SBF ChannelSatInfo payload (rev 0)
Definition sbf.hpp:766
uint8_t N2
Number of ChannelStateInfo blocks following this ChannelSatInfo block.
Definition sbf.hpp:773
uint16_t HealthStatus
-> SBF_CHANNELSTATUS_SI_HEALTH_...
Definition sbf.hpp:771
uint8_t FreqNr
GLONASS frequency number.
Definition sbf.hpp:768
uint16_t AzimuthRiseSet
-> SBF_CHANNELSTATUS_SI_AZRS_...
Definition sbf.hpp:770
uint16_t SVIDFull
If the SVID field is zero, this field contains the satellite ID.
Definition sbf.hpp:769
SBF ChannelStateInfo payload (rev 0)
Definition sbf.hpp:784
uint16_t PVTStatus
-> SBF_CHANNELSTATE_PVTSTA_...
Definition sbf.hpp:788
uint16_t TrackingStatus
-> SBF_CHANNELSTATE_TRKSTA_...
Definition sbf.hpp:787
uint8_t Antenna
Anntena number (0 = main antenna)
Definition sbf.hpp:785
SBF ChannelStatus payload (rev 0)
Definition sbf.hpp:751
uint8_t N
Number of ChannelSatInfo sub-blocks.
Definition sbf.hpp:754
uint8_t SB2Length
Length of a ChannelStateInfo sub-block.
Definition sbf.hpp:756
uint8_t SB1Length
Length of a ChannelSatInfo sub-block, excluding the nested ChannelStatusChannelType2 sub-blocks.
Definition sbf.hpp:755
uint32_t TOW
GPS time of week [ms].
Definition sbf.hpp:752
SBF MeasEpochChannelType1Rev0 (rev 0) sub-block.
Definition sbf.hpp:697
uint8_t N2
Number of MeasEpochChannelType2 sub-blocks contained in this MeasEpochChannelType1 sub-block.
Definition sbf.hpp:709
uint8_t Type
-> MEASEPOCH_CHANNEL_TYPE_...
Definition sbf.hpp:699
uint8_t ObsInfo
-> MEASEPOCH_CHANNEL_OBSINFO_...
Definition sbf.hpp:708
SBF MeasEpochChannelType2Rev0 sub-block.
Definition sbf.hpp:718
uint8_t ObsInfo
-> SBF_MEASEPOCH_CHANNEL_OBSINFO_...
Definition sbf.hpp:724
uint8_t Type
-> SBF_MEASEPOCH_CHANNEL_TYPE_...
Definition sbf.hpp:719
SBF MeasEpoch payload (rev 1)
Definition sbf.hpp:680
uint8_t CommonFlags
Bit field containing flags common to all measurements.
Definition sbf.hpp:686
uint8_t SB2Length
Length of a MeasEpochChannelType2 sub-block.
Definition sbf.hpp:685
uint32_t TOW
GPS time of week [ms].
Definition sbf.hpp:681
uint8_t CumClkJumps
Cumulative millisecond clock jumps since start-up.
Definition sbf.hpp:687
uint8_t N1
Number of MeasEpochChannelType1Rev0 sub-blocks in this MeasEpoch block.
Definition sbf.hpp:683
uint16_t WNc
GPS week number.
Definition sbf.hpp:682
uint8_t SB1Length
Length of a MeasEpochChannelType1 sub-block, excluding the nested MeasEpochChannelType2Rev0 sub-block...
Definition sbf.hpp:684
SBF BBSamples payload head (rev 0)
Definition sbf.hpp:844
uint32_t SampleFreq
Sampling frequency [Hz] FIXME: looks like this is the span (bandwidth)
Definition sbf.hpp:850
uint32_t LOFreq
Local oscillator frequency [Hz] FIXME: looks like this is the centre frequency.
Definition sbf.hpp:851
uint8_t info
-> SBF_BBSAMPLES_INFO_...
Definition sbf.hpp:848
uint32_t TOW
GPS time of week [ms].
Definition sbf.hpp:845
SBF BBSamples payload sample (rev 0)
Definition sbf.hpp:858
SBF BBSamples payload tail (rev 0)
Definition sbf.hpp:869
SBF EndOfPvt/EndOfAtt/EndOfMeas payload (rev 0)
Definition sbf.hpp:826
uint32_t TOW
GPS time of week [ms].
Definition sbf.hpp:827
uint16_t id
Block (message) type (bits 0..12) and version (bits 13..15)
Definition sbf.hpp:346
uint16_t length
Block (payload) size.
Definition sbf.hpp:348
SBF NavCart payload (rev 0)
Definition sbf.hpp:617
uint8_t TimeSystem
-> SBF_TIMESYSTEM_...
Definition sbf.hpp:632
uint8_t NrSV
Number of satellites used.
Definition sbf.hpp:634
float COG
Course over ground [deg].
Definition sbf.hpp:629
uint16_t Latency
Latency [0.0001s].
Definition sbf.hpp:642
uint16_t HeadingAcc
2-sigma heading accuracy estimate [0.001deg]
Definition sbf.hpp:655
double X
X coordinate in coordinate frame specified by Datum [m].
Definition sbf.hpp:622
uint8_t NrSVAtt
Number of satellites used for attitude.
Definition sbf.hpp:651
uint8_t Error
-> SBF_PVTERROR_
Definition sbf.hpp:621
uint8_t NrBases
Number of basestations used.
Definition sbf.hpp:640
uint16_t WNc
GPS week number.
Definition sbf.hpp:619
uint16_t VelVacc
2-sigma vertical velocity accuracy estimate [0.01m]
Definition sbf.hpp:646
uint16_t PosVAcc
2-sigma vertical position accuracy estimate [0.01m]
Definition sbf.hpp:644
uint16_t MeanCorrAge
Mean age of corrections [0.01s].
Definition sbf.hpp:637
uint32_t TOW
GPS time of week [ms].
Definition sbf.hpp:618
uint16_t ModeAtt
-> SBF_MODEATT_...
Definition sbf.hpp:649
uint16_t PPPInfo
-> SBF_PPPINFO_...
Definition sbf.hpp:641
uint8_t AlertFlag
-> SBF_ALERTFLAG_...
Definition sbf.hpp:639
float RxClkDrift
Receiver clock drift [ppm].
Definition sbf.hpp:631
double Z
Z coordinate in coordinate frame specified by Datum [m].
Definition sbf.hpp:624
uint16_t PitchAcc
2-sigma pitch accuracy estimate [0.001deg]
Definition sbf.hpp:656
uint64_t SignalInfo
Used signals (bitmask)
Definition sbf.hpp:638
int16_t UTCmsec
UTC seconds [0.001s].
Definition sbf.hpp:661
float Undulation
Geoid undilation [m].
Definition sbf.hpp:625
uint16_t PosHAcc
2DRMS horizontal position accuracy estimate [0.01m]
Definition sbf.hpp:643
uint8_t Mode
-> SBF_PVTMODE_...
Definition sbf.hpp:620
double RxClkBias
Receiver clock bias [ms].
Definition sbf.hpp:630
uint8_t WACorrInfo
Applied corrections (bitfield)
Definition sbf.hpp:635
uint16_t ReferenceID
Reference station ID.
Definition sbf.hpp:636
uint16_t RollAcc
2-sigma roll accuracy estimate [0.001deg]
Definition sbf.hpp:657
uint8_t ErrorAtt
-> SBF_ERRORATT_...
Definition sbf.hpp:650
uint16_t VelHAcc
2DRMS horizontal velocity accuracy estimate [0.01m]
Definition sbf.hpp:645
uint8_t Datum
-> SBF_DATUM_...
Definition sbf.hpp:633
double Y
Y coordinate in coordinate frame specified by Datum [m].
Definition sbf.hpp:623
SBF PVTCartesian payload (rev 2)
Definition sbf.hpp:571
uint8_t WACorrInfo
Applied corrections (bitfield)
Definition sbf.hpp:589
uint8_t NrBases
Number of basestations used.
Definition sbf.hpp:595
uint32_t TOW
GPS time of week [ms].
Definition sbf.hpp:572
uint16_t PPPInfo
-> SBF_PPPINFO_...
Definition sbf.hpp:596
uint32_t SignalInfo
Used signals (bitmask)
Definition sbf.hpp:592
float RxClkDrift
Receiver clock drift [ppm].
Definition sbf.hpp:585
uint16_t HAccuracy
2DRMS horizontal accuracy estimate [0.01m]
Definition sbf.hpp:599
float Undulation
Geoid undilation [m].
Definition sbf.hpp:579
uint8_t TimeSystem
-> SBF_TIMESYSTEM_...
Definition sbf.hpp:586
uint16_t Latency
Latency [0.0001s].
Definition sbf.hpp:598
double X
X coordinate in coordinate frame specified by Datum [m].
Definition sbf.hpp:576
double Z
Z coordinate in coordinate frame specified by Datum [m].
Definition sbf.hpp:578
uint16_t VAccuracy
2-sigma vertical accuracy estimate [0.01m]
Definition sbf.hpp:600
uint8_t NrSV
Number of satellites used.
Definition sbf.hpp:588
double RxClkBias
Receiver clock bias [ms].
Definition sbf.hpp:584
uint16_t ReferenceID
Reference station ID.
Definition sbf.hpp:590
double Y
Y coordinate in coordinate frame specified by Datum [m].
Definition sbf.hpp:577
uint16_t MeanCorrAge
Mean age of corrections [0.01s].
Definition sbf.hpp:591
uint8_t AlertFlag
-> SBF_ALERTFLAG_...
Definition sbf.hpp:593
float COG
Course over ground [deg].
Definition sbf.hpp:583
SBF PVTGeodetic payload (rev 2)
Definition sbf.hpp:525
uint8_t NrSV
Number of satellites used.
Definition sbf.hpp:542
uint16_t ReferenceID
Reference station ID.
Definition sbf.hpp:544
uint16_t MeanCorrAge
Mean age of corrections [0.01s].
Definition sbf.hpp:545
uint8_t WACorrInfo
Applied corrections (bitfield)
Definition sbf.hpp:543
uint16_t VAccuracy
2-sigma vertical accuracy estimate [0.01m]
Definition sbf.hpp:554
uint16_t PPPInfo
-> SBF_PPPINFO_...
Definition sbf.hpp:550
uint8_t TimeSystem
-> SBF_TIMESYSTEM_...
Definition sbf.hpp:540
uint32_t TOW
GPS time of week [ms].
Definition sbf.hpp:526
uint16_t HAccuracy
2DRMS horizontal accuracy estimate [0.01m]
Definition sbf.hpp:553
uint16_t Latency
Latency [0.0001s].
Definition sbf.hpp:552
float Undulation
Geoid undilation [m].
Definition sbf.hpp:533
uint8_t Error
-> SBF_ERRORPVT_...
Definition sbf.hpp:529
uint8_t NrBases
Number of basestations used.
Definition sbf.hpp:549
uint8_t AlertFlag
-> SBF_ALERTFLAG_...
Definition sbf.hpp:547
double RxClkBias
Receiver clock bias [ms].
Definition sbf.hpp:538
float COG
Course over ground [deg].
Definition sbf.hpp:537
uint32_t SignalInfo
Used signals (bitmask)
Definition sbf.hpp:546
float RxClkDrift
Receiver clock drift [ppm].
Definition sbf.hpp:539