@@ -8,7 +8,7 @@ extern crate serde;
88use  crate :: data:: { DataContainer ,  GuiOutputDataContainer ,  Packet ,  SerialDirection } ; 
99use  crate :: gui:: { load_gui_settings,  GuiCommand ,  MyApp ,  RIGHT_PANEL_WIDTH } ; 
1010use  crate :: io:: { open_from_csv,  save_to_csv,  FileOptions } ; 
11- use  crate :: serial:: { load_serial_settings,  serial_thread,  Device } ; 
11+ use  crate :: serial:: { load_serial_settings,  serial_devices_thread ,   serial_thread,  Device } ; 
1212use  crossbeam_channel:: { select,  Receiver ,  Sender } ; 
1313use  eframe:: egui:: { vec2,  ViewportBuilder ,  Visuals } ; 
1414use  eframe:: { egui,  icon_data} ; 
@@ -96,19 +96,18 @@ fn main_thread(
9696 sync_tx. send( true ) . expect( "unable to send sync tx" ) ; 
9797 data. raw_traffic. push( packet. clone( ) ) ; 
9898
99-  if  let  Ok ( mut  gui_data)  = data_lock. write( )  { 
100-  if  let  Some ( text)  = console_text( show_timestamps,  show_sent_cmds,  & packet)  { 
101-  // append prints 
102-  gui_data. prints. push( text) ; 
103-  } 
104-  } 
99+  let  text = console_text( show_timestamps,  show_sent_cmds,  & packet) ; 
105100
106101 let  split_data = split( & packet. payload) ; 
107102 if  data. dataset. is_empty( )  || failed_format_counter > 10  { 
108103 // resetting dataset 
109104 data. time = vec![ ] ; 
110105 data. dataset = vec![ vec![ ] ;  max( split_data. len( ) ,  1 ) ] ; 
111106 if  let  Ok ( mut  gui_data)  = data_lock. write( )  { 
107+  // append prints 
108+  if  let  Some ( text)  = text { 
109+  gui_data. prints. push( text) ; 
110+  } 
112111 gui_data. plots = ( 0 ..max( split_data. len( ) ,  1 ) ) 
113112 . map( |i| ( format!( "Column {i}" ) ,  vec![ ] ) ) 
114113 . collect( ) ; 
@@ -127,6 +126,10 @@ fn main_thread(
127126
128127 // appending data for GUI thread 
129128 if  let  Ok ( mut  gui_data)  = data_lock. write( )  { 
129+  // append prints 
130+  if  let  Some ( text)  = text { 
131+  gui_data. prints. push( text) ; 
132+  } 
130133 // append plot-points 
131134 for  ( ( _label,  graph) ,  data_i)  in
132135 gui_data. plots. iter_mut( ) . zip( & data. dataset) 
@@ -200,8 +203,6 @@ fn main_thread(
200203
201204 gui_data. prints = raw_data; 
202205
203-  dbg!( & gui_data. prints) ; 
204- 
205206 gui_data. plots = ( 0 ..data. dataset. len( ) ) 
206207 . map( |i| ( file_options. names[ i] . to_string( ) ,  vec![ ] ) ) 
207208 . collect( ) ; 
@@ -257,7 +258,7 @@ fn main_thread(
257258 } 
258259 } 
259260 } 
260-  default ( Duration :: from_millis( 10 ) )  => { 
261+  default ( Duration :: from_millis( 1 ) )  => { 
261262 // occasionally push data to GUI 
262263 } 
263264 } 
@@ -287,6 +288,12 @@ fn main() {
287288 crossbeam_channel:: unbounded ( ) ; 
288289 let  ( sync_tx,  sync_rx) :  ( Sender < bool > ,  Receiver < bool > )  = crossbeam_channel:: unbounded ( ) ; 
289290
291+  let  serial_2_devices_lock = devices_lock. clone ( ) ; 
292+ 
293+  let  _serial_devices_thread_handler = thread:: spawn ( || { 
294+  serial_devices_thread ( serial_2_devices_lock) ; 
295+  } ) ; 
296+ 
290297 let  serial_device_lock = device_lock. clone ( ) ; 
291298 let  serial_devices_lock = devices_lock. clone ( ) ; 
292299 let  serial_connected_lock = connected_lock. clone ( ) ; 
0 commit comments