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