Added restart settings.

This commit is contained in:
2025-08-15 09:52:56 +02:00
parent ea1d13012e
commit 5537a991d3
5 changed files with 23 additions and 2 deletions

View File

@@ -1,7 +1,7 @@
use log::{error, info};
use tokio::select;
use tokio::sync::mpsc::Receiver;
use tokio::sync::mpsc::{Sender, Receiver};
use std::sync::atomic::{AtomicBool, Ordering};
use std::sync::{Arc, Mutex};
@@ -15,16 +15,26 @@ use crate::signals::FrequencySignal;
pub async fn communicate_with_hardware(
mut run_impedancemeter_rx: Receiver<FrequencySignal>,
run_impedancemeter_tx: Sender<FrequencySignal>,
magnitude: Arc<Mutex<f32>>,
phase: Arc<Mutex<f32>>,
magnitude_series: Arc<Mutex<TimeSeriesPlot>>,
phase_series: Arc<Mutex<TimeSeriesPlot>>,
connected: Arc<AtomicBool>,
) {
#[derive(Default)]
struct Settings {
frequency: Option<FrequencySignal>,
}
let mut settings = Settings::default();
loop {
let workbook_client = match WorkbookClient::new() {
Ok(client) => {
info!("Connected to hardware successfully.");
if let Some(frequency) = settings.frequency {
run_impedancemeter_tx.send(frequency).await.unwrap();
}
connected.store(true, Ordering::Relaxed);
client
},
@@ -68,6 +78,7 @@ pub async fn communicate_with_hardware(
if let Err(e) = workbook_client.start_impedancemeter(freq).await {
error!("Failed to start impedancemeter: {:?}", e);
} else {
settings.frequency = Some(FrequencySignal::Start(freq));
info!("Impedancemeter started at frequency: {}", freq);
}
},
@@ -75,6 +86,7 @@ pub async fn communicate_with_hardware(
if let Err(e) = workbook_client.stop_impedancemeter().await {
error!("Failed to stop impedancemeter: {:?}", e);
} else {
settings.frequency = Some(FrequencySignal::Stop);
info!("Impedancemeter stopped.");
}
},