11#ifndef INFUSE_GNSS_UBX_PROTOCOL_H_
12#define INFUSE_GNSS_UBX_PROTOCOL_H_
14#include <zephyr/net_buf.h>
15#include <zephyr/toolchain.h>
26#define UBX_PREAMBLE_SYNC_CHAR_1 0xB5
27#define UBX_PREAMBLE_SYNC_CHAR_2 0x62
141#define UBX_MSG_CFG_PRT_TX_READY_CFG(pio, threshold) (pio << 2) | ((threshold / 8) << 7)
814#define UBX_MSG_BUF_DEFINE(name, msg_type) \
815 NET_BUF_SIMPLE_DEFINE(name, \
816 (sizeof(struct ubx_frame) + sizeof(msg_type) + sizeof(uint16_t)))
825static inline void ubx_msg_prepare(
struct net_buf_simple *buf, uint8_t msg_class, uint8_t msg_id)
829 net_buf_simple_reset(buf);
830 frame = net_buf_simple_add(buf,
sizeof(*frame));
850 uint16_t payload_size;
854 frame = (
void *)buf->data;
857 payload_size = buf->len -
sizeof(
struct ubx_frame);
862 for (
unsigned int i = crc_start_idx; i < buf->len; i++) {
867 net_buf_simple_add_u8(buf, ckA);
868 net_buf_simple_add_u8(buf, ckB);
880static inline void ubx_msg_simple(
struct net_buf_simple *buf, uint8_t msg_class, uint8_t msg_id,
881 const void *msg,
size_t msg_len)
885 net_buf_simple_add_mem(buf, msg, msg_len);
ubx_msg_id_ack
Definition protocol.h:65
@ UBX_MSG_ID_ACK_NAK
Definition protocol.h:66
@ UBX_MSG_ID_ACK_ACK
Definition protocol.h:67
ubx_msg_cfg_gnss_flags
Definition protocol.h:278
ubx_msg_cfg_cfg_mask
Definition protocol.h:218
ubx_msg_id_cfg
Definition protocol.h:94
ubx_msg_cfg_prt_spi_mode
Definition protocol.h:143
ubx_msg_cfg_valset_transaction
Definition protocol.h:307
ubx_msg_cfg_rst_mode
Definition protocol.h:197
ubx_msg_cfg_valget_layer
Definition protocol.h:332
ubx_msg_cfg_valset_layers
Definition protocol.h:301
ubx_msg_cfg_prt_tx_ready
Definition protocol.h:135
ubx_msg_cfg_prt_spi_flags
Definition protocol.h:154
ubx_msg_cfg_rate_time_ref
Definition protocol.h:174
ubx_msg_cfg_prt_ports
Definition protocol.h:122
ubx_msg_cfg_cfg_device
Definition protocol.h:231
ubx_msg_cfg_prt_proto_mask
Definition protocol.h:128
ubx_msg_cfg_rst_bbr_mask
Definition protocol.h:191
@ UBX_MSG_CFG_GNSS_FLAGS_ENABLED
Definition protocol.h:279
@ UBX_MSG_CFG_CFG_MASK_SEN_CONF
Definition protocol.h:224
@ UBX_MSG_CFG_CFG_MASK_INF_MSG
Definition protocol.h:221
@ UBX_MSG_CFG_CFG_MASK_LOG_CONF
Definition protocol.h:227
@ UBX_MSG_CFG_CFG_MASK_RXM_CONF
Definition protocol.h:223
@ UBX_MSG_CFG_CFG_MASK_MSG_CONF
Definition protocol.h:220
@ UBX_MSG_CFG_CFG_MASK_ANT_CONF
Definition protocol.h:226
@ UBX_MSG_CFG_CFG_MASK_NAV_CONF
Definition protocol.h:222
@ UBX_MSG_CFG_CFG_MASK_IO_PORT
Definition protocol.h:219
@ UBX_MSG_CFG_CFG_MASK_FTS_CONF
Definition protocol.h:228
@ UBX_MSG_CFG_CFG_MASK_RINV_CONF
Definition protocol.h:225
@ UBX_MSG_ID_CFG_NAV5
Definition protocol.h:100
@ UBX_MSG_ID_CFG_VALGET
Definition protocol.h:104
@ UBX_MSG_ID_CFG_VALDEL
Definition protocol.h:105
@ UBX_MSG_ID_CFG_PRT
Definition protocol.h:95
@ UBX_MSG_ID_CFG_DCDC_BURN
Definition protocol.h:102
@ UBX_MSG_ID_CFG_RATE
Definition protocol.h:98
@ UBX_MSG_ID_CFG_GNSS
Definition protocol.h:101
@ UBX_MSG_ID_CFG_CFG
Definition protocol.h:99
@ UBX_MSG_ID_CFG_MSG
Definition protocol.h:96
@ UBX_MSG_ID_CFG_RST
Definition protocol.h:97
@ UBX_MSG_ID_CFG_VALSET
Definition protocol.h:103
@ UBX_MSG_CFG_PRT_SPI_MODE_3
Definition protocol.h:151
@ UBX_MSG_CFG_PRT_SPI_MODE_2
Definition protocol.h:149
@ UBX_MSG_CFG_PRT_SPI_MODE_0
Definition protocol.h:145
@ UBX_MSG_CFG_PRT_SPI_MODE_1
Definition protocol.h:147
@ UBX_MSG_CFG_VALSET_TRANSACTION_APPLY
Definition protocol.h:311
@ UBX_MSG_CFG_VALSET_TRANSACTION_NONE
Definition protocol.h:308
@ UBX_MSG_CFG_VALSET_TRANSACTION_ONGOING
Definition protocol.h:310
@ UBX_MSG_CFG_VALSET_TRANSACTION_START
Definition protocol.h:309
@ UBX_MSG_CFG_RST_MODE_HARDWARE
Definition protocol.h:198
@ UBX_MSG_CFG_VALGET_LAYER_BBR
Definition protocol.h:334
@ UBX_MSG_CFG_VALGET_LAYER_FLASH
Definition protocol.h:335
@ UBX_MSG_CFG_VALGET_LAYER_RAM
Definition protocol.h:333
@ UBX_MSG_CFG_VALGET_LAYER_DEFAULT
Definition protocol.h:336
@ UBX_MSG_CFG_VALSET_LAYERS_BBR
Definition protocol.h:303
@ UBX_MSG_CFG_VALSET_LAYERS_RAM
Definition protocol.h:302
@ UBX_MSG_CFG_VALSET_LAYERS_FLASH
Definition protocol.h:304
@ UBX_MSG_CFG_PRT_TX_READY_POL_ACTIVE_LOW
Definition protocol.h:138
@ UBX_MSG_CFG_PRT_TX_READY_EN
Definition protocol.h:136
@ UBX_MSG_CFG_PRT_TX_READY_POL_ACTIVE_HIGH
Definition protocol.h:137
@ UBX_MSG_CFG_PRT_SPI_EXTENDED_TIMEOUT
Definition protocol.h:155
@ UBX_MSG_CFG_RATE_TIME_REF_UTC
Definition protocol.h:175
@ UBX_MSG_CFG_RATE_TIME_REF_BEIDOU
Definition protocol.h:178
@ UBX_MSG_CFG_RATE_TIME_REF_NAVIC
Definition protocol.h:180
@ UBX_MSG_CFG_RATE_TIME_REF_GPS
Definition protocol.h:176
@ UBX_MSG_CFG_RATE_TIME_REF_GLONASS
Definition protocol.h:177
@ UBX_MSG_CFG_RATE_TIME_REF_GALILEO
Definition protocol.h:179
@ UBX_MSG_CFG_PRT_PORT_ID_USB
Definition protocol.h:124
@ UBX_MSG_CFG_PRT_PORT_ID_I2C
Definition protocol.h:123
@ UBX_MSG_CFG_PRT_PORT_ID_SPI
Definition protocol.h:125
@ UBX_MSG_CFG_CFG_DEVICE_SPI_FLASH
Definition protocol.h:235
@ UBX_MSG_CFG_CFG_DEVICE_EEPROM
Definition protocol.h:234
@ UBX_MSG_CFG_CFG_DEVICE_FLASH
Definition protocol.h:233
@ UBX_MSG_CFG_CFG_DEVICE_BBR
Definition protocol.h:232
@ UBX_MSG_CFG_PRT_PROTO_MASK_RTCM2
Definition protocol.h:131
@ UBX_MSG_CFG_PRT_PROTO_MASK_RTCM3
Definition protocol.h:132
@ UBX_MSG_CFG_PRT_PROTO_MASK_UBX
Definition protocol.h:129
@ UBX_MSG_CFG_PRT_PROTO_MASK_NMEA
Definition protocol.h:130
@ UBX_MSG_CFG_RST_BBR_COLD_START
Definition protocol.h:194
@ UBX_MSG_CFG_RST_BBR_HOT_START
Definition protocol.h:192
@ UBX_MSG_CFG_RST_BBR_WARM_START
Definition protocol.h:193
ubx_msg_id_mon
Definition protocol.h:349
ubx_msg_mon_rxr_flags
Definition protocol.h:424
ubx_msg_mon_hw3_flags
Definition protocol.h:379
ubx_msg_mon_hw3_pin_mask
Definition protocol.h:385
@ UBX_MSG_ID_MON_COMMS
Definition protocol.h:351
@ UBX_MSG_ID_MON_HW3
Definition protocol.h:353
@ UBX_MSG_ID_MON_VER
Definition protocol.h:359
@ UBX_MSG_ID_MON_RXR
Definition protocol.h:357
@ UBX_MSG_ID_MON_PATCH
Definition protocol.h:355
@ UBX_MSG_ID_MON_GNSS
Definition protocol.h:352
@ UBX_MSG_ID_MON_SPAN
Definition protocol.h:358
@ UBX_MSG_ID_MON_BATCH
Definition protocol.h:350
@ UBX_MSG_ID_MON_HW
Definition protocol.h:354
@ UBX_MSG_ID_MON_RF
Definition protocol.h:356
@ UBX_MSG_MON_RXR_AWAKE
Definition protocol.h:425
@ UBX_MSG_MON_HW3_FLAGS_SAFE_BOOT
Definition protocol.h:381
@ UBX_MSG_MON_HW3_FLAGS_RTC_CALIB
Definition protocol.h:380
@ UBX_MSG_MON_HW3_FLAGS_XTAL_ABSENT
Definition protocol.h:382
@ UBX_MSG_MON_HW3_PIN_MASK_PIO
Definition protocol.h:386
@ UBX_MSG_MON_HW3_PIN_MASK_PULL_UP
Definition protocol.h:392
@ UBX_MSG_MON_HW3_PIN_MASK_VIRTUAL
Definition protocol.h:390
@ UBX_MSG_MON_HW3_PIN_MASK_BANK_MASK
Definition protocol.h:387
@ UBX_MSG_MON_HW3_PIN_MASK_VALUE
Definition protocol.h:389
@ UBX_MSG_MON_HW3_PIN_MASK_DIR_OUT
Definition protocol.h:388
@ UBX_MSG_MON_HW3_PIN_MASK_PULL_DOWN
Definition protocol.h:393
@ UBX_MSG_MON_HW3_PIN_MASK_INT_EN
Definition protocol.h:391
ubx_msg_nav_pvt_flags2
Definition protocol.h:615
ubx_msg_nav_pvt_fix_type
Definition protocol.h:584
ubx_msg_nav_pvt_flags
Definition protocol.h:593
ubx_msg_id_nav
Definition protocol.h:451
ubx_msg_nav_timegps_valid
Definition protocol.h:750
ubx_msg_nav_sat_sv_flags
Definition protocol.h:674
ubx_msg_nav_pvt_valid
Definition protocol.h:571
ubx_msg_nav_pvt_flags3
Definition protocol.h:624
@ UBX_MSG_NAV_PVT_FLAGS2_CONFIRMED_DATE
UTC Date validity could be confirmed.
Definition protocol.h:619
@ UBX_MSG_NAV_PVT_FLAGS2_CONFIRMED_AVAI
Information about UTC Date and Time of Day validity confirmation is available.
Definition protocol.h:617
@ UBX_MSG_NAV_PVT_FLAGS2_CONFIRMED_TIME
UTC Time of Day could be confirmed.
Definition protocol.h:621
@ UBX_MSG_NAV_PVT_FIX_TYPE_GNSS_DEAD_RECKONING
Definition protocol.h:589
@ UBX_MSG_NAV_PVT_FIX_TYPE_2D
Definition protocol.h:587
@ UBX_MSG_NAV_PVT_FIX_TYPE_NO_FIX
Definition protocol.h:585
@ UBX_MSG_NAV_PVT_FIX_TYPE_TIME_ONLY
Definition protocol.h:590
@ UBX_MSG_NAV_PVT_FIX_TYPE_3D
Definition protocol.h:588
@ UBX_MSG_NAV_PVT_FIX_TYPE_DEAD_RECKONING
Definition protocol.h:586
@ UBX_MSG_NAV_PVT_FLAGS_CARR_SOLN_FIXED_ABIGUITIES
Definition protocol.h:612
@ UBX_MSG_NAV_PVT_FLAGS_PSM_TRACKING
Definition protocol.h:603
@ UBX_MSG_NAV_PVT_FLAGS_HEAD_VEH_VALID
Heading of vehicle is valid, only set if the receiver is in sensor fusion mode.
Definition protocol.h:607
@ UBX_MSG_NAV_PVT_FLAGS_PSM_ENABLED
Definition protocol.h:601
@ UBX_MSG_NAV_PVT_FLAGS_DIFF_SOLN
Differential corrections were applied.
Definition protocol.h:597
@ UBX_MSG_NAV_PVT_FLAGS_PSM_ACQUISITION
Definition protocol.h:602
@ UBX_MSG_NAV_PVT_FLAGS_PSM_INACTIVE
Definition protocol.h:605
@ UBX_MSG_NAV_PVT_FLAGS_CARR_SOLN_NO_SOLN
Definition protocol.h:610
@ UBX_MSG_NAV_PVT_FLAGS_GNSS_FIX_OK
Valid fix (i.e within DOP & accuracy masks)
Definition protocol.h:595
@ UBX_MSG_NAV_PVT_FLAGS_PSM_DISABLED
Definition protocol.h:600
@ UBX_MSG_NAV_PVT_FLAGS_PSM_POWER_OPTIMIZED_TRACKING
Definition protocol.h:604
@ UBX_MSG_NAV_PVT_FLAGS_PSM_MASK
Power save mode state.
Definition protocol.h:599
@ UBX_MSG_NAV_PVT_FLAGS_CARR_SOLN_FLOATING_ABIGUITIES
Definition protocol.h:611
@ UBX_MSG_NAV_PVT_FLAGS_CARR_SOLN_MASK
Carrier phase range solution status.
Definition protocol.h:609
@ UBX_MSG_ID_NAV_RESETODO
Definition protocol.h:463
@ UBX_MSG_ID_NAV_COV
Definition protocol.h:454
@ UBX_MSG_ID_NAV_DOP
Definition protocol.h:455
@ UBX_MSG_ID_NAV_STATUS
Definition protocol.h:468
@ UBX_MSG_ID_NAV_ODO
Definition protocol.h:457
@ UBX_MSG_ID_NAV_TIMEGLO
Definition protocol.h:471
@ UBX_MSG_ID_NAV_VELNED
Definition protocol.h:477
@ UBX_MSG_ID_NAV_EOE
Definition protocol.h:456
@ UBX_MSG_ID_NAV_PL
Definition protocol.h:459
@ UBX_MSG_ID_NAV_POSECEF
Definition protocol.h:460
@ UBX_MSG_ID_NAV_TIMEGAL
Definition protocol.h:470
@ UBX_MSG_ID_NAV_TIMEBDS
Definition protocol.h:469
@ UBX_MSG_ID_NAV_TIMEQZSS
Definition protocol.h:474
@ UBX_MSG_ID_NAV_SLAS
Definition protocol.h:467
@ UBX_MSG_ID_NAV_PVT
Definition protocol.h:462
@ UBX_MSG_ID_NAV_TIMEGPS
Definition protocol.h:472
@ UBX_MSG_ID_NAV_SIG
Definition protocol.h:466
@ UBX_MSG_ID_NAV_TIMEUTC
Definition protocol.h:475
@ UBX_MSG_ID_NAV_VELECEF
Definition protocol.h:476
@ UBX_MSG_ID_NAV_AOPSTATUS
Definition protocol.h:452
@ UBX_MSG_ID_NAV_CLOCK
Definition protocol.h:453
@ UBX_MSG_ID_NAV_SAT
Definition protocol.h:464
@ UBX_MSG_ID_NAV_ORB
Definition protocol.h:458
@ UBX_MSG_ID_NAV_TIMELS
Definition protocol.h:473
@ UBX_MSG_ID_NAV_SBAS
Definition protocol.h:465
@ UBX_MSG_ID_NAV_POSLLH
Definition protocol.h:461
@ UBX_MSG_NAV_TIMEGPS_VALID_TOW_VALID
Valid GPS time of week (iTOW & fTOW)
Definition protocol.h:752
@ UBX_MSG_NAV_TIMEGPS_VALID_WEEK_VALID
Valid GPS week number.
Definition protocol.h:754
@ UBX_MSG_NAV_TIMEGPS_VALID_LEAP_S_VALID
Valid GPS leap seconds.
Definition protocol.h:756
@ UBX_MSG_NAV_SAT_FLAGS_QUALITY_IND_CODE_CARRIER_LOCKED2
Definition protocol.h:683
@ UBX_MSG_NAV_SAT_FLAGS_CLAS_CORR_USED
CLAS corrections have been used for this SV.
Definition protocol.h:731
@ UBX_MSG_NAV_SAT_FLAGS_ORBIT_SOURCE_OTHER2
Definition protocol.h:706
@ UBX_MSG_NAV_SAT_FLAGS_QUALITY_IND_UNUSABLE
Definition protocol.h:680
@ UBX_MSG_NAV_SAT_FLAGS_SBAS_CORR_USED
SBAS corrections have been used for this SV.
Definition protocol.h:717
@ UBX_MSG_NAV_SAT_FLAGS_RTCM_CORR_USED
RTCM corrections have been used for this SV.
Definition protocol.h:719
@ UBX_MSG_NAV_SAT_FLAGS_QUALITY_IND_NO_SIGNAL
Definition protocol.h:677
@ UBX_MSG_NAV_SAT_FLAGS_HEALTH_UNKNOWN
Definition protocol.h:691
@ UBX_MSG_NAV_SAT_FLAGS_SV_USED
Signal in the subset specified in Signal Identifiers is currently being used for navigation.
Definition protocol.h:688
@ UBX_MSG_NAV_SAT_FLAGS_ORBIT_SOURCE_ALMANAC
Definition protocol.h:702
@ UBX_MSG_NAV_SAT_FLAGS_ORBIT_SOURCE_OTHER1
Definition protocol.h:705
@ UBX_MSG_NAV_SAT_FLAGS_HEALTH_UNHEALTHY
Definition protocol.h:693
@ UBX_MSG_NAV_SAT_FLAGS_SPARTN_CORR_USED
SPARTN corrections have been used for this SV.
Definition protocol.h:723
@ UBX_MSG_NAV_SAT_FLAGS_ORBIT_SOURCE_NONE
Definition protocol.h:700
@ UBX_MSG_NAV_SAT_FLAGS_ORBIT_SOURCE_OTHER3
Definition protocol.h:707
@ UBX_MSG_NAV_SAT_FLAGS_SLAS_CORR_USED
QZSS SLAS corrections have been used for this SV.
Definition protocol.h:721
@ UBX_MSG_NAV_SAT_FLAGS_DO_CORR_USED
Range rate (Doppler) corrections have been used for this SV.
Definition protocol.h:729
@ UBX_MSG_NAV_SAT_FLAGS_PR_CORR_USED
Pseudorange corrections have been used for this SV.
Definition protocol.h:725
@ UBX_MSG_NAV_SAT_FLAGS_ORBIT_SOURCE_ASSIST_NOW_OFFLINE
Definition protocol.h:703
@ UBX_MSG_NAV_SAT_FLAGS_HEALTH_HEALTHY
Definition protocol.h:692
@ UBX_MSG_NAV_SAT_FLAGS_ANO_AVAIL
AssistNow Offline data is available for this SV.
Definition protocol.h:713
@ UBX_MSG_NAV_SAT_FLAGS_QUALITY_IND_CODE_CARRIER_LOCKED3
Definition protocol.h:684
@ UBX_MSG_NAV_SAT_FLAGS_CR_CORR_USED
Carrier range corrections have been used for this SV.
Definition protocol.h:727
@ UBX_MSG_NAV_SAT_FLAGS_ORBIT_SOURCE_ASSIST_NOW_AUTONOMOUS
Definition protocol.h:704
@ UBX_MSG_NAV_SAT_FLAGS_QUALITY_IND_CODE_CARRIER_LOCKED1
Definition protocol.h:682
@ UBX_MSG_NAV_SAT_FLAGS_SMOOTHED
Carrier smoothed pseudorange used.
Definition protocol.h:697
@ UBX_MSG_NAV_SAT_FLAGS_QUALITY_IND_ACQUIRED
Definition protocol.h:679
@ UBX_MSG_NAV_SAT_FLAGS_DIFF_CORR
Differential correction data is available for this SV.
Definition protocol.h:695
@ UBX_MSG_NAV_SAT_FLAGS_QUALITY_IND_SEARCHING
Definition protocol.h:678
@ UBX_MSG_NAV_SAT_FLAGS_QUALITY_IND_CODE_LOCKED
Definition protocol.h:681
@ UBX_MSG_NAV_SAT_FLAGS_ORBIT_SOURCE_MASK
Orbit source.
Definition protocol.h:699
@ UBX_MSG_NAV_SAT_FLAGS_ALM_AVAIL
Almanac is available for this SV.
Definition protocol.h:711
@ UBX_MSG_NAV_SAT_FLAGS_QUALITY_IND_MASK
Signal quality indicator.
Definition protocol.h:676
@ UBX_MSG_NAV_SAT_FLAGS_EPH_AVAIL
Ephemeris is available for this SV.
Definition protocol.h:709
@ UBX_MSG_NAV_SAT_FLAGS_HEALTH_MASK
Signal health flag.
Definition protocol.h:690
@ UBX_MSG_NAV_SAT_FLAGS_AOP_AVAIL
AssistNow Autonomous data is available for this SV.
Definition protocol.h:715
@ UBX_MSG_NAV_SAT_FLAGS_ORBIT_SOURCE_EPHEMERIS
Definition protocol.h:701
@ UBX_MSG_NAV_PVT_VALID_MAG
Valid magnetic declination.
Definition protocol.h:581
@ UBX_MSG_NAV_PVT_VALID_FULLY_RESOLVED
UTC time of day has been fully resolved (no seconds uncertainty).
Definition protocol.h:579
@ UBX_MSG_NAV_PVT_VALID_TIME
Valid UTC time of day.
Definition protocol.h:575
@ UBX_MSG_NAV_PVT_VALID_DATE
Valid UTC Date.
Definition protocol.h:573
@ UBX_MSG_NAV_PVT_FLAGS3_CORRECTION_AGE_120_N
Definition protocol.h:641
@ UBX_MSG_NAV_PVT_FLAGS3_CORRECTION_AGE_5_10
Definition protocol.h:633
@ UBX_MSG_NAV_PVT_FLAGS3_CORRECTION_AGE_1_2
Definition protocol.h:631
@ UBX_MSG_NAV_PVT_FLAGS3_AUTH_TIME
Output time has been validated against an external trusted time source.
Definition protocol.h:643
@ UBX_MSG_NAV_PVT_FLAGS3_CORRECTION_AGE_60_90
Definition protocol.h:639
@ UBX_MSG_NAV_PVT_FLAGS3_CORRECTION_AGE_2_5
Definition protocol.h:632
@ UBX_MSG_NAV_PVT_FLAGS3_CORRECTION_AGE_20_30
Definition protocol.h:636
@ UBX_MSG_NAV_PVT_FLAGS3_CORRECTION_AGE_45_60
Definition protocol.h:638
@ UBX_MSG_NAV_PVT_FLAGS3_CORRECTION_AGE_0_1
Definition protocol.h:630
@ UBX_MSG_NAV_PVT_FLAGS3_INVALID_LLH
Invalid lon, lat, height and hMS.
Definition protocol.h:626
@ UBX_MSG_NAV_PVT_FLAGS3_CORRECTION_AGE_10_15
Definition protocol.h:634
@ UBX_MSG_NAV_PVT_FLAGS3_CORRECTION_AGE_MASK
Age of the most recently received differential correction (seconds)
Definition protocol.h:628
@ UBX_MSG_NAV_PVT_FLAGS3_CORRECTION_AGE_NA
Definition protocol.h:629
@ UBX_MSG_NAV_PVT_FLAGS3_CORRECTION_AGE_90_120
Definition protocol.h:640
@ UBX_MSG_NAV_PVT_FLAGS3_CORRECTION_AGE_30_45
Definition protocol.h:637
@ UBX_MSG_NAV_PVT_FLAGS3_CORRECTION_AGE_15_20
Definition protocol.h:635
ubx_msg_rxm_pmreq_flags
Definition protocol.h:790
ubx_msg_id_rxm
Definition protocol.h:769
ubx_msg_rxm_pmreq_wakeup
Definition protocol.h:795
@ UBX_MSG_RXM_PMREQ_FLAGS_FORCE
Definition protocol.h:792
@ UBX_MSG_RXM_PMREQ_FLAGS_BACKUP
Definition protocol.h:791
@ UBX_MSG_ID_RXM_PMREQ
Definition protocol.h:775
@ UBX_MSG_ID_RXM_SFRBX
Definition protocol.h:777
@ UBX_MSG_ID_RXM_MEASX
Definition protocol.h:774
@ UBX_MSG_ID_RXM_MEASC12
Definition protocol.h:772
@ UBX_MSG_ID_RXM_MEAS20
Definition protocol.h:770
@ UBX_MSG_ID_RXM_RLM
Definition protocol.h:776
@ UBX_MSG_ID_RXM_MEAS50
Definition protocol.h:771
@ UBX_MSG_ID_RXM_MEASD12
Definition protocol.h:773
@ UBX_MSG_RXM_PMREQ_WAKEUP_EXTINT1
Definition protocol.h:798
@ UBX_MSG_RXM_PMREQ_WAKEUP_SPICS
Definition protocol.h:799
@ UBX_MSG_RXM_PMREQ_WAKEUP_UARTRX
Definition protocol.h:796
@ UBX_MSG_RXM_PMREQ_WAKEUP_EXTINT0
Definition protocol.h:797
#define UBX_PREAMBLE_SYNC_CHAR_1
Definition protocol.h:26
ubx_msg_class
UBX Message Classes.
Definition protocol.h:45
static void ubx_msg_finalise(struct net_buf_simple *buf)
Finalise a net_buf_simple to be used as a UBX protocol message.
Definition protocol.h:846
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
#define UBX_PREAMBLE_SYNC_CHAR_2
Definition protocol.h:27
static void ubx_msg_simple(struct net_buf_simple *buf, uint8_t msg_class, uint8_t msg_id, const void *msg, size_t msg_len)
Create a UBX message in a net_buf_simple.
Definition protocol.h:880
@ UBX_MSG_CLASS_ACK
Definition protocol.h:46
@ UBX_MSG_CLASS_LOG
Definition protocol.h:49
@ UBX_MSG_CLASS_UPD
Definition protocol.h:56
@ UBX_MSG_CLASS_MGA
Definition protocol.h:50
@ UBX_MSG_CLASS_TIM
Definition protocol.h:55
@ UBX_MSG_CLASS_INF
Definition protocol.h:48
@ UBX_MSG_CLASS_CFG
Definition protocol.h:47
@ UBX_MSG_CLASS_NAV
Definition protocol.h:52
@ UBX_MSG_CLASS_MON
Definition protocol.h:51
@ UBX_MSG_CLASS_SEC
Definition protocol.h:54
@ UBX_MSG_CLASS_RXM
Definition protocol.h:53
UBX Message Frame.
Definition protocol.h:32
uint8_t payload_size_high
Definition protocol.h:38
uint8_t payload_and_checksum[]
Definition protocol.h:39
uint8_t payload_size_low
Definition protocol.h:37
uint8_t message_class
Definition protocol.h:35
uint8_t preamble_sync_char_2
Definition protocol.h:34
uint8_t message_id
Definition protocol.h:36
uint8_t preamble_sync_char_1
Definition protocol.h:33
UBX_MSG_ID_CFG_CFG
Definition protocol.h:211
uint32_t save_mask
Definition protocol.h:213
uint32_t clear_mask
Definition protocol.h:212
uint32_t load_mask
Definition protocol.h:214
UBX_MSG_ID_CFG_CFG
Definition protocol.h:202
uint32_t clear_mask
Definition protocol.h:203
uint32_t save_mask
Definition protocol.h:204
uint8_t device_mask
Definition protocol.h:206
uint32_t load_mask
Definition protocol.h:205
Definition protocol.h:268
uint32_t flags
Definition protocol.h:273
uint8_t gnss_id
Definition protocol.h:269
uint8_t res_trk_chan
Definition protocol.h:270
uint8_t max_trk_chan
Definition protocol.h:271
uint8_t reserved1
Definition protocol.h:272
UBX_MSG_ID_CFG_GNSS
Definition protocol.h:263
uint8_t num_trk_ch_hw
Definition protocol.h:265
uint8_t num_cfg_blocks
Definition protocol.h:267
uint8_t msg_ver
Definition protocol.h:264
uint8_t num_trk_ch_use
Definition protocol.h:266
struct ubx_msg_cfg_gnss::ubx_msg_cfg_gnss_cfg configs[]
UBX_MSG_ID_CFG_MSG
Definition protocol.h:159
uint8_t rate
Definition protocol.h:162
uint8_t msg_id
Definition protocol.h:161
uint8_t msg_class
Definition protocol.h:160
UBX_MSG_ID_CFG_NAV5
Definition protocol.h:239
uint16_t static_hold_max_dist
Definition protocol.h:256
uint8_t d_gnss_timeout
Definition protocol.h:252
uint16_t t_dop
Definition protocol.h:248
uint8_t cno_threshold
Definition protocol.h:254
uint8_t dyn_model
Definition protocol.h:241
uint8_t static_hold_threshold
Definition protocol.h:251
uint8_t cno_threshold_num_svs
Definition protocol.h:253
uint8_t fix_mode
Definition protocol.h:242
uint8_t reserved2[5]
Definition protocol.h:258
uint8_t dr_limit
Definition protocol.h:246
uint8_t reserved1[2]
Definition protocol.h:255
uint32_t fixed_alt_var
Definition protocol.h:244
int32_t fixed_alt
Definition protocol.h:243
uint16_t p_dop
Definition protocol.h:247
uint8_t utc_standard
Definition protocol.h:257
uint16_t t_acc
Definition protocol.h:250
uint16_t p_acc
Definition protocol.h:249
int8_t min_elev
Definition protocol.h:245
uint16_t mask
Definition protocol.h:240
UBX_MSG_ID_CFG_PRT (SPI)
Definition protocol.h:109
uint8_t port_id
Definition protocol.h:110
uint8_t reserved3[2]
Definition protocol.h:118
uint8_t reserved2[4]
Definition protocol.h:114
uint8_t reserved1
Definition protocol.h:111
uint16_t out_proto_mask
Definition protocol.h:116
uint16_t tx_ready
Definition protocol.h:112
uint16_t flags
Definition protocol.h:117
uint32_t mode
Definition protocol.h:113
uint16_t in_proto_mask
Definition protocol.h:115
UBX_MSG_ID_CFG_RATE
Definition protocol.h:167
uint16_t meas_rate
Definition protocol.h:168
uint16_t nav_rate
Definition protocol.h:169
uint16_t time_ref
Definition protocol.h:170
UBX_MSG_ID_CFG_RST
Definition protocol.h:184
uint8_t reserved1
Definition protocol.h:187
uint8_t reset_mode
Definition protocol.h:186
uint16_t nav_bbr_mask
Definition protocol.h:185
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
uint32_t cfg_keys[]
Definition protocol.h:319
uint8_t version
Definition protocol.h:316
Response to UBX_MSG_ID_CFG_VALGET.
Definition protocol.h:324
uint8_t cfg_data[]
Definition protocol.h:328
uint16_t position
Definition protocol.h:327
uint8_t version
Definition protocol.h:325
uint8_t layer
Definition protocol.h:326
UBX_MSG_ID_CFG_VALSET
Definition protocol.h:283
uint8_t layers
Definition protocol.h:285
uint8_t version
Definition protocol.h:284
uint8_t reserved[2]
Definition protocol.h:286
uint8_t cfg_data[]
Definition protocol.h:287
UBX_MSG_ID_CFG_VALSET
Definition protocol.h:292
uint8_t reserved
Definition protocol.h:296
uint8_t layers
Definition protocol.h:294
uint8_t transaction
Definition protocol.h:295
uint8_t version
Definition protocol.h:293
uint8_t cfg_data[]
Definition protocol.h:297
UBX_MSG_ID_ACK_ACK
Definition protocol.h:71
uint8_t message_id
Definition protocol.h:73
uint8_t message_class
Definition protocol.h:72
UBX_MSG_ID_ACK_NAK
Definition protocol.h:78
uint8_t message_class
Definition protocol.h:79
uint8_t message_id
Definition protocol.h:80
UBX_MSG_ID_MON_HW3
Definition protocol.h:363
uint8_t pin_id
Definition protocol.h:371
uint8_t flags
Definition protocol.h:366
uint16_t pin_mask
Definition protocol.h:372
uint8_t version
Definition protocol.h:364
uint8_t n_pins
Definition protocol.h:365
struct ubx_msg_mon_hw3::@29 pins[]
uint8_t vp
Definition protocol.h:373
char hw_version[10]
Definition protocol.h:367
uint8_t reserved1
Definition protocol.h:370
uint8_t reserved0[9]
Definition protocol.h:368
uint8_t reserved2
Definition protocol.h:374
UBX_MSG_ID_MON_HW
Definition protocol.h:397
uint8_t ant_power
Definition protocol.h:405
uint32_t pin_bank
Definition protocol.h:399
uint8_t vp[17]
Definition protocol.h:409
uint8_t flags
Definition protocol.h:406
uint8_t reserved1
Definition protocol.h:407
uint8_t cw_supression
Definition protocol.h:410
uint32_t pin_dir
Definition protocol.h:400
uint32_t pin_sel
Definition protocol.h:398
uint32_t pull_high
Definition protocol.h:413
uint16_t noise_per_ms
Definition protocol.h:402
uint8_t ant_state
Definition protocol.h:404
uint32_t used_mask
Definition protocol.h:408
uint8_t reserved2[2]
Definition protocol.h:411
uint32_t pin_irq
Definition protocol.h:412
uint32_t pull_low
Definition protocol.h:414
uint32_t pin_val
Definition protocol.h:401
uint16_t adc_cnt
Definition protocol.h:403
UBX_MSG_ID_MON_RXR
Definition protocol.h:419
uint8_t flags
Definition protocol.h:420
UBX_MSG_ID_MON_VER
Definition protocol.h:429
char ext_version[30]
Definition protocol.h:436
char sw_version[30]
Null-terminated software version string.
Definition protocol.h:431
char hw_version[10]
Null-terminated hardware version string.
Definition protocol.h:433
struct ubx_msg_mon_ver::@30 extension[]
Extended software information strings.
UBX_MSG_ID_NAV_DOP
Definition protocol.h:481
uint16_t e_dop
Easting DOP.
Definition protocol.h:497
uint16_t v_dop
Vertical DOP.
Definition protocol.h:491
uint16_t t_dop
Time DOP.
Definition protocol.h:489
uint16_t n_dop
Northing DOP.
Definition protocol.h:495
uint16_t h_dop
Horizontal DOP.
Definition protocol.h:493
uint16_t g_dop
Geometric DOP.
Definition protocol.h:485
uint32_t itow
GPS time of week of the navigation epoch.
Definition protocol.h:483
uint16_t p_dop
Position DOP.
Definition protocol.h:487
UBX_MSG_ID_NAV_PVT
Definition protocol.h:502
uint16_t p_dop
Position DOP (0.01)
Definition protocol.h:558
int16_t mag_dec
Magnetic declination.
Definition protocol.h:565
uint8_t flags2
Additional flags.
Definition protocol.h:528
int32_t vel_n
NED north velocity (mm/s)
Definition protocol.h:544
uint32_t head_acc
Heading accuracy estimate (both motion and vehicle) (1e-5 deg)
Definition protocol.h:556
uint32_t h_acc
Horizontal accuracy estimate (mm)
Definition protocol.h:540
uint32_t s_acc
Speed accuracy estimate (mm/s)
Definition protocol.h:554
int32_t height_msl
Height above mean sea level (mm)
Definition protocol.h:538
uint8_t fix_type
GNSSfix Type.
Definition protocol.h:524
uint8_t flags
Fix status flags.
Definition protocol.h:526
int32_t lat
Latitude (1e-7)
Definition protocol.h:534
int32_t nano
Fraction of second, range -1e9 .
Definition protocol.h:522
uint8_t sec
Seconds of minute, range 0..60 (UTC)
Definition protocol.h:516
uint8_t month
Month, range 1..12 (UTC.
Definition protocol.h:508
int32_t g_speed
2D Ground Speed (mm/s)
Definition protocol.h:550
uint8_t min
Minute of hour, range 0..59 (UTC)
Definition protocol.h:514
uint32_t itow
GPS time of week of the navigation epoch.
Definition protocol.h:504
uint32_t t_acc
Time accuracy estimate (UTC)
Definition protocol.h:520
int32_t head_mot
2D Heading of motion (1e-5 deg)
Definition protocol.h:552
int32_t height
Height above ellipsoid (mm)
Definition protocol.h:536
uint8_t num_sv
Number of satellites used in Nav Solution.
Definition protocol.h:530
uint16_t year
Year (UTC)
Definition protocol.h:506
int32_t vel_d
NED down velocity (mm/s)
Definition protocol.h:548
uint8_t valid
Validity flags.
Definition protocol.h:518
uint8_t hour
Hour of day, range 0..23 (UTC)
Definition protocol.h:512
uint16_t flags3
Additional flags.
Definition protocol.h:560
uint8_t day
Day of month, range 1..31 (UTC)
Definition protocol.h:510
uint32_t v_acc
Vertical accuracy estimate (mm)
Definition protocol.h:542
int32_t lon
Longitude (1e-7)
Definition protocol.h:532
int32_t vel_e
NED east velocity (mm/s)
Definition protocol.h:546
uint8_t reserved0[4]
Definition protocol.h:561
uint16_t mag_acc
Magnetic declination accuracy.
Definition protocol.h:567
int32_t head_veh
2D Heading of vehicle, this is only valid when headVehValid is set (1e-5 deg)
Definition protocol.h:563
Definition protocol.h:655
uint8_t sv_id
Satellite identifier.
Definition protocol.h:659
uint32_t flags
Bitmask.
Definition protocol.h:669
uint8_t cno
Carrier to noise ratio (signal strength) (dBHz)
Definition protocol.h:661
int8_t elev
Elevation (range: +/-90), unknown if out of range (deg)
Definition protocol.h:663
uint8_t gnss_id
GNSS identifier.
Definition protocol.h:657
int16_t pr_res
Pseudorange residual.
Definition protocol.h:667
int16_t azim
Azimuth (range 0-360), unknown if elevation is out of range (deg)
Definition protocol.h:665
UBX_MSG_ID_NAV_SAT
Definition protocol.h:647
struct ubx_msg_nav_sat::ubx_msg_nav_sat_sv svs[]
uint8_t version
Message version (0x01 for this version)
Definition protocol.h:651
uint8_t num_svs
Number of satellites.
Definition protocol.h:653
uint32_t itow
GPS time of week of the navigation epoch.
Definition protocol.h:649
uint8_t reserved0[2]
Definition protocol.h:654
UBX_MSG_ID_NAV_TIMEGPS
Definition protocol.h:735
uint32_t t_acc
Time Accuracy Estimate.
Definition protocol.h:747
uint8_t valid
Validity Flags.
Definition protocol.h:745
uint32_t itow
GPS time of week of the navigation epoch.
Definition protocol.h:737
int32_t ftow
Fractional part of iTOW (range: +/-500000)
Definition protocol.h:739
int8_t leap_s
GPS leap seconds (GPS-UTC)
Definition protocol.h:743
uint16_t week
GPS week number of the navigation epoch.
Definition protocol.h:741
UBX_MSG_ID_RXM_PMREQ
Definition protocol.h:781
uint32_t duration_ms
Definition protocol.h:784
uint8_t version
Definition protocol.h:782
uint8_t reserved0[3]
Definition protocol.h:783
uint32_t flags
Definition protocol.h:785
uint32_t wakeup_sources
Definition protocol.h:786