Expand description
§esp-csi-rs — CSI collection on ESP devices
Thin facade over esp_csi_rs_core, the shared engine. This crate keeps the
published esp-csi-rs name and public API stable; all functionality lives in
esp-csi-rs-core and is re-exported here in full.
See the esp-csi-rs-core docs for the full API.
Modules§
- central
- Central-node operating modes.
- config
- Runtime configuration types.
- csi
- CSI packet types and frame-format definitions.
- esp_
now_ pool - ESP-NOW receive pool that bypasses esp-radio’s heap-allocating dispatcher.
- esp_
radio - Wireless support for Espressif ESP32 devices.
- espnow_
phy - ESP-NOW PHY forcing (per-peer rate / HT40) and radio bring-up helpers.
- logging
- Logging backends and CSI-line emission for the crate.
- node
- Node topology/configuration types and the
CSINodeorchestrator. - peripheral
- Peripheral-node operating modes.
- profile
- Radio-profile seam.
- protocol
- ESP-NOW wire-format packets and the magic-prefix framing helpers.
- stats
- Global statistics counters and sequence-drop detection state.
- time
- Calendar-time helpers for stamping CSI packets.
Macros§
- log_ln
- Logging macro that routes to
println!/defmtbased on features. - log_raw
- Log raw bytes without any added newline (blocking path only; no-op when async is active).
Structs§
- CSINode
- Primary orchestration object for CSI collection.
- CSINode
Client - Handle for controlling a running
CSINodefrom user code. - CSINode
Hardware - Hardware handles required to operate a CSI node.
- Control
Packet - Control packet sent from Central to Peripheral.
- EspNow
Config - Configuration for ESP-NOW traffic generation.
- IOTask
Config - Controls whether TX and RX tasks are active for a node.
- Peripheral
Packet - Peripheral reply packet — a pure presence beacon.
- Standard
Profile - Default profile: generic chip-level radio tuning only, no extended bring-up.
- Wifi
ApConfig - Configuration for self-contained softAP CSI collector mode.
- Wifi
Sniffer Config - Configuration for Wi-Fi Promiscuous Sniffer mode.
- Wifi
Station Config - Configuration for Wi-Fi Station mode.
Enums§
- Central
OpMode - Central node operational modes.
- Collection
Mode - CSI collection behavior for the node.
- CsiDelivery
Mode - CSI delivery mode — single-atomic dispatch in the WiFi callback.
- Node
- High-level node type and mode.
- Peripheral
OpMode - Peripheral node operational modes.
Traits§
- Radio
Profile - Pluggable Wi-Fi bring-up back-end.
Functions§
- apply_
peer_ espnow_ phy - Apply per-peer ESP-NOW PHY with recv suspended during the driver call (C5-safe).
- clear_
csi_ callback - Remove the user CSI callback registered via
set_csi_callbackand switch toCsiDeliveryMode::Off. - csi_
delivery_ mode - Returns the active CSI delivery mode.
- csi_
logging_ enabled - Returns whether inline CSI logging is currently enabled (i.e. whether
the per-packet UART/JTAG
log_csipath will run). - install_
static_ espnow_ recv - Install this crate’s static-pool ESP-NOW receive callback.
- run_
process_ csi_ packet - Internal task that handles collection-mode changes and rate statistics.
- set_
csi_ callback - Register a user callback invoked inline for every captured CSI packet.
- set_
csi_ delivery_ mode - Set the active CSI delivery mode (callback / async / off).
- set_
csi_ logging_ enabled - Enable or disable inline CSI logging (per-packet UART/JTAG output).
- set_
csi_ raw_ callback - Register a raw CSI fast-path callback (CPU-benchmark use).
- set_
peer_ espnow_ phy - Force a peer’s ESP-NOW TX PHY to the configured
rateand bandwidth. - set_
raw_ listen - Enable/disable raw-listen mode — see [
RAW_LISTEN]. Set this before the node starts so no control packets are ingested during the run. - set_
raw_ recv_ callback - Register a raw-recv callback — see [
RAW_RECV_CALLBACK]. Pair withcrate::set_raw_listen(true). The callback runs in the WiFi task’s C-FFI context, so it must return quickly and do only lock-free bookkeeping.