From 284cac8f4034f15e7edeba5c8232a770fc082e20 Mon Sep 17 00:00:00 2001 From: tom barrett Date: Wed, 13 Feb 2019 13:25:00 -0600 Subject: added engine fuel and simplified/unified txrx from server --- src/server/tractorbeam.rs | 30 +++++++++++------------------- 1 file changed, 11 insertions(+), 19 deletions(-) (limited to 'src/server/tractorbeam.rs') diff --git a/src/server/tractorbeam.rs b/src/server/tractorbeam.rs index fc76b7c..b7c11af 100644 --- a/src/server/tractorbeam.rs +++ b/src/server/tractorbeam.rs @@ -1,13 +1,12 @@ extern crate serde_json; use std::collections::HashMap; -use std::io::BufRead; use std::io::Write; use crate::mass::{Mass, MassType}; use crate::modules::navigation::NavigationStatus; use crate::modules::tractorbeam::TractorbeamStatus; -use crate::server::connection::ServerConnection; +use crate::server::connection::{receive, ServerConnection}; #[derive(Serialize, Deserialize, Debug, Clone)] pub struct TractorbeamData { @@ -35,23 +34,16 @@ impl ServerConnection { }; let send = serde_json::to_string(&tractorbeam_data).unwrap() + "\n"; - self.open = match self.stream.write(send.as_bytes()) { - Ok(_result) => true, - Err(_error) => false, - }; - - let mut recv = String::new(); - if let Ok(result) = self.buff_r.read_line(&mut recv) { - match recv.as_bytes() { - b"o\n" => tractorbeam.toggle_pull(), - b"p\n" => tractorbeam.toggle_push(), - b"t\n" => tractorbeam.toggle_bring(5.0), - _ => { - if result == 0 { - self.open = false; - } - } - } + self.open = self.stream.write(send.as_bytes()).is_ok(); + + match receive(&mut self.buff_r) { + Some(recv) => match recv.as_str() { + "o" => tractorbeam.toggle_pull(), + "p" => tractorbeam.toggle_push(), + "t" => tractorbeam.toggle_bring(5.0), + _ => (), + }, + None => self.open = false, } } -- cgit v1.2.3