Zephyr Project API 3.7.0
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
ubx.h File Reference
#include <zephyr/kernel.h>
#include <zephyr/types.h>
#include <zephyr/sys/atomic.h>
#include <zephyr/modem/pipe.h>

Go to the source code of this file.

Data Structures

struct  ubx_frame
 
struct  modem_ubx_script
 
struct  modem_ubx
 
struct  modem_ubx_config
 

Macros

#define UBX_FRM_HEADER_SZ   6
 
#define UBX_FRM_FOOTER_SZ   2
 
#define UBX_FRM_SZ_WITHOUT_PAYLOAD   (UBX_FRM_HEADER_SZ + UBX_FRM_FOOTER_SZ)
 
#define UBX_FRM_SZ(payload_size)   (payload_size + UBX_FRM_SZ_WITHOUT_PAYLOAD)
 
#define UBX_PREAMBLE_SYNC_CHAR_1   0xB5
 
#define UBX_PREAMBLE_SYNC_CHAR_2   0x62
 
#define UBX_FRM_PREAMBLE_SYNC_CHAR_1_IDX   0
 
#define UBX_FRM_PREAMBLE_SYNC_CHAR_2_IDX   1
 
#define UBX_FRM_MSG_CLASS_IDX   2
 
#define UBX_FRM_MSG_ID_IDX   3
 
#define UBX_FRM_PAYLOAD_SZ_L_IDX   4
 
#define UBX_FRM_PAYLOAD_SZ_H_IDX   5
 
#define UBX_FRM_PAYLOAD_IDX   6
 
#define UBX_FRM_CHECKSUM_START_IDX   2
 
#define UBX_FRM_CHECKSUM_STOP_IDX(frame_len)   (frame_len - 2)
 
#define UBX_PAYLOAD_SZ_MAX   256
 
#define UBX_FRM_SZ_MAX   UBX_FRM_SZ(UBX_PAYLOAD_SZ_MAX)
 

Functions

int modem_ubx_attach (struct modem_ubx *ubx, struct modem_pipe *pipe)
 Attach pipe to Modem Ubx.
 
void modem_ubx_release (struct modem_ubx *ubx)
 Release pipe from Modem Ubx instance.
 
int modem_ubx_init (struct modem_ubx *ubx, const struct modem_ubx_config *config)
 Initialize Modem Ubx instance.
 
int modem_ubx_run_script (struct modem_ubx *ubx, const struct modem_ubx_script *script)
 Writes the ubx frame in script.request and reads back its response (if available)
 
int modem_ubx_create_frame (uint8_t *ubx_frame, uint16_t ubx_frame_size, uint8_t msg_cls, uint8_t msg_id, const void *payload, uint16_t payload_size)
 Initialize ubx frame.