10#ifndef ESP_SDR_IEEE154_ESP_SDR_H_
11#define ESP_SDR_IEEE154_ESP_SDR_H_
44 uint32_t
ring_status, ring_units, ring_lost, phy_skipped, phy_read;
55 uint32_t
verdict_n, verdict_min_us, verdict_max_us, verdict_sum_us;
62 uint32_t
ack_due, ack_arm_failed, ack_fired, ack_fire_failed, ack_cancelled;
63 uint32_t ack_unsupported;
150 IEEE154_ESP_SDR_EV_TAKE = 1,
151 IEEE154_ESP_SDR_EV_GIVE,
152 IEEE154_ESP_SDR_EV_RING,
153 IEEE154_ESP_SDR_EV_RING_END,
154 IEEE154_ESP_SDR_EV_TX,
155 IEEE154_ESP_SDR_EV_TX_END,
156 IEEE154_ESP_SDR_EV_CAPTURE,
157 IEEE154_ESP_SDR_EV_BOOT,
void * ieee154_esp_sdr_high_ram(size_t size)
int ieee154_esp_sdr_bench(struct ieee154_esp_sdr_bench *b)
Time the ACK waveform build and the front end switches (radio taken meanwhile).
void ieee154_esp_sdr_get_stats(struct ieee154_esp_sdr_stats *stats)
int ieee154_esp_sdr_set_rx_gain(int index)
size_t ieee154_esp_sdr_get_trail(uint32_t *out, size_t max)
int ieee154_esp_sdr_set_ack_timing(uint32_t delay_us, uint32_t limit_us)
ACK timing (CONFIG_ESP_SDR_IEEE802154_AUTO_ACK): first sample delay_us after the frame's end (192 us ...
int ieee154_esp_sdr_dump(ieee154_esp_sdr_dump_cb_t out, void *user)
int ieee154_esp_sdr_ack_test(uint8_t seq)
Diagnostic: send one ACK with sequence number seq now (receive running).
int ieee154_esp_sdr_set_lo_above(bool above)
void ieee154_esp_sdr_set_rx_cb(ieee154_esp_sdr_rx_cb_t cb)
ieee154_esp_sdr_event
Definition ieee154_esp_sdr.h:149
void(* ieee154_esp_sdr_dump_cb_t)(const int16_t *iq, size_t n, void *user)
Definition ieee154_esp_sdr.h:135
void(* ieee154_esp_sdr_rx_cb_t)(struct net_pkt *pkt)
Definition ieee154_esp_sdr.h:79
void ieee154_esp_sdr_set_invert(bool rx_inv, bool tx_inv)
int ieee154_esp_sdr_measure(struct ieee154_esp_sdr_measurement *m)
size_t ieee154_esp_sdr_get_stall(uint32_t *pc, uint32_t *ls, size_t max)
void ieee154_esp_sdr_clear_stats(void)
Zero the driver's counters.
int ieee154_esp_sdr_set_ring_unit(uint32_t pairs)
Set the ring's unit length (ring receive), for latency measurements.
Definition ieee154_esp_sdr.h:178
uint32_t ack_build_cyc
Definition ieee154_esp_sdr.h:180
uint32_t to_tx_us
Definition ieee154_esp_sdr.h:182
Definition ieee154_esp_sdr.h:101
uint32_t samples_used
Definition ieee154_esp_sdr.h:109
int32_t coarse_cfo_hz
Definition ieee154_esp_sdr.h:105
uint32_t steps[8]
Definition ieee154_esp_sdr.h:114
int32_t power_dbfs
Definition ieee154_esp_sdr.h:107
int32_t cfo_hz
Definition ieee154_esp_sdr.h:103
Definition ieee154_esp_sdr.h:27
uint32_t ring_irq_windows
Definition ieee154_esp_sdr.h:48
uint32_t filter_us
Definition ieee154_esp_sdr.h:39
uint32_t ring_cycles_x100
Definition ieee154_esp_sdr.h:46
int32_t tx_last_err
Definition ieee154_esp_sdr.h:37
uint32_t tx_frames
Definition ieee154_esp_sdr.h:33
uint32_t verdict_n
Definition ieee154_esp_sdr.h:55
uint32_t ring_status
Definition ieee154_esp_sdr.h:44
uint32_t frames
Definition ieee154_esp_sdr.h:31
uint32_t ring_late_max
Definition ieee154_esp_sdr.h:50
uint32_t ack_verdict_max_us
Definition ieee154_esp_sdr.h:68
uint32_t ack_due
Definition ieee154_esp_sdr.h:62
uint32_t acks
Definition ieee154_esp_sdr.h:35
uint32_t captures
Definition ieee154_esp_sdr.h:29