Zephyr Project API 4.1.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
protocol.h File Reference
#include <stdint.h>
#include <zephyr/modem/ubx/checksum.h>

Go to the source code of this file.

Data Structures

struct  ubx_frame
 
struct  ubx_frame_match
 
struct  ubx_nav_pvt
 
struct  ubx_nav_sat
 
struct  ubx_nav_sat::ubx_nav_sat_info
 
struct  ubx_ack
 
struct  ubx_mon_gnss
 
struct  ubx_cfg_prt
 
struct  ubx_cfg_nav5
 
struct  ubx_cfg_rst
 
struct  ubx_cfg_rate
 
struct  ubx_cfg_val_hdr
 
struct  ubx_cfg_val_u8
 
struct  ubx_cfg_val_u16
 
struct  ubx_cfg_val_u32
 
struct  ubx_cfg_msg_rate
 
struct  ubx_mon_ver
 

Macros

#define UBX_FRAME_HEADER_SZ   6
 
#define UBX_FRAME_FOOTER_SZ   2
 
#define UBX_FRAME_SZ_WITHOUT_PAYLOAD   (UBX_FRAME_HEADER_SZ + UBX_FRAME_FOOTER_SZ)
 
#define UBX_FRAME_SZ(payload_size)   (payload_size + UBX_FRAME_SZ_WITHOUT_PAYLOAD)
 
#define UBX_PREAMBLE_SYNC_CHAR_1   0xB5
 
#define UBX_PREAMBLE_SYNC_CHAR_2   0x62
 
#define UBX_FRAME_PREAMBLE_SYNC_CHAR_1_IDX   0
 
#define UBX_FRAME_PREAMBLE_SYNC_CHAR_2_IDX   1
 
#define UBX_FRAME_MSG_CLASS_IDX   2
 
#define UBX_PAYLOAD_SZ_MAX   512
 
#define UBX_FRAME_SZ_MAX   UBX_FRAME_SZ(UBX_PAYLOAD_SZ_MAX)
 
#define UBX_NAV_PVT_VALID_DATE   BIT(0)
 
#define UBX_NAV_PVT_VALID_TIME   BIT(1)
 
#define UBX_NAV_PVT_VALID_UTC_TOD   BIT(2)
 
#define UBX_NAV_PVT_VALID_MAGN   BIT(3)
 
#define UBX_NAV_PVT_FLAGS_GNSS_FIX_OK   BIT(0)
 
#define UBX_NAV_PVT_FLAGS3_INVALID_LLH   BIT(0)
 
#define UBX_NAV_SAT_FLAGS_SV_USED   BIT(3)
 
#define UBX_GNSS_SELECTION_GPS   BIT(0)
 
#define UBX_GNSS_SELECTION_GLONASS   BIT(1)
 
#define UBX_GNSS_SELECTION_BEIDOU   BIT(2)
 
#define UBX_GNSS_SELECTION_GALILEO   BIT(3)
 
#define UBX_CFG_PRT_MODE_CHAR_LEN(val)   (((val) & BIT_MASK(2)) << 6)
 
#define UBX_CFG_PRT_MODE_PARITY(val)   (((val) & BIT_MASK(3)) << 9)
 
#define UBX_CFG_PRT_MODE_STOP_BITS(val)   (((val) & BIT_MASK(2)) << 12)
 
#define UBX_CFG_PRT_PROTO_MASK_UBX   BIT(0)
 
#define UBX_CFG_PRT_PROTO_MASK_NMEA   BIT(1)
 
#define UBX_CFG_PRT_PROTO_MASK_RTCM3   BIT(5)
 
#define UBX_CFG_NAV5_APPLY_DYN   BIT(0)
 
#define UBX_CFG_NAV5_APPLY_FIX_MODE   BIT(2)
 
#define UBX_FRAME_DEFINE(_name, _frame)    const static struct ubx_frame _name = _frame
 
#define UBX_FRAME_ARRAY_DEFINE(_name, ...)    const struct ubx_frame *_name[] = {__VA_ARGS__};
 
#define UBX_FRAME_ACK_INITIALIZER(_class_id, _msg_id)    UBX_FRAME_INITIALIZER_PAYLOAD(UBX_CLASS_ID_ACK, UBX_MSG_ID_ACK, _class_id, _msg_id)
 
#define UBX_FRAME_NAK_INITIALIZER(_class_id, _msg_id)    UBX_FRAME_INITIALIZER_PAYLOAD(UBX_CLASS_ID_ACK, UBX_MSG_ID_NAK, _class_id, _msg_id)
 
#define UBX_FRAME_CFG_RST_INITIALIZER(_start_mode, _reset_mode)
 
#define UBX_FRAME_CFG_RATE_INITIALIZER(_meas_rate_ms, _nav_rate, _time_ref)
 
#define UBX_FRAME_CFG_MSG_RATE_INITIALIZER(_class_id, _msg_id, _rate)
 
#define UBX_FRAME_CFG_VAL_SET_U8_INITIALIZER(_key, _value)
 
#define UBX_FRAME_CFG_VAL_SET_U16_INITIALIZER(_key, _value)
 
#define UBX_FRAME_CFG_VAL_SET_U32_INITIALIZER(_key, _value)
 
#define UBX_FRAME_CFG_VAL_GET_INITIALIZER(_key)
 
#define UBX_FRAME_INITIALIZER_PAYLOAD(_class_id, _msg_id, ...)    _UBX_FRAME_INITIALIZER_PAYLOAD(_class_id, _msg_id, __VA_ARGS__)
 
#define UBX_FRAME_GET_INITIALIZER(_class_id, _msg_id)
 

Enumerations

enum  ubx_class_id {
  UBX_CLASS_ID_NAV = 0x01 , UBX_CLASS_ID_RXM = 0x02 , UBX_CLASS_ID_INF = 0x04 , UBX_CLASS_ID_ACK = 0x05 ,
  UBX_CLASS_ID_CFG = 0x06 , UBX_CLASS_ID_UPD = 0x09 , UBX_CLASS_ID_MON = 0x0A , UBX_CLASS_ID_TIM = 0x0D ,
  UBX_CLASS_ID_MGA = 0x13 , UBX_CLASS_ID_LOG = 0x21 , UBX_CLASS_ID_SEC = 0x27 , UBX_CLASS_ID_NMEA_STD = 0xF0 ,
  UBX_CLASS_ID_NMEA_PUBX = 0xF1
}
 
enum  ubx_msg_id_nav { UBX_MSG_ID_NAV_PVT = 0x07 , UBX_MSG_ID_NAV_SAT = 0x35 }
 
enum  ubx_nav_fix_type {
  UBX_NAV_FIX_TYPE_NO_FIX = 0 , UBX_NAV_FIX_TYPE_DR = 1 , UBX_NAV_FIX_TYPE_2D = 2 , UBX_NAV_FIX_TYPE_3D = 3 ,
  UBX_NAV_FIX_TYPE_GNSS_DR_COMBINED = 4 , UBX_NAV_FIX_TYPE_TIME_ONLY = 5
}
 
enum  ubx_nav_sat_health { UBX_NAV_SAT_HEALTH_UNKNOWN = 0 , UBX_NAV_SAT_HEALTH_HEALTHY = 1 , UBX_NAV_SAT_HEALTH_UNHEALTHY = 2 }
 
enum  ubx_gnss_id {
  UBX_GNSS_ID_GPS = 0 , UBX_GNSS_ID_SBAS = 1 , UBX_GNSS_ID_GALILEO = 2 , UBX_GNSS_ID_BEIDOU = 3 ,
  UBX_GNSS_ID_QZSS = 5 , UBX_GNSS_ID_GLONASS = 6
}
 
enum  ubx_msg_id_ack { UBX_MSG_ID_ACK = 0x01 , UBX_MSG_ID_NAK = 0x00 }
 
enum  ubx_msg_id_cfg {
  UBX_MSG_ID_CFG_PRT = 0x00 , UBX_MSG_ID_CFG_MSG = 0x01 , UBX_MSG_ID_CFG_RST = 0x04 , UBX_MSG_ID_CFG_RATE = 0x08 ,
  UBX_MSG_ID_CFG_NAV5 = 0x24 , UBX_MSG_ID_CFG_VAL_SET = 0x8A , UBX_MSG_ID_CFG_VAL_GET = 0x8B
}
 
enum  ubx_msg_id_mon { UBX_MSG_ID_MON_VER = 0x04 , UBX_MSG_ID_MON_GNSS = 0x28 }
 
enum  ubx_cfg_port_id { UBX_CFG_PORT_ID_DDC = 0 , UBX_CFG_PORT_ID_UART = 1 , UBX_CFG_PORT_ID_USB = 2 , UBX_CFG_PORT_ID_SPI = 3 }
 
enum  ubx_cfg_char_len { UBX_CFG_PRT_PORT_MODE_CHAR_LEN_5 = 0 , UBX_CFG_PRT_PORT_MODE_CHAR_LEN_6 = 1 , UBX_CFG_PRT_PORT_MODE_CHAR_LEN_7 = 2 , UBX_CFG_PRT_PORT_MODE_CHAR_LEN_8 = 3 }
 
enum  ubx_cfg_parity { UBX_CFG_PRT_PORT_MODE_PARITY_EVEN = 0 , UBX_CFG_PRT_PORT_MODE_PARITY_ODD = 1 , UBX_CFG_PRT_PORT_MODE_PARITY_NONE = 4 }
 
enum  ubx_cfg_stop_bits { UBX_CFG_PRT_PORT_MODE_STOP_BITS_1 = 0 , UBX_CFG_PRT_PORT_MODE_STOP_BITS_1_5 = 1 , UBX_CFG_PRT_PORT_MODE_STOP_BITS_2 = 2 , UBX_CFG_PRT_PORT_MODE_STOP_BITS_0_5 = 3 }
 
enum  ubx_dyn_model {
  UBX_DYN_MODEL_PORTABLE = 0 , UBX_DYN_MODEL_STATIONARY = 2 , UBX_DYN_MODEL_PEDESTRIAN = 3 , UBX_DYN_MODEL_AUTOMOTIVE = 4 ,
  UBX_DYN_MODEL_SEA = 5 , UBX_DYN_MODEL_AIRBORNE_1G = 6 , UBX_DYN_MODEL_AIRBORNE_2G = 7 , UBX_DYN_MODEL_AIRBORNE_4G = 8 ,
  UBX_DYN_MODEL_WRIST = 9 , UBX_DYN_MODEL_BIKE = 10
}
 
enum  ubx_fix_mode { UBX_FIX_MODE_2D_ONLY = 1 , UBX_FIX_MODE_3D_ONLY = 2 , UBX_FIX_MODE_AUTO = 3 }
 
enum  ubx_utc_standard {
  UBX_UTC_STANDARD_AUTOMATIC = 0 , UBX_UTC_STANDARD_GPS = 3 , UBX_UTC_STANDARD_GALILEO = 5 , UBX_UTC_STANDARD_GLONASS = 6 ,
  UBX_UTC_STANDARD_BEIDOU = 7
}
 
enum  ubx_cfg_rst_start_mode { UBX_CFG_RST_HOT_START = 0x0000 , UBX_CFG_RST_WARM_START = 0x0001 , UBX_CFG_RST_COLD_START = 0xFFFF }
 
enum  ubx_cfg_rst_mode { UBX_CFG_RST_MODE_HW = 0x00 , UBX_CFG_RST_MODE_SW = 0x01 , UBX_CFG_RST_MODE_GNSS_STOP = 0x08 , UBX_CFG_RST_MODE_GNSS_START = 0x09 }
 
enum  ubx_cfg_rate_time_ref {
  UBX_CFG_RATE_TIME_REF_UTC = 0 , UBX_CFG_RATE_TIME_REF_GPS = 1 , UBX_CFG_RATE_TIME_REF_GLONASS = 2 , UBX_CFG_RATE_TIME_REF_BEIDOU = 3 ,
  UBX_CFG_RATE_TIME_REF_GALILEO = 4 , UBX_CFG_RATE_TIME_REF_NAVIC = 5
}
 
enum  ubx_cfg_val_ver { UBX_CFG_VAL_VER_SIMPLE = 0 , UBX_CFG_VAL_VER_TRANSACTION = 1 }
 
enum  ubx_msg_id_nmea_std {
  UBX_MSG_ID_NMEA_STD_DTM = 0x0A , UBX_MSG_ID_NMEA_STD_GBQ = 0x44 , UBX_MSG_ID_NMEA_STD_GBS = 0x09 , UBX_MSG_ID_NMEA_STD_GGA = 0x00 ,
  UBX_MSG_ID_NMEA_STD_GLL = 0x01 , UBX_MSG_ID_NMEA_STD_GLQ = 0x43 , UBX_MSG_ID_NMEA_STD_GNQ = 0x42 , UBX_MSG_ID_NMEA_STD_GNS = 0x0D ,
  UBX_MSG_ID_NMEA_STD_GPQ = 0x40 , UBX_MSG_ID_NMEA_STD_GRS = 0x06 , UBX_MSG_ID_NMEA_STD_GSA = 0x02 , UBX_MSG_ID_NMEA_STD_GST = 0x07 ,
  UBX_MSG_ID_NMEA_STD_GSV = 0x03 , UBX_MSG_ID_NMEA_STD_RMC = 0x04 , UBX_MSG_ID_NMEA_STD_THS = 0x0E , UBX_MSG_ID_NMEA_STD_TXT = 0x41 ,
  UBX_MSG_ID_NMEA_STD_VLW = 0x0F , UBX_MSG_ID_NMEA_STD_VTG = 0x05 , UBX_MSG_ID_NMEA_STD_ZDA = 0x08
}
 
enum  ubx_msg_id_nmea_pubx {
  UBX_MSG_ID_NMEA_PUBX_CONFIG = 0x41 , UBX_MSG_ID_NMEA_PUBX_POSITION = 0x00 , UBX_MSG_ID_NMEA_PUBX_RATE = 0x40 , UBX_MSG_ID_NMEA_PUBX_SVSTATUS = 0x03 ,
  UBX_MSG_ID_NMEA_PUBX_TIME = 0x04
}
 

Functions

static uint16_t ubx_calc_checksum (const struct ubx_frame *frame, size_t len)
 
static int ubx_frame_encode (uint8_t class, uint8_t id, const uint8_t *payload, size_t payload_len, uint8_t *buf, size_t buf_len)
 

Macro Definition Documentation

◆ UBX_CFG_NAV5_APPLY_DYN

#define UBX_CFG_NAV5_APPLY_DYN   BIT(0)

◆ UBX_CFG_NAV5_APPLY_FIX_MODE

#define UBX_CFG_NAV5_APPLY_FIX_MODE   BIT(2)

◆ UBX_CFG_PRT_MODE_CHAR_LEN

#define UBX_CFG_PRT_MODE_CHAR_LEN (   val)    (((val) & BIT_MASK(2)) << 6)

◆ UBX_CFG_PRT_MODE_PARITY

#define UBX_CFG_PRT_MODE_PARITY (   val)    (((val) & BIT_MASK(3)) << 9)

◆ UBX_CFG_PRT_MODE_STOP_BITS

#define UBX_CFG_PRT_MODE_STOP_BITS (   val)    (((val) & BIT_MASK(2)) << 12)

◆ UBX_CFG_PRT_PROTO_MASK_NMEA

#define UBX_CFG_PRT_PROTO_MASK_NMEA   BIT(1)

◆ UBX_CFG_PRT_PROTO_MASK_RTCM3

#define UBX_CFG_PRT_PROTO_MASK_RTCM3   BIT(5)

◆ UBX_CFG_PRT_PROTO_MASK_UBX

#define UBX_CFG_PRT_PROTO_MASK_UBX   BIT(0)

◆ UBX_FRAME_ACK_INITIALIZER

#define UBX_FRAME_ACK_INITIALIZER (   _class_id,
  _msg_id 
)     UBX_FRAME_INITIALIZER_PAYLOAD(UBX_CLASS_ID_ACK, UBX_MSG_ID_ACK, _class_id, _msg_id)

◆ UBX_FRAME_ARRAY_DEFINE

#define UBX_FRAME_ARRAY_DEFINE (   _name,
  ... 
)     const struct ubx_frame *_name[] = {__VA_ARGS__};

◆ UBX_FRAME_CFG_MSG_RATE_INITIALIZER

#define UBX_FRAME_CFG_MSG_RATE_INITIALIZER (   _class_id,
  _msg_id,
  _rate 
)
Value:
_class_id, _msg_id, _rate)
@ UBX_MSG_ID_CFG_MSG
Definition protocol.h:170
#define UBX_FRAME_INITIALIZER_PAYLOAD(_class_id, _msg_id,...)
Definition protocol.h:506
@ UBX_CLASS_ID_CFG
Definition protocol.h:52

◆ UBX_FRAME_CFG_RATE_INITIALIZER

#define UBX_FRAME_CFG_RATE_INITIALIZER (   _meas_rate_ms,
  _nav_rate,
  _time_ref 
)
Value:
(_meas_rate_ms & 0xFF), ((_meas_rate_ms >> 8) & 0xFF), \
(_nav_rate & 0xFF), ((_nav_rate >> 8) & 0xFF), \
(_time_ref & 0xFF), ((_time_ref >> 8) & 0xFF))
@ UBX_MSG_ID_CFG_RATE
Definition protocol.h:172

◆ UBX_FRAME_CFG_RST_INITIALIZER

#define UBX_FRAME_CFG_RST_INITIALIZER (   _start_mode,
  _reset_mode 
)
Value:
(_start_mode & 0xFF), ((_start_mode >> 8) & 0xFF), \
_reset_mode, 0)
@ UBX_MSG_ID_CFG_RST
Definition protocol.h:171

◆ UBX_FRAME_CFG_VAL_GET_INITIALIZER

#define UBX_FRAME_CFG_VAL_GET_INITIALIZER (   _key)
Value:
0x00, 0x00, 0x00, 0x00, \
((_key) & 0xFF), (((_key) >> 8) & 0xFF), \
(((_key) >> 16) & 0xFF), (((_key) >> 24) & 0xFF))
@ UBX_MSG_ID_CFG_VAL_GET
Definition protocol.h:175

◆ UBX_FRAME_CFG_VAL_SET_U16_INITIALIZER

#define UBX_FRAME_CFG_VAL_SET_U16_INITIALIZER (   _key,
  _value 
)
Value:
0x00, 0x01, 0x00, 0x00, \
((_key) & 0xFF), (((_key) >> 8) & 0xFF), \
(((_key) >> 16) & 0xFF), (((_key) >> 24) & 0xFF), \
((_value) & 0xFF), (((_value) >> 8) & 0xFF))
@ UBX_MSG_ID_CFG_VAL_SET
Definition protocol.h:174

◆ UBX_FRAME_CFG_VAL_SET_U32_INITIALIZER

#define UBX_FRAME_CFG_VAL_SET_U32_INITIALIZER (   _key,
  _value 
)
Value:
0x00, 0x01, 0x00, 0x00, \
((_key) & 0xFF), (((_key) >> 8) & 0xFF), \
(((_key) >> 16) & 0xFF), (((_key) >> 24) & 0xFF), \
((_value) & 0xFF), (((_value) >> 8) & 0xFF), \
(((_value) >> 16) & 0xFF), (((_value) >> 24) & 0xFF))

◆ UBX_FRAME_CFG_VAL_SET_U8_INITIALIZER

#define UBX_FRAME_CFG_VAL_SET_U8_INITIALIZER (   _key,
  _value 
)
Value:
0x00, 0x01, 0x00, 0x00, \
((_key) & 0xFF), (((_key) >> 8) & 0xFF), \
(((_key) >> 16) & 0xFF), (((_key) >> 24) & 0xFF), \
((_value) & 0xFF))

◆ UBX_FRAME_DEFINE

#define UBX_FRAME_DEFINE (   _name,
  _frame 
)     const static struct ubx_frame _name = _frame

◆ UBX_FRAME_FOOTER_SZ

#define UBX_FRAME_FOOTER_SZ   2

◆ UBX_FRAME_GET_INITIALIZER

#define UBX_FRAME_GET_INITIALIZER (   _class_id,
  _msg_id 
)
Value:
{ \
.preamble_sync_char_1 = UBX_PREAMBLE_SYNC_CHAR_1, \
.preamble_sync_char_2 = UBX_PREAMBLE_SYNC_CHAR_2, \
.class = _class_id, \
.id = _msg_id, \
.payload_size = 0, \
.payload_and_checksum = { \
UBX_CSUM(_class_id, _msg_id, 0, 0), \
}, \
}
#define UBX_PREAMBLE_SYNC_CHAR_1
Definition protocol.h:19
#define UBX_PREAMBLE_SYNC_CHAR_2
Definition protocol.h:20

◆ UBX_FRAME_HEADER_SZ

#define UBX_FRAME_HEADER_SZ   6

◆ UBX_FRAME_INITIALIZER_PAYLOAD

#define UBX_FRAME_INITIALIZER_PAYLOAD (   _class_id,
  _msg_id,
  ... 
)     _UBX_FRAME_INITIALIZER_PAYLOAD(_class_id, _msg_id, __VA_ARGS__)

◆ UBX_FRAME_MSG_CLASS_IDX

#define UBX_FRAME_MSG_CLASS_IDX   2

◆ UBX_FRAME_NAK_INITIALIZER

#define UBX_FRAME_NAK_INITIALIZER (   _class_id,
  _msg_id 
)     UBX_FRAME_INITIALIZER_PAYLOAD(UBX_CLASS_ID_ACK, UBX_MSG_ID_NAK, _class_id, _msg_id)

◆ UBX_FRAME_PREAMBLE_SYNC_CHAR_1_IDX

#define UBX_FRAME_PREAMBLE_SYNC_CHAR_1_IDX   0

◆ UBX_FRAME_PREAMBLE_SYNC_CHAR_2_IDX

#define UBX_FRAME_PREAMBLE_SYNC_CHAR_2_IDX   1

◆ UBX_FRAME_SZ

#define UBX_FRAME_SZ (   payload_size)    (payload_size + UBX_FRAME_SZ_WITHOUT_PAYLOAD)

◆ UBX_FRAME_SZ_MAX

#define UBX_FRAME_SZ_MAX   UBX_FRAME_SZ(UBX_PAYLOAD_SZ_MAX)

◆ UBX_FRAME_SZ_WITHOUT_PAYLOAD

#define UBX_FRAME_SZ_WITHOUT_PAYLOAD   (UBX_FRAME_HEADER_SZ + UBX_FRAME_FOOTER_SZ)

◆ UBX_GNSS_SELECTION_BEIDOU

#define UBX_GNSS_SELECTION_BEIDOU   BIT(2)

◆ UBX_GNSS_SELECTION_GALILEO

#define UBX_GNSS_SELECTION_GALILEO   BIT(3)

◆ UBX_GNSS_SELECTION_GLONASS

#define UBX_GNSS_SELECTION_GLONASS   BIT(1)

◆ UBX_GNSS_SELECTION_GPS

#define UBX_GNSS_SELECTION_GPS   BIT(0)

◆ UBX_NAV_PVT_FLAGS3_INVALID_LLH

#define UBX_NAV_PVT_FLAGS3_INVALID_LLH   BIT(0)

◆ UBX_NAV_PVT_FLAGS_GNSS_FIX_OK

#define UBX_NAV_PVT_FLAGS_GNSS_FIX_OK   BIT(0)

◆ UBX_NAV_PVT_VALID_DATE

#define UBX_NAV_PVT_VALID_DATE   BIT(0)

◆ UBX_NAV_PVT_VALID_MAGN

#define UBX_NAV_PVT_VALID_MAGN   BIT(3)

◆ UBX_NAV_PVT_VALID_TIME

#define UBX_NAV_PVT_VALID_TIME   BIT(1)

◆ UBX_NAV_PVT_VALID_UTC_TOD

#define UBX_NAV_PVT_VALID_UTC_TOD   BIT(2)

◆ UBX_NAV_SAT_FLAGS_SV_USED

#define UBX_NAV_SAT_FLAGS_SV_USED   BIT(3)

◆ UBX_PAYLOAD_SZ_MAX

#define UBX_PAYLOAD_SZ_MAX   512

◆ UBX_PREAMBLE_SYNC_CHAR_1

#define UBX_PREAMBLE_SYNC_CHAR_1   0xB5

◆ UBX_PREAMBLE_SYNC_CHAR_2

#define UBX_PREAMBLE_SYNC_CHAR_2   0x62

Enumeration Type Documentation

◆ ubx_cfg_char_len

Enumerator
UBX_CFG_PRT_PORT_MODE_CHAR_LEN_5 
UBX_CFG_PRT_PORT_MODE_CHAR_LEN_6 
UBX_CFG_PRT_PORT_MODE_CHAR_LEN_7 
UBX_CFG_PRT_PORT_MODE_CHAR_LEN_8 

◆ ubx_cfg_parity

Enumerator
UBX_CFG_PRT_PORT_MODE_PARITY_EVEN 
UBX_CFG_PRT_PORT_MODE_PARITY_ODD 
UBX_CFG_PRT_PORT_MODE_PARITY_NONE 

◆ ubx_cfg_port_id

Enumerator
UBX_CFG_PORT_ID_DDC 
UBX_CFG_PORT_ID_UART 
UBX_CFG_PORT_ID_USB 
UBX_CFG_PORT_ID_SPI 

◆ ubx_cfg_rate_time_ref

Enumerator
UBX_CFG_RATE_TIME_REF_UTC 
UBX_CFG_RATE_TIME_REF_GPS 
UBX_CFG_RATE_TIME_REF_GLONASS 
UBX_CFG_RATE_TIME_REF_BEIDOU 
UBX_CFG_RATE_TIME_REF_GALILEO 
UBX_CFG_RATE_TIME_REF_NAVIC 

◆ ubx_cfg_rst_mode

Enumerator
UBX_CFG_RST_MODE_HW 
UBX_CFG_RST_MODE_SW 
UBX_CFG_RST_MODE_GNSS_STOP 
UBX_CFG_RST_MODE_GNSS_START 

◆ ubx_cfg_rst_start_mode

Enumerator
UBX_CFG_RST_HOT_START 
UBX_CFG_RST_WARM_START 
UBX_CFG_RST_COLD_START 

◆ ubx_cfg_stop_bits

Enumerator
UBX_CFG_PRT_PORT_MODE_STOP_BITS_1 
UBX_CFG_PRT_PORT_MODE_STOP_BITS_1_5 
UBX_CFG_PRT_PORT_MODE_STOP_BITS_2 
UBX_CFG_PRT_PORT_MODE_STOP_BITS_0_5 

◆ ubx_cfg_val_ver

Enumerator
UBX_CFG_VAL_VER_SIMPLE 
UBX_CFG_VAL_VER_TRANSACTION 

◆ ubx_class_id

Enumerator
UBX_CLASS_ID_NAV 
UBX_CLASS_ID_RXM 
UBX_CLASS_ID_INF 
UBX_CLASS_ID_ACK 
UBX_CLASS_ID_CFG 
UBX_CLASS_ID_UPD 
UBX_CLASS_ID_MON 
UBX_CLASS_ID_TIM 
UBX_CLASS_ID_MGA 
UBX_CLASS_ID_LOG 
UBX_CLASS_ID_SEC 
UBX_CLASS_ID_NMEA_STD 
UBX_CLASS_ID_NMEA_PUBX 

◆ ubx_dyn_model

Enumerator
UBX_DYN_MODEL_PORTABLE 
UBX_DYN_MODEL_STATIONARY 
UBX_DYN_MODEL_PEDESTRIAN 
UBX_DYN_MODEL_AUTOMOTIVE 
UBX_DYN_MODEL_SEA 
UBX_DYN_MODEL_AIRBORNE_1G 
UBX_DYN_MODEL_AIRBORNE_2G 
UBX_DYN_MODEL_AIRBORNE_4G 
UBX_DYN_MODEL_WRIST 
UBX_DYN_MODEL_BIKE 

◆ ubx_fix_mode

Enumerator
UBX_FIX_MODE_2D_ONLY 
UBX_FIX_MODE_3D_ONLY 
UBX_FIX_MODE_AUTO 

◆ ubx_gnss_id

Enumerator
UBX_GNSS_ID_GPS 
UBX_GNSS_ID_SBAS 
UBX_GNSS_ID_GALILEO 
UBX_GNSS_ID_BEIDOU 
UBX_GNSS_ID_QZSS 
UBX_GNSS_ID_GLONASS 

◆ ubx_msg_id_ack

Enumerator
UBX_MSG_ID_ACK 
UBX_MSG_ID_NAK 

◆ ubx_msg_id_cfg

Enumerator
UBX_MSG_ID_CFG_PRT 
UBX_MSG_ID_CFG_MSG 
UBX_MSG_ID_CFG_RST 
UBX_MSG_ID_CFG_RATE 
UBX_MSG_ID_CFG_NAV5 
UBX_MSG_ID_CFG_VAL_SET 
UBX_MSG_ID_CFG_VAL_GET 

◆ ubx_msg_id_mon

Enumerator
UBX_MSG_ID_MON_VER 
UBX_MSG_ID_MON_GNSS 

◆ ubx_msg_id_nav

Enumerator
UBX_MSG_ID_NAV_PVT 
UBX_MSG_ID_NAV_SAT 

◆ ubx_msg_id_nmea_pubx

Enumerator
UBX_MSG_ID_NMEA_PUBX_CONFIG 
UBX_MSG_ID_NMEA_PUBX_POSITION 
UBX_MSG_ID_NMEA_PUBX_RATE 
UBX_MSG_ID_NMEA_PUBX_SVSTATUS 
UBX_MSG_ID_NMEA_PUBX_TIME 

◆ ubx_msg_id_nmea_std

Enumerator
UBX_MSG_ID_NMEA_STD_DTM 
UBX_MSG_ID_NMEA_STD_GBQ 
UBX_MSG_ID_NMEA_STD_GBS 
UBX_MSG_ID_NMEA_STD_GGA 
UBX_MSG_ID_NMEA_STD_GLL 
UBX_MSG_ID_NMEA_STD_GLQ 
UBX_MSG_ID_NMEA_STD_GNQ 
UBX_MSG_ID_NMEA_STD_GNS 
UBX_MSG_ID_NMEA_STD_GPQ 
UBX_MSG_ID_NMEA_STD_GRS 
UBX_MSG_ID_NMEA_STD_GSA 
UBX_MSG_ID_NMEA_STD_GST 
UBX_MSG_ID_NMEA_STD_GSV 
UBX_MSG_ID_NMEA_STD_RMC 
UBX_MSG_ID_NMEA_STD_THS 
UBX_MSG_ID_NMEA_STD_TXT 
UBX_MSG_ID_NMEA_STD_VLW 
UBX_MSG_ID_NMEA_STD_VTG 
UBX_MSG_ID_NMEA_STD_ZDA 

◆ ubx_nav_fix_type

Enumerator
UBX_NAV_FIX_TYPE_NO_FIX 
UBX_NAV_FIX_TYPE_DR 
UBX_NAV_FIX_TYPE_2D 
UBX_NAV_FIX_TYPE_3D 
UBX_NAV_FIX_TYPE_GNSS_DR_COMBINED 
UBX_NAV_FIX_TYPE_TIME_ONLY 

◆ ubx_nav_sat_health

Enumerator
UBX_NAV_SAT_HEALTH_UNKNOWN 
UBX_NAV_SAT_HEALTH_HEALTHY 
UBX_NAV_SAT_HEALTH_UNHEALTHY 

◆ ubx_utc_standard

Enumerator
UBX_UTC_STANDARD_AUTOMATIC 
UBX_UTC_STANDARD_GPS 
UBX_UTC_STANDARD_GALILEO 
UBX_UTC_STANDARD_GLONASS 
UBX_UTC_STANDARD_BEIDOU 

Function Documentation

◆ ubx_calc_checksum()

static uint16_t ubx_calc_checksum ( const struct ubx_frame frame,
size_t  len 
)
inlinestatic

Mismatch in expected and actual length results in an invalid frame

◆ ubx_frame_encode()

static int ubx_frame_encode ( uint8_t  class,
uint8_t  id,
const uint8_t payload,
size_t  payload_len,
uint8_t buf,
size_t  buf_len 
)
inlinestatic