@@ -6,22 +6,12 @@ use std::sync::mpsc::Receiver;
6
6
use std:: sync:: { Arc , RwLock } ;
7
7
use std:: time:: { Duration , Instant } ;
8
8
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 > {
10
13
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)
25
15
}
26
16
27
17
fn serial_read ( port : & mut BufReader < Box < dyn SerialPort > > , serial_buf : & mut String ) -> bool {
@@ -161,21 +151,14 @@ pub fn serial_thread(
161
151
162
152
// perform writes
163
153
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) ;
179
162
}
180
163
}
181
164
}
0 commit comments