diff --git a/dashboard/src/battery.rs b/dashboard/src/battery.rs index 1f6570a..d79b483 100644 --- a/dashboard/src/battery.rs +++ b/dashboard/src/battery.rs @@ -1,20 +1,25 @@ -use slint::Weak; +use std::{thread::sleep, time::Duration}; + use tokio::sync::mpsc::UnboundedSender; -use crate::{error::AppError, messages::EventMessage, ui::AppWindow}; +use crate::{error::AppError, messages::EventMessage}; -pub async fn battery_listener( - app_weak: Weak, - mut s2c_tx: UnboundedSender, -) -> Result<(), AppError> { +pub async fn battery_listener(s2c_tx: UnboundedSender) -> Result<(), AppError> { let manager = ::battery::Manager::new()?; - let battery = manager + let mut battery = manager .batteries()? .next() .ok_or_else(|| AppError::NoBattery)??; - dbg!(battery); + loop { + println!("huh?"); + battery.refresh()?; - Ok(()) + s2c_tx + .send(EventMessage::BatteryPercentage(battery.state_of_charge())) + .ok(); + + sleep(Duration::from_secs(30)); + } } diff --git a/dashboard/src/main.rs b/dashboard/src/main.rs index 89eb1c3..a3f8384 100644 --- a/dashboard/src/main.rs +++ b/dashboard/src/main.rs @@ -34,7 +34,9 @@ async fn main() -> Result<(), AppError> { tokio::spawn({ let s2c_tx = s2c_tx.clone(); - battery::battery_listener(app.as_weak(), s2c_tx) + async move { + battery::battery_listener(s2c_tx).await.unwrap(); + } }); // listen for data