Implement WiFi CSI-based vital sign detection and RVF model container: - Pure-Rust radix-2 DIT FFT with Hann windowing and parabolic interpolation - FIR bandpass filter (windowed-sinc, Hamming) for breathing (0.1-0.5 Hz) and heartbeat (0.8-2.0 Hz) band isolation - VitalSignDetector with rolling buffers (30s breathing, 15s heartbeat) - RVF binary container with 64-byte SegmentHeader, CRC32 integrity, 6 segment types (Vec, Manifest, Quant, Meta, Witness, Profile) - RvfBuilder/RvfReader with file I/O and VitalSignConfig support - Server integration: --benchmark, --load-rvf, --save-rvf CLI flags - REST endpoint /api/v1/vital-signs and WebSocket vital_signs field - 98 tests (32 unit + 16 RVF integration + 18 vital signs integration) - Benchmark: 7,313 frames/sec (136μs/frame), 365x real-time at 20 Hz Co-Authored-By: claude-flow <ruv@ruv.net>
39 lines
836 B
TOML
39 lines
836 B
TOML
[package]
|
|
name = "wifi-densepose-sensing-server"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
description = "Lightweight Axum server for WiFi sensing UI with RuVector signal processing"
|
|
license.workspace = true
|
|
|
|
[lib]
|
|
name = "wifi_densepose_sensing_server"
|
|
path = "src/lib.rs"
|
|
|
|
[[bin]]
|
|
name = "sensing-server"
|
|
path = "src/main.rs"
|
|
|
|
[dependencies]
|
|
# Web framework
|
|
axum = { workspace = true }
|
|
tower-http = { version = "0.5", features = ["fs", "cors", "set-header"] }
|
|
tokio = { workspace = true, features = ["full", "process"] }
|
|
futures-util = "0.3"
|
|
|
|
# Serialization
|
|
serde = { workspace = true }
|
|
serde_json.workspace = true
|
|
|
|
# Logging
|
|
tracing.workspace = true
|
|
tracing-subscriber = { workspace = true }
|
|
|
|
# Time
|
|
chrono = { version = "0.4", features = ["serde"] }
|
|
|
|
# CLI
|
|
clap = { workspace = true }
|
|
|
|
[dev-dependencies]
|
|
tempfile = "3.10"
|