modules/woz_uwb/src/driver/uwb_rxdiag.c
openaliro/openaliro
Module

uwb_rxdiag.c

Diagnostic RX/TX event tallies + ranging heartbeat.

modules/woz_uwb/src/driver/uwb_rxdiag.c16 documented symbols

Overview

Diagnostic RX/TX event tallies + ranging heartbeat.

depends on ccc_shim.h uwb_rxdiag.h uwb_seam.h uwb_cirdiag.h woz_alloc.h woz_diag.h fira_session.h

API

Fstatic void cad_mark(void)

modules/woz_uwb/src/driver/uwb_rxdiag.c:55

Bin one RX detection's phase within the 192 ms block grid.

called by shim_rxerr, shim_rxok

Fstatic void rxdiag_ev_log(const char *cls, const dwt_cb_data_t *d)

modules/woz_uwb/src/driver/uwb_rxdiag.c:67

Log one RX event's frame structure until the budget is spent.

called by shim_rxerr, shim_rxok, shim_rxto

Fstatic void cirdiag_emit(struct k_work *work)

modules/woz_uwb/src/driver/uwb_rxdiag.c:84

Task-side emitter for the latched CIA diagnostics (uwb_cirdiag).

Fstatic void shim_rxok(const dwt_cb_data_t *d)

modules/woz_uwb/src/driver/uwb_rxdiag.c:96

RX-good callback shim: log RX diagnostics, invoke the armed CCC callback, then decode the Pre-POLL frame off the critical path.

d
DW3000 RX callback data (may be NULL on POLL event).
calls cad_mark, rxdiag_ev_log

Fstatic void shim_rxto(const dwt_cb_data_t *d)

modules/woz_uwb/src/driver/uwb_rxdiag.c:146

RX-timeout shim: tally, then run the blob's handler.

calls rxdiag_ev_log

Fstatic void shim_rxerr(const dwt_cb_data_t *d)

modules/woz_uwb/src/driver/uwb_rxdiag.c:156

RX-error shim: tally + latch status (STS/CIA bits), then chain.

calls cad_mark, rxdiag_ev_log

Fstatic void shim_txdone(const dwt_cb_data_t *d)

modules/woz_uwb/src/driver/uwb_rxdiag.c:170

TX-done shim: tally, then run the blob's handler.

Fvoid woz_uwb_set_callbacks(dwt_callbacks_s *callbacks)

modules/woz_uwb/src/driver/uwb_rxdiag.c:179

Intercept the callback registration and insert counting shims.

Fint32_t woz_uwb_configure_phy(dwt_config_t *config)

modules/woz_uwb/src/driver/uwb_rxdiag.c:199

Log every full PHY configuration the engine applies.

Fstatic void rxdiag_log(struct k_work *work)

modules/woz_uwb/src/driver/uwb_rxdiag.c:222

Periodic ranging heartbeat (every 2 s); re-arms itself while streaming.

Fvoid uwb_rxdiag_get_counts(uint32_t *rxok, uint32_t *rxerr, uint32_t *rxto, uint32_t *txdone, uint32_t *last_err, uint32_t *last_ok)

modules/woz_uwb/src/driver/uwb_rxdiag.c:287

Snapshot the running RX/TX event tallies; out-params optional (NULL to skip).

Fvoid uwb_rxdiag_stream_set(bool on)

modules/woz_uwb/src/driver/uwb_rxdiag.c:310

Arm or cancel the periodic ranging heartbeat (backs aliro log on|off).

Fbool uwb_rxdiag_stream_get(void)

modules/woz_uwb/src/driver/uwb_rxdiag.c:320

Whether the periodic ranging heartbeat is currently armed.

Fvoid uwb_rxdiag_rng_set(bool on)

modules/woz_uwb/src/driver/uwb_rxdiag.c:325

Arm or cancel the per-block distance stream (backs aliro frames on|off).

Fbool uwb_rxdiag_rng_get(void)

modules/woz_uwb/src/driver/uwb_rxdiag.c:330

Whether the per-block distance stream is currently armed.

Fstatic int rxdiag_init(void)

modules/woz_uwb/src/driver/uwb_rxdiag.c:336

Arm the periodic heartbeat at application init.