something wrong with transmit throw AC4

This commit is contained in:
Danila Gamkov 2025-03-07 16:17:32 +03:00
parent ac7c6ba356
commit aa75967bdf

View File

@ -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");
}
}