diff --git a/src/data.rs b/src/data.rs index 43a576b..9da3990 100644 --- a/src/data.rs +++ b/src/data.rs @@ -10,7 +10,7 @@ pub struct Data { #[derive(Serialize, Deserialize, Archive)] pub struct DataChunk { - pub timestamp: i32, + pub timestamp: u64, pub battery: BatteryMutable, } diff --git a/src/main.rs b/src/main.rs index cd235f2..d916a7f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,14 +1,45 @@ -use std::{thread::sleep, time::Duration}; +use std::{ + error::Error, + fs, + io::Read, + thread::sleep, + time::{Duration, SystemTime}, +}; + +use rkyv::api::low::deserialize; + +use crate::data::{Data, DataChunk}; mod battery; mod data; -fn main() { +fn main() -> Result<(), Box> { let mut battery = battery::Battery::new().unwrap(); + battery.update().unwrap(); + let battery_file = fs::OpenOptions::new() + .read(true) + .write(true) + .open("./battery.data"); + + let mut data: Data; + + let mut meow = battery_file?; + let mut buf: Vec = Vec::new(); + meow.read_to_end(&mut buf)?; + loop { battery.update().unwrap(); - println!("{:?}", battery); - println!("{:?}", battery.percentage()); + let timestamp: u64 = SystemTime::now() + .duration_since(std::time::UNIX_EPOCH) + .unwrap() + .as_secs(); + + let batt_data = battery.as_data(); + let new_chunk = DataChunk { + battery: batt_data.1, + timestamp, + }; + sleep(Duration::from_secs(3)); } }