update ignore
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
use crate::serial_core::calibration_session::CalibrationSession;
|
||||
use crate::serial_core::calibration_session::SharedCalibrationSession;
|
||||
use crate::serial_core::codecs::tactile_a::{
|
||||
export_recording_csv, TactileACodec, TactileACsvImporter, TactileAHandler,
|
||||
};
|
||||
@@ -71,11 +71,32 @@ struct SerialSession {
|
||||
current_record: SharedTactileRecording,
|
||||
}
|
||||
|
||||
pub struct CalibrationRuntime {
|
||||
pub session: SharedCalibrationSession,
|
||||
pub cancel: CancellationToken,
|
||||
pub task: JoinHandle<()>,
|
||||
}
|
||||
|
||||
#[derive(Default)]
|
||||
pub struct SerialConnectionState {
|
||||
session: Mutex<Option<SerialSession>>,
|
||||
last_record: Mutex<Option<SharedTactileRecording>>,
|
||||
pub calibration_session: Mutex<Option<CalibrationSession>>,
|
||||
pub calibration_runtime: Mutex<Option<CalibrationRuntime>>,
|
||||
}
|
||||
|
||||
impl SerialConnectionState {
|
||||
pub(crate) fn has_active_serial_session(&self) -> Result<bool, SerialError> {
|
||||
let session = self.session.lock().map_err(|_| SerialError::StateError)?;
|
||||
Ok(session.is_some())
|
||||
}
|
||||
|
||||
pub(crate) fn has_active_calibration(&self) -> Result<bool, SerialError> {
|
||||
let runtime = self
|
||||
.calibration_runtime
|
||||
.lock()
|
||||
.map_err(|_| SerialError::StateError)?;
|
||||
Ok(runtime.is_some())
|
||||
}
|
||||
}
|
||||
|
||||
#[tauri::command]
|
||||
@@ -100,11 +121,8 @@ pub async fn serial_connect(
|
||||
return Err(SerialError::InvalidConfig);
|
||||
}
|
||||
|
||||
{
|
||||
let session = state.session.lock().map_err(|_| SerialError::StateError)?;
|
||||
if session.is_some() {
|
||||
return Err(SerialError::AlreadyConnected);
|
||||
}
|
||||
if state.has_active_serial_session()? || state.has_active_calibration()? {
|
||||
return Err(SerialError::AlreadyConnected);
|
||||
}
|
||||
|
||||
let cancel = CancellationToken::new();
|
||||
|
||||
Reference in New Issue
Block a user