@@ -8,7 +8,7 @@ extern crate serde;
8
8
use crate :: data:: { DataContainer , GuiOutputDataContainer , Packet , SerialDirection } ;
9
9
use crate :: gui:: { load_gui_settings, GuiCommand , MyApp , RIGHT_PANEL_WIDTH } ;
10
10
use 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 } ;
12
12
use crossbeam_channel:: { select, Receiver , Sender } ;
13
13
use eframe:: egui:: { vec2, ViewportBuilder , Visuals } ;
14
14
use eframe:: { egui, icon_data} ;
@@ -96,19 +96,18 @@ fn main_thread(
96
96
sync_tx. send( true ) . expect( "unable to send sync tx" ) ;
97
97
data. raw_traffic. push( packet. clone( ) ) ;
98
98
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) ;
105
100
106
101
let split_data = split( & packet. payload) ;
107
102
if data. dataset. is_empty( ) || failed_format_counter > 10 {
108
103
// resetting dataset
109
104
data. time = vec![ ] ;
110
105
data. dataset = vec![ vec![ ] ; max( split_data. len( ) , 1 ) ] ;
111
106
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
+ }
112
111
gui_data. plots = ( 0 ..max( split_data. len( ) , 1 ) )
113
112
. map( |i| ( format!( "Column {i}" ) , vec![ ] ) )
114
113
. collect( ) ;
@@ -127,6 +126,10 @@ fn main_thread(
127
126
128
127
// appending data for GUI thread
129
128
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
+ }
130
133
// append plot-points
131
134
for ( ( _label, graph) , data_i) in
132
135
gui_data. plots. iter_mut( ) . zip( & data. dataset)
@@ -200,8 +203,6 @@ fn main_thread(
200
203
201
204
gui_data. prints = raw_data;
202
205
203
- dbg!( & gui_data. prints) ;
204
-
205
206
gui_data. plots = ( 0 ..data. dataset. len( ) )
206
207
. map( |i| ( file_options. names[ i] . to_string( ) , vec![ ] ) )
207
208
. collect( ) ;
@@ -257,7 +258,7 @@ fn main_thread(
257
258
}
258
259
}
259
260
}
260
- default ( Duration :: from_millis( 10 ) ) => {
261
+ default ( Duration :: from_millis( 1 ) ) => {
261
262
// occasionally push data to GUI
262
263
}
263
264
}
@@ -287,6 +288,12 @@ fn main() {
287
288
crossbeam_channel:: unbounded ( ) ;
288
289
let ( sync_tx, sync_rx) : ( Sender < bool > , Receiver < bool > ) = crossbeam_channel:: unbounded ( ) ;
289
290
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
+
290
297
let serial_device_lock = device_lock. clone ( ) ;
291
298
let serial_devices_lock = devices_lock. clone ( ) ;
292
299
let serial_connected_lock = connected_lock. clone ( ) ;
0 commit comments