Skip to content

Commit f0770c4

Browse files
authored
Merge branch 'main' into add_color_picker
2 parents f41cf1d + 67bf086 commit f0770c4

File tree

2 files changed

+13
-6
lines changed

2 files changed

+13
-6
lines changed

src/gui.rs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@ use crate::toggle::toggle;
2525
use crate::FileOptions;
2626
use crate::{APP_INFO, PREFS_KEY};
2727

28-
const MAX_FPS: f64 = 60.0;
29-
3028
const DEFAULT_FONT_ID: FontId = FontId::new(14.0, FontFamily::Monospace);
3129
pub const RIGHT_PANEL_WIDTH: f32 = 350.0;
3230
const BAUD_RATES: &[u32] = &[
@@ -494,8 +492,6 @@ impl MyApp {
494492
self.command = self.history[self.index].clone();
495493
}
496494
}
497-
498-
ctx.request_repaint()
499495
});
500496
ui.add_space(left_border);
501497
});
@@ -979,8 +975,6 @@ impl eframe::App for MyApp {
979975
eprintln!("Image saved to {path:?}.");
980976
}
981977
}
982-
983-
std::thread::sleep(Duration::from_millis((1000.0 / MAX_FPS) as u64));
984978
}
985979

986980
fn save(&mut self, _storage: &mut dyn Storage) {

src/main.rs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ fn split(payload: &str) -> Vec<f32> {
4646
}
4747

4848
fn 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>,
@@ -65,6 +66,7 @@ fn main_thread(
6566

6667
if let Ok(packet) = raw_data_rx.recv_timeout(Duration::from_millis(1)) {
6768
if !packet.payload.is_empty() {
69+
sync_tx.send(true).expect("unable to send sync tx");
6870
data.raw_traffic.push(packet.clone());
6971
let split_data = split(&packet.payload);
7072
if data.dataset.is_empty() || failed_format_counter > 10 {
@@ -134,6 +136,7 @@ fn main() {
134136
let (send_tx, send_rx): (Sender<String>, Receiver<String>) = mpsc::channel();
135137
let (clear_tx, clear_rx): (Sender<bool>, Receiver<bool>) = mpsc::channel();
136138
let (raw_data_tx, raw_data_rx): (Sender<Packet>, Receiver<Packet>) = mpsc::channel();
139+
let (sync_tx, sync_rx): (Sender<bool>, Receiver<bool>) = mpsc::channel();
137140

138141
let serial_device_lock = device_lock.clone();
139142
let serial_devices_lock = devices_lock.clone();
@@ -158,6 +161,7 @@ fn main() {
158161
println!("starting main thread..");
159162
let _main_thread_handler = thread::spawn(|| {
160163
main_thread(
164+
sync_tx,
161165
main_data_lock,
162166
main_print_lock,
163167
raw_data_rx,
@@ -191,6 +195,15 @@ fn main() {
191195
egui_phosphor::add_to_fonts(&mut fonts, egui_phosphor::Variant::Regular);
192196
_cc.egui_ctx.set_fonts(fonts);
193197
_cc.egui_ctx.set_visuals(Visuals::dark());
198+
199+
let repaint_signal = _cc.egui_ctx.clone();
200+
thread::spawn(move || loop {
201+
if let Ok(_) = sync_rx.recv() {
202+
println!("requested repaint!");
203+
repaint_signal.request_repaint();
204+
}
205+
});
206+
194207
Ok(Box::new(MyApp::new(
195208
gui_print_lock,
196209
gui_data_lock,

0 commit comments

Comments
 (0)