@@ -46,6 +46,7 @@ fn split(payload: &str) -> Vec<f32> {
4646}
4747
4848fn main_thread (
49+ sync_tx : Sender < bool > ,
4950 data_lock : Arc < RwLock < DataContainer > > ,
5051 print_lock : Arc < RwLock < Vec < Print > > > ,
5152 raw_data_rx : Receiver < Packet > ,
@@ -70,6 +71,7 @@ fn main_thread(
7071
7172 if let Ok ( packet) = raw_data_rx. recv_timeout ( Duration :: from_millis ( 1 ) ) {
7273 if !packet. payload . is_empty ( ) {
74+ sync_tx. send ( true ) . expect ( "unable to send sync tx" ) ;
7375 data. raw_traffic . push ( packet. clone ( ) ) ;
7476 let split_data = split ( & packet. payload ) ;
7577 if data. dataset . is_empty ( ) || failed_format_counter > 10 {
@@ -150,6 +152,7 @@ fn main() {
150152 let ( clear_tx, clear_rx) : ( Sender < bool > , Receiver < bool > ) = mpsc:: channel ( ) ;
151153 let ( names_tx, names_rx) : ( Sender < Vec < String > > , Receiver < Vec < String > > ) = mpsc:: channel ( ) ;
152154 let ( raw_data_tx, raw_data_rx) : ( Sender < Packet > , Receiver < Packet > ) = mpsc:: channel ( ) ;
155+ let ( sync_tx, sync_rx) : ( Sender < bool > , Receiver < bool > ) = mpsc:: channel ( ) ;
153156
154157 let serial_device_lock = device_lock. clone ( ) ;
155158 let serial_devices_lock = devices_lock. clone ( ) ;
@@ -174,6 +177,7 @@ fn main() {
174177 println ! ( "starting main thread.." ) ;
175178 let _main_thread_handler = thread:: spawn ( || {
176179 main_thread (
180+ sync_tx,
177181 main_data_lock,
178182 main_print_lock,
179183 raw_data_rx,
@@ -208,6 +212,15 @@ fn main() {
208212 egui_phosphor:: add_to_fonts ( & mut fonts, egui_phosphor:: Variant :: Regular ) ;
209213 _cc. egui_ctx . set_fonts ( fonts) ;
210214 _cc. egui_ctx . set_visuals ( Visuals :: dark ( ) ) ;
215+
216+ let repaint_signal = _cc. egui_ctx . clone ( ) ;
217+ thread:: spawn ( move || loop {
218+ if let Ok ( _) = sync_rx. recv ( ) {
219+ println ! ( "requested repaint!" ) ;
220+ repaint_signal. request_repaint ( ) ;
221+ }
222+ } ) ;
223+
211224 Ok ( Box :: new ( MyApp :: new (
212225 gui_print_lock,
213226 gui_data_lock,
0 commit comments