docs: Add comprehensive wifi-Mat user guide and fix compilation

- Add detailed wifi-Mat user guide covering:
  - Installation and setup
  - Detection capabilities (breathing, heartbeat, movement)
  - Localization system (triangulation, depth estimation)
  - START protocol triage classification
  - Alert system with priority escalation
  - Field deployment guide
  - Hardware setup requirements
  - API reference and troubleshooting

- Update main README.md with wifi-Mat section and links

- Fix compilation issues:
  - Add missing deadline field in AlertPayload
  - Fix type ambiguity in powi calls
  - Resolve borrow checker issues in scan_cycle
  - Export CsiDataBuffer from detection module
  - Add missing imports in test modules

- All 83 tests now passing
This commit is contained in:
Claude
2026-01-13 17:55:50 +00:00
parent a5044b0b4c
commit cd877f87c2
14 changed files with 1341 additions and 63 deletions

View File

@@ -130,6 +130,7 @@ impl AlertPayload {
triage_status,
location: None,
recommended_action: String::new(),
deadline: None,
metadata: std::collections::HashMap::new(),
}
}

View File

@@ -289,18 +289,22 @@ impl DisasterEvent {
location: Option<Coordinates3D>,
) -> Result<&Survivor, MatError> {
// Check if this might be an existing survivor
if let Some(loc) = &location {
if let Some(existing) = self.find_nearby_survivor(loc, 2.0) {
// Update existing survivor
let survivor = self.survivors.iter_mut()
.find(|s| s.id() == existing)
.ok_or_else(|| MatError::Domain("Survivor not found".into()))?;
survivor.update_vitals(vitals);
if let Some(l) = location {
survivor.update_location(l);
}
return Ok(survivor);
let existing_id = if let Some(loc) = &location {
self.find_nearby_survivor(loc, 2.0).cloned()
} else {
None
};
if let Some(existing) = existing_id {
// Update existing survivor
let survivor = self.survivors.iter_mut()
.find(|s| s.id() == &existing)
.ok_or_else(|| MatError::Domain("Survivor not found".into()))?;
survivor.update_vitals(vitals);
if let Some(l) = location {
survivor.update_location(l);
}
return Ok(survivor);
}
// Create new survivor