mirror of
https://github.com/ruvnet/RuView
synced 2026-08-10 20:31:42 +00:00
feat: ADR-039 edge intelligence — on-device CSI processing pipeline
Implements a dual-core edge processing system for ESP32-S3: - Lock-free SPSC ring buffer (Core 0 produces, Core 1 consumes) - Tier 1: phase unwrap, Welford stats, top-K subcarrier selection, delta compression - Tier 2: presence/motion detection, vital signs (breathing/heart rate via biquad IIR), fall detection - Vitals UDP packet (magic 0xC5110002, 32 bytes, sent at 1 Hz) - NVS/Kconfig configurable (edge_tier, thresholds, intervals) - Backward compatible: tier=0 (default) is a no-op - GitHub Actions firmware CI: build, binary size gate, credential scan, flash image verification - Binary: 777 KB (24% free in 1 MB partition) Co-Authored-By: claude-flow <ruv@ruv.net>
This commit is contained in:
@@ -39,6 +39,14 @@ typedef struct {
|
||||
/* MAC address filter for CSI source selection (Issue #98) */
|
||||
uint8_t filter_mac[6]; /**< Transmitter MAC to accept (all zeros = no filter). */
|
||||
uint8_t filter_mac_enabled; /**< 1 = filter active, 0 = accept all. */
|
||||
|
||||
/* ADR-039: Edge intelligence configuration */
|
||||
uint8_t edge_tier; /**< 0=disabled, 1=phase/stats, 2=vitals, 3=reserved. */
|
||||
uint16_t presence_thresh; /**< Presence detection threshold (default 50). */
|
||||
uint16_t fall_thresh; /**< Fall detection threshold (default 500). */
|
||||
uint16_t vital_window; /**< Vital signs window in frames (default 300). */
|
||||
uint16_t vital_interval_ms; /**< Vitals packet send interval in ms (default 1000). */
|
||||
uint8_t subk_count; /**< Top-K subcarrier count (default 32). */
|
||||
} nvs_config_t;
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user