diff --git a/src/main.rs b/src/main.rs index 8590849..bd1a330 100644 --- a/src/main.rs +++ b/src/main.rs @@ -204,15 +204,22 @@ pub mod uart_transact { filename = format!("../log/commands_{}.log", Perf::cur_time("%Y%m%d")); let cmd_writer = Logger::new(filename.clone(), save_data_flag)?; - let port = serialport::new(port_name, port_settings.baud_rate) - .timeout(Duration::from_millis(port_settings.timeout_msec)).open().unwrap(); + let mut port = Self::set_port_settings(port_name, + port_settings.clone()).unwrap(); let tx_packet = String::new(); let rx_packet = String::new(); - Ok( Self { type_, port_name: port_name.to_string(), port_settings, save_data_flag, save_cmd_flag, - data_writer, cmd_writer, - port, tx_packet, rx_packet, + Ok( Self { type_, + port_name: port_name.to_string(), + port_settings, + save_data_flag, + save_cmd_flag, + data_writer, + cmd_writer, + port, + tx_packet, + rx_packet, }) } @@ -231,13 +238,13 @@ pub mod uart_transact { if self.type_ == TypeEn::TxRx { self.cmd_writer.log(&self.tx_packet).unwrap(); - // 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()) { + match self.port.write(&self.tx_packet.as_bytes()) { Ok(_) => {}, Err(e) => eprintln!("Error sending data: {}", e), } + self.port.flush().unwrap(); + // let mut buffer = [0u8; 4096]; // self.port.read(&mut buffer); // let s = std::str::from_utf8(&buffer).unwrap().to_string();