|
|
|
|
@ -229,6 +229,22 @@ fn get_workout(path: String) -> Result<workout::Workout, String> {
|
|
|
|
|
workout::read_workout(&path).map_err(|e| e.to_string())
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// Задать FTP гонщика (Вт). Используется для перевода %FTP → ватты.
|
|
|
|
|
#[tauri::command]
|
|
|
|
|
fn set_ftp(app: AppHandle, ftp: u16) -> Result<(), String> {
|
|
|
|
|
if ftp == 0 {
|
|
|
|
|
return Err("FTP должен быть больше нуля".to_string());
|
|
|
|
|
}
|
|
|
|
|
*app.state::<State>().ftp.lock().unwrap() = ftp;
|
|
|
|
|
Ok(())
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// Текущий FTP гонщика (Вт).
|
|
|
|
|
#[tauri::command]
|
|
|
|
|
fn get_ftp(app: AppHandle) -> u16 {
|
|
|
|
|
*app.state::<State>().ftp.lock().unwrap()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// Why the watchdog loop stopped consuming a stream.
|
|
|
|
|
enum StreamOutcome {
|
|
|
|
|
/// The stream ended (peripheral disconnected / notifications closed).
|
|
|
|
|
@ -386,6 +402,7 @@ pub fn run() {
|
|
|
|
|
trainer: Mutex::new(None),
|
|
|
|
|
streams: Mutex::new(std::collections::HashMap::new()),
|
|
|
|
|
trainer_state: Mutex::new(TrainerState::default()),
|
|
|
|
|
ftp: Mutex::new(state::DEFAULT_FTP),
|
|
|
|
|
});
|
|
|
|
|
Ok::<(), Box<dyn std::error::Error>>(())
|
|
|
|
|
})
|
|
|
|
|
@ -398,7 +415,9 @@ pub fn run() {
|
|
|
|
|
trainer_start,
|
|
|
|
|
trainer_stop,
|
|
|
|
|
list_workouts,
|
|
|
|
|
get_workout
|
|
|
|
|
get_workout,
|
|
|
|
|
set_ftp,
|
|
|
|
|
get_ftp
|
|
|
|
|
])
|
|
|
|
|
.run(tauri::generate_context!())
|
|
|
|
|
.expect("error while running tauri application");
|
|
|
|
|
|