diff --git a/rust-port/wifi-densepose-rs/crates/wifi-densepose-sensing-server/Cargo.toml b/rust-port/wifi-densepose-rs/crates/wifi-densepose-sensing-server/Cargo.toml index a76e6f1c..e76c49fa 100644 --- a/rust-port/wifi-densepose-rs/crates/wifi-densepose-sensing-server/Cargo.toml +++ b/rust-port/wifi-densepose-rs/crates/wifi-densepose-sensing-server/Cargo.toml @@ -25,6 +25,7 @@ axum = { workspace = true } tower-http = { version = "0.5", features = ["fs", "cors", "set-header"] } tokio = { workspace = true, features = ["full", "process"] } futures-util = "0.3" +ruvector-mincut = { workspace = true } # Serialization serde = { workspace = true } diff --git a/rust-port/wifi-densepose-rs/crates/wifi-densepose-sensing-server/src/lib.rs b/rust-port/wifi-densepose-rs/crates/wifi-densepose-sensing-server/src/lib.rs index 9717fdbe..aba864b5 100644 --- a/rust-port/wifi-densepose-rs/crates/wifi-densepose-sensing-server/src/lib.rs +++ b/rust-port/wifi-densepose-rs/crates/wifi-densepose-sensing-server/src/lib.rs @@ -8,8 +8,10 @@ pub mod vital_signs; pub mod rvf_container; pub mod rvf_pipeline; pub mod graph_transformer; +#[allow(dead_code)] pub mod trainer; pub mod dataset; pub mod sona; pub mod sparse_inference; +#[allow(dead_code)] pub mod embedding; 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 029287c1..3eebf257 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 @@ -7,6 +7,7 @@ //! - Serves the static UI files (port 8080) //! //! Replaces both ws_server.py and the Python HTTP server. +#![allow(dead_code)] mod adaptive_classifier; pub mod cli; @@ -1658,9 +1659,11 @@ 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 s.last_tracker_instant, raw_persons, + &mut s.pose_tracker, &mut last_tracker_instant, raw_persons, ); + s.last_tracker_instant = last_tracker_instant; if !tracked.is_empty() { update.persons = Some(tracked); } @@ -1794,9 +1797,11 @@ 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 s.last_tracker_instant, raw_persons, + &mut s.pose_tracker, &mut last_tracker_instant, raw_persons, ); + s.last_tracker_instant = last_tracker_instant; if !tracked.is_empty() { update.persons = Some(tracked); } @@ -3214,7 +3219,7 @@ async fn adaptive_status(State(state): State) -> Json Json(serde_json::json!({ @@ -3600,9 +3605,9 @@ async fn udp_receiver_task(state: SharedState, udp_port: u16) { }; // Feed field model calibration if active (use per-node history for ESP32). - if let Some(ref mut fm) = s.field_model { - if let Some(ns) = s.node_states.get(&node_id) { - field_bridge::maybe_feed_calibration(fm, &ns.frame_history); + 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); } } @@ -3685,9 +3690,11 @@ 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 s.last_tracker_instant, raw_persons, + &mut s.pose_tracker, &mut last_tracker_instant, raw_persons, ); + s.last_tracker_instant = last_tracker_instant; if !tracked.is_empty() { update.persons = Some(tracked); } @@ -3848,9 +3855,9 @@ async fn udp_receiver_task(state: SharedState, udp_port: u16) { }; // Feed field model calibration if active (use per-node history for ESP32). - if let Some(ref mut fm) = s.field_model { - if let Some(ns) = s.node_states.get(&node_id) { - field_bridge::maybe_feed_calibration(fm, &ns.frame_history); + 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); } } @@ -3895,9 +3902,11 @@ 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 s.last_tracker_instant, raw_persons, + &mut s.pose_tracker, &mut last_tracker_instant, raw_persons, ); + s.last_tracker_instant = last_tracker_instant; if !tracked.is_empty() { update.persons = Some(tracked); } @@ -4031,9 +4040,11 @@ 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 s.last_tracker_instant, raw_persons, + &mut s.pose_tracker, &mut last_tracker_instant, raw_persons, ); + s.last_tracker_instant = last_tracker_instant; if !tracked.is_empty() { update.persons = Some(tracked); }