mirror of
https://github.com/hubaldv/bioz-host-rs.git
synced 2026-03-10 01:20:31 +00:00
Inluded frequency selector at start.
This commit is contained in:
21
src/app.rs
21
src/app.rs
@@ -4,15 +4,15 @@ use std::sync::atomic::{AtomicBool, Ordering};
|
||||
use atomic_float::AtomicF32;
|
||||
use tokio::{sync::mpsc::{Sender}};
|
||||
|
||||
use eframe::egui::{self, Color32, DragValue, Key, Layout, Modifiers, };
|
||||
use eframe::egui::{self, Color32, DragValue, Key, Label, Layout, Modifiers};
|
||||
use egui_plot::{Corner, Legend, Line, Plot, PlotPoints, Points, PlotBounds};
|
||||
|
||||
use crate::plot::TimeSeriesPlot;
|
||||
|
||||
use crate::signals::FrequencySignal;
|
||||
use crate::signals::SingleFrequencySignal;
|
||||
|
||||
pub struct App {
|
||||
run_impedancemeter_tx: Sender<FrequencySignal>,
|
||||
run_impedancemeter_tx: Sender<SingleFrequencySignal>,
|
||||
pub magnitude: Arc<Mutex<f32>>,
|
||||
pub phase: Arc<Mutex<f32>>,
|
||||
pub magnitude_series: Arc<Mutex<TimeSeriesPlot>>,
|
||||
@@ -20,10 +20,11 @@ pub struct App {
|
||||
pub connected: Arc<AtomicBool>,
|
||||
pub on: bool,
|
||||
pub data_frequency: Arc<AtomicF32>,
|
||||
pub single_frequency: u32
|
||||
}
|
||||
|
||||
impl App {
|
||||
pub fn new(run_impedancemeter_tx: Sender<FrequencySignal>) -> Self {
|
||||
pub fn new(run_impedancemeter_tx: Sender<SingleFrequencySignal>) -> Self {
|
||||
let app = App {
|
||||
run_impedancemeter_tx,
|
||||
magnitude: Arc::new(Mutex::new(0.0)),
|
||||
@@ -33,6 +34,7 @@ impl App {
|
||||
connected: Arc::new(AtomicBool::new(false)),
|
||||
on: true,
|
||||
data_frequency: Arc::new(AtomicF32::new(0.0)),
|
||||
single_frequency: 50000,
|
||||
};
|
||||
app.update_start_stop();
|
||||
app
|
||||
@@ -41,12 +43,12 @@ impl App {
|
||||
pub fn update_start_stop(&self) {
|
||||
match self.on {
|
||||
true => {
|
||||
if let Err(e) = self.run_impedancemeter_tx.try_send(FrequencySignal::Start(0.0)) {
|
||||
if let Err(e) = self.run_impedancemeter_tx.try_send(SingleFrequencySignal::Start(self.single_frequency)) {
|
||||
eprintln!("Failed to send start command: {:?}", e);
|
||||
}
|
||||
},
|
||||
false => {
|
||||
if let Err(e) = self.run_impedancemeter_tx.try_send(FrequencySignal::Stop) {
|
||||
if let Err(e) = self.run_impedancemeter_tx.try_send(SingleFrequencySignal::Stop) {
|
||||
eprintln!("Failed to send stop command: {:?}", e);
|
||||
}
|
||||
},
|
||||
@@ -68,6 +70,13 @@ impl eframe::App for App {
|
||||
|
||||
ui.separator();
|
||||
|
||||
ui.add_enabled_ui(!self.on, |ui| {
|
||||
ui.add(DragValue::new(&mut self.single_frequency));
|
||||
ui.add(Label::new("Hz"));
|
||||
});
|
||||
|
||||
ui.separator();
|
||||
|
||||
if ui.add_enabled(connected, toggle_start_stop(&mut self.on)).changed() {
|
||||
self.update_start_stop();
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user