From f99b79feab894a9f64fe38599638e360a394419d Mon Sep 17 00:00:00 2001 From: lambda Date: Mon, 26 Oct 2026 12:40:00 +0300 Subject: [PATCH] feat: track trainer targets in state for reconnect --- src-tauri/src/lib.rs | 3 ++- src-tauri/src/state.rs | 9 +++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 25518c0..d2b4da4 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -16,7 +16,7 @@ use crate::ble::{BleSource, MockSource, SensorSource}; use crate::commands::Command; use crate::device::Device; use crate::device_repo::{repo_from_devices, Repo}; -use crate::state::State; +use crate::state::{State, TrainerTargets}; use crate::telemetry::Telemetry; use btleplug::api::Manager as ApiManager; use btleplug::platform::Manager as BleManager; @@ -227,6 +227,7 @@ pub fn run() { devices: RwLock::new(Vec::new()), trainer: Mutex::new(None), streams: Mutex::new(std::collections::HashMap::new()), + trainer_targets: Mutex::new(TrainerTargets::default()), }); Ok::<(), Box>(()) }) diff --git a/src-tauri/src/state.rs b/src-tauri/src/state.rs index 9f46c97..acece23 100644 --- a/src-tauri/src/state.rs +++ b/src-tauri/src/state.rs @@ -6,6 +6,13 @@ use tauri::async_runtime::JoinHandle; use crate::ble::SensorSource; use crate::device::Device; +/// Last trainer targets, reapplied after reconnect. +#[derive(Default)] +pub struct TrainerTargets { + pub power: Option, // watts + pub cadence: Option, // rpm (raw, as entered by user) +} + pub struct State { pub source: Arc, /// Все найденные при скане устройства (для поиска по id при подключении). @@ -14,4 +21,6 @@ pub struct State { pub trainer: Mutex>, /// Потоки телеметрии по категориям ("hr"/"cadence"/"trainer") pub streams: Mutex>>, + /// Last trainer targets, reapplied after reconnect. + pub trainer_targets: Mutex, }