diff --git a/src/tracker.rs b/src/tracker.rs index 6354d63..2521bb7 100644 --- a/src/tracker.rs +++ b/src/tracker.rs @@ -5,18 +5,18 @@ extern crate vrpn; use bytes::{Bytes, BytesMut}; use std::{ - io::{Read,self}, + io::{self, Read}, net::{SocketAddr, TcpStream}, }; - use vrpn::{ codec::peek_u32, constants::MAGIC_DATA, cookie::check_ver_nonfile_compatible, message::MessageSize, sync_io::{read_cookie, write_cookie}, - CookieData, Message, Result, SequencedGenericMessage, Unbuffer, + tracker::PoseReport, + unbuffer, CookieData, Message, Result, SequencedGenericMessage, Unbuffer, }; #[derive(Component)] @@ -73,24 +73,19 @@ impl Tracker { } pub fn update(&mut self) -> vrpn::Result<()> { - - - let mut buf = BytesMut::new(); // Read the message header and padding buf.resize(24, 0); self.stream.read_exact(buf.as_mut())?; - // Peek the size field, to compute the MessageSize. - // let buf = buf.freeze(); + // let buf = buf.freeze(); let total_len = peek_u32(&buf.clone().freeze())?.unwrap(); // let total_len = peek_u32(&buf)?.unwrap(); let size = MessageSize::from_length_field(total_len); - // Read the body of the message let mut body_buf = BytesMut::new(); @@ -99,14 +94,20 @@ impl Tracker { // Combine the body with the header buf.extend_from_slice(&body_buf[..]); - let mut buf = buf.freeze(); + let mut buf = buf.clone().freeze(); + + // eprintln!("{:?}", Message::from(unbuffered)); + // info!("{:?}", Message::from(unbuffered)); + + let pose = PoseReport::unbuffer_ref(&mut body_buf.clone().freeze())?; + info!("{:?}", pose); // Unbuffer the message. - let unbuffered = SequencedGenericMessage::unbuffer_ref(&mut buf)?; - - // eprintln!("{:?}", Message::from(unbuffered)); - info!("{:?}", Message::from(unbuffered)); - + // let unbuffered = SequencedGenericMessage::unbuffer_ref(&mut buf)?; + + // let message = Message::from(unbuffered); + // info!("{:?}",message.header); + Ok(()) } } @@ -115,10 +116,8 @@ pub fn setup_tracker(mut commands: Commands) { commands.spawn(Tracker::from_info("127.0.0.1", 3883)); } -pub fn update_tracker(mut query:Query<&mut Tracker>) -{ +pub fn update_tracker(mut query: Query<&mut Tracker>) { for mut tracker in query.iter_mut() { - tracker.update(); // tracker.connection.poll_endpoints();