transmit-receive data working correct now. Fix bug with port set settings

This commit is contained in:
Danila Gamkov 2025-03-11 09:06:32 +03:00
parent aa75967bdf
commit 45f145ca2f

View File

@ -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();