From 71df3f80fa8ac80707d6cdd53a4df3147874ec7f Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Sun, 31 Jan 2021 23:31:19 -0500 Subject: [PATCH] rename binary, add debugging --- Cargo.toml | 2 +- src/main_zeromq.rs | 52 ++++++++++++++++++++++++++++++++++++++++++--- src/zeromq/point.rs | 1 + 3 files changed, 51 insertions(+), 4 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 48d7e32c9c..97fd1bbb24 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,7 +14,7 @@ name = "cloudcam_points" path = "src/main_points.rs" [[bin]] -name = "cloudcam" +name = "cloudcam_zeromq" path = "src/main_zeromq.rs" [dependencies] diff --git a/src/main_zeromq.rs b/src/main_zeromq.rs index e1c5ae35ee..243c9f7a4a 100644 --- a/src/main_zeromq.rs +++ b/src/main_zeromq.rs @@ -17,6 +17,7 @@ use zeromq::color::Color; use zeromq::point::Point; use zeromq::xy_table::create_xy_table; use zmq::{Error, Socket, Context, DONTWAIT}; +use cgmath::num_traits::Float; const SOCKET_ADDRESS : &'static str = "tcp://127.0.0.1:8888"; @@ -62,6 +63,11 @@ fn main() -> AnyhowResult<()> { let mut color = Color::Blue; let mut points = get_point_cloud(&device, &xy_table)?; + if !points.is_empty() { + //print_pointcloud_maxima(&points); + } else { + println!("> No points?"); + } let mut packet_number = 0; @@ -74,7 +80,7 @@ fn main() -> AnyhowResult<()> { messaging_state = MessagingState::Sending_PointDataBegin; }, MessagingState::Sending_PointDataBegin => { - println!("Begin Sending PCD (points: {})", points.len()); + //println!("Begin Sending PCD (points: {})", points.len()); let message = encode_point_data(&mut points, true); send_message(&socket, &message)?; @@ -87,13 +93,13 @@ fn main() -> AnyhowResult<()> { }, MessagingState::Sending_PointDataContinue => { if packet_number > 20 { - println!("Packet elapsed"); + //println!("Packet elapsed"); packet_number = 0; messaging_state = MessagingState::GrabPointCloud; continue; } - println!("Continue Sending PCD (points: {})", points.len()); + //println!("Continue Sending PCD (points: {})", points.len()); let message = encode_point_data(&mut points, false); send_message(&socket, &message)?; @@ -108,6 +114,12 @@ fn main() -> AnyhowResult<()> { MessagingState::GrabPointCloud => { println!("Grabbing another frame..."); points = get_point_cloud(&device, &xy_table)?; + + if !points.is_empty() { + //print_pointcloud_maxima(&points); + } else { + println!("No points?"); + } messaging_state = MessagingState::Sending_DataLength; continue; }, @@ -178,6 +190,40 @@ fn receive_ack(socket: &Socket) -> AnyhowResult<()> { Ok(()) } +fn print_pointcloud_maxima(points: &Vec) { + let mut max_x = f32::min_value(); + let mut min_x = f32::max_value(); + let mut max_y = f32::min_value(); + let mut min_y = f32::max_value(); + let mut max_z = f32::min_value(); + let mut min_z = f32::max_value(); + + for pt in points.iter() { + if pt.x < min_x { + min_x = pt.x; + } + if pt.x > max_x { + max_x = pt.x; + } + if pt.y < min_y { + min_y = pt.y; + } + if pt.y > max_y { + max_y = pt.y; + } + if pt.z < min_z { + min_z = pt.z; + } + if pt.z > max_z { + max_z = pt.z; + } + } + + // minmax x : -2612.5303, 4902.1655 | y: -3491.938, 1000.92487 | z: 163, 5494 + // minmax x : -2615.739, 4918.527 | y: -3507.2483, 1007.1275 | z: 163, 5518 + println!("minmax x : {}, {} | y: {}, {} | z: {}, {}", min_x, max_x, min_y, max_y, min_z, max_z); +} + /* diff --git a/src/zeromq/point.rs b/src/zeromq/point.rs index ceb99eb732..5baad5f10e 100644 --- a/src/zeromq/point.rs +++ b/src/zeromq/point.rs @@ -4,6 +4,7 @@ use crate::zeromq::color::Color; use rand::Rng; use rand::distributions::Uniform; +#[derive(Debug)] pub struct Point { pub x: f32, pub y: f32,