Improve relay initialization
This commit is contained in:
parent
5e7d5466e8
commit
ca6988b01f
3 changed files with 19 additions and 9 deletions
src
11
src/main.rs
11
src/main.rs
|
@ -64,9 +64,6 @@ async fn main() -> Result<(), std::io::Error> {
|
|||
|
||||
init_logging(&settings.logging.level)?;
|
||||
|
||||
let mut pfd: Option<PiFaceDigital> = None;
|
||||
let drivers = settings.relays_make_drivers(&mut pfd)?;
|
||||
|
||||
let pool = db::init(&settings.database)
|
||||
.await
|
||||
.map_err(EmgauwaError::from)?;
|
||||
|
@ -105,6 +102,12 @@ async fn main() -> Result<(), std::io::Error> {
|
|||
|
||||
let this = Controller::from_db_model(&mut conn, db_controller).map_err(EmgauwaError::from)?;
|
||||
|
||||
let now = chrono::Local::now().time();
|
||||
let initial_states: Vec<bool> = this.relays.iter().map(|r| r.active_schedule.is_on(&now)).collect();
|
||||
|
||||
let mut pfd: Option<PiFaceDigital> = None;
|
||||
let drivers = settings.relays_make_drivers(&mut pfd, initial_states)?;
|
||||
|
||||
let url = format!(
|
||||
"ws://{}:{}/api/v1/ws/controllers",
|
||||
settings.server.host, settings.server.port
|
||||
|
@ -112,6 +115,8 @@ async fn main() -> Result<(), std::io::Error> {
|
|||
|
||||
let app_state = app_state::AppState::new(pool.clone(), this, settings, drivers).start();
|
||||
|
||||
log::info!("Starting main loops");
|
||||
|
||||
let _ = tokio::join!(
|
||||
tokio::spawn(run_relays_loop(app_state.clone())),
|
||||
tokio::spawn(run_ws_loop(pool.clone(), app_state.clone(), url)),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue