Skip to content

Commit 52a5e7e

Browse files
authored
Merge pull request #28 from lonesometraveler/refactor_serial_2
Refactor serial_write
2 parents 2f002ad + 82f8e51 commit 52a5e7e

File tree

1 file changed

+13
-30
lines changed

1 file changed

+13
-30
lines changed

src/serial.rs

Lines changed: 13 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,12 @@ use std::sync::mpsc::Receiver;
66
use std::sync::{Arc, RwLock};
77
use std::time::{Duration, Instant};
88

9-
fn serial_write(port: &mut BufReader<Box<dyn SerialPort>>, cmd: &[u8]) -> bool {
9+
fn serial_write(
10+
port: &mut BufReader<Box<dyn SerialPort>>,
11+
cmd: &[u8],
12+
) -> Result<usize, std::io::Error> {
1013
let write_port = port.get_mut();
11-
match write_port.write(cmd) {
12-
Ok(_) => {
13-
let mut response = "".to_string();
14-
serial_read(port, &mut response);
15-
println!("sent a command!");
16-
if response.contains("OK") {
17-
true
18-
} else {
19-
println!("cmd not acknowledged!!!");
20-
false
21-
}
22-
}
23-
Err(_) => false,
24-
}
14+
write_port.write(cmd)
2515
}
2616

2717
fn serial_read(port: &mut BufReader<Box<dyn SerialPort>>, serial_buf: &mut String) -> bool {
@@ -161,21 +151,14 @@ pub fn serial_thread(
161151

162152
// perform writes
163153
if let Ok(cmd) = send_rx.recv_timeout(Duration::from_millis(1)) {
164-
let output = cmd.as_bytes();
165-
serial_write(&mut port, output);
166-
if let Ok(mut write_guard) = raw_data_lock.write() {
167-
match std::str::from_utf8(output) {
168-
Ok(v) => {
169-
let packet = Packet {
170-
time: Instant::now().duration_since(t_zero).as_millis(),
171-
direction: SerialDirection::Send,
172-
payload: v.to_string(),
173-
};
174-
write_guard.push(packet);
175-
}
176-
Err(_) => {
177-
// println!("output encode fail");
178-
}
154+
if serial_write(&mut port, cmd.as_bytes()).is_ok() {
155+
if let Ok(mut write_guard) = raw_data_lock.write() {
156+
let packet = Packet {
157+
time: Instant::now().duration_since(t_zero).as_millis(),
158+
direction: SerialDirection::Send,
159+
payload: cmd,
160+
};
161+
write_guard.push(packet);
179162
}
180163
}
181164
}

0 commit comments

Comments
 (0)