modules/woz_uwb/src/driver/uwb_rxdiag.c
asxeem/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 woz_alloc.h woz_diag.h fira_session.h

API

Fstatic void cad_mark(void)

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

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:68

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

called by shim_rxerr, shim_rxok, shim_rxto

Fstatic void shim_rxok(const dwt_cb_data_t *d)

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

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:117

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:127

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:141

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

Fvoid __wrap_dwt_setcallbacks(dwt_callbacks_s *callbacks)

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

Intercept the callback registration and insert counting shims.

Fint32_t __wrap_dwt_configure(dwt_config_t *config)

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

Log every full PHY configuration the blob issues.

Fvoid __wrap_dwt_configurestsmode(uint8_t stsMode)

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

Log every STS-mode (CP_SPC) write the blob issues, then pass through.

Fstatic void rxdiag_log(struct k_work *work)

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

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:276

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:299

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:309

Whether the periodic ranging heartbeat is currently armed.

Fvoid uwb_rxdiag_rng_set(bool on)

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

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:319

Whether the per-block distance stream is currently armed.

Fstatic int rxdiag_init(void)

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

Arm the periodic heartbeat at application init.