84 lines
2.3 KiB
Rust
84 lines
2.3 KiB
Rust
//! WiFi-DensePose CLI
|
|
//!
|
|
//! Command-line interface for WiFi-DensePose system, including the
|
|
//! Mass Casualty Assessment Tool (MAT) for disaster response.
|
|
//!
|
|
//! # Features
|
|
//!
|
|
//! - **mat**: Disaster survivor detection and triage management
|
|
//! - **version**: Display version information
|
|
//!
|
|
//! # Usage
|
|
//!
|
|
//! ```bash
|
|
//! # Start scanning for survivors
|
|
//! wifi-densepose mat scan --zone "Building A"
|
|
//!
|
|
//! # View current scan status
|
|
//! wifi-densepose mat status
|
|
//!
|
|
//! # List detected survivors
|
|
//! wifi-densepose mat survivors --sort-by triage
|
|
//!
|
|
//! # View and manage alerts
|
|
//! wifi-densepose mat alerts
|
|
//! ```
|
|
|
|
use clap::{Parser, Subcommand};
|
|
|
|
pub mod calibrate;
|
|
pub mod calibrate_api;
|
|
pub mod room;
|
|
#[cfg(feature = "mat")]
|
|
pub mod mat;
|
|
|
|
/// WiFi-DensePose Command Line Interface
|
|
#[derive(Parser, Debug)]
|
|
#[command(name = "wifi-densepose")]
|
|
#[command(
|
|
author,
|
|
version,
|
|
about = "WiFi-based pose estimation and disaster response"
|
|
)]
|
|
#[command(propagate_version = true)]
|
|
pub struct Cli {
|
|
/// Command to execute
|
|
#[command(subcommand)]
|
|
pub command: Commands,
|
|
}
|
|
|
|
/// Top-level commands
|
|
#[derive(Subcommand, Debug)]
|
|
pub enum Commands {
|
|
/// Empty-room baseline calibration (ADR-135).
|
|
/// Captures CSI frames via UDP and saves a per-subcarrier statistical
|
|
/// baseline used for real-time motion z-scoring and CIR reference.
|
|
Calibrate(calibrate::CalibrateArgs),
|
|
|
|
/// Run the calibration HTTP API (ADR-135/151) for a UI to drive.
|
|
/// Receives ESP32 CSI over UDP and exposes start/status/stop/result
|
|
/// endpoints at `/api/v1/calibration/*` (CORS-enabled).
|
|
CalibrateServe(calibrate_api::CalibrateServeArgs),
|
|
|
|
/// Guided per-room enrollment (ADR-151 Stage 2) — walk the anchor sequence
|
|
/// against a baseline, writing labelled features.
|
|
Enroll(room::EnrollArgs),
|
|
|
|
/// Train the per-room specialist bank from an enrollment (ADR-151 Stage 4).
|
|
TrainRoom(room::TrainRoomArgs),
|
|
|
|
/// Show a trained specialist bank's summary.
|
|
RoomStatus(room::RoomStatusArgs),
|
|
|
|
/// Live mixture-of-specialists readout from the CSI stream (ADR-151 Stage 5).
|
|
RoomWatch(room::RoomWatchArgs),
|
|
|
|
/// Mass Casualty Assessment Tool commands
|
|
#[cfg(feature = "mat")]
|
|
#[command(subcommand)]
|
|
Mat(mat::MatCommand),
|
|
|
|
/// Display version information
|
|
Version,
|
|
}
|