This commit is contained in:
2026-03-15 23:22:44 +00:00
parent bb39568f01
commit 4afd870e65
2 changed files with 19 additions and 6 deletions

View File

@@ -2,6 +2,7 @@ use std::{f32, fs};
use crate::data::{BatteryMutable, BatteryStatic};
#[derive(Debug)]
pub struct Battery {
charge: i64,
total_capacity: i64,
@@ -20,22 +21,23 @@ impl Battery {
Err(_) => return Err(Battery_Error::NoBattery),
}
let energy_full: String =
let mut energy_full: String =
fs::read_to_string("/sys/class/power_supply/BAT0/energy_full").unwrap();
let energy_full = energy_full.trim();
Ok(Battery {
charge: 0,
total_capacity: energy_full.parse().unwrap(),
})
}
fn update(&mut self) -> Result<(), Battery_Error> {
pub fn update(&mut self) -> Result<(), Battery_Error> {
let charge = fs::read_to_string("/sys/class/power_supply/BAT0/energy_now").unwrap();
self.charge = charge.parse().unwrap();
self.charge = charge.trim().parse().unwrap();
Ok(())
}
fn as_data(&self) -> (BatteryStatic, BatteryMutable) {
pub fn as_data(&self) -> (BatteryStatic, BatteryMutable) {
let batt_static = BatteryStatic {
total_capacity: self.total_capacity,
};
@@ -44,4 +46,8 @@ impl Battery {
};
(batt_static, batt_muteable)
}
pub fn percentage(&self) -> f64 {
let pec: f64 = (self.charge as f64 / self.total_capacity as f64);
return pec;
}
}

View File

@@ -1,7 +1,14 @@
use std::{thread::sleep, time::Duration};
mod battery;
mod data;
fn main() {
let battery = battery::Battery::new();
battery.unwrap();
let mut battery = battery::Battery::new().unwrap();
loop {
battery.update().unwrap();
println!("{:?}", battery);
println!("{:?}", battery.percentage());
sleep(Duration::from_secs(3));
}
}