diff --git a/Cargo.lock b/Cargo.lock index 637c455..6b6c5dc 100644 Binary files a/Cargo.lock and b/Cargo.lock differ diff --git a/src/drivers/mod.rs b/src/drivers/mod.rs index 9c0c971..35d9754 100644 --- a/src/drivers/mod.rs +++ b/src/drivers/mod.rs @@ -2,6 +2,7 @@ pub use gpio::GpioDriver; pub use null::NullDriver; pub use piface::PiFaceDriver; use serde::{Deserialize, Deserializer}; + use crate::errors::EmgauwaControllerError; mod gpio; diff --git a/src/drivers/piface.rs b/src/drivers/piface.rs index 4a0baf0..0af161a 100644 --- a/src/drivers/piface.rs +++ b/src/drivers/piface.rs @@ -11,9 +11,11 @@ pub struct PiFaceDriver { impl PiFaceDriver { pub fn new(pin: u8, pfd: &Option) -> Result { - let pfd = pfd.as_ref().ok_or(EmgauwaControllerError::Hardware(String::from( - "PiFaceDigital not initialized", - )))?; + let pfd = pfd + .as_ref() + .ok_or(EmgauwaControllerError::Hardware(String::from( + "PiFaceDigital not initialized", + )))?; let pfd_pin = pfd.get_output_pin(pin)?; Ok(Self { pfd_pin }) } diff --git a/src/errors.rs b/src/errors.rs index 3916180..a13f4b1 100644 --- a/src/errors.rs +++ b/src/errors.rs @@ -1,10 +1,10 @@ use std::fmt::{Display, Formatter}; + +use emgauwa_common::errors::EmgauwaError; use rppal::gpio; use rppal_mcp23s17::Mcp23s17Error; use rppal_pfd::PiFaceDigitalError; -use emgauwa_common::errors::EmgauwaError; - #[derive(Debug)] pub enum EmgauwaControllerError { Hardware(String), diff --git a/src/main.rs b/src/main.rs index bbb1a79..f9d70eb 100644 --- a/src/main.rs +++ b/src/main.rs @@ -15,11 +15,11 @@ use crate::ws::run_ws_loop; mod app_state; mod drivers; +mod errors; mod relay_loop; mod settings; mod utils; mod ws; -mod errors; async fn create_this_controller( conn: &mut PoolConnection, @@ -80,14 +80,10 @@ async fn main() -> Result<(), std::io::Error> { }; for relay in &settings.relays { - if DbRelay::get_by_controller_and_num( - &mut conn, - &db_controller, - relay.number, - ) - .await - .map_err(EmgauwaError::from)? - .is_none() + if DbRelay::get_by_controller_and_num(&mut conn, &db_controller, relay.number) + .await + .map_err(EmgauwaError::from)? + .is_none() { create_this_relay(&mut conn, &db_controller, relay) .await @@ -103,7 +99,11 @@ 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 = this.relays.iter().map(|r| r.active_schedule.is_on(&now)).collect(); + let initial_states: Vec = this + .relays + .iter() + .map(|r| r.active_schedule.is_on(&now)) + .collect(); let mut pfd: Option = None; let drivers = settings.relays_make_drivers(&mut pfd, initial_states)?; diff --git a/src/settings.rs b/src/settings.rs index 15d91bd..f4f83fd 100644 --- a/src/settings.rs +++ b/src/settings.rs @@ -2,6 +2,7 @@ use emgauwa_common::errors::EmgauwaError; use emgauwa_common::settings; use rppal_pfd::PiFaceDigital; use serde_derive::Deserialize; + use crate::drivers; #[derive(Clone, Debug, Deserialize)] @@ -69,13 +70,17 @@ impl Settings { &self, pfd: &mut Option, initial_states: Vec, - ) -> Result>, EmgauwaError> { + ) -> Result>, EmgauwaError> { let mut drivers = Vec::new(); - let result: Result<(), EmgauwaError> = self.relays.iter().zip(initial_states).try_for_each(|(relay, state)| { - let driver = relay.make_driver(pfd, state)?; - drivers.push(driver); - Ok(()) - }); + let result: Result<(), EmgauwaError> = + self.relays + .iter() + .zip(initial_states) + .try_for_each(|(relay, state)| { + let driver = relay.make_driver(pfd, state)?; + drivers.push(driver); + Ok(()) + }); result?; Ok(drivers) } diff --git a/src/ws/mod.rs b/src/ws/mod.rs index a79b13c..bdb7e07 100644 --- a/src/ws/mod.rs +++ b/src/ws/mod.rs @@ -7,8 +7,8 @@ use emgauwa_common::types::ControllerWsAction; use futures::{future, pin_mut, SinkExt, StreamExt}; use sqlx::{Pool, Sqlite}; use tokio::time; -use tokio_tungstenite::tungstenite::Message; use tokio_tungstenite::connect_async; +use tokio_tungstenite::tungstenite::Message; use crate::app_state::AppState; use crate::utils::{app_state_get_relay_notifier, app_state_get_this}; @@ -89,4 +89,4 @@ async fn read_app_state( )) })?; } -} \ No newline at end of file +}