@@ -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