0.4.1
Loading...
Searching...
No Matches
UbloxTypes.cpp
Go to the documentation of this file.
1// This file is part of INSTINCT, the INS Toolkit for Integrated
2// Navigation Concepts and Training by the Institute of Navigation of
3// the University of Stuttgart, Germany.
4//
5// This Source Code Form is subject to the terms of the Mozilla Public
6// License, v. 2.0. If a copy of the MPL was not distributed with this
7// file, You can obtain one at https://mozilla.org/MPL/2.0/.
8
9#include "UbloxTypes.hpp"
10
12{
13 if (className == "NAV") { return UbxClass::UBX_CLASS_NAV; }
14 if (className == "RXM") { return UbxClass::UBX_CLASS_RXM; }
15 if (className == "INF") { return UbxClass::UBX_CLASS_INF; }
16 if (className == "ACK") { return UbxClass::UBX_CLASS_ACK; }
17 if (className == "CFG") { return UbxClass::UBX_CLASS_CFG; }
18 if (className == "UPD") { return UbxClass::UBX_CLASS_UPD; }
19 if (className == "MON") { return UbxClass::UBX_CLASS_MON; }
20 if (className == "TIM") { return UbxClass::UBX_CLASS_TIM; }
21 if (className == "ESF") { return UbxClass::UBX_CLASS_ESF; }
22 if (className == "MGA") { return UbxClass::UBX_CLASS_MGA; }
23 if (className == "LOG") { return UbxClass::UBX_CLASS_LOG; }
24 if (className == "SEC") { return UbxClass::UBX_CLASS_SEC; }
25 if (className == "HNR") { return UbxClass::UBX_CLASS_HNR; }
26
27 return static_cast<UbxClass>(NULL);
28}
29
30uint8_t NAV::vendor::ublox::getMsgIdFromString(NAV::vendor::ublox::UbxClass msgClass, const std::string& idName)
31{
32 if (msgClass == UbxClass::UBX_CLASS_ACK)
33 {
34 if (idName == "ACK") { return UbxAckMessages::UBX_ACK_ACK; }
35 if (idName == "NAK") { return UbxAckMessages::UBX_ACK_NAK; }
36 }
37 else if (msgClass == UbxClass::UBX_CLASS_CFG)
38 {
39 if (idName == "ANT") { return UbxCfgMessages::UBX_CFG_ANT; }
40 if (idName == "BATCH") { return UbxCfgMessages::UBX_CFG_BATCH; }
41 if (idName == "CFG") { return UbxCfgMessages::UBX_CFG_CFG; }
42 if (idName == "DAT") { return UbxCfgMessages::UBX_CFG_DAT; }
43 if (idName == "DGNSS") { return UbxCfgMessages::UBX_CFG_DGNSS; }
44 if (idName == "DOSC") { return UbxCfgMessages::UBX_CFG_DOSC; }
45 if (idName == "ESRC") { return UbxCfgMessages::UBX_CFG_ESRC; }
46 if (idName == "GEOFENCE") { return UbxCfgMessages::UBX_CFG_GEOFENCE; }
47 if (idName == "GNSS") { return UbxCfgMessages::UBX_CFG_GNSS; }
48 if (idName == "HNR") { return UbxCfgMessages::UBX_CFG_HNR; }
49 if (idName == "INF") { return UbxCfgMessages::UBX_CFG_INF; }
50 if (idName == "ITFM") { return UbxCfgMessages::UBX_CFG_ITFM; }
51 if (idName == "LOGFILTER") { return UbxCfgMessages::UBX_CFG_LOGFILTER; }
52 if (idName == "MSG") { return UbxCfgMessages::UBX_CFG_MSG; }
53 if (idName == "NAV5") { return UbxCfgMessages::UBX_CFG_NAV5; }
54 if (idName == "NAVX5") { return UbxCfgMessages::UBX_CFG_NAVX5; }
55 if (idName == "NMEA") { return UbxCfgMessages::UBX_CFG_NMEA; }
56 if (idName == "ODO") { return UbxCfgMessages::UBX_CFG_ODO; }
57 if (idName == "PM2") { return UbxCfgMessages::UBX_CFG_PM2; }
58 if (idName == "PMS") { return UbxCfgMessages::UBX_CFG_PMS; }
59 if (idName == "PRT") { return UbxCfgMessages::UBX_CFG_PRT; }
60 if (idName == "PWR") { return UbxCfgMessages::UBX_CFG_PWR; }
61 if (idName == "RATE") { return UbxCfgMessages::UBX_CFG_RATE; }
62 if (idName == "RINV") { return UbxCfgMessages::UBX_CFG_RINV; }
63 if (idName == "RST") { return UbxCfgMessages::UBX_CFG_RST; }
64 if (idName == "RXM") { return UbxCfgMessages::UBX_CFG_RXM; }
65 if (idName == "SBAS") { return UbxCfgMessages::UBX_CFG_SBAS; }
66 if (idName == "SLAS") { return UbxCfgMessages::UBX_CFG_SLAS; }
67 if (idName == "SMGR") { return UbxCfgMessages::UBX_CFG_SMGR; }
68 if (idName == "TMODE2") { return UbxCfgMessages::UBX_CFG_TMODE2; }
69 if (idName == "TMODE3") { return UbxCfgMessages::UBX_CFG_TMODE3; }
70 if (idName == "TP5") { return UbxCfgMessages::UBX_CFG_TP5; }
71 if (idName == "TXSLOT") { return UbxCfgMessages::UBX_CFG_TXSLOT; }
72 if (idName == "USB") { return UbxCfgMessages::UBX_CFG_USB; }
73 }
74 else if (msgClass == UbxClass::UBX_CLASS_ESF)
75 {
76 if (idName == "INS") { return UbxEsfMessages::UBX_ESF_INS; }
77 if (idName == "MEAS") { return UbxEsfMessages::UBX_ESF_MEAS; }
78 if (idName == "RAW") { return UbxEsfMessages::UBX_ESF_RAW; }
79 if (idName == "STATUS") { return UbxEsfMessages::UBX_ESF_STATUS; }
80 }
81 else if (msgClass == UbxClass::UBX_CLASS_HNR)
82 {
83 if (idName == "INS") { return UbxHnrMessages::UBX_HNR_INS; }
84 if (idName == "PVT") { return UbxHnrMessages::UBX_HNR_PVT; }
85 }
86 else if (msgClass == UbxClass::UBX_CLASS_INF)
87 {
88 if (idName == "DEBUG") { return UbxInfMessages::UBX_INF_DEBUG; }
89 if (idName == "ERROR") { return UbxInfMessages::UBX_INF_ERROR; }
90 if (idName == "NOTICE") { return UbxInfMessages::UBX_INF_NOTICE; }
91 if (idName == "TEST") { return UbxInfMessages::UBX_INF_TEST; }
92 if (idName == "WARNING") { return UbxInfMessages::UBX_INF_WARNING; }
93 }
94 else if (msgClass == UbxClass::UBX_CLASS_LOG)
95 {
96 if (idName == "BATCH") { return UbxLogMessages::UBX_LOG_BATCH; }
97 if (idName == "CREATE") { return UbxLogMessages::UBX_LOG_CREATE; }
98 if (idName == "ERASE") { return UbxLogMessages::UBX_LOG_ERASE; }
99 if (idName == "FINDTIME") { return UbxLogMessages::UBX_LOG_FINDTIME; }
100 if (idName == "INFO") { return UbxLogMessages::UBX_LOG_INFO; }
101 if (idName == "RETRIEVE") { return UbxLogMessages::UBX_LOG_RETRIEVE; }
102 if (idName == "RETRIEVEBATCH") { return UbxLogMessages::UBX_LOG_RETRIEVEBATCH; }
103 if (idName == "RETRIEVEPOS") { return UbxLogMessages::UBX_LOG_RETRIEVEPOS; }
104 if (idName == "RETRIEVEPOSEXTRA") { return UbxLogMessages::UBX_LOG_RETRIEVEPOSEXTRA; }
105 if (idName == "RETRIEVESTRING") { return UbxLogMessages::UBX_LOG_RETRIEVESTRING; }
106 if (idName == "STRING") { return UbxLogMessages::UBX_LOG_STRING; }
107 }
108 else if (msgClass == UbxClass::UBX_CLASS_MGA)
109 {
110 if (idName == "ACK_DATA0") { return UbxMgaMessages::UBX_MGA_ACK_DATA0; }
111 if (idName == "ANO") { return UbxMgaMessages::UBX_MGA_ANO; }
112 if (idName == "BDS_ALM") { return UbxMgaMessages::UBX_MGA_BDS_ALM; }
113 if (idName == "BDS_EPH") { return UbxMgaMessages::UBX_MGA_BDS_EPH; }
114 if (idName == "BDS_HEALTH") { return UbxMgaMessages::UBX_MGA_BDS_HEALTH; }
115 if (idName == "BDS_IONO") { return UbxMgaMessages::UBX_MGA_BDS_IONO; }
116 if (idName == "BDS_UTC") { return UbxMgaMessages::UBX_MGA_BDS_UTC; }
117 if (idName == "DBD") { return UbxMgaMessages::UBX_MGA_DBD; }
118 if (idName == "FLASH_ACK") { return UbxMgaMessages::UBX_MGA_FLASH_ACK; }
119 if (idName == "FLASH_DATA") { return UbxMgaMessages::UBX_MGA_FLASH_DATA; }
120 if (idName == "FLASH_STOP") { return UbxMgaMessages::UBX_MGA_FLASH_STOP; }
121 if (idName == "GAL_ALM") { return UbxMgaMessages::UBX_MGA_GAL_ALM; }
122 if (idName == "GAL_EPH") { return UbxMgaMessages::UBX_MGA_GAL_EPH; }
123 if (idName == "GAL_TIMEOFFSET") { return UbxMgaMessages::UBX_MGA_GAL_TIMEOFFSET; }
124 if (idName == "GAL_UTC") { return UbxMgaMessages::UBX_MGA_GAL_UTC; }
125 if (idName == "GLO_ALM") { return UbxMgaMessages::UBX_MGA_GLO_ALM; }
126 if (idName == "GLO_EPH") { return UbxMgaMessages::UBX_MGA_GLO_EPH; }
127 if (idName == "GLO_TIMEOFFSET") { return UbxMgaMessages::UBX_MGA_GLO_TIMEOFFSET; }
128 if (idName == "GPS_ALM") { return UbxMgaMessages::UBX_MGA_GPS_ALM; }
129 if (idName == "GPS_EPH") { return UbxMgaMessages::UBX_MGA_GPS_EPH; }
130 if (idName == "GPS_HEALTH") { return UbxMgaMessages::UBX_MGA_GPS_HEALTH; }
131 if (idName == "GPS_IONO") { return UbxMgaMessages::UBX_MGA_GPS_IONO; }
132 if (idName == "GPS_UTC") { return UbxMgaMessages::UBX_MGA_GPS_UTC; }
133 if (idName == "INI_CLKD") { return UbxMgaMessages::UBX_MGA_INI_CLKD; }
134 if (idName == "INI_EOP") { return UbxMgaMessages::UBX_MGA_INI_EOP; }
135 if (idName == "INI_FREQ") { return UbxMgaMessages::UBX_MGA_INI_FREQ; }
136 if (idName == "INI_POS_LLH") { return UbxMgaMessages::UBX_MGA_INI_POS_LLH; }
137 if (idName == "INI_POS_XYZ") { return UbxMgaMessages::UBX_MGA_INI_POS_XYZ; }
138 if (idName == "INI_TIME_GNSS") { return UbxMgaMessages::UBX_MGA_INI_TIME_GNSS; }
139 if (idName == "INI_TIME_UTC") { return UbxMgaMessages::UBX_MGA_INI_TIME_UTC; }
140 if (idName == "QZSS_ALM") { return UbxMgaMessages::UBX_MGA_QZSS_ALM; }
141 if (idName == "QZSS_EPH") { return UbxMgaMessages::UBX_MGA_QZSS_EPH; }
142 if (idName == "QZSS_HEALTH") { return UbxMgaMessages::UBX_MGA_QZSS_HEALTH; }
143 }
144 else if (msgClass == UbxClass::UBX_CLASS_MON)
145 {
146 if (idName == "BATCH") { return UbxMonMessages::UBX_MON_BATCH; }
147 if (idName == "GNSS") { return UbxMonMessages::UBX_MON_GNSS; }
148 if (idName == "HW2") { return UbxMonMessages::UBX_MON_HW2; }
149 if (idName == "HW") { return UbxMonMessages::UBX_MON_HW; }
150 if (idName == "IO") { return UbxMonMessages::UBX_MON_IO; }
151 if (idName == "MSGPP") { return UbxMonMessages::UBX_MON_MSGPP; }
152 if (idName == "PATCH") { return UbxMonMessages::UBX_MON_PATCH; }
153 if (idName == "RXBUFF") { return UbxMonMessages::UBX_MON_RXBUFF; }
154 if (idName == "RXR") { return UbxMonMessages::UBX_MON_RXR; }
155 if (idName == "SMGR") { return UbxMonMessages::UBX_MON_SMGR; }
156 if (idName == "TXBUFF") { return UbxMonMessages::UBX_MON_TXBUFF; }
157 if (idName == "VER") { return UbxMonMessages::UBX_MON_VER; }
158 }
159 else if (msgClass == UbxClass::UBX_CLASS_NAV)
160 {
161 if (idName == "AOPSTATUS") { return UbxNavMessages::UBX_NAV_AOPSTATUS; }
162 if (idName == "ATT") { return UbxNavMessages::UBX_NAV_ATT; }
163 if (idName == "CLOCK") { return UbxNavMessages::UBX_NAV_CLOCK; }
164 if (idName == "DGPS") { return UbxNavMessages::UBX_NAV_DGPS; }
165 if (idName == "DOP") { return UbxNavMessages::UBX_NAV_DOP; }
166 if (idName == "EOE") { return UbxNavMessages::UBX_NAV_EOE; }
167 if (idName == "GEOFENCE") { return UbxNavMessages::UBX_NAV_GEOFENCE; }
168 if (idName == "HPPOSECEF") { return UbxNavMessages::UBX_NAV_HPPOSECEF; }
169 if (idName == "HPPOSLLH") { return UbxNavMessages::UBX_NAV_HPPOSLLH; }
170 if (idName == "ODO") { return UbxNavMessages::UBX_NAV_ODO; }
171 if (idName == "ORB") { return UbxNavMessages::UBX_NAV_ORB; }
172 if (idName == "POSECEF") { return UbxNavMessages::UBX_NAV_POSECEF; }
173 if (idName == "POSLLH") { return UbxNavMessages::UBX_NAV_POSLLH; }
174 if (idName == "PVT") { return UbxNavMessages::UBX_NAV_PVT; }
175 if (idName == "RELPOSNED") { return UbxNavMessages::UBX_NAV_RELPOSNED; }
176 if (idName == "RESETODO") { return UbxNavMessages::UBX_NAV_RESETODO; }
177 if (idName == "SAT") { return UbxNavMessages::UBX_NAV_SAT; }
178 if (idName == "SBAS") { return UbxNavMessages::UBX_NAV_SBAS; }
179 if (idName == "SLAS") { return UbxNavMessages::UBX_NAV_SLAS; }
180 if (idName == "SOL") { return UbxNavMessages::UBX_NAV_SOL; }
181 if (idName == "STATUS") { return UbxNavMessages::UBX_NAV_STATUS; }
182 if (idName == "SVIN") { return UbxNavMessages::UBX_NAV_SVIN; }
183 if (idName == "SVINFO") { return UbxNavMessages::UBX_NAV_SVINFO; }
184 if (idName == "TIMEBDS") { return UbxNavMessages::UBX_NAV_TIMEBDS; }
185 if (idName == "TIMEGAL") { return UbxNavMessages::UBX_NAV_TIMEGAL; }
186 if (idName == "TIMEGLO") { return UbxNavMessages::UBX_NAV_TIMEGLO; }
187 if (idName == "TIMEGPS") { return UbxNavMessages::UBX_NAV_TIMEGPS; }
188 if (idName == "TIMELS") { return UbxNavMessages::UBX_NAV_TIMELS; }
189 if (idName == "TIMEUTC") { return UbxNavMessages::UBX_NAV_TIMEUTC; }
190 if (idName == "VELECEF") { return UbxNavMessages::UBX_NAV_VELECEF; }
191 if (idName == "VELNED") { return UbxNavMessages::UBX_NAV_VELNED; }
192 }
193 else if (msgClass == UbxClass::UBX_CLASS_RXM)
194 {
195 if (idName == "IMES") { return UbxRxmMessages::UBX_RXM_IMES; }
196 if (idName == "MEASX") { return UbxRxmMessages::UBX_RXM_MEASX; }
197 if (idName == "PMREQ") { return UbxRxmMessages::UBX_RXM_PMREQ; }
198 if (idName == "RAWX") { return UbxRxmMessages::UBX_RXM_RAWX; }
199 if (idName == "RLM") { return UbxRxmMessages::UBX_RXM_RLM; }
200 if (idName == "RTCM") { return UbxRxmMessages::UBX_RXM_RTCM; }
201 if (idName == "SFRBX") { return UbxRxmMessages::UBX_RXM_SFRBX; }
202 if (idName == "SVSI") { return UbxRxmMessages::UBX_RXM_SVSI; }
203 }
204 else if (msgClass == UbxClass::UBX_CLASS_SEC)
205 {
206 if (idName == "UNIQID") { return UbxSecMessages::UBX_SEC_UNIQID; }
207 }
208 else if (msgClass == UbxClass::UBX_CLASS_TIM)
209 {
210 if (idName == "FCHG") { return UbxTimMessages::UBX_TIM_FCHG; }
211 if (idName == "HOC") { return UbxTimMessages::UBX_TIM_HOC; }
212 if (idName == "SMEAS") { return UbxTimMessages::UBX_TIM_SMEAS; }
213 if (idName == "SVIN") { return UbxTimMessages::UBX_TIM_SVIN; }
214 if (idName == "TM2") { return UbxTimMessages::UBX_TIM_TM2; }
215 if (idName == "TOS") { return UbxTimMessages::UBX_TIM_TOS; }
216 if (idName == "TP") { return UbxTimMessages::UBX_TIM_TP; }
217 if (idName == "VCOCAL") { return UbxTimMessages::UBX_TIM_VCOCAL; }
218 if (idName == "VRFY") { return UbxTimMessages::UBX_TIM_VRFY; }
219 }
220 else if (msgClass == UbxClass::UBX_CLASS_UPD)
221 {
222 if (idName == "SOS") { return UbxUpdMessages::UBX_UPD_SOS; }
223 }
224
225 return UINT8_MAX;
226}
227
229{
230 switch (msgClass)
231 {
233 return "NONE";
235 return "NAV";
237 return "RXM";
239 return "INF";
241 return "ACK";
243 return "CFG";
245 return "UPD";
247 return "MON";
249 return "TIM";
251 return "ESF";
253 return "MGA";
255 return "LOG";
257 return "SEC";
259 return "HNR";
260 default:
261 break;
262 }
263 return "UNDEFINED";
264}
265std::string NAV::vendor::ublox::getStringFromMsgId(UbxClass msgClass, uint8_t msgId)
266{
267 if (msgClass == UbxClass::UBX_CLASS_ACK)
268 {
269 if (msgId == UbxAckMessages::UBX_ACK_ACK) { return "ACK"; }
270 if (msgId == UbxAckMessages::UBX_ACK_NAK) { return "NAK"; }
271 }
272 else if (msgClass == UbxClass::UBX_CLASS_CFG)
273 {
274 if (msgId == UbxCfgMessages::UBX_CFG_ANT) { return "ANT"; }
275 if (msgId == UbxCfgMessages::UBX_CFG_BATCH) { return "BATCH"; }
276 if (msgId == UbxCfgMessages::UBX_CFG_CFG) { return "CFG"; }
277 if (msgId == UbxCfgMessages::UBX_CFG_DAT) { return "DAT"; }
278 if (msgId == UbxCfgMessages::UBX_CFG_DGNSS) { return "DGNSS"; }
279 if (msgId == UbxCfgMessages::UBX_CFG_DOSC) { return "DOSC"; }
280 if (msgId == UbxCfgMessages::UBX_CFG_ESRC) { return "ESRC"; }
281 if (msgId == UbxCfgMessages::UBX_CFG_GEOFENCE) { return "GEOFENCE"; }
282 if (msgId == UbxCfgMessages::UBX_CFG_GNSS) { return "GNSS"; }
283 if (msgId == UbxCfgMessages::UBX_CFG_HNR) { return "HNR"; }
284 if (msgId == UbxCfgMessages::UBX_CFG_INF) { return "INF"; }
285 if (msgId == UbxCfgMessages::UBX_CFG_ITFM) { return "ITFM"; }
286 if (msgId == UbxCfgMessages::UBX_CFG_LOGFILTER) { return "LOGFILTER"; }
287 if (msgId == UbxCfgMessages::UBX_CFG_MSG) { return "MSG"; }
288 if (msgId == UbxCfgMessages::UBX_CFG_NAV5) { return "NAV5"; }
289 if (msgId == UbxCfgMessages::UBX_CFG_NAVX5) { return "NAVX5"; }
290 if (msgId == UbxCfgMessages::UBX_CFG_NMEA) { return "NMEA"; }
291 if (msgId == UbxCfgMessages::UBX_CFG_ODO) { return "ODO"; }
292 if (msgId == UbxCfgMessages::UBX_CFG_PM2) { return "PM2"; }
293 if (msgId == UbxCfgMessages::UBX_CFG_PMS) { return "PMS"; }
294 if (msgId == UbxCfgMessages::UBX_CFG_PRT) { return "PRT"; }
295 if (msgId == UbxCfgMessages::UBX_CFG_PWR) { return "PWR"; }
296 if (msgId == UbxCfgMessages::UBX_CFG_RATE) { return "RATE"; }
297 if (msgId == UbxCfgMessages::UBX_CFG_RINV) { return "RINV"; }
298 if (msgId == UbxCfgMessages::UBX_CFG_RST) { return "RST"; }
299 if (msgId == UbxCfgMessages::UBX_CFG_RXM) { return "RXM"; }
300 if (msgId == UbxCfgMessages::UBX_CFG_SBAS) { return "SBAS"; }
301 if (msgId == UbxCfgMessages::UBX_CFG_SLAS) { return "SLAS"; }
302 if (msgId == UbxCfgMessages::UBX_CFG_SMGR) { return "SMGR"; }
303 if (msgId == UbxCfgMessages::UBX_CFG_TMODE2) { return "TMODE2"; }
304 if (msgId == UbxCfgMessages::UBX_CFG_TMODE3) { return "TMODE3"; }
305 if (msgId == UbxCfgMessages::UBX_CFG_TP5) { return "TP5"; }
306 if (msgId == UbxCfgMessages::UBX_CFG_TXSLOT) { return "TXSLOT"; }
307 if (msgId == UbxCfgMessages::UBX_CFG_USB) { return "USB"; }
308 }
309 else if (msgClass == UbxClass::UBX_CLASS_ESF)
310 {
311 if (msgId == UbxEsfMessages::UBX_ESF_INS) { return "INS"; }
312 if (msgId == UbxEsfMessages::UBX_ESF_MEAS) { return "MEAS"; }
313 if (msgId == UbxEsfMessages::UBX_ESF_RAW) { return "RAW"; }
314 if (msgId == UbxEsfMessages::UBX_ESF_STATUS) { return "STATUS"; }
315 }
316 else if (msgClass == UbxClass::UBX_CLASS_HNR)
317 {
318 if (msgId == UbxHnrMessages::UBX_HNR_INS) { return "INS"; }
319 if (msgId == UbxHnrMessages::UBX_HNR_PVT) { return "PVT"; }
320 }
321 else if (msgClass == UbxClass::UBX_CLASS_INF)
322 {
323 if (msgId == UbxInfMessages::UBX_INF_DEBUG) { return "DEBUG"; }
324 if (msgId == UbxInfMessages::UBX_INF_ERROR) { return "ERROR"; }
325 if (msgId == UbxInfMessages::UBX_INF_NOTICE) { return "NOTICE"; }
326 if (msgId == UbxInfMessages::UBX_INF_TEST) { return "TEST"; }
327 if (msgId == UbxInfMessages::UBX_INF_WARNING) { return "WARNING"; }
328 }
329 else if (msgClass == UbxClass::UBX_CLASS_LOG)
330 {
331 if (msgId == UbxLogMessages::UBX_LOG_BATCH) { return "BATCH"; }
332 if (msgId == UbxLogMessages::UBX_LOG_CREATE) { return "CREATE"; }
333 if (msgId == UbxLogMessages::UBX_LOG_ERASE) { return "ERASE"; }
334 if (msgId == UbxLogMessages::UBX_LOG_FINDTIME) { return "FINDTIME"; }
335 if (msgId == UbxLogMessages::UBX_LOG_INFO) { return "INFO"; }
336 if (msgId == UbxLogMessages::UBX_LOG_RETRIEVE) { return "RETRIEVE"; }
337 if (msgId == UbxLogMessages::UBX_LOG_RETRIEVEBATCH) { return "RETRIEVEBATCH"; }
338 if (msgId == UbxLogMessages::UBX_LOG_RETRIEVEPOS) { return "RETRIEVEPOS"; }
339 if (msgId == UbxLogMessages::UBX_LOG_RETRIEVEPOSEXTRA) { return "RETRIEVEPOSEXTRA"; }
340 if (msgId == UbxLogMessages::UBX_LOG_RETRIEVESTRING) { return "RETRIEVESTRING"; }
341 if (msgId == UbxLogMessages::UBX_LOG_STRING) { return "STRING"; }
342 }
343 else if (msgClass == UbxClass::UBX_CLASS_MGA)
344 {
345 if (msgId == UbxMgaMessages::UBX_MGA_ACK_DATA0) { return "ACK_DATA0"; }
346 if (msgId == UbxMgaMessages::UBX_MGA_ANO) { return "ANO"; }
347 if (msgId == UbxMgaMessages::UBX_MGA_BDS_ALM) { return "BDS_ALM"; }
348 if (msgId == UbxMgaMessages::UBX_MGA_BDS_EPH) { return "BDS_EPH"; }
349 if (msgId == UbxMgaMessages::UBX_MGA_BDS_HEALTH) { return "BDS_HEALTH"; }
350 if (msgId == UbxMgaMessages::UBX_MGA_BDS_IONO) { return "BDS_IONO"; }
351 if (msgId == UbxMgaMessages::UBX_MGA_BDS_UTC) { return "BDS_UTC"; }
352 if (msgId == UbxMgaMessages::UBX_MGA_DBD) { return "DBD"; }
353 if (msgId == UbxMgaMessages::UBX_MGA_FLASH_ACK) { return "FLASH_ACK"; }
354 if (msgId == UbxMgaMessages::UBX_MGA_FLASH_DATA) { return "FLASH_DATA"; }
355 if (msgId == UbxMgaMessages::UBX_MGA_FLASH_STOP) { return "FLASH_STOP"; }
356 if (msgId == UbxMgaMessages::UBX_MGA_GAL_ALM) { return "GAL_ALM"; }
357 if (msgId == UbxMgaMessages::UBX_MGA_GAL_EPH) { return "GAL_EPH"; }
358 if (msgId == UbxMgaMessages::UBX_MGA_GAL_TIMEOFFSET) { return "GAL_TIMEOFFSET"; }
359 if (msgId == UbxMgaMessages::UBX_MGA_GAL_UTC) { return "GAL_UTC"; }
360 if (msgId == UbxMgaMessages::UBX_MGA_GLO_ALM) { return "GLO_ALM"; }
361 if (msgId == UbxMgaMessages::UBX_MGA_GLO_EPH) { return "GLO_EPH"; }
362 if (msgId == UbxMgaMessages::UBX_MGA_GLO_TIMEOFFSET) { return "GLO_TIMEOFFSET"; }
363 if (msgId == UbxMgaMessages::UBX_MGA_GPS_ALM) { return "GPS_ALM"; }
364 if (msgId == UbxMgaMessages::UBX_MGA_GPS_EPH) { return "GPS_EPH"; }
365 if (msgId == UbxMgaMessages::UBX_MGA_GPS_HEALTH) { return "GPS_HEALTH"; }
366 if (msgId == UbxMgaMessages::UBX_MGA_GPS_IONO) { return "GPS_IONO"; }
367 if (msgId == UbxMgaMessages::UBX_MGA_GPS_UTC) { return "GPS_UTC"; }
368 if (msgId == UbxMgaMessages::UBX_MGA_INI_CLKD) { return "INI_CLKD"; }
369 if (msgId == UbxMgaMessages::UBX_MGA_INI_EOP) { return "INI_EOP"; }
370 if (msgId == UbxMgaMessages::UBX_MGA_INI_FREQ) { return "INI_FREQ"; }
371 if (msgId == UbxMgaMessages::UBX_MGA_INI_POS_LLH) { return "INI_POS_LLH"; }
372 if (msgId == UbxMgaMessages::UBX_MGA_INI_POS_XYZ) { return "INI_POS_XYZ"; }
373 if (msgId == UbxMgaMessages::UBX_MGA_INI_TIME_GNSS) { return "INI_TIME_GNSS"; }
374 if (msgId == UbxMgaMessages::UBX_MGA_INI_TIME_UTC) { return "INI_TIME_UTC"; }
375 if (msgId == UbxMgaMessages::UBX_MGA_QZSS_ALM) { return "QZSS_ALM"; }
376 if (msgId == UbxMgaMessages::UBX_MGA_QZSS_EPH) { return "QZSS_EPH"; }
377 if (msgId == UbxMgaMessages::UBX_MGA_QZSS_HEALTH) { return "QZSS_HEALTH"; }
378 }
379 else if (msgClass == UbxClass::UBX_CLASS_MON)
380 {
381 if (msgId == UbxMonMessages::UBX_MON_BATCH) { return "BATCH"; }
382 if (msgId == UbxMonMessages::UBX_MON_GNSS) { return "GNSS"; }
383 if (msgId == UbxMonMessages::UBX_MON_HW2) { return "HW2"; }
384 if (msgId == UbxMonMessages::UBX_MON_HW) { return "HW"; }
385 if (msgId == UbxMonMessages::UBX_MON_IO) { return "IO"; }
386 if (msgId == UbxMonMessages::UBX_MON_MSGPP) { return "MSGPP"; }
387 if (msgId == UbxMonMessages::UBX_MON_PATCH) { return "PATCH"; }
388 if (msgId == UbxMonMessages::UBX_MON_RXBUFF) { return "RXBUFF"; }
389 if (msgId == UbxMonMessages::UBX_MON_RXR) { return "RXR"; }
390 if (msgId == UbxMonMessages::UBX_MON_SMGR) { return "SMGR"; }
391 if (msgId == UbxMonMessages::UBX_MON_TXBUFF) { return "TXBUFF"; }
392 if (msgId == UbxMonMessages::UBX_MON_VER) { return "VER"; }
393 }
394 else if (msgClass == UbxClass::UBX_CLASS_NAV)
395 {
396 if (msgId == UbxNavMessages::UBX_NAV_AOPSTATUS) { return "AOPSTATUS"; }
397 if (msgId == UbxNavMessages::UBX_NAV_ATT) { return "ATT"; }
398 if (msgId == UbxNavMessages::UBX_NAV_CLOCK) { return "CLOCK"; }
399 if (msgId == UbxNavMessages::UBX_NAV_DGPS) { return "DGPS"; }
400 if (msgId == UbxNavMessages::UBX_NAV_DOP) { return "DOP"; }
401 if (msgId == UbxNavMessages::UBX_NAV_EOE) { return "EOE"; }
402 if (msgId == UbxNavMessages::UBX_NAV_GEOFENCE) { return "GEOFENCE"; }
403 if (msgId == UbxNavMessages::UBX_NAV_HPPOSECEF) { return "HPPOSECEF"; }
404 if (msgId == UbxNavMessages::UBX_NAV_HPPOSLLH) { return "HPPOSLLH"; }
405 if (msgId == UbxNavMessages::UBX_NAV_ODO) { return "ODO"; }
406 if (msgId == UbxNavMessages::UBX_NAV_ORB) { return "ORB"; }
407 if (msgId == UbxNavMessages::UBX_NAV_POSECEF) { return "POSECEF"; }
408 if (msgId == UbxNavMessages::UBX_NAV_POSLLH) { return "POSLLH"; }
409 if (msgId == UbxNavMessages::UBX_NAV_PVT) { return "PVT"; }
410 if (msgId == UbxNavMessages::UBX_NAV_RELPOSNED) { return "RELPOSNED"; }
411 if (msgId == UbxNavMessages::UBX_NAV_RESETODO) { return "RESETODO"; }
412 if (msgId == UbxNavMessages::UBX_NAV_SAT) { return "SAT"; }
413 if (msgId == UbxNavMessages::UBX_NAV_SBAS) { return "SBAS"; }
414 if (msgId == UbxNavMessages::UBX_NAV_SLAS) { return "SLAS"; }
415 if (msgId == UbxNavMessages::UBX_NAV_SOL) { return "SOL"; }
416 if (msgId == UbxNavMessages::UBX_NAV_STATUS) { return "STATUS"; }
417 if (msgId == UbxNavMessages::UBX_NAV_SVIN) { return "SVIN"; }
418 if (msgId == UbxNavMessages::UBX_NAV_SVINFO) { return "SVINFO"; }
419 if (msgId == UbxNavMessages::UBX_NAV_TIMEBDS) { return "TIMEBDS"; }
420 if (msgId == UbxNavMessages::UBX_NAV_TIMEGAL) { return "TIMEGAL"; }
421 if (msgId == UbxNavMessages::UBX_NAV_TIMEGLO) { return "TIMEGLO"; }
422 if (msgId == UbxNavMessages::UBX_NAV_TIMEGPS) { return "TIMEGPS"; }
423 if (msgId == UbxNavMessages::UBX_NAV_TIMELS) { return "TIMELS"; }
424 if (msgId == UbxNavMessages::UBX_NAV_TIMEUTC) { return "TIMEUTC"; }
425 if (msgId == UbxNavMessages::UBX_NAV_VELECEF) { return "VELECEF"; }
426 if (msgId == UbxNavMessages::UBX_NAV_VELNED) { return "VELNED"; }
427 }
428 else if (msgClass == UbxClass::UBX_CLASS_RXM)
429 {
430 if (msgId == UbxRxmMessages::UBX_RXM_IMES) { return "IMES"; }
431 if (msgId == UbxRxmMessages::UBX_RXM_MEASX) { return "MEASX"; }
432 if (msgId == UbxRxmMessages::UBX_RXM_PMREQ) { return "PMREQ"; }
433 if (msgId == UbxRxmMessages::UBX_RXM_RAWX) { return "RAWX"; }
434 if (msgId == UbxRxmMessages::UBX_RXM_RLM) { return "RLM"; }
435 if (msgId == UbxRxmMessages::UBX_RXM_RTCM) { return "RTCM"; }
436 if (msgId == UbxRxmMessages::UBX_RXM_SFRBX) { return "SFRBX"; }
437 if (msgId == UbxRxmMessages::UBX_RXM_SVSI) { return "SVSI"; }
438 }
439 else if (msgClass == UbxClass::UBX_CLASS_SEC)
440 {
441 if (msgId == UbxSecMessages::UBX_SEC_UNIQID) { return "UNIQID"; }
442 }
443 else if (msgClass == UbxClass::UBX_CLASS_TIM)
444 {
445 if (msgId == UbxTimMessages::UBX_TIM_FCHG) { return "FCHG"; }
446 if (msgId == UbxTimMessages::UBX_TIM_HOC) { return "HOC"; }
447 if (msgId == UbxTimMessages::UBX_TIM_SMEAS) { return "SMEAS"; }
448 if (msgId == UbxTimMessages::UBX_TIM_SVIN) { return "SVIN"; }
449 if (msgId == UbxTimMessages::UBX_TIM_TM2) { return "TM2"; }
450 if (msgId == UbxTimMessages::UBX_TIM_TOS) { return "TOS"; }
451 if (msgId == UbxTimMessages::UBX_TIM_TP) { return "TP"; }
452 if (msgId == UbxTimMessages::UBX_TIM_VCOCAL) { return "VCOCAL"; }
453 if (msgId == UbxTimMessages::UBX_TIM_VRFY) { return "VRFY"; }
454 }
455 else if (msgClass == UbxClass::UBX_CLASS_UPD)
456 {
457 if (msgId == UbxUpdMessages::UBX_UPD_SOS) { return "SOS"; }
458 }
459
460 return "UNDEFINED";
461}
462
463uint8_t NAV::vendor::ublox::getMsgIdFromString(const std::string& className, const std::string& idName)
464{
465 return getMsgIdFromString(getMsgClassFromString(className), idName);
466}
467
469{
470 switch (gnssId)
471 {
472 case 0:
473 return GPS;
474 case 1:
475 return SBAS;
476 case 2:
477 return GAL;
478 case 3:
479 return BDS;
480 case 5:
481 return QZSS;
482 case 6:
483 return GLO;
484 case 7:
485 return IRNSS;
486 default:
487 return SatSys_None;
488 }
489}
490
491NAV::Code NAV::vendor::ublox::getCode(uint8_t gnssId, uint8_t sigId)
492{
493 if (gnssId == 0) // GPS
494 {
495 if (sigId == 0) { return Code::G1C; } // GPS L1C/A
496 if (sigId == 3) { return Code::G2L; } // GPS L2 CL
497 if (sigId == 4) { return Code::G2M; } // GPS L2 CM
498 if (sigId == 6) { return Code::G5I; } // GPS L5 I
499 if (sigId == 7) { return Code::G5X; } // GPS L5 Q
500 }
501 else if (gnssId == 1) // SBAS
502 {
503 if (sigId == 0) { return Code::S1C; } // SBAS L1C/A
504 }
505 else if (gnssId == 2) // Galileo
506 {
507 if (sigId == 0) { return Code::E1X; } // Galileo E1 C
508 if (sigId == 1) { return Code::E1B; } // Galileo E1 B
509 if (sigId == 3) { return Code::E5I; } // Galileo E5 aI
510 if (sigId == 4) { return Code::E5X; } // Galileo E5 aQ
511 if (sigId == 5) { return Code::E7I; } // Galileo E5 bI
512 if (sigId == 6) { return Code::E7X; } // Galileo E5 bQ
513 }
514 else if (gnssId == 3) // Beidou
515 {
516 if (sigId == 0) { return Code::B2I; } // BeiDou B1I D1
517 if (sigId == 1) { return Code::B2X; } // BeiDou B1I D2
518 if (sigId == 2) { return Code::B7I; } // BeiDou B2I D1
519 if (sigId == 3) { return Code::B7X; } // BeiDou B2I D2
520 if (sigId == 5) { return Code::B1P; } // BeiDou B1 Cp (pilot)
521 if (sigId == 6) { return Code::B1D; } // BeiDou B1 Cd (data)
522 if (sigId == 7) { return Code::B5P; } // BeiDou B2 ap (pilot)
523 if (sigId == 8) { return Code::B5D; } // BeiDou B2 ad (data)
524 }
525 else if (gnssId == 5) // QZSS
526 {
527 if (sigId == 0) { return Code::J1C; } // QZSS L1C/A
528 if (sigId == 1) { return Code::J1S; } // QZSS L1S
529 if (sigId == 4) { return Code::J2S; } // QZSS L2 CM
530 if (sigId == 5) { return Code::J2L; } // QZSS L2 CL
531 if (sigId == 8) { return Code::J5D; } // QZSS L5 I
532 if (sigId == 9) { return Code::J5P; } // QZSS L5 Q
533 }
534 else if (gnssId == 6) // GLONASS
535 {
536 if (sigId == 0) { return Code::R1C; } // GLONASS L1 OF
537 if (sigId == 2) { return Code::R2C; } // GLONASS L2 OF
538 }
539 else if (gnssId == 7) // IRNSS
540 {
541 if (sigId == 0) { return Code::I5A; } // NavIC L5 A
542 }
543 return Code::None;
544}
545
546std::ostream& operator<<(std::ostream& os, const NAV::vendor::ublox::UbxClass& obj)
547{
548 return os << fmt::format("{}", obj);
549}
std::ostream & operator<<(std::ostream &os, const NAV::vendor::ublox::UbxClass &obj)
Stream insertion operator overload.
Type Definitions for Ublox messages.
Enumerate for GNSS Codes.
Definition Code.hpp:89
@ B7I
BeiDou B2b (BDS-2) - B2I(OS)
Definition Code.hpp:166
@ R1C
GLO L1 - C/A-code.
Definition Code.hpp:139
@ J2L
QZSS L2 - L2C-code (long)
Definition Code.hpp:182
@ E7I
GAL E5b - Data.
Definition Code.hpp:132
@ B5P
BeiDou B2a - Pilot(P)
Definition Code.hpp:160
@ S1C
SBAS L1 - C/A-code.
Definition Code.hpp:205
@ E1B
GAL E1 - OS (data)
Definition Code.hpp:120
@ J5P
QZSS L5S - Q.
Definition Code.hpp:188
@ J5D
QZSS L5S - I.
Definition Code.hpp:187
@ J1S
QZSS L1 - L1C (data)
Definition Code.hpp:177
@ R2C
GLO L2 - C/A-code.
Definition Code.hpp:141
@ G5X
GPS L5 - Combined.
Definition Code.hpp:117
@ E5I
GAL E5a - Data.
Definition Code.hpp:124
@ J1C
QZSS L1 - C/A-code.
Definition Code.hpp:176
@ None
None.
Definition Code.hpp:94
@ B1P
BeiDou B1 - Pilot(P)
Definition Code.hpp:154
@ G1C
GPS L1 - C/A-code.
Definition Code.hpp:96
@ B1D
BeiDou B1 - Data (D)
Definition Code.hpp:153
@ G2L
GPS L2 - L2C(L) (long)
Definition Code.hpp:108
@ I5A
IRNSS L5 - SPS Signal.
Definition Code.hpp:196
@ E7X
GAL E5b - Combined.
Definition Code.hpp:134
@ G2M
GPS L2 - M-code.
Definition Code.hpp:113
@ B5D
BeiDou B2a - Data (D)
Definition Code.hpp:159
@ G5I
GPS L5 - Data.
Definition Code.hpp:115
@ B7X
BeiDou B2b (BDS-2) - B2I(OS), B2Q, combined.
Definition Code.hpp:168
@ E1X
GAL E1 - OS(B+C) (combined)
Definition Code.hpp:122
@ B2I
BeiDou B1-2 - B1I(OS)
Definition Code.hpp:156
@ B2X
BeiDou B1-2 - B1I(OS), B1Q, combined.
Definition Code.hpp:158
@ E5X
GAL E5a - Combined.
Definition Code.hpp:126
@ J2S
QZSS L2 - L2C-code (medium)
Definition Code.hpp:181
@ UBX_MGA_FLASH_STOP
Finish flashing MGA-ANO data (Length = 2; Type = Input)
@ UBX_MGA_INI_TIME_GNSS
Initial Time Assistance (Length = 24; Type = Input)
@ UBX_MGA_GPS_ALM
GPS Almanac Assistance (Length = 36; Type = Input)
@ UBX_MGA_GAL_EPH
Galileo Ephemeris Assistance (Length = 76; Type = Input)
@ UBX_MGA_QZSS_HEALTH
QZSS Health Assistance (Length = 12; Type = Input)
@ UBX_MGA_QZSS_EPH
QZSS Ephemeris Assistance (Length = 68; Type = Input)
@ UBX_MGA_INI_CLKD
Initial Clock Drift Assistance (Length = 12; Type = Input)
@ UBX_MGA_ACK_DATA0
Multiple GNSS Acknowledge message (Length = 8; Type = Output)
@ UBX_MGA_INI_POS_LLH
Initial Position Assistance (Length = 20; Type = Input)
@ UBX_MGA_BDS_ALM
BDS Almanac Assistance (Length = 40; Type = Input)
@ UBX_MGA_GPS_UTC
GPS UTC Assistance (Length = 20; Type = Input)
@ UBX_MGA_GLO_EPH
GLONASS Ephemeris Assistance (Length = 48; Type = Input)
@ UBX_MGA_ANO
Multiple GNSS AssistNow Offline Assistance (Length = 76; Type = Input)
@ UBX_MGA_BDS_EPH
BDS Ephemeris Assistance (Length = 88; Type = Input)
@ UBX_MGA_GLO_ALM
GLONASS Almanac Assistance (Length = 36; Type = Input)
@ UBX_MGA_INI_FREQ
Initial Frequency Assistance (Length = 12; Type = Input)
@ UBX_MGA_INI_TIME_UTC
Initial Time Assistance (Length = 24; Type = Input)
@ UBX_MGA_GPS_HEALTH
GPS Health Assistance (Length = 40; Type = Input)
@ UBX_MGA_INI_EOP
Earth Orientation Parameters Assistance (Length = 72; Type = Input)
@ UBX_MGA_FLASH_ACK
Acknowledge last FLASH-DATA or -STOP (Length = 6; Type = Output)
@ UBX_MGA_FLASH_DATA
Transfer MGA-ANO data block to flash (Length = 6 + 1*size; Type = Input)
@ UBX_MGA_BDS_IONO
BDS Ionospheric Assistance (Length = 16; Type = Input)
@ UBX_MGA_BDS_UTC
BDS UTC Assistance (Length = 20; Type = Input)
@ UBX_MGA_GPS_IONO
GPS Ionosphere Assistance (Length = 16; Type = Input)
@ UBX_MGA_INI_POS_XYZ
Initial Position Assistance (Length = 20; Type = Input)
@ UBX_MGA_GAL_ALM
Galileo Almanac Assistance (Length = 32; Type = Input)
@ UBX_MGA_GAL_UTC
Galileo UTC Assistance (Length = 20; Type = Input)
@ UBX_MGA_GAL_TIMEOFFSET
Galileo GPS time offset assistance (Length = 12; Type = Input)
@ UBX_MGA_QZSS_ALM
QZSS Almanac Assistance (Length = 36; Type = Input)
@ UBX_MGA_BDS_HEALTH
BDS Health Assistance (Length = 68; Type = Input)
@ UBX_MGA_GPS_EPH
GPS Ephemeris Assistance (Length = 68; Type = Input)
@ UBX_MGA_GLO_TIMEOFFSET
GLONASS Auxiliary Time Offset Assistance (Length = 20; Type = Input)
@ UBX_TIM_TP
Time Pulse Timedata (Length = 16; Type = Periodic/Polled)
@ UBX_TIM_VRFY
Sourced Time Verification (Length = 20; Type = Periodic/Polled)
@ UBX_TIM_SVIN
Survey-in data (Length = 28; Type = Periodic/Polled)
@ UBX_TIM_TM2
Time mark data (Length = 28; Type = Periodic/Polled)
@ UBX_TIM_FCHG
Oscillator frequency changed notification (Length = 32; Type = Periodic/Polled)
@ UBX_TIM_TOS
Time Pulse Time and Frequency Data (Length = 56; Type = Periodic)
@ UBX_TIM_HOC
Host oscillator control (Length = 8; Type = Input)
@ UBX_TIM_SMEAS
Source measurement (Length = 12 + 24*numMeas; Type = Input/Output)
std::string getStringFromMsgId(UbxClass msgClass, uint8_t msgId)
Get the a string from a UBX Msg Id.
@ UBX_CFG_TMODE3
Time Mode Settings 3 (Length = 40; Type = Get/Set)
@ UBX_CFG_RATE
Navigation/Measurement Rate Settings (Length = 6; Type = Get/Set)
@ UBX_CFG_CFG
Clear, Save and Load configurations (Length = (12) or (13); Type = Command)
@ UBX_CFG_DGNSS
DGNSS configuration (Length = 4; Type = Get/Set)
@ UBX_CFG_GEOFENCE
Geofencing configuration (Length = 8 + 12*numFences; Type = Get/Set)
@ UBX_CFG_TMODE2
Time Mode Settings 2 (Length = 28; Type = Get/Set)
@ UBX_CFG_ANT
Antenna Control Settings (Length = 4; Type = Get/Set)
@ UBX_CFG_ODO
Odometer, Low-speed COG Engine Settings (Length = 20; Type = Get/Set)
@ UBX_CFG_ITFM
Jamming/Interference Monitor configuration (Length = 8; Type = Get/Set)
@ UBX_CFG_SLAS
SLAS Configuration (Length = 4; Type = Get/Set)
@ UBX_CFG_ESRC
External synchronization source configuration (Length = 4 + 36*numSources; Type = Get/Set)
@ UBX_CFG_GNSS
GNSS system configuration (Length = 4 + 8*numConfigBlocks; Type = Get/Set)
@ UBX_CFG_LOGFILTER
Data Logger Configuration (Length = 12; Type = Get/Set)
@ UBX_CFG_PWR
Put receiver in a defined power state (Length = 8; Type = Set)
@ UBX_CFG_BATCH
Get/Set data batching configuration (Length = 8; Type = Get/Set)
@ UBX_CFG_RINV
Contents of Remote Inventory (Length = 1 + 1*N; Type = Get/Set)
@ UBX_CFG_DOSC
Disciplined oscillator configuration (Length = 4 + 32*numOsc; Type = Get/Set)
@ UBX_CFG_SBAS
SBAS Configuration (Length = 8; Type = Get/Set)
@ UBX_CFG_HNR
High Navigation Rate Settings (Length = 4; Type = Get/Set)
@ UBX_CFG_RST
Reset Receiver / Clear Backup Data Structures (Length = 4; Type = Command)
@ UBX_CFG_PMS
Power Mode Setup (Length = 8; Type = Get/Set)
@ UBX_CFG_USB
USB Configuration (Length = 108; Type = Get/Set)
@ UBX_CFG_NAV5
Navigation Engine Settings (Length = 36; Type = Get/Set)
@ UBX_CFG_TXSLOT
TX buffer time slots configuration (Length = 16; Type = Set)
@ UBX_CFG_SMGR
Synchronization manager configuration (Length = 20; Type = Get/Set)
Code getCode(uint8_t gnssId, uint8_t sigId)
Get the GNSS code from gnssId and sigId.
@ UBX_ACK_ACK
Message Acknowledged (Length = 2; Type = Output)
@ UBX_ACK_NAK
Message Not-Acknowledged (Length = 2; Type = Output)
@ UBX_LOG_RETRIEVEPOS
Position fix log entry (Length = 40; Type = Output)
@ UBX_LOG_ERASE
Erase Logged Data (Length = 0; Type = Command)
@ UBX_LOG_BATCH
Batched data (Length = 100; Type = Polled)
@ UBX_LOG_RETRIEVE
Request log data (Length = 12; Type = Command)
@ UBX_LOG_RETRIEVESTRING
Byte string log entry (Length = 16 + 1*byteCount; Type = )
@ UBX_LOG_RETRIEVEPOSEXTRA
Odometer log entry (Length = 32; Type = Output)
@ UBX_LOG_STRING
Store arbitrary string in on-board flash (Length = 0 + 1*N; Type = Command)
@ UBX_LOG_RETRIEVEBATCH
Request batch data (Length = 4; Type = Command)
@ UBX_LOG_CREATE
Create Log File (Length = 8; Type = Command)
@ UBX_INF_ERROR
ASCII output with error contents (Length = 0 + 1*N; Type = Output)
@ UBX_INF_TEST
ASCII output with test contents (Length = 0 + 1*N; Type = Output)
@ UBX_INF_NOTICE
ASCII output with informational contents (Length = 0 + 1*N; Type = Output)
@ UBX_INF_DEBUG
ASCII output with debug contents (Length = 0 + 1*N; Type = Output)
@ UBX_INF_WARNING
ASCII output with warning contents (Length = 0 + 1*N; Type = Output)
UbxClass getMsgClassFromString(const std::string &className)
Get the UBX Msg Class From String object.
SatelliteSystem getSatSys(uint8_t gnssId)
Get the GNSS Satellite System from gnssId.
uint8_t getMsgIdFromString(UbxClass msgClass, const std::string &idName)
Get the UBX Msg Id From String object.
@ UBX_ESF_INS
Vehicle dynamics information (Length = 36; Type = Periodic/Polled)
@ UBX_ESF_RAW
Raw sensor measurements (Length = 4 + 8*N; Type = Output)
@ UBX_ESF_STATUS
External Sensor Fusion (ESF) status information (Length = 16 + 4*numSens; Type = Periodic/Polled)
@ UBX_ESF_MEAS
External Sensor Fusion Measurements (Length = (8 + 4*numMeas) or (12 + 4*numMeas); Type = Input/Outpu...
UbxClass
The available UBX Class IDs.
@ UBX_CLASS_NAV
Navigation Results Messages: Position, Speed, Time, Acceleration, Heading, DOP, SVs used.
@ UBX_CLASS_TIM
Timing Messages: Time Pulse Output, Time Mark Results.
@ UBX_CLASS_NONE
No Message Class specified.
@ UBX_CLASS_INF
Information Messages: Printf-Style Messages, with IDs such as Error, Warning, Notice.
@ UBX_CLASS_HNR
High Rate Navigation Results Messages: High rate time, position, speed, heading.
@ UBX_CLASS_SEC
Security Feature Messages.
@ UBX_CLASS_MON
Monitoring Messages: Communication Status, CPU Load, Stack Usage, Task Status.
@ UBX_CLASS_MGA
Multiple GNSS Assistance Messages: Assistance data for various GNSS.
@ UBX_CLASS_RXM
Receiver Manager Messages: Satellite Status, RTC Status.
@ UBX_CLASS_ESF
External Sensor Fusion Messages: External Sensor Measurements and Status Information.
@ UBX_CLASS_LOG
Logging Messages: Log creation, deletion, info and retrieval.
@ UBX_CLASS_UPD
Firmware Update Messages: Memory/Flash erase/write, Reboot, Flash identification, etc.
@ UBX_CLASS_CFG
Configuration Input Messages: Configure the receiver.
@ UBX_CLASS_ACK
Ack/Nak Messages: Acknowledge or Reject messages to UBX-CFG input messages.
@ UBX_RXM_IMES
Indoor Messaging System Information (Length = 4 + 44*numTx; Type = Periodic/Polled)
@ UBX_RXM_SVSI
SV Status Info (Length = 8 + 6*numSV; Type = Periodic/Polled)
@ UBX_RXM_RTCM
RTCM input status (Length = 8; Type = Output)
std::string getStringFromMsgClass(UbxClass msgClass)
Get the a string from a UBX Msg Class.
@ UBX_HNR_INS
Vehicle dynamics information (Length = 36; Type = Periodic/Polled)
@ UBX_HNR_PVT
High Rate Output of PVT Solution (Length = 72; Type = Periodic/Polled)
@ UBX_SEC_UNIQID
Unique Chip ID (Length = 9; Type = Output)
@ UBX_NAV_VELNED
Velocity Solution in NED (Length = 36; Type = Periodic/Polled)
@ UBX_NAV_ATT
Attitude Solution (Length = 32; Type = Periodic/Polled)
@ UBX_NAV_RESETODO
Reset odometer (Length = 0; Type = Command)
@ UBX_NAV_SAT
Satellite Information (Length = 8 + 12*numSvs; Type = Periodic/Polled)
@ UBX_NAV_TIMEGLO
GLO Time Solution (Length = 20; Type = Periodic/Polled)
@ UBX_NAV_DOP
Dilution of precision (Length = 18; Type = Periodic/Polled)
@ UBX_NAV_POSECEF
Position Solution in ECEF (Length = 20; Type = Periodic/Polled)
@ UBX_NAV_TIMEUTC
UTC Time Solution (Length = 20; Type = Periodic/Polled)
@ UBX_NAV_GEOFENCE
Geofencing status (Length = 8 + 2*numFences; Type = Periodic/Polled)
@ UBX_NAV_AOPSTATUS
AssistNow Autonomous Status (Length = 16; Type = Periodic/Polled)
@ UBX_NAV_PVT
Navigation Position Velocity Time Solution (Length = 92; Type = Periodic/Polled)
@ UBX_NAV_ODO
Odometer Solution (Length = 20; Type = Periodic/Polled)
@ UBX_NAV_EOE
End Of Epoch (Length = 4; Type = Periodic)
@ UBX_NAV_HPPOSLLH
High Precision Geodetic Position Solution (Length = 36; Type = Periodic/Polled)
@ UBX_NAV_DGPS
DGPS Data Used for NAV (Length = 16 + 12*numCh; Type = Periodic/Polled)
@ UBX_NAV_CLOCK
Clock Solution (Length = 20; Type = Periodic/Polled)
@ UBX_NAV_RELPOSNED
Relative Positioning Information in NED frame (Length = 40; Type = Periodic/Polled)
@ UBX_NAV_SVIN
Survey-in data (Length = 40; Type = Periodic/Polled)
@ UBX_NAV_SBAS
SBAS Status Data (Length = 12 + 12*cnt; Type = Periodic/Polled)
@ UBX_NAV_VELECEF
Velocity Solution in ECEF (Length = 20; Type = Periodic/Polled)
@ UBX_NAV_TIMEGPS
GPS Time Solution (Length = 16; Type = Periodic/Polled)
@ UBX_NAV_TIMELS
Leap second event information (Length = 24; Type = Periodic/Polled)
@ UBX_NAV_TIMEGAL
Galileo Time Solution (Length = 20; Type = Periodic/Polled)
@ UBX_NAV_SVINFO
Space Vehicle Information (Length = 8 + 12*numCh; Type = Periodic/Polled)
@ UBX_NAV_SOL
Navigation Solution Information (Length = 52; Type = Periodic/Polled)
@ UBX_NAV_SLAS
QZSS L1S SLAS Status Data (Length = 20 + 8*cnt; Type = Periodic/Polled)
@ UBX_NAV_HPPOSECEF
High Precision Position Solution in ECEF (Length = 28; Type = Periodic/Polled)
@ UBX_NAV_ORB
GNSS Orbit Database Info (Length = 8 + 6*numSv; Type = Periodic/Polled)
@ UBX_NAV_POSLLH
Geodetic Position Solution (Length = 28; Type = Periodic/Polled)
@ UBX_NAV_TIMEBDS
BDS Time Solution (Length = 20; Type = Periodic/Polled)
@ UBX_NAV_STATUS
Receiver Navigation Status (Length = 16; Type = Periodic/Polled)
@ UBX_MON_TXBUFF
Transmitter Buffer Status (Length = 28; Type = Periodic/Polled)
@ UBX_MON_GNSS
Information message major GNSS selection (Length = 8; Type = Polled)
@ UBX_MON_RXBUFF
Receiver Buffer Status (Length = 24; Type = Periodic/Polled)
@ UBX_MON_HW2
Extended Hardware Status (Length = 28; Type = Periodic/Polled)
@ UBX_MON_RXR
Receiver Status Information (Length = 1; Type = Output)
@ UBX_MON_HW
Hardware Status (Length = 60; Type = Periodic/Polled)
@ UBX_MON_MSGPP
Message Parse and Process Status (Length = 120; Type = Periodic/Polled)
@ UBX_MON_IO
I/O Subsystem Status (Length = 0 + 20*N; Type = Periodic/Polled)
@ UBX_MON_SMGR
Synchronization Manager Status (Length = 16; Type = Periodic/Polled)
@ UBX_MON_BATCH
Data batching buffer status (Length = 12; Type = Polled)
@ GPS
Global Positioning System.
@ QZSS
Quasi-Zenith Satellite System.
@ GLO
Globalnaja nawigazionnaja sputnikowaja sistema (GLONASS)
@ GAL
Galileo.
@ SBAS
Satellite Based Augmentation System.
@ BDS
Beidou.
@ SatSys_None
No Satellite system.
@ IRNSS
Indian Regional Navigation Satellite System.
Satellite System type.