From a33b0dfba697780a19a2bdd11f8eba55ddeeea67 Mon Sep 17 00:00:00 2001 From: Ayushya Chitransh Date: Wed, 22 Apr 2026 20:02:42 +0530 Subject: [PATCH] Fix rust errors --- rust-port/wifi-densepose-rs/Cargo.lock | 1 + .../src/adaptive_classifier.rs | 3 +- .../wifi-densepose-sensing-server/src/main.rs | 42 ++++++++++--------- 3 files changed, 26 insertions(+), 20 deletions(-) diff --git a/rust-port/wifi-densepose-rs/Cargo.lock b/rust-port/wifi-densepose-rs/Cargo.lock index caf1b0f2..3697d694 100644 --- a/rust-port/wifi-densepose-rs/Cargo.lock +++ b/rust-port/wifi-densepose-rs/Cargo.lock @@ -7979,6 +7979,7 @@ dependencies = [ "chrono", "clap", "futures-util", + "ruvector-mincut", "serde", "serde_json", "tempfile", diff --git a/rust-port/wifi-densepose-rs/crates/wifi-densepose-sensing-server/src/adaptive_classifier.rs b/rust-port/wifi-densepose-rs/crates/wifi-densepose-sensing-server/src/adaptive_classifier.rs index b89cb58c..f081cb44 100644 --- a/rust-port/wifi-densepose-rs/crates/wifi-densepose-sensing-server/src/adaptive_classifier.rs +++ b/rust-port/wifi-densepose-rs/crates/wifi-densepose-sensing-server/src/adaptive_classifier.rs @@ -25,7 +25,8 @@ use std::path::{Path, PathBuf}; const N_FEATURES: usize = 15; /// Default class names for backward compatibility with old saved models. -const DEFAULT_CLASSES: &[&str] = &["absent", "present_still", "present_moving", "active"]; +pub const CLASSES: &[&str] = &["absent", "present_still", "present_moving", "active"]; +const DEFAULT_CLASSES: &[&str] = CLASSES; /// Extract extended feature vector from a JSONL frame (features + raw amplitudes). pub fn features_from_frame(frame: &serde_json::Value) -> [f64; N_FEATURES] { diff --git a/rust-port/wifi-densepose-rs/crates/wifi-densepose-sensing-server/src/main.rs b/rust-port/wifi-densepose-rs/crates/wifi-densepose-sensing-server/src/main.rs index 173aa423..b58722ca 100644 --- a/rust-port/wifi-densepose-rs/crates/wifi-densepose-sensing-server/src/main.rs +++ b/rust-port/wifi-densepose-rs/crates/wifi-densepose-sensing-server/src/main.rs @@ -1660,10 +1660,9 @@ async fn windows_wifi_task(state: SharedState, tick_ms: u64) { // Populate persons from the sensing update (Kalman-smoothed via tracker). let raw_persons = derive_pose_from_sensing(&update); let mut last_tracker_instant = s.last_tracker_instant.take(); - let tracked = tracker_bridge::tracker_update( - &mut s.pose_tracker, &mut last_tracker_instant, raw_persons, - ); - s.last_tracker_instant = last_tracker_instant; + let mut last_instant = s.last_tracker_instant.take(); + let tracked = tracker_bridge::tracker_update(&mut s.pose_tracker, &mut last_instant, raw_persons); + s.last_tracker_instant = last_instant; if !tracked.is_empty() { update.persons = Some(tracked); } @@ -1798,10 +1797,9 @@ async fn windows_wifi_fallback_tick(state: &SharedState, seq: u32) { let raw_persons = derive_pose_from_sensing(&update); let mut last_tracker_instant = s.last_tracker_instant.take(); - let tracked = tracker_bridge::tracker_update( - &mut s.pose_tracker, &mut last_tracker_instant, raw_persons, - ); - s.last_tracker_instant = last_tracker_instant; + let mut last_instant = s.last_tracker_instant.take(); + let tracked = tracker_bridge::tracker_update(&mut s.pose_tracker, &mut last_instant, raw_persons); + s.last_tracker_instant = last_instant; if !tracked.is_empty() { update.persons = Some(tracked); } @@ -3615,9 +3613,12 @@ async fn udp_receiver_task(state: SharedState, udp_port: u16) { }; // Feed field model calibration if active (use per-node history for ESP32). + let calib_history = s.node_states.get(&node_id).map(|ns| ns.frame_history.clone()); if let Some(frame_history) = s.node_states.get(&node_id).map(|ns| ns.frame_history.clone()) { if let Some(ref mut fm) = s.field_model { - field_bridge::maybe_feed_calibration(fm, &frame_history); + if let Some(ref history) = calib_history { + field_bridge::maybe_feed_calibration(fm, history); + } } } @@ -3701,9 +3702,9 @@ async fn udp_receiver_task(state: SharedState, udp_port: u16) { let raw_persons = derive_pose_from_sensing(&update); let mut last_tracker_instant = s.last_tracker_instant.take(); - let tracked = tracker_bridge::tracker_update( - &mut s.pose_tracker, &mut last_tracker_instant, raw_persons, - ); + let mut last_instant = s.last_tracker_instant.take(); + let tracked = tracker_bridge::tracker_update(&mut s.pose_tracker, &mut last_instant, raw_persons); + s.last_tracker_instant = last_instant; s.last_tracker_instant = last_tracker_instant; if !tracked.is_empty() { update.persons = Some(tracked); @@ -3865,9 +3866,12 @@ async fn udp_receiver_task(state: SharedState, udp_port: u16) { }; // Feed field model calibration if active (use per-node history for ESP32). + let calib_history = s.node_states.get(&node_id).map(|ns| ns.frame_history.clone()); if let Some(frame_history) = s.node_states.get(&node_id).map(|ns| ns.frame_history.clone()) { if let Some(ref mut fm) = s.field_model { - field_bridge::maybe_feed_calibration(fm, &frame_history); + if let Some(ref history) = calib_history { + field_bridge::maybe_feed_calibration(fm, history); + } } } @@ -3913,9 +3917,9 @@ async fn udp_receiver_task(state: SharedState, udp_port: u16) { let raw_persons = derive_pose_from_sensing(&update); let mut last_tracker_instant = s.last_tracker_instant.take(); - let tracked = tracker_bridge::tracker_update( - &mut s.pose_tracker, &mut last_tracker_instant, raw_persons, - ); + let mut last_instant = s.last_tracker_instant.take(); + let tracked = tracker_bridge::tracker_update(&mut s.pose_tracker, &mut last_instant, raw_persons); + s.last_tracker_instant = last_instant; s.last_tracker_instant = last_tracker_instant; if !tracked.is_empty() { update.persons = Some(tracked); @@ -4051,9 +4055,9 @@ async fn simulated_data_task(state: SharedState, tick_ms: u64) { // Populate persons from the sensing update (Kalman-smoothed via tracker). let raw_persons = derive_pose_from_sensing(&update); let mut last_tracker_instant = s.last_tracker_instant.take(); - let tracked = tracker_bridge::tracker_update( - &mut s.pose_tracker, &mut last_tracker_instant, raw_persons, - ); + let mut last_instant = s.last_tracker_instant.take(); + let tracked = tracker_bridge::tracker_update(&mut s.pose_tracker, &mut last_instant, raw_persons); + s.last_tracker_instant = last_instant; s.last_tracker_instant = last_tracker_instant; if !tracked.is_empty() { update.persons = Some(tracked);