Fixposition SDK 0.0.0-heads/main-0-g90a51ff
Collection of c++ libraries and apps for use with Fixposition products
Loading...
Searching...
No Matches
unib.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 * Based on work by flipflip (https://github.com/phkehl)
10 * The information on message structures, IDs, descriptions etc. in this file are from publicly available data, such as:
11 * - Unicore Standard Position Protocol, copyright (c) 2009-2023, Unicore Communications, Inc.
12 * - Unicore High Precision Commands and Logs, Copyright (c) 2009-2021, Unicore Communications, Inc.
13 * \endverbatim
14 *
15 * @file
16 * @brief Fixposition SDK: Parser UNI_B routines and types
17 *
18 * @page FPSDK_COMMON_PARSER_UNIB Parser UNI_B routines and types
19 *
20 * **API**: fpsdk_common/parser/unib.hpp and fpsdk::common::parser::unib
21 *
22 */
23#ifndef __FPSDK_COMMON_PARSER_UNIB_HPP__
24#define __FPSDK_COMMON_PARSER_UNIB_HPP__
25
26/* LIBC/STL */
27#include <cstdint>
28
29/* EXTERNAL */
30
31/* PACKAGE */
32#include "novb.hpp"
33
34namespace fpsdk {
35namespace common {
36namespace parser {
37/**
38 * @brief Parser UNI_B routines and types
39 */
40namespace unib {
41/* ****************************************************************************************************************** */
42
43static constexpr uint8_t UNI_B_SYNC_1 = 0xaa; //!< Sync char 1
44static constexpr uint8_t UNI_B_SYNC_2 = 0x44; //!< Sync char 2
45static constexpr uint8_t UNI_B_SYNC_3 = 0xb5; //!< Sync char 3
46static constexpr std::size_t UNI_B_HEAD_SIZE = 24; //!< Size of the UNI_B header (UnibHeader)
47
48/**
49 * @brief Get message ID
50 *
51 * @param[in] msg Pointer to the start of the message
52 *
53 * @note No check on the data provided is done. The caller must ensure that the data is a valid UNI_B message.
54 *
55 * @returns the message ID
56 */
57constexpr uint16_t UnibMsgId(const uint8_t* msg)
58{
59 return (((uint16_t)((uint8_t*)msg)[5] << 8) | (uint16_t)((uint8_t*)msg)[4]);
60}
61
62/**
63 * @brief Get message size
64 *
65 * @param[in] msg Pointer to the start of the message
66 *
67 * @note No check on the data provided is done. The caller must ensure that the data is a valid UNI_B message.
68 *
69 * @returns the message size
70 */
71constexpr uint16_t UnibMsgSize(const uint8_t* msg)
72{
73 return (((uint16_t)((uint8_t*)msg)[7] << 8) | (uint16_t)((uint8_t*)msg)[6]);
74}
75
76/**
77 * @brief Get message version
78 *
79 * @param[in] msg Pointer to the start of the message
80 *
81 * @note No check on the data provided is done. The caller must ensure that the data is a valid UNI_B message.
82 *
83 * @returns the message version
84 */
85constexpr uint8_t UNI_B_MSGVER(const uint8_t* msg)
86{
87 return msg[20];
88}
89
90/**
91 * @brief Get UNI_B message name
92 *
93 * Generates a name (string) in the form "UNI_B-NAME", where NAME is a suitable stringifications of the
94 * message ID if known (for example, "UNI_B-BESTNAV", respectively "%05u" formatted message ID if unknown (for
95 * example, "UNI_B-MSG01234").
96 *
97 * @param[out] name String to write the name to
98 * @param[in] size Size of \c name (incl. nul termination)
99 * @param[in] msg Pointer to the UNI_B message
100 * @param[in] msg_size Size of the \c msg
101 *
102 * @note No check on the data provided is done. The caller must ensure that the data is a valid UNI_B message.
103 *
104 * @returns true if message name was generated, false if \c name buffer was too small
105 */
106bool UnibGetMessageName(char* name, const std::size_t size, const uint8_t* msg, const std::size_t msg_size);
107
108/**
109 * @brief Get UNI_B message info
110 *
111 * This stringifies the content of some UNI_B messages, for debugging.
112 *
113 * @param[out] info String to write the info to
114 * @param[in] size Size of \c name (incl. nul termination)
115 * @param[in] msg Pointer to the UNI_B message
116 * @param[in] msg_size Size of the \c msg
117 *
118 * @note No check on the data provided is done. The caller must ensure that the data is a valid UNI_B message.
119 *
120 * @returns true if message info was generated (even if info is empty), false if \c name buffer was too small
121 */
122bool UnibGetMessageInfo(char* info, const std::size_t size, const uint8_t* msg, const std::size_t msg_size);
123
124// ---------------------------------------------------------------------------------------------------------------------
125
126/**
127 * @name UNI_B messages (names and IDs)
128 *
129 * @{
130 */
131// clang-format off
132// @fp_codegen_begin{FPSDK_COMMON_PARSER_UNIB_MESSAGES}
133static constexpr uint16_t UNI_B_VERSION_MSGID = 37; //!< UNI_B-VERSION message ID
134static constexpr const char* UNI_B_VERSION_STRID = "UNI_B-VERSION"; //!< UNI_B-VERSION message name
135static constexpr uint16_t UNI_B_OBSVM_MSGID = 12; //!< UNI_B-OBSVM message ID
136static constexpr const char* UNI_B_OBSVM_STRID = "UNI_B-OBSVM"; //!< UNI_B-OBSVM message name
137static constexpr uint16_t UNI_B_OBSVH_MSGID = 13; //!< UNI_B-OBSVH message ID
138static constexpr const char* UNI_B_OBSVH_STRID = "UNI_B-OBSVH"; //!< UNI_B-OBSVH message name
139static constexpr uint16_t UNI_B_OBSVMCMP_MSGID = 138; //!< UNI_B-OBSVMCMP message ID
140static constexpr const char* UNI_B_OBSVMCMP_STRID = "UNI_B-OBSVMCMP"; //!< UNI_B-OBSVMCMP message name
141static constexpr uint16_t UNI_B_OBSVHCMP_MSGID = 139; //!< UNI_B-OBSVHCMP message ID
142static constexpr const char* UNI_B_OBSVHCMP_STRID = "UNI_B-OBSVHCMP"; //!< UNI_B-OBSVHCMP message name
143static constexpr uint16_t UNI_B_OBSVBASE_MSGID = 284; //!< UNI_B-OBSVBASE message ID
144static constexpr const char* UNI_B_OBSVBASE_STRID = "UNI_B-OBSVBASE"; //!< UNI_B-OBSVBASE message name
145static constexpr uint16_t UNI_B_BASEINFO_MSGID = 176; //!< UNI_B-BASEINFO message ID
146static constexpr const char* UNI_B_BASEINFO_STRID = "UNI_B-BASEINFO"; //!< UNI_B-BASEINFO message name
147static constexpr uint16_t UNI_B_GPSION_MSGID = 8; //!< UNI_B-GPSION message ID
148static constexpr const char* UNI_B_GPSION_STRID = "UNI_B-GPSION"; //!< UNI_B-GPSION message name
149static constexpr uint16_t UNI_B_BD3ION_MSGID = 21; //!< UNI_B-BD3ION message ID
150static constexpr const char* UNI_B_BD3ION_STRID = "UNI_B-BD3ION"; //!< UNI_B-BD3ION message name
151static constexpr uint16_t UNI_B_BDSION_MSGID = 4; //!< UNI_B-BDSION message ID
152static constexpr const char* UNI_B_BDSION_STRID = "UNI_B-BDSION"; //!< UNI_B-BDSION message name
153static constexpr uint16_t UNI_B_GALION_MSGID = 9; //!< UNI_B-GALION message ID
154static constexpr const char* UNI_B_GALION_STRID = "UNI_B-GALION"; //!< UNI_B-GALION message name
155static constexpr uint16_t UNI_B_GPSUTC_MSGID = 19; //!< UNI_B-GPSUTC message ID
156static constexpr const char* UNI_B_GPSUTC_STRID = "UNI_B-GPSUTC"; //!< UNI_B-GPSUTC message name
157static constexpr uint16_t UNI_B_BD3UTC_MSGID = 22; //!< UNI_B-BD3UTC message ID
158static constexpr const char* UNI_B_BD3UTC_STRID = "UNI_B-BD3UTC"; //!< UNI_B-BD3UTC message name
159static constexpr uint16_t UNI_B_BDSUTC_MSGID = 2012; //!< UNI_B-BDSUTC message ID
160static constexpr const char* UNI_B_BDSUTC_STRID = "UNI_B-BDSUTC"; //!< UNI_B-BDSUTC message name
161static constexpr uint16_t UNI_B_GALUTC_MSGID = 20; //!< UNI_B-GALUTC message ID
162static constexpr const char* UNI_B_GALUTC_STRID = "UNI_B-GALUTC"; //!< UNI_B-GALUTC message name
163static constexpr uint16_t UNI_B_GPSEPH_MSGID = 106; //!< UNI_B-GPSEPH message ID
164static constexpr const char* UNI_B_GPSEPH_STRID = "UNI_B-GPSEPH"; //!< UNI_B-GPSEPH message name
165static constexpr uint16_t UNI_B_QZSSEPH_MSGID = 110; //!< UNI_B-QZSSEPH message ID
166static constexpr const char* UNI_B_QZSSEPH_STRID = "UNI_B-QZSSEPH"; //!< UNI_B-QZSSEPH message name
167static constexpr uint16_t UNI_B_BD3EPH_MSGID = 2999; //!< UNI_B-BD3EPH message ID
168static constexpr const char* UNI_B_BD3EPH_STRID = "UNI_B-BD3EPH"; //!< UNI_B-BD3EPH message name
169static constexpr uint16_t UNI_B_BDSEPH_MSGID = 108; //!< UNI_B-BDSEPH message ID
170static constexpr const char* UNI_B_BDSEPH_STRID = "UNI_B-BDSEPH"; //!< UNI_B-BDSEPH message name
171static constexpr uint16_t UNI_B_GLOEPH_MSGID = 107; //!< UNI_B-GLOEPH message ID
172static constexpr const char* UNI_B_GLOEPH_STRID = "UNI_B-GLOEPH"; //!< UNI_B-GLOEPH message name
173static constexpr uint16_t UNI_B_GALEPH_MSGID = 109; //!< UNI_B-GALEPH message ID
174static constexpr const char* UNI_B_GALEPH_STRID = "UNI_B-GALEPH"; //!< UNI_B-GALEPH message name
175static constexpr uint16_t UNI_B_AGRIC_MSGID = 1276; //!< UNI_B-AGRIC message ID
176static constexpr const char* UNI_B_AGRIC_STRID = "UNI_B-AGRIC"; //!< UNI_B-AGRIC message name
177static constexpr uint16_t UNI_B_PVTSLN_MSGID = 1021; //!< UNI_B-PVTSLN message ID
178static constexpr const char* UNI_B_PVTSLN_STRID = "UNI_B-PVTSLN"; //!< UNI_B-PVTSLN message name
179static constexpr uint16_t UNI_B_BESTNAV_MSGID = 2118; //!< UNI_B-BESTNAV message ID
180static constexpr const char* UNI_B_BESTNAV_STRID = "UNI_B-BESTNAV"; //!< UNI_B-BESTNAV message name
181static constexpr uint16_t UNI_B_BESTNAVXYZ_MSGID = 240; //!< UNI_B-BESTNAVXYZ message ID
182static constexpr const char* UNI_B_BESTNAVXYZ_STRID = "UNI_B-BESTNAVXYZ"; //!< UNI_B-BESTNAVXYZ message name
183static constexpr uint16_t UNI_B_BESTNAVH_MSGID = 2119; //!< UNI_B-BESTNAVH message ID
184static constexpr const char* UNI_B_BESTNAVH_STRID = "UNI_B-BESTNAVH"; //!< UNI_B-BESTNAVH message name
185static constexpr uint16_t UNI_B_BESTNAVXYZH_MSGID = 242; //!< UNI_B-BESTNAVXYZH message ID
186static constexpr const char* UNI_B_BESTNAVXYZH_STRID = "UNI_B-BESTNAVXYZH"; //!< UNI_B-BESTNAVXYZH message name
187static constexpr uint16_t UNI_B_BESTSAT_MSGID = 1041; //!< UNI_B-BESTSAT message ID
188static constexpr const char* UNI_B_BESTSAT_STRID = "UNI_B-BESTSAT"; //!< UNI_B-BESTSAT message name
189static constexpr uint16_t UNI_B_ADRNAV_MSGID = 142; //!< UNI_B-ADRNAV message ID
190static constexpr const char* UNI_B_ADRNAV_STRID = "UNI_B-ADRNAV"; //!< UNI_B-ADRNAV message name
191static constexpr uint16_t UNI_B_ADRNAVH_MSGID = 2117; //!< UNI_B-ADRNAVH message ID
192static constexpr const char* UNI_B_ADRNAVH_STRID = "UNI_B-ADRNAVH"; //!< UNI_B-ADRNAVH message name
193static constexpr uint16_t UNI_B_PPPNAV_MSGID = 1026; //!< UNI_B-PPPNAV message ID
194static constexpr const char* UNI_B_PPPNAV_STRID = "UNI_B-PPPNAV"; //!< UNI_B-PPPNAV message name
195static constexpr uint16_t UNI_B_SPPNAV_MSGID = 46; //!< UNI_B-SPPNAV message ID
196static constexpr const char* UNI_B_SPPNAV_STRID = "UNI_B-SPPNAV"; //!< UNI_B-SPPNAV message name
197static constexpr uint16_t UNI_B_SPPNAVH_MSGID = 2116; //!< UNI_B-SPPNAVH message ID
198static constexpr const char* UNI_B_SPPNAVH_STRID = "UNI_B-SPPNAVH"; //!< UNI_B-SPPNAVH message name
199static constexpr uint16_t UNI_B_STADOP_MSGID = 954; //!< UNI_B-STADOP message ID
200static constexpr const char* UNI_B_STADOP_STRID = "UNI_B-STADOP"; //!< UNI_B-STADOP message name
201static constexpr uint16_t UNI_B_STADOPH_MSGID = 2122; //!< UNI_B-STADOPH message ID
202static constexpr const char* UNI_B_STADOPH_STRID = "UNI_B-STADOPH"; //!< UNI_B-STADOPH message name
203static constexpr uint16_t UNI_B_ADRDOP_MSGID = 953; //!< UNI_B-ADRDOP message ID
204static constexpr const char* UNI_B_ADRDOP_STRID = "UNI_B-ADRDOP"; //!< UNI_B-ADRDOP message name
205static constexpr uint16_t UNI_B_ADRDOPH_MSGID = 2121; //!< UNI_B-ADRDOPH message ID
206static constexpr const char* UNI_B_ADRDOPH_STRID = "UNI_B-ADRDOPH"; //!< UNI_B-ADRDOPH message name
207static constexpr uint16_t UNI_B_PPPDOP_MSGID = 1025; //!< UNI_B-PPPDOP message ID
208static constexpr const char* UNI_B_PPPDOP_STRID = "UNI_B-PPPDOP"; //!< UNI_B-PPPDOP message name
209static constexpr uint16_t UNI_B_SPPDOP_MSGID = 173; //!< UNI_B-SPPDOP message ID
210static constexpr const char* UNI_B_SPPDOP_STRID = "UNI_B-SPPDOP"; //!< UNI_B-SPPDOP message name
211static constexpr uint16_t UNI_B_SPPDOPH_MSGID = 2120; //!< UNI_B-SPPDOPH message ID
212static constexpr const char* UNI_B_SPPDOPH_STRID = "UNI_B-SPPDOPH"; //!< UNI_B-SPPDOPH message name
213static constexpr uint16_t UNI_B_SATSINFO_MSGID = 2124; //!< UNI_B-SATSINFO message ID
214static constexpr const char* UNI_B_SATSINFO_STRID = "UNI_B-SATSINFO"; //!< UNI_B-SATSINFO message name
215static constexpr uint16_t UNI_B_BASEPOS_MSGID = 49; //!< UNI_B-BASEPOS message ID
216static constexpr const char* UNI_B_BASEPOS_STRID = "UNI_B-BASEPOS"; //!< UNI_B-BASEPOS message name
217static constexpr uint16_t UNI_B_SATELLITE_MSGID = 1042; //!< UNI_B-SATELLITE message ID
218static constexpr const char* UNI_B_SATELLITE_STRID = "UNI_B-SATELLITE"; //!< UNI_B-SATELLITE message name
219static constexpr uint16_t UNI_B_SATECEF_MSGID = 2115; //!< UNI_B-SATECEF message ID
220static constexpr const char* UNI_B_SATECEF_STRID = "UNI_B-SATECEF"; //!< UNI_B-SATECEF message name
221static constexpr uint16_t UNI_B_RECTIME_MSGID = 102; //!< UNI_B-RECTIME message ID
222static constexpr const char* UNI_B_RECTIME_STRID = "UNI_B-RECTIME"; //!< UNI_B-RECTIME message name
223static constexpr uint16_t UNI_B_NOVHEADING_MSGID = 972; //!< UNI_B-NOVHEADING message ID
224static constexpr const char* UNI_B_NOVHEADING_STRID = "UNI_B-NOVHEADING"; //!< UNI_B-NOVHEADING message name
225static constexpr uint16_t UNI_B_NOVHEADING2_MSGID = 1331; //!< UNI_B-NOVHEADING2 message ID
226static constexpr const char* UNI_B_NOVHEADING2_STRID = "UNI_B-NOVHEADING2"; //!< UNI_B-NOVHEADING2 message name
227static constexpr uint16_t UNI_B_RTKSTATUS_MSGID = 509; //!< UNI_B-RTKSTATUS message ID
228static constexpr const char* UNI_B_RTKSTATUS_STRID = "UNI_B-RTKSTATUS"; //!< UNI_B-RTKSTATUS message name
229static constexpr uint16_t UNI_B_AGNSSSTATUS_MSGID = 512; //!< UNI_B-AGNSSSTATUS message ID
230static constexpr const char* UNI_B_AGNSSSTATUS_STRID = "UNI_B-AGNSSSTATUS"; //!< UNI_B-AGNSSSTATUS message name
231static constexpr uint16_t UNI_B_RTCSTATUS_MSGID = 510; //!< UNI_B-RTCSTATUS message ID
232static constexpr const char* UNI_B_RTCSTATUS_STRID = "UNI_B-RTCSTATUS"; //!< UNI_B-RTCSTATUS message name
233static constexpr uint16_t UNI_B_JAMSTATUS_MSGID = 511; //!< UNI_B-JAMSTATUS message ID
234static constexpr const char* UNI_B_JAMSTATUS_STRID = "UNI_B-JAMSTATUS"; //!< UNI_B-JAMSTATUS message name
235static constexpr uint16_t UNI_B_FREQJAMSTATUS_MSGID = 519; //!< UNI_B-FREQJAMSTATUS message ID
236static constexpr const char* UNI_B_FREQJAMSTATUS_STRID = "UNI_B-FREQJAMSTATUS"; //!< UNI_B-FREQJAMSTATUS message name
237static constexpr uint16_t UNI_B_RTCMSTATUS_MSGID = 2125; //!< UNI_B-RTCMSTATUS message ID
238static constexpr const char* UNI_B_RTCMSTATUS_STRID = "UNI_B-RTCMSTATUS"; //!< UNI_B-RTCMSTATUS message name
239static constexpr uint16_t UNI_B_HWSTATUS_MSGID = 218; //!< UNI_B-HWSTATUS message ID
240static constexpr const char* UNI_B_HWSTATUS_STRID = "UNI_B-HWSTATUS"; //!< UNI_B-HWSTATUS message name
241static constexpr uint16_t UNI_B_PPPSTATUS_MSGID = 9000; //!< UNI_B-PPPSTATUS message ID
242static constexpr const char* UNI_B_PPPSTATUS_STRID = "UNI_B-PPPSTATUS"; //!< UNI_B-PPPSTATUS message name
243static constexpr uint16_t UNI_B_AGC_MSGID = 220; //!< UNI_B-AGC message ID
244static constexpr const char* UNI_B_AGC_STRID = "UNI_B-AGC"; //!< UNI_B-AGC message name
245static constexpr uint16_t UNI_B_INFOPART1_MSGID = 1019; //!< UNI_B-INFOPART1 message ID
246static constexpr const char* UNI_B_INFOPART1_STRID = "UNI_B-INFOPART1"; //!< UNI_B-INFOPART1 message name
247static constexpr uint16_t UNI_B_INFOPART2_MSGID = 1020; //!< UNI_B-INFOPART2 message ID
248static constexpr const char* UNI_B_INFOPART2_STRID = "UNI_B-INFOPART2"; //!< UNI_B-INFOPART2 message name
249static constexpr uint16_t UNI_B_MSPOS_MSGID = 520; //!< UNI_B-MSPOS message ID
250static constexpr const char* UNI_B_MSPOS_STRID = "UNI_B-MSPOS"; //!< UNI_B-MSPOS message name
251static constexpr uint16_t UNI_B_TROPINFO_MSGID = 2318; //!< UNI_B-TROPINFO message ID
252static constexpr const char* UNI_B_TROPINFO_STRID = "UNI_B-TROPINFO"; //!< UNI_B-TROPINFO message name
253static constexpr uint16_t UNI_B_PTOBSINFO_MSGID = 221; //!< UNI_B-PTOBSINFO message ID
254static constexpr const char* UNI_B_PTOBSINFO_STRID = "UNI_B-PTOBSINFO"; //!< UNI_B-PTOBSINFO message name
255static constexpr uint16_t UNI_B_PPPB2INFO1_MSGID = 2302; //!< UNI_B-PPPB2INFO1 message ID
256static constexpr const char* UNI_B_PPPB2INFO1_STRID = "UNI_B-PPPB2INFO1"; //!< UNI_B-PPPB2INFO1 message name
257static constexpr uint16_t UNI_B_PPPB2INFO2_MSGID = 2304; //!< UNI_B-PPPB2INFO2 message ID
258static constexpr const char* UNI_B_PPPB2INFO2_STRID = "UNI_B-PPPB2INFO2"; //!< UNI_B-PPPB2INFO2 message name
259static constexpr uint16_t UNI_B_PPPB2INFO3_MSGID = 2306; //!< UNI_B-PPPB2INFO3 message ID
260static constexpr const char* UNI_B_PPPB2INFO3_STRID = "UNI_B-PPPB2INFO3"; //!< UNI_B-PPPB2INFO3 message name
261static constexpr uint16_t UNI_B_PPPB2INFO4_MSGID = 2308; //!< UNI_B-PPPB2INFO4 message ID
262static constexpr const char* UNI_B_PPPB2INFO4_STRID = "UNI_B-PPPB2INFO4"; //!< UNI_B-PPPB2INFO4 message name
263static constexpr uint16_t UNI_B_PPPB2INFO5_MSGID = 2310; //!< UNI_B-PPPB2INFO5 message ID
264static constexpr const char* UNI_B_PPPB2INFO5_STRID = "UNI_B-PPPB2INFO5"; //!< UNI_B-PPPB2INFO5 message name
265static constexpr uint16_t UNI_B_PPPB2INFO6_MSGID = 2312; //!< UNI_B-PPPB2INFO6 message ID
266static constexpr const char* UNI_B_PPPB2INFO6_STRID = "UNI_B-PPPB2INFO6"; //!< UNI_B-PPPB2INFO6 message name
267static constexpr uint16_t UNI_B_PPPB2INFO7_MSGID = 2314; //!< UNI_B-PPPB2INFO7 message ID
268static constexpr const char* UNI_B_PPPB2INFO7_STRID = "UNI_B-PPPB2INFO7"; //!< UNI_B-PPPB2INFO7 message name
269// @fp_codegen_end{FPSDK_COMMON_PARSER_UNIB_MESSAGES}
270// clang-format on
271///@}
272
273// ---------------------------------------------------------------------------------------------------------------------
274
275/**
276 * @brief UNI_B frame long header
277 */
279{ // clang-format off
280 uint8_t sync1; //!< = UNI_B_SYNC_1
281 uint8_t sync2; //!< = UNI_B_SYNC_2
282 uint8_t sync3; //!< = UNI_B_SYNC_3_LONG
283 uint8_t cpu_idle; //!< CPU idle [%] (0-100), 1s average
284 uint16_t message_id; //!< Message ID
285 uint16_t message_size; //!< Size of message (payload?) TODO
286 uint8_t time_ref; //!< Time reference (UnibTimeRef)
287 uint8_t time_status; //!< Time status (UnibTimeStatus)
288 uint16_t wno; //!< Week number [-]
289 uint32_t tow_ms; //!< Time of week [ms]
290 uint32_t reserved; //!< Reserved
291 uint8_t version; //!< Unicore format version (TODO message (payload) version?)
292 uint8_t leap_sec; //!< Leap second (TODO number of leap seconds?)
293 uint16_t output_delay; //!< Output delay (w.r.t. measurement time)
294}; // clang-format on
295
296static_assert(sizeof(UnibHeader) == UNI_B_HEAD_SIZE, "");
297
298// ---------------------------------------------------------------------------------------------------------------------
299
300/**
301 * @brief Time reference
302 */
303enum class UnibTimeRef : uint8_t
304{ // clang-format off
305 GPST = 0, //!< GPS
306 BDST = 1, //!< BeiDou
307}; // clang-format on
308
309/**
310 * @brief Stringify time reference
311 *
312 * @param[in] time_ref The time reference
313 *
314 * @returns a unique string for the time reference
315 */
316const char* UnibTimeRefStr(const UnibTimeRef time_ref);
317
318/**
319 * @brief Time status
320 */
321enum class UnibTimeStatus : uint8_t
322{ // clang-format off
323 UNKNOWN = static_cast<uint8_t>(novb::NovbTimeStatus::UNKNOWN), //!< Unknown, precise time not known
324 FINE = static_cast<uint8_t>(novb::NovbTimeStatus::FINE), //!< Precise time known
325}; // clang-format on
326
327/**
328 * @brief Stringify time status
329 *
330 * @param[in] time_status The time status
331 *
332 * @returns a unique string for the time status
333 */
334const char* UnibTimeStatusStr(const UnibTimeStatus time_status);
335
336/**
337 * @brief Product model
338 */
339enum class UnibProductModel : uint32_t
340{ // clang-format off
341 UNKNOWN = 0, //!< Unknown
342 UB4B0 = 1, //!< UB4B0
343 UM4B0 = 2, //!< UM4B0
344 UM480 = 3, //!< UM480
345 UM440 = 4, //!< UM440
346 UM482 = 5, //!< UM482
347 UM442 = 6, //!< UM442
348 UB482 = 7, //!< UB482
349 UT4B0 = 8, //!< UT4B0
350 UB362L = 10, //!< UB362L
351 UB4B0M = 11, //!< UB4B0M
352 UB4B0J = 12, //!< UB4B0J
353 UM482L = 13, //!< UM482L
354 UM4B0L = 14, //!< UM4B0L
355 CLAP_B = 16, //!< CLAP-B
356 UM982 = 17, //!< UM982
357 UM980 = 18, //!< UM980
358 UM960 = 19, //!< UM960
359 UM980A = 21, //!< UM980A
360 CLAP_C = 23, //!< CLAP-C
361 UM960L = 24, //!< UM960L
362 UM981 = 26, //!< UM981
363}; // clang-format on
364
365/**
366 * @brief Stringify UNI_B-VERSION.product_model
367 *
368 * @param[in] model The model value
369 *
370 * @returns a short and unique string identifying the receiver model
371 */
372const char* UnibProductModelStr(const UnibProductModel model);
373
374// ---------------------------------------------------------------------------------------------------------------------
375
376/**
377 * @brief UNI_B-VERSION payload
378 */
380{ // clang-format off
381 uint32_t product_model; //!< Product model (UnibProductModel)
382 uint8_t firmware_version[33]; //!< Firmware version (nul-terminated string)
383 uint8_t auth_type[129]; //!< Authorization type (nul-terminated string)
384 uint8_t psn[66]; //!< PN and SN (nul-terminated string)
385 uint8_t board_id[33]; //!< Board ID (nul-terminated string)
386 uint8_t firmware_date[43]; //!< Firmware date (yyyy/mm/dd, nul-terminated string)
387}; // clang-format on
388
389static_assert(sizeof(UnibVersionPayload) == 308, "");
390
391/* ****************************************************************************************************************** */
392} // namespace unib
393} // namespace parser
394} // namespace common
395} // namespace fpsdk
396#endif // __FPSDK_COMMON_PARSER_UNIB_HPP__
static constexpr const char * UNI_B_BASEINFO_STRID
UNI_B-BASEINFO message name.
Definition unib.hpp:146
static constexpr const char * UNI_B_GPSUTC_STRID
UNI_B-GPSUTC message name.
Definition unib.hpp:156
static constexpr const char * UNI_B_PPPDOP_STRID
UNI_B-PPPDOP message name.
Definition unib.hpp:208
static constexpr uint16_t UNI_B_OBSVM_MSGID
UNI_B-OBSVM message ID.
Definition unib.hpp:135
static constexpr uint16_t UNI_B_GLOEPH_MSGID
UNI_B-GLOEPH message ID.
Definition unib.hpp:171
static constexpr const char * UNI_B_SATECEF_STRID
UNI_B-SATECEF message name.
Definition unib.hpp:220
static constexpr uint16_t UNI_B_BDSUTC_MSGID
UNI_B-BDSUTC message ID.
Definition unib.hpp:159
static constexpr uint16_t UNI_B_VERSION_MSGID
UNI_B-VERSION message ID.
Definition unib.hpp:133
static constexpr const char * UNI_B_BESTNAV_STRID
UNI_B-BESTNAV message name.
Definition unib.hpp:180
static constexpr uint16_t UNI_B_OBSVH_MSGID
UNI_B-OBSVH message ID.
Definition unib.hpp:137
static constexpr uint16_t UNI_B_ADRNAVH_MSGID
UNI_B-ADRNAVH message ID.
Definition unib.hpp:191
static constexpr const char * UNI_B_PPPSTATUS_STRID
UNI_B-PPPSTATUS message name.
Definition unib.hpp:242
static constexpr uint16_t UNI_B_PPPB2INFO6_MSGID
UNI_B-PPPB2INFO6 message ID.
Definition unib.hpp:265
static constexpr const char * UNI_B_TROPINFO_STRID
UNI_B-TROPINFO message name.
Definition unib.hpp:252
static constexpr const char * UNI_B_SATSINFO_STRID
UNI_B-SATSINFO message name.
Definition unib.hpp:214
static constexpr uint8_t UNI_B_SYNC_1
Sync char 1.
Definition unib.hpp:43
static constexpr const char * UNI_B_NOVHEADING_STRID
UNI_B-NOVHEADING message name.
Definition unib.hpp:224
static constexpr uint16_t UNI_B_STADOP_MSGID
UNI_B-STADOP message ID.
Definition unib.hpp:199
static constexpr uint16_t UNI_B_PPPDOP_MSGID
UNI_B-PPPDOP message ID.
Definition unib.hpp:207
static constexpr uint16_t UNI_B_INFOPART2_MSGID
UNI_B-INFOPART2 message ID.
Definition unib.hpp:247
static constexpr const char * UNI_B_PPPNAV_STRID
UNI_B-PPPNAV message name.
Definition unib.hpp:194
static constexpr uint16_t UNI_B_SPPNAVH_MSGID
UNI_B-SPPNAVH message ID.
Definition unib.hpp:197
static constexpr uint16_t UNI_B_ADRNAV_MSGID
UNI_B-ADRNAV message ID.
Definition unib.hpp:189
static constexpr uint16_t UNI_B_RTCSTATUS_MSGID
UNI_B-RTCSTATUS message ID.
Definition unib.hpp:231
static constexpr uint16_t UNI_B_PPPB2INFO1_MSGID
UNI_B-PPPB2INFO1 message ID.
Definition unib.hpp:255
static constexpr const char * UNI_B_AGC_STRID
UNI_B-AGC message name.
Definition unib.hpp:244
static constexpr const char * UNI_B_GALEPH_STRID
UNI_B-GALEPH message name.
Definition unib.hpp:174
static constexpr const char * UNI_B_ADRDOP_STRID
UNI_B-ADRDOP message name.
Definition unib.hpp:204
static constexpr uint16_t UNI_B_BD3EPH_MSGID
UNI_B-BD3EPH message ID.
Definition unib.hpp:167
static constexpr const char * UNI_B_BESTSAT_STRID
UNI_B-BESTSAT message name.
Definition unib.hpp:188
static constexpr const char * UNI_B_RTCMSTATUS_STRID
UNI_B-RTCMSTATUS message name.
Definition unib.hpp:238
static constexpr const char * UNI_B_GLOEPH_STRID
UNI_B-GLOEPH message name.
Definition unib.hpp:172
static constexpr const char * UNI_B_PPPB2INFO4_STRID
UNI_B-PPPB2INFO4 message name.
Definition unib.hpp:262
static constexpr const char * UNI_B_BDSION_STRID
UNI_B-BDSION message name.
Definition unib.hpp:152
static constexpr const char * UNI_B_PPPB2INFO7_STRID
UNI_B-PPPB2INFO7 message name.
Definition unib.hpp:268
static constexpr const char * UNI_B_BESTNAVH_STRID
UNI_B-BESTNAVH message name.
Definition unib.hpp:184
static constexpr uint16_t UNI_B_BDSION_MSGID
UNI_B-BDSION message ID.
Definition unib.hpp:151
UnibTimeStatus
Time status.
Definition unib.hpp:322
@ UNKNOWN
Unknown, precise time not known.
static constexpr uint16_t UNI_B_INFOPART1_MSGID
UNI_B-INFOPART1 message ID.
Definition unib.hpp:245
static constexpr const char * UNI_B_OBSVM_STRID
UNI_B-OBSVM message name.
Definition unib.hpp:136
static constexpr const char * UNI_B_GPSION_STRID
UNI_B-GPSION message name.
Definition unib.hpp:148
static constexpr uint16_t UNI_B_GALEPH_MSGID
UNI_B-GALEPH message ID.
Definition unib.hpp:173
static constexpr uint16_t UNI_B_BASEINFO_MSGID
UNI_B-BASEINFO message ID.
Definition unib.hpp:145
bool UnibGetMessageName(char *name, const std::size_t size, const uint8_t *msg, const std::size_t msg_size)
Get UNI_B message name.
static constexpr uint16_t UNI_B_STADOPH_MSGID
UNI_B-STADOPH message ID.
Definition unib.hpp:201
constexpr uint8_t UNI_B_MSGVER(const uint8_t *msg)
Get message version.
Definition unib.hpp:85
static constexpr uint16_t UNI_B_SATECEF_MSGID
UNI_B-SATECEF message ID.
Definition unib.hpp:219
static constexpr const char * UNI_B_GALUTC_STRID
UNI_B-GALUTC message name.
Definition unib.hpp:162
static constexpr uint16_t UNI_B_PPPSTATUS_MSGID
UNI_B-PPPSTATUS message ID.
Definition unib.hpp:241
static constexpr uint16_t UNI_B_SATSINFO_MSGID
UNI_B-SATSINFO message ID.
Definition unib.hpp:213
static constexpr const char * UNI_B_INFOPART2_STRID
UNI_B-INFOPART2 message name.
Definition unib.hpp:248
static constexpr const char * UNI_B_AGRIC_STRID
UNI_B-AGRIC message name.
Definition unib.hpp:176
static constexpr const char * UNI_B_SPPNAVH_STRID
UNI_B-SPPNAVH message name.
Definition unib.hpp:198
static constexpr const char * UNI_B_BDSEPH_STRID
UNI_B-BDSEPH message name.
Definition unib.hpp:170
static constexpr uint16_t UNI_B_AGRIC_MSGID
UNI_B-AGRIC message ID.
Definition unib.hpp:175
static constexpr const char * UNI_B_STADOP_STRID
UNI_B-STADOP message name.
Definition unib.hpp:200
static constexpr const char * UNI_B_INFOPART1_STRID
UNI_B-INFOPART1 message name.
Definition unib.hpp:246
static constexpr uint8_t UNI_B_SYNC_3
Sync char 3.
Definition unib.hpp:45
static constexpr const char * UNI_B_GALION_STRID
UNI_B-GALION message name.
Definition unib.hpp:154
static constexpr const char * UNI_B_RTKSTATUS_STRID
UNI_B-RTKSTATUS message name.
Definition unib.hpp:228
static constexpr const char * UNI_B_VERSION_STRID
UNI_B-VERSION message name.
Definition unib.hpp:134
static constexpr const char * UNI_B_PVTSLN_STRID
UNI_B-PVTSLN message name.
Definition unib.hpp:178
static constexpr const char * UNI_B_PPPB2INFO1_STRID
UNI_B-PPPB2INFO1 message name.
Definition unib.hpp:256
static constexpr const char * UNI_B_SATELLITE_STRID
UNI_B-SATELLITE message name.
Definition unib.hpp:218
static constexpr uint16_t UNI_B_BESTNAV_MSGID
UNI_B-BESTNAV message ID.
Definition unib.hpp:179
static constexpr uint16_t UNI_B_PPPNAV_MSGID
UNI_B-PPPNAV message ID.
Definition unib.hpp:193
static constexpr uint16_t UNI_B_PTOBSINFO_MSGID
UNI_B-PTOBSINFO message ID.
Definition unib.hpp:253
static constexpr uint16_t UNI_B_PPPB2INFO7_MSGID
UNI_B-PPPB2INFO7 message ID.
Definition unib.hpp:267
static constexpr const char * UNI_B_BD3EPH_STRID
UNI_B-BD3EPH message name.
Definition unib.hpp:168
static constexpr uint16_t UNI_B_ADRDOP_MSGID
UNI_B-ADRDOP message ID.
Definition unib.hpp:203
static constexpr std::size_t UNI_B_HEAD_SIZE
Size of the UNI_B header (UnibHeader)
Definition unib.hpp:46
static constexpr uint16_t UNI_B_PPPB2INFO2_MSGID
UNI_B-PPPB2INFO2 message ID.
Definition unib.hpp:257
const char * UnibTimeRefStr(const UnibTimeRef time_ref)
Stringify time reference.
static constexpr uint16_t UNI_B_RTKSTATUS_MSGID
UNI_B-RTKSTATUS message ID.
Definition unib.hpp:227
static constexpr uint16_t UNI_B_BD3UTC_MSGID
UNI_B-BD3UTC message ID.
Definition unib.hpp:157
static constexpr const char * UNI_B_AGNSSSTATUS_STRID
UNI_B-AGNSSSTATUS message name.
Definition unib.hpp:230
static constexpr uint16_t UNI_B_OBSVHCMP_MSGID
UNI_B-OBSVHCMP message ID.
Definition unib.hpp:141
static constexpr uint16_t UNI_B_RECTIME_MSGID
UNI_B-RECTIME message ID.
Definition unib.hpp:221
static constexpr uint16_t UNI_B_SPPDOP_MSGID
UNI_B-SPPDOP message ID.
Definition unib.hpp:209
static constexpr uint16_t UNI_B_AGC_MSGID
UNI_B-AGC message ID.
Definition unib.hpp:243
static constexpr const char * UNI_B_OBSVBASE_STRID
UNI_B-OBSVBASE message name.
Definition unib.hpp:144
static constexpr const char * UNI_B_OBSVMCMP_STRID
UNI_B-OBSVMCMP message name.
Definition unib.hpp:140
static constexpr const char * UNI_B_PPPB2INFO2_STRID
UNI_B-PPPB2INFO2 message name.
Definition unib.hpp:258
static constexpr const char * UNI_B_QZSSEPH_STRID
UNI_B-QZSSEPH message name.
Definition unib.hpp:166
static constexpr uint16_t UNI_B_SPPNAV_MSGID
UNI_B-SPPNAV message ID.
Definition unib.hpp:195
static constexpr uint16_t UNI_B_BDSEPH_MSGID
UNI_B-BDSEPH message ID.
Definition unib.hpp:169
static constexpr const char * UNI_B_BESTNAVXYZ_STRID
UNI_B-BESTNAVXYZ message name.
Definition unib.hpp:182
static constexpr uint16_t UNI_B_BESTNAVXYZH_MSGID
UNI_B-BESTNAVXYZH message ID.
Definition unib.hpp:185
static constexpr const char * UNI_B_GPSEPH_STRID
UNI_B-GPSEPH message name.
Definition unib.hpp:164
static constexpr uint16_t UNI_B_GPSEPH_MSGID
UNI_B-GPSEPH message ID.
Definition unib.hpp:163
static constexpr uint16_t UNI_B_OBSVBASE_MSGID
UNI_B-OBSVBASE message ID.
Definition unib.hpp:143
static constexpr const char * UNI_B_BESTNAVXYZH_STRID
UNI_B-BESTNAVXYZH message name.
Definition unib.hpp:186
static constexpr uint16_t UNI_B_NOVHEADING_MSGID
UNI_B-NOVHEADING message ID.
Definition unib.hpp:223
static constexpr const char * UNI_B_ADRNAV_STRID
UNI_B-ADRNAV message name.
Definition unib.hpp:190
static constexpr const char * UNI_B_PPPB2INFO6_STRID
UNI_B-PPPB2INFO6 message name.
Definition unib.hpp:266
static constexpr const char * UNI_B_PPPB2INFO3_STRID
UNI_B-PPPB2INFO3 message name.
Definition unib.hpp:260
static constexpr const char * UNI_B_BD3UTC_STRID
UNI_B-BD3UTC message name.
Definition unib.hpp:158
UnibProductModel
Product model.
Definition unib.hpp:340
static constexpr uint16_t UNI_B_AGNSSSTATUS_MSGID
UNI_B-AGNSSSTATUS message ID.
Definition unib.hpp:229
static constexpr uint16_t UNI_B_ADRDOPH_MSGID
UNI_B-ADRDOPH message ID.
Definition unib.hpp:205
static constexpr uint16_t UNI_B_PPPB2INFO4_MSGID
UNI_B-PPPB2INFO4 message ID.
Definition unib.hpp:261
static constexpr const char * UNI_B_SPPDOP_STRID
UNI_B-SPPDOP message name.
Definition unib.hpp:210
static constexpr uint16_t UNI_B_MSPOS_MSGID
UNI_B-MSPOS message ID.
Definition unib.hpp:249
static constexpr const char * UNI_B_BDSUTC_STRID
UNI_B-BDSUTC message name.
Definition unib.hpp:160
UnibTimeRef
Time reference.
Definition unib.hpp:304
static constexpr uint16_t UNI_B_TROPINFO_MSGID
UNI_B-TROPINFO message ID.
Definition unib.hpp:251
static constexpr const char * UNI_B_PPPB2INFO5_STRID
UNI_B-PPPB2INFO5 message name.
Definition unib.hpp:264
static constexpr uint16_t UNI_B_FREQJAMSTATUS_MSGID
UNI_B-FREQJAMSTATUS message ID.
Definition unib.hpp:235
static constexpr uint16_t UNI_B_PPPB2INFO5_MSGID
UNI_B-PPPB2INFO5 message ID.
Definition unib.hpp:263
const char * UnibTimeStatusStr(const UnibTimeStatus time_status)
Stringify time status.
bool UnibGetMessageInfo(char *info, const std::size_t size, const uint8_t *msg, const std::size_t msg_size)
Get UNI_B message info.
static constexpr uint16_t UNI_B_JAMSTATUS_MSGID
UNI_B-JAMSTATUS message ID.
Definition unib.hpp:233
static constexpr uint16_t UNI_B_BESTSAT_MSGID
UNI_B-BESTSAT message ID.
Definition unib.hpp:187
static constexpr uint16_t UNI_B_SPPDOPH_MSGID
UNI_B-SPPDOPH message ID.
Definition unib.hpp:211
static constexpr const char * UNI_B_NOVHEADING2_STRID
UNI_B-NOVHEADING2 message name.
Definition unib.hpp:226
static constexpr uint8_t UNI_B_SYNC_2
Sync char 2.
Definition unib.hpp:44
static constexpr uint16_t UNI_B_BD3ION_MSGID
UNI_B-BD3ION message ID.
Definition unib.hpp:149
static constexpr const char * UNI_B_BASEPOS_STRID
UNI_B-BASEPOS message name.
Definition unib.hpp:216
static constexpr const char * UNI_B_JAMSTATUS_STRID
UNI_B-JAMSTATUS message name.
Definition unib.hpp:234
static constexpr const char * UNI_B_ADRNAVH_STRID
UNI_B-ADRNAVH message name.
Definition unib.hpp:192
static constexpr uint16_t UNI_B_GALUTC_MSGID
UNI_B-GALUTC message ID.
Definition unib.hpp:161
static constexpr const char * UNI_B_HWSTATUS_STRID
UNI_B-HWSTATUS message name.
Definition unib.hpp:240
static constexpr const char * UNI_B_MSPOS_STRID
UNI_B-MSPOS message name.
Definition unib.hpp:250
static constexpr uint16_t UNI_B_GALION_MSGID
UNI_B-GALION message ID.
Definition unib.hpp:153
static constexpr uint16_t UNI_B_NOVHEADING2_MSGID
UNI_B-NOVHEADING2 message ID.
Definition unib.hpp:225
static constexpr const char * UNI_B_BD3ION_STRID
UNI_B-BD3ION message name.
Definition unib.hpp:150
static constexpr const char * UNI_B_RECTIME_STRID
UNI_B-RECTIME message name.
Definition unib.hpp:222
static constexpr const char * UNI_B_STADOPH_STRID
UNI_B-STADOPH message name.
Definition unib.hpp:202
static constexpr uint16_t UNI_B_QZSSEPH_MSGID
UNI_B-QZSSEPH message ID.
Definition unib.hpp:165
static constexpr uint16_t UNI_B_BASEPOS_MSGID
UNI_B-BASEPOS message ID.
Definition unib.hpp:215
static constexpr uint16_t UNI_B_BESTNAVXYZ_MSGID
UNI_B-BESTNAVXYZ message ID.
Definition unib.hpp:181
static constexpr uint16_t UNI_B_GPSION_MSGID
UNI_B-GPSION message ID.
Definition unib.hpp:147
static constexpr const char * UNI_B_FREQJAMSTATUS_STRID
UNI_B-FREQJAMSTATUS message name.
Definition unib.hpp:236
static constexpr const char * UNI_B_ADRDOPH_STRID
UNI_B-ADRDOPH message name.
Definition unib.hpp:206
static constexpr const char * UNI_B_PTOBSINFO_STRID
UNI_B-PTOBSINFO message name.
Definition unib.hpp:254
constexpr uint16_t UnibMsgSize(const uint8_t *msg)
Get message size.
Definition unib.hpp:71
static constexpr const char * UNI_B_SPPDOPH_STRID
UNI_B-SPPDOPH message name.
Definition unib.hpp:212
static constexpr uint16_t UNI_B_RTCMSTATUS_MSGID
UNI_B-RTCMSTATUS message ID.
Definition unib.hpp:237
static constexpr uint16_t UNI_B_OBSVMCMP_MSGID
UNI_B-OBSVMCMP message ID.
Definition unib.hpp:139
static constexpr uint16_t UNI_B_GPSUTC_MSGID
UNI_B-GPSUTC message ID.
Definition unib.hpp:155
static constexpr uint16_t UNI_B_PPPB2INFO3_MSGID
UNI_B-PPPB2INFO3 message ID.
Definition unib.hpp:259
static constexpr uint16_t UNI_B_BESTNAVH_MSGID
UNI_B-BESTNAVH message ID.
Definition unib.hpp:183
static constexpr uint16_t UNI_B_HWSTATUS_MSGID
UNI_B-HWSTATUS message ID.
Definition unib.hpp:239
static constexpr const char * UNI_B_OBSVH_STRID
UNI_B-OBSVH message name.
Definition unib.hpp:138
static constexpr const char * UNI_B_OBSVHCMP_STRID
UNI_B-OBSVHCMP message name.
Definition unib.hpp:142
static constexpr uint16_t UNI_B_SATELLITE_MSGID
UNI_B-SATELLITE message ID.
Definition unib.hpp:217
static constexpr const char * UNI_B_RTCSTATUS_STRID
UNI_B-RTCSTATUS message name.
Definition unib.hpp:232
static constexpr uint16_t UNI_B_PVTSLN_MSGID
UNI_B-PVTSLN message ID.
Definition unib.hpp:177
static constexpr const char * UNI_B_SPPNAV_STRID
UNI_B-SPPNAV message name.
Definition unib.hpp:196
constexpr uint16_t UnibMsgId(const uint8_t *msg)
Get message ID.
Definition unib.hpp:57
const char * UnibProductModelStr(const UnibProductModel model)
Stringify UNI_B-VERSION.product_model.
Fixposition SDK.
Fixposition SDK: Parser NOV_B routines and types.
UNI_B frame long header.
Definition unib.hpp:279
uint8_t version
Unicore format version (TODO message (payload) version?)
Definition unib.hpp:291
uint16_t output_delay
Output delay (w.r.t. measurement time)
Definition unib.hpp:293
uint8_t cpu_idle
CPU idle [%] (0-100), 1s average.
Definition unib.hpp:283
uint8_t leap_sec
Leap second (TODO number of leap seconds?)
Definition unib.hpp:292
uint8_t time_ref
Time reference (UnibTimeRef)
Definition unib.hpp:286
uint16_t message_size
Size of message (payload?) TODO.
Definition unib.hpp:285
uint32_t tow_ms
Time of week [ms].
Definition unib.hpp:289
uint16_t wno
Week number [-].
Definition unib.hpp:288
uint8_t time_status
Time status (UnibTimeStatus)
Definition unib.hpp:287
uint8_t sync3
= UNI_B_SYNC_3_LONG
Definition unib.hpp:282
uint8_t auth_type[129]
Authorization type (nul-terminated string)
Definition unib.hpp:383
uint8_t psn[66]
PN and SN (nul-terminated string)
Definition unib.hpp:384
uint32_t product_model
Product model (UnibProductModel)
Definition unib.hpp:381
uint8_t firmware_date[43]
Firmware date (yyyy/mm/dd, nul-terminated string)
Definition unib.hpp:386
uint8_t board_id[33]
Board ID (nul-terminated string)
Definition unib.hpp:385
uint8_t firmware_version[33]
Firmware version (nul-terminated string)
Definition unib.hpp:382