diff --git a/src/main.rs b/src/main.rs index da715b9..8590849 100644 --- a/src/main.rs +++ b/src/main.rs @@ -231,20 +231,24 @@ pub mod uart_transact { if self.type_ == TypeEn::TxRx { self.cmd_writer.log(&self.tx_packet).unwrap(); - // println!("write to port: ({:?})", self.tx_packet.as_bytes()); - - match self.port.write(&self.tx_packet.as_bytes()) { + // self.tx_packet.push_str(std::str::from_utf8(b"\x0D\x0A").unwrap()); // CR + LF + println!("write to port: ({:?})", self.tx_packet.as_bytes()); + match self.port.write_all(&self.tx_packet.as_bytes()) { Ok(_) => {}, Err(e) => eprintln!("Error sending data: {}", e), } - let mut reader = BufReader::new(&mut self.port); + // let mut buffer = [0u8; 4096]; + // self.port.read(&mut buffer); + // let s = std::str::from_utf8(&buffer).unwrap().to_string(); + let mut reader = BufReader::new(&mut self.port); let mut s = String::new(); if let Err(err) = reader.read_line(&mut s) { println!("error: {}", err); return Ok(()); } + if s.len() > 0 { self.rx_packet = s.clone(); self.data_writer.log(&s).unwrap(); @@ -321,8 +325,8 @@ fn uart_cmd_interp(cmd: &str) -> String { if args_cnt == 0 { return format!("{}", out); } let cmd_head = &args[0].clone(); - let mut timeout: u64 = 200; - let mut port_set = PortSettingsT::new(9600, 8, "None", 1, "None", timeout).unwrap(); + let mut timeout: u64 = 1000; + let mut port_set = PortSettingsT::new(19200, 8, "Even", 1, "None", timeout).unwrap(); let mut save_data_flag = true; let mut save_cmd_flag = true; let mut trans_type = "TxRx"; @@ -354,9 +358,12 @@ fn uart_cmd_interp(cmd: &str) -> String { else { let port_name = &args[1]; + // let mut perf = Perf::new(); + // perf.start(); let mut uart_trans = UartTransact::new(trans_type, port_name, port_set, save_data_flag, save_cmd_flag).unwrap(); + // perf.stop("time for create port: ", "mks"); let mut data_out = args[2].clone(); data_out.push_str(std::str::from_utf8(b"\x0D\x0A").unwrap()); // CR + LF @@ -463,7 +470,8 @@ fn tcp_server() { fn handle_client(mut stream: TcpStream) { loop { - let mut perf = Perf::new(); + // let mut perf = Perf::new(); + // perf.start(); let mut reader = BufReader::new(&stream); let mut rx_data = String::new(); if let Err(msg) = reader.read_line(&mut rx_data) { @@ -472,9 +480,6 @@ fn handle_client(mut stream: TcpStream) { } // println!("rx_data: ({})", rx_data.trim()); - - perf.start(); - if rx_data.starts_with("send") || rx_data.starts_with("help") || rx_data.starts_with("set_port") || @@ -482,6 +487,7 @@ fn handle_client(mut stream: TcpStream) { let reply = uart_cmd_interp(&rx_data.trim()); // reply.push('\n'); + println!("rx_uart: ({})", reply.trim()); if let Err(msg) = stream.write_all(reply.as_bytes()) { println!("error: failed attempt to send data to client: {}", msg); return; @@ -507,11 +513,9 @@ fn handle_client(mut stream: TcpStream) { if let Err(msg) = stream.write_all(data.as_bytes()) { println!("error: failed attempt to send data to client: {}", msg); return; - } } - - perf.stop("speed: ", "mks"); + // perf.stop("", "mks"); } }