11#ifndef INFUSE_GNSS_UBX_CFG_H_
12#define INFUSE_GNSS_UBX_CFG_H_
14#include <zephyr/net_buf.h>
15#include <zephyr/sys/byteorder.h>
40enum _ubx_cfg_key_size {
41 _UBX_CFG_KEY_SIZE_1BIT_ = (0x01 << 28),
42 _UBX_CFG_KEY_SIZE_1BYTE = (0x02 << 28),
43 _UBX_CFG_KEY_SIZE_2BYTE = (0x03 << 28),
44 _UBX_CFG_KEY_SIZE_4BYTE = (0x04 << 28),
45 _UBX_CFG_KEY_SIZE_8BYTE = (0x05 << 28),
46 _UBX_CFG_KEY_SIZE_MASK = (0x07 << 28),
50enum _ubx_cfg_key_grp {
52 _UBX_CFG_KEY_GRP_ANA = (0x23 << 16),
54 _UBX_CFG_KEY_GRP_BATCH = (0x26 << 16),
56 _UBX_CFG_KEY_GRP_BDS = (0x34 << 16),
58 _UBX_CFG_KEY_GRP_HW = (0xa3 << 16),
60 _UBX_CFG_KEY_GRP_I2C = (0x51 << 16),
62 _UBX_CFG_KEY_GRP_I2CINPROT = (0x71 << 16),
64 _UBX_CFG_KEY_GRP_I2COUTPROT = (0x72 << 16),
66 _UBX_CFG_KEY_GRP_INFMSG = (0x92 << 16),
68 _UBX_CFG_KEY_GRP_ITFM = (0x41 << 16),
70 _UBX_CFG_KEY_GRP_MOT = (0x25 << 16),
72 _UBX_CFG_KEY_GRP_MSGOUT = (0x91 << 16),
74 _UBX_CFG_KEY_GRP_NAVSPG = (0x11 << 16),
76 _UBX_CFG_KEY_GRP_NMEA = (0x93 << 16),
78 _UBX_CFG_KEY_GRP_ODO = (0x22 << 16),
80 _UBX_CFG_KEY_GRP_PM = (0xd0 << 16),
82 _UBX_CFG_KEY_GRP_QZSS = (0x37 << 16),
84 _UBX_CFG_KEY_GRP_RATE = (0x21 << 16),
86 _UBX_CFG_KEY_GRP_RINV = (0xc7 << 16),
88 _UBX_CFG_KEY_GRP_SBAS = (0x36 << 16),
90 _UBX_CFG_KEY_GRP_SEC = (0xf6 << 16),
92 _UBX_CFG_KEY_GRP_SIGNAL = (0x31 << 16),
94 _UBX_CFG_KEY_GRP_SPI = (0x64 << 16),
96 _UBX_CFG_KEY_GRP_SPIINPROT = (0x79 << 16),
98 _UBX_CFG_KEY_GRP_SPIOUTPROT = (0x7a << 16),
100 _UBX_CFG_KEY_GRP_TP = (0x05 << 16),
102 _UBX_CFG_KEY_GRP_TXREADY = (0xa2 << 16),
104 _UBX_CFG_KEY_GRP_UART1 = (0x52 << 16),
106 _UBX_CFG_KEY_GRP_UART1INPROT = (0x73 << 16),
108 _UBX_CFG_KEY_GRP_UART1OUTPROT = (0x74 << 16),
111#define _UBX_CFG_KEY_NAME(group, name) UBX_CFG_KEY_##group##_##name
121#define _UBX_CFG_KEY_DEFINE(size, group, id, name) \
122 _UBX_CFG_KEY_NAME(group, name) = (size | (_UBX_CFG_KEY_GRP_##group) | id)
131 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BYTE, I2C, 1, ADDRESS),
132 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BIT_, I2C, 2, EXTENDEDTIMEOUT),
133 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BIT_, I2C, 3, ENABLED),
147 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BIT_, I2CINPROT, 1, UBX),
148 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BIT_, I2CINPROT, 2, NMEA),
162 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BIT_, I2COUTPROT, 1, UBX),
163 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BIT_, I2COUTPROT, 2, NMEA),
181#define _UBX_CFG_MSGOUT_KEY_DEFINE(i2c_val, name) \
182 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BYTE, MSGOUT, (i2c_val), name##_I2C), \
183 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BYTE, MSGOUT, (i2c_val + 1), name##_UART1), \
184 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BYTE, MSGOUT, (i2c_val + 4), name##_SPI)
187 _UBX_CFG_MSGOUT_KEY_DEFINE(0x034f, UBX_MON_COMMS),
188 _UBX_CFG_MSGOUT_KEY_DEFINE(0x01b9, UBX_MON_HW2),
189 _UBX_CFG_MSGOUT_KEY_DEFINE(0x0354, UBX_MON_HW3),
190 _UBX_CFG_MSGOUT_KEY_DEFINE(0x01b4, UBX_MON_HW),
191 _UBX_CFG_MSGOUT_KEY_DEFINE(0x01a5, UBX_MON_IO),
192 _UBX_CFG_MSGOUT_KEY_DEFINE(0x0196, UBX_MON_MSGPP),
193 _UBX_CFG_MSGOUT_KEY_DEFINE(0x0359, UBX_MON_RF),
194 _UBX_CFG_MSGOUT_KEY_DEFINE(0x01a0, UBX_MON_RXBUF),
195 _UBX_CFG_MSGOUT_KEY_DEFINE(0x0187, UBX_MON_RXR),
196 _UBX_CFG_MSGOUT_KEY_DEFINE(0x038b, UBX_MON_SPAN),
197 _UBX_CFG_MSGOUT_KEY_DEFINE(0x019b, UBX_MON_TXBUF),
198 _UBX_CFG_MSGOUT_KEY_DEFINE(0x0079, UBX_NAV_AOPSTATUS),
199 _UBX_CFG_MSGOUT_KEY_DEFINE(0x0065, UBX_NAV_CLOCK),
200 _UBX_CFG_MSGOUT_KEY_DEFINE(0x0083, UBX_NAV_COV),
201 _UBX_CFG_MSGOUT_KEY_DEFINE(0x0038, UBX_NAV_DOP),
202 _UBX_CFG_MSGOUT_KEY_DEFINE(0x015f, UBX_NAV_EOE),
203 _UBX_CFG_MSGOUT_KEY_DEFINE(0x007e, UBX_NAV_ODO),
204 _UBX_CFG_MSGOUT_KEY_DEFINE(0x0010, UBX_NAV_ORB),
205 _UBX_CFG_MSGOUT_KEY_DEFINE(0x0024, UBX_NAV_PL),
206 _UBX_CFG_MSGOUT_KEY_DEFINE(0x0024, UBX_NAV_POSECEF),
207 _UBX_CFG_MSGOUT_KEY_DEFINE(0x0029, UBX_NAV_POSLLH),
208 _UBX_CFG_MSGOUT_KEY_DEFINE(0x0006, UBX_NAV_PVT),
209 _UBX_CFG_MSGOUT_KEY_DEFINE(0x0015, UBX_NAV_SAT),
210 _UBX_CFG_MSGOUT_KEY_DEFINE(0x006a, UBX_NAV_SBAS),
211 _UBX_CFG_MSGOUT_KEY_DEFINE(0x0345, UBX_NAV_SIG),
212 _UBX_CFG_MSGOUT_KEY_DEFINE(0x0336, UBX_NAV_SLAS),
213 _UBX_CFG_MSGOUT_KEY_DEFINE(0x001a, UBX_NAV_STATUS),
214 _UBX_CFG_MSGOUT_KEY_DEFINE(0x0051, UBX_NAV_TIMEBDS),
215 _UBX_CFG_MSGOUT_KEY_DEFINE(0x0056, UBX_NAV_TIMEGAL),
216 _UBX_CFG_MSGOUT_KEY_DEFINE(0x004c, UBX_NAV_TIMEGLO),
217 _UBX_CFG_MSGOUT_KEY_DEFINE(0x0047, UBX_NAV_TIMEGPS),
218 _UBX_CFG_MSGOUT_KEY_DEFINE(0x0060, UBX_NAV_TIMELS),
219 _UBX_CFG_MSGOUT_KEY_DEFINE(0x0386, UBX_NAV_TIMEQZSS),
220 _UBX_CFG_MSGOUT_KEY_DEFINE(0x005b, UBX_NAV_TIMEUTC),
221 _UBX_CFG_MSGOUT_KEY_DEFINE(0x003d, UBX_NAV_VELECEF),
222 _UBX_CFG_MSGOUT_KEY_DEFINE(0x0042, UBX_NAV_VELNED),
223 _UBX_CFG_MSGOUT_KEY_DEFINE(0x0643, UBX_RXM_MEAS20),
224 _UBX_CFG_MSGOUT_KEY_DEFINE(0x0648, UBX_RXM_MEAS50),
225 _UBX_CFG_MSGOUT_KEY_DEFINE(0x063e, UBX_RXM_MEASC12),
226 _UBX_CFG_MSGOUT_KEY_DEFINE(0x0639, UBX_RXM_MEASD12),
227 _UBX_CFG_MSGOUT_KEY_DEFINE(0x0204, UBX_RXM_MEASX),
228 _UBX_CFG_MSGOUT_KEY_DEFINE(0x025e, UBX_RXM_RLM),
229 _UBX_CFG_MSGOUT_KEY_DEFINE(0x0231, UBX_RXM_SFRBX),
230 _UBX_CFG_MSGOUT_KEY_DEFINE(0x0178, UBX_RXM_TIM_TM2),
231 _UBX_CFG_MSGOUT_KEY_DEFINE(0x017d, UBX_RXM_TIM_TP),
232 _UBX_CFG_MSGOUT_KEY_DEFINE(0x0092, UBX_RXM_TIM_VRFY),
246 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BYTE, NAVSPG, 0x11, FIXMODE),
247 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BIT_, NAVSPG, 0x13, INIFIX3D),
248 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_2BYTE, NAVSPG, 0x17, WKNROLLOVER),
249 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BYTE, NAVSPG, 0x1c, UTCSTANDARD),
250 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BYTE, NAVSPG, 0x21, DYNMODEL),
251 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BIT_, NAVSPG, 0x25, ACKAIDING),
252 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BYTE, NAVSPG, 0xa1, INFIL_MINSVS),
253 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BYTE, NAVSPG, 0xa2, INFIL_MAXSVS),
254 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BYTE, NAVSPG, 0xa3, INFIL_MINCNO),
255 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BYTE, NAVSPG, 0xa4, INFIL_MINELEV),
256 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BYTE, NAVSPG, 0xaa, INFIL_NCNOTHRS),
257 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BYTE, NAVSPG, 0xab, INFIL_CNOTHRS),
258 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_2BYTE, NAVSPG, 0xb1, OUTFIL_PDOP),
259 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_2BYTE, NAVSPG, 0xb2, OUTFIL_TDOP),
260 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_2BYTE, NAVSPG, 0xb3, OUTFIL_PACC),
261 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_2BYTE, NAVSPG, 0xb4, OUTFIL_TACC),
262 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_2BYTE, NAVSPG, 0xb5, OUTFIL_FACC),
263 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_4BYTE, NAVSPG, 0xc1, CONSTR_ALT),
264 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_4BYTE, NAVSPG, 0xc2, CONSTR_ALTVAR),
265 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BYTE, NAVSPG, 0xc4, CONSTR_DGNSSTO),
266 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BYTE, NAVSPG, 0xd6, SIGATTCOMP),
318 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BYTE, PM, 0x01, OPERATEMODE),
319 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_4BYTE, PM, 0x02, POSUPDATEPERIOD),
320 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_4BYTE, PM, 0x03, ACQPERIOD),
321 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_4BYTE, PM, 0x04, GRIDOFFSET),
322 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_2BYTE, PM, 0x05, ONTIME),
323 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BYTE, PM, 0x06, MINACQTIME),
324 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BYTE, PM, 0x07, MAXACQTIME),
325 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BIT_, PM, 0x08, DONOTENTEROFF),
326 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BIT_, PM, 0x09, WAITTIMEFIX),
327 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BIT_, PM, 0x0a, UPDATEEPH),
328 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BIT_, PM, 0x0c, EXTINTWAKE),
329 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BIT_, PM, 0x0d, EXTINTBACKUP),
330 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BIT_, PM, 0x0e, EXTINTINACTIVE),
331 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_4BYTE, PM, 0x0f, EXTINTINACTIVITY),
332 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BIT_, PM, 0x10, LIMITPEAKCURR),
355 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_2BYTE, RATE, 1, MEAS),
356 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_2BYTE, RATE, 2, NAV),
357 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BYTE, RATE, 3, TIMEREF),
380 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BIT_, SIGNAL, 0x1f, GPS_ENA),
381 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BIT_, SIGNAL, 0x01, GPS_L1CA_ENA),
382 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BIT_, SIGNAL, 0x20, SBAS_ENA),
383 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BIT_, SIGNAL, 0x05, SBAS_L1CA_ENA),
384 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BIT_, SIGNAL, 0x21, GALILEO_ENA),
385 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BIT_, SIGNAL, 0x07, GALILEO_E1_ENA),
386 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BIT_, SIGNAL, 0x22, BEIDOU_ENA),
387 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BIT_, SIGNAL, 0x0d, BEIDOU_B1L_ENA),
388 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BIT_, SIGNAL, 0x0f, BEIDOU_B1C_ENA),
389 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BIT_, SIGNAL, 0x24, QZSS_ENA),
390 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BIT_, SIGNAL, 0x12, QZSS_L1CA_ENA),
391 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BIT_, SIGNAL, 0x14, QZSS_L1S_ENA),
392 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BIT_, SIGNAL, 0x25, GLONASS_ENA),
393 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BIT_, SIGNAL, 0x18, GLONASS_L1CA_ENA),
407 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BYTE, TP, 0x23, PULSE_DEF),
408 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BYTE, TP, 0x30, PULSE_LENGTH_DEF),
409 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_2BYTE, TP, 0x01, CABLEDELAY),
410 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_4BYTE, TP, 0x02, PERIOD_TP1),
411 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_4BYTE, TP, 0x03, PERIOD_LOCK_TP1),
412 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_4BYTE, TP, 0x24, FREQ_TP1),
413 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_4BYTE, TP, 0x25, FREQ_LOCK_TP1),
414 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_4BYTE, TP, 0x04, LEN_TP1),
415 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_4BYTE, TP, 0x05, LEN_LOCK_TP1),
416 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_8BYTE, TP, 0x2a, DUTY_TP1),
417 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_8BYTE, TP, 0x2b, DUTY_LOCK_TP1),
418 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_4BYTE, TP, 0x06, USER_DELAY_TP1),
419 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BIT_, TP, 0x07, TP1_ENA),
420 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BIT_, TP, 0x08, SYNC_GNSS_TP1),
421 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BIT_, TP, 0x09, USE_LOCKED_TP1),
422 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BIT_, TP, 0x0a, ALIGN_TO_TOW_TP1),
423 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BIT_, TP, 0x0b, POL_TP1),
424 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BYTE, TP, 0x0c, TIMEGRID_TP1),
463 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BIT_, TXREADY, 1, ENABLED),
464 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BIT_, TXREADY, 2, POLARITY),
465 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BYTE, TXREADY, 3, PIN),
466 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_2BYTE, TXREADY, 4, THRESHOLD),
467 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BYTE, TXREADY, 5, INTERFACE),
491 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_4BYTE, UART1, 1, BAUDRATE),
492 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BYTE, UART1, 2, STOPBITS),
493 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BYTE, UART1, 3, DATABITS),
494 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BYTE, UART1, 4, PARITY),
495 _UBX_CFG_KEY_DEFINE(_UBX_CFG_KEY_SIZE_1BIT_, UART1, 5, ENABLED),
513 valset = net_buf_simple_add(buf,
sizeof(*valset));
530 valget = net_buf_simple_add(buf,
sizeof(*valget));
547#define UBX_CFG_VALUE_APPEND(buf, key, value) \
548 net_buf_simple_add_le32(buf, key); \
549 switch (key & _UBX_CFG_KEY_SIZE_MASK) { \
550 case _UBX_CFG_KEY_SIZE_1BIT_: \
551 net_buf_simple_add_u8(buf, value ? 0x01 : 0x00); \
553 case _UBX_CFG_KEY_SIZE_1BYTE: \
554 net_buf_simple_add_u8(buf, value); \
556 case _UBX_CFG_KEY_SIZE_2BYTE: \
557 net_buf_simple_add_le16(buf, value); \
559 case _UBX_CFG_KEY_SIZE_4BYTE: \
560 net_buf_simple_add_le32(buf, value); \
563 net_buf_simple_add_le64(buf, value); \
616 if (*remaining <= 4) {
619 cfg->
key = sys_get_le32(*ptr);
621 switch (cfg->
key & _UBX_CFG_KEY_SIZE_MASK) {
622 case _UBX_CFG_KEY_SIZE_1BIT_:
623 case _UBX_CFG_KEY_SIZE_1BYTE:
628 case _UBX_CFG_KEY_SIZE_2BYTE:
629 cfg->
val.
u2 = sys_get_le16(*ptr);
633 case _UBX_CFG_KEY_SIZE_4BYTE:
634 cfg->
val.
u4 = sys_get_le32(*ptr);
638 case _UBX_CFG_KEY_SIZE_8BYTE:
639 cfg->
val.
u8 = sys_get_le64(*ptr);
ubx_cfg_key_i2cinprot
Definition cfg.h:146
ubx_cfg_key_i2coutprot
Definition cfg.h:161
ubx_cfg_key_i2c
Definition cfg.h:130
ubx_cfg_key_msgout
Definition cfg.h:186
ubx_cfg_key_navspg_dynmodel
Definition cfg.h:292
ubx_cfg_key_navspg_utcstandard
Definition cfg.h:275
ubx_cfg_key_navspg_fixmode
Definition cfg.h:269
ubx_cfg_key_navspg
Definition cfg.h:245
@ UBX_CFG_NAVSPG_DYNMODEL_ESCOOTER
Definition cfg.h:304
@ UBX_CFG_NAVSPG_DYNMODEL_AIRBORNE4G
Definition cfg.h:300
@ UBX_CFG_NAVSPG_DYNMODEL_BIKE
Definition cfg.h:302
@ UBX_CFG_NAVSPG_DYNMODEL_AIRBORNE2G
Definition cfg.h:299
@ UBX_CFG_NAVSPG_DYNMODEL_AIRBORNE1G
Definition cfg.h:298
@ UBX_CFG_NAVSPG_DYNMODEL_PEDESTRIAN
Definition cfg.h:295
@ UBX_CFG_NAVSPG_DYNMODEL_MOWER
Definition cfg.h:303
@ UBX_CFG_NAVSPG_DYNMODEL_SEA
Definition cfg.h:297
@ UBX_CFG_NAVSPG_DYNMODEL_PORTABLE
Definition cfg.h:293
@ UBX_CFG_NAVSPG_DYNMODEL_STATIONARY
Definition cfg.h:294
@ UBX_CFG_NAVSPG_DYNMODEL_AUTOMOTIVE
Definition cfg.h:296
@ UBX_CFG_NAVSPG_DYNMODEL_WRIST
Definition cfg.h:301
@ UBX_CFG_NAVSPG_UTCSTANDARD_SU
Former Soviet Union (GLONASS)
Definition cfg.h:283
@ UBX_CFG_NAVSPG_UTCSTANDARD_EU
Derived from multiple European laboratories (Galileo)
Definition cfg.h:281
@ UBX_CFG_NAVSPG_UTCSTANDARD_NTSC
National Time Service Center, China (BeiDou)
Definition cfg.h:285
@ UBX_CFG_NAVSPG_UTCSTANDARD_USNO
U.S.
Definition cfg.h:279
@ UBX_CFG_NAVSPG_UTCSTANDARD_AUTO
Automatically selected based on receiver configuration.
Definition cfg.h:277
@ UBX_CFG_NAVSPG_UTCSTANDARD_NICT
National Institute of Information and Communications Technology, Japan (QZSS)
Definition cfg.h:289
@ UBX_CFG_NAVSPG_UTCSTANDARD_NPLI
National Physics Laboratory, India (NAVIC)
Definition cfg.h:287
@ UBX_CFG_NAVSPG_FIXMODE_3DONLY
Definition cfg.h:271
@ UBX_CFG_NAVSPG_FIXMODE_2DONLY
Definition cfg.h:270
@ UBX_CFG_NAVSPG_FIXMODE_AUTO
Definition cfg.h:272
ubx_cfg_key_pm_operatemode
Definition cfg.h:335
ubx_cfg_key_pm
Definition cfg.h:317
@ UBX_CFG_KEY_PM_OPERATEMODE_PSMOO
PSM ON/OFF operation.
Definition cfg.h:339
@ UBX_CFG_KEY_PM_OPERATEMODE_FULL
Normal operation, no power save mode active.
Definition cfg.h:337
@ UBX_CFG_KEY_PM_OPERATEMODE_PSMCT
PSM cyclic tracking operation.
Definition cfg.h:341
ubx_cfg_key_rate
Definition cfg.h:354
ubx_cfg_key_rate_timeref
Definition cfg.h:360
@ UBX_CFG_RATE_TIMEREF_GLO
Definition cfg.h:363
@ UBX_CFG_RATE_TIMEREF_NAVIC
Definition cfg.h:366
@ UBX_CFG_RATE_TIMEREF_GPS
Definition cfg.h:362
@ UBX_CFG_RATE_TIMEREF_GAL
Definition cfg.h:365
@ UBX_CFG_RATE_TIMEREF_BDS
Definition cfg.h:364
@ UBX_CFG_RATE_TIMEREF_UTC
Definition cfg.h:361
ubx_cfg_key_signal
Definition cfg.h:379
ubx_cfg_key_tp_pulse_def
Definition cfg.h:427
ubx_cfg_key_tp_timegrid_tp1
Definition cfg.h:442
ubx_cfg_key_tp
Definition cfg.h:406
ubx_cfg_key_tp_pol_tp1
Definition cfg.h:437
ubx_cfg_key_tp_pulse_length_def
Definition cfg.h:432
@ UBX_CFG_TP_PULSE_DEF_PERIOD
Definition cfg.h:428
@ UBX_CFG_TP_PULSE_DEF_FREQ
Definition cfg.h:429
@ UBX_CFG_TP_TIMEGRID_TP1_GPS
Definition cfg.h:444
@ UBX_CFG_TP_TIMEGRID_TP1_UTC
Definition cfg.h:443
@ UBX_CFG_TP_TIMEGRID_TP1_BDS
Definition cfg.h:446
@ UBX_CFG_TP_TIMEGRID_TP1_GLO
Definition cfg.h:445
@ UBX_CFG_TP_TIMEGRID_TP1_GAL
Definition cfg.h:447
@ UBX_CFG_TP_TIMEGRID_TP1_LOCAL
Definition cfg.h:449
@ UBX_CFG_TP_TIMEGRID_TP1_NAVIC
Definition cfg.h:448
@ UBX_CFG_TP_POL_TP1_RISING_EDGE
Definition cfg.h:439
@ UBX_CFG_TP_POL_TP1_FALLING_EDGE
Definition cfg.h:438
@ UBX_CFG_TP_PULSE_LENGTH_DEF_RATIO
Definition cfg.h:433
@ UBX_CFG_TP_PULSE_LENGTH_DEF_LENGTH
Definition cfg.h:434
ubx_cfg_key_txready
Definition cfg.h:462
ubx_cfg_key_rate_txready_polarity
Definition cfg.h:470
ubx_cfg_key_rate_txready_interface
Definition cfg.h:475
@ UBX_CFG_TXREADY_POLARITY_ACTIVE_LOW
Definition cfg.h:472
@ UBX_CFG_TXREADY_POLARITY_ACTIVE_HIGH
Definition cfg.h:471
@ UBX_CFG_TXREADY_INTERFACE_I2C
Definition cfg.h:476
@ UBX_CFG_TXREADY_INTERFACE_SPI
Definition cfg.h:477
ubx_cfg_key_uart1
Definition cfg.h:490
@ UBX_MSG_ID_CFG_VALGET
Definition protocol.h:104
@ UBX_MSG_ID_CFG_VALSET
Definition protocol.h:103
static int ubx_cfg_val_parse(const uint8_t **ptr, size_t *remaining, struct ubx_cfg_val *cfg)
Iteratively parse configuration values from a buffer.
Definition cfg.h:614
static void ubx_msg_prepare_valset(struct net_buf_simple *buf, uint8_t layers)
Helper to prepare the common CFG-VALSET message.
Definition cfg.h:508
static void ubx_msg_prepare_valget(struct net_buf_simple *buf, uint8_t layer, uint8_t offset)
Helper to prepare the common CFG-VALGET message.
Definition cfg.h:525
static void ubx_msg_prepare(struct net_buf_simple *buf, uint8_t msg_class, uint8_t msg_id)
Prepare a net_buf_simple to be used as a UBX protocol message.
Definition protocol.h:825
@ UBX_MSG_CLASS_CFG
Definition protocol.h:47
Configuration value structure as returned by parser.
Definition cfg.h:568
float r4
Definition cfg.h:586
int8_t i1
Definition cfg.h:577
int64_t i8
Definition cfg.h:590
uint8_t l
Definition cfg.h:573
uint32_t u4
Definition cfg.h:582
uint16_t x2
Definition cfg.h:580
uint16_t e2
Definition cfg.h:579
double r8
Definition cfg.h:591
union ubx_cfg_val::@28 val
Configuration key value.
uint64_t e8
Definition cfg.h:588
int16_t i2
Definition cfg.h:581
uint16_t u2
Definition cfg.h:578
uint8_t x1
Definition cfg.h:576
uint8_t e1
Definition cfg.h:575
uint64_t u8
Definition cfg.h:587
uint8_t u1
Definition cfg.h:574
uint32_t key
Configuration key ID.
Definition cfg.h:570
int32_t i4
Definition cfg.h:585
uint32_t e4
Definition cfg.h:583
uint64_t x8
Definition cfg.h:589
uint32_t x4
Definition cfg.h:584
Query for UBX_MSG_ID_CFG_VALGET.
Definition protocol.h:315
uint16_t position
Definition protocol.h:318
uint8_t layer
Definition protocol.h:317
uint8_t version
Definition protocol.h:316
UBX_MSG_ID_CFG_VALSET
Definition protocol.h:283
uint8_t layers
Definition protocol.h:285
uint8_t version
Definition protocol.h:284