Fix some state bugs which caused fan pulsing

This commit is contained in:
NGnius (Graham) 2022-09-02 21:08:03 -04:00
parent 9408c16461
commit 603da6e564
2 changed files with 14 additions and 2 deletions

2
backend-rs/Cargo.lock generated
View file

@ -106,7 +106,7 @@ dependencies = [
[[package]]
name = "fantastic-rs"
version = "0.3.1"
version = "0.3.3"
dependencies = [
"log",
"serde",

View file

@ -56,9 +56,11 @@ impl ControlRuntime {
continue;
}
};
if settings.enable {
Self::on_set_enable(&settings, &state);
}
}
}
start_time = Instant::now();
{ // save to file
let state = match runtime_state.read() {
@ -82,6 +84,15 @@ impl ControlRuntime {
log::error!("SettingsJson.save({}) error: {}", settings_path(&state.home).display(), e);
}
Self::on_set_enable(&settings, &state);
drop(state);
let mut state = match runtime_state.write() {
Ok(x) => x,
Err(e) => {
log::error!("runtime failed to acquire state write lock: {}", e);
continue;
}
};
state.dirty = false;
}
}
{ // fan control
@ -200,6 +211,7 @@ impl ControlRuntime {
else:
return 0.5
*/
// step fan, what are you doing?
if let Some(index) = index {
settings.curve[index].y
} else {