6#define BAUD_COUNT (sizeof(kBauds) / sizeof(kBauds[0]))
29 sizeof(items) /
sizeof(items[0]));
72 r.itow_ms =
pvt.itow_ms;
73 r.lat_e7 =
pvt.lat_e7;
74 r.lon_e7 =
pvt.lon_e7;
75 r.hmsl_mm =
pvt.hmsl_mm;
76 r.vel_n_mms =
pvt.vel_n_mms;
77 r.vel_e_mms =
pvt.vel_e_mms;
78 r.vel_d_mms =
pvt.vel_d_mms;
79 r.hacc_mm =
pvt.hacc_mm;
80 r.vacc_mm =
pvt.vacc_mm;
81 r.pdop_e2 =
pvt.pdop_e2;
82 r.fix_type =
pvt.fix_type;
83 r.num_sv =
pvt.num_sv;
141 for (
size_t i = 0; i <
n; ++i) {
185 return d > 0 ? (uint32_t)d : 0U;
static void pvt(fake_gnss_t *f, uint32_t t)
void gnss_core_feed(gnss_core_t *c, const uint8_t *bytes, size_t n, uint32_t now_us)
void gnss_core_set_pps(gnss_core_t *c, uint32_t edge_us)
static void on_pvt(gnss_core_t *c, uint32_t now_us)
static void restart(gnss_core_t *c, uint32_t now_us)
static const uint32_t kBauds[]
static void open_at(gnss_core_t *c, uint32_t baud)
uint32_t gnss_core_wait_us(const gnss_core_t *c, uint32_t now_us)
static void configure(gnss_core_t *c, uint32_t now_us)
void gnss_core_init(gnss_core_t *c, uint32_t now_us)
void gnss_core_poll(gnss_core_t *c, uint32_t now_us)
bool gnss_core_request_status(gnss_core_t *c)
static void on_frame(gnss_core_t *c, gnss_frame_kind_t kind, uint32_t now_us)
static void detect(gnss_core_t *c, uint32_t now_us)
static void send_config(gnss_core_t *c, uint32_t now_us)
#define GNSS_CONFIG_TRIES
gnss_frame_kind_t gnss_frame_feed(gnss_frame_parser_t *p, uint8_t byte)
void gnss_frame_init(gnss_frame_parser_t *parser)
#define GNSS_FRAME_UBX_CAPTURE
*brief user defined string literal for JSON values *sa std::size_t n
gnss_frame_parser_t parser
uint8_t ubx_payload[GNSS_FRAME_UBX_CAPTURE]
void(* set_baud)(void *ctx, uint32_t baud)
void(* send)(void *ctx, const uint8_t *bytes, uint16_t len)
void(* record)(void *ctx, uint8_t type, const void *data, uint8_t len)
static std::vector< uint8_t > frame(uint8_t hi, uint8_t lo, size_t payload_len, uint8_t fill)
One wire packet: len(4, LE) then len bytes of body, where the first 4 body bytes are ty/packet_id(2)/...
bool ubx_parse_mon_rf(const uint8_t *p, uint16_t len, ubx_rf_t *out)
size_t ubx_valset(uint8_t *out, size_t cap, const ubx_item_t *items, size_t count)
bool ubx_parse_nav_pvt(const uint8_t *p, uint16_t len, ubx_pvt_t *out)
size_t ubx_poll(uint8_t *out, size_t cap, uint8_t cls, uint8_t id)
bool ubx_sat_summary(const uint8_t *p, uint16_t len, ubx_sats_t *out)
#define UBX_DYNMODEL_AIR4
#define UBX_KEY_UART1OUTPROT_NMEA
#define UBX_ID_CFG_VALSET
#define UBX_KEY_UART1_BAUDRATE
#define UBX_KEY_NAVSPG_DYNMODEL
#define UBX_KEY_MSGOUT_NAV_PVT_UART1
#define UBX_KEY_RATE_MEAS