use hal::{Delay, I2cdev};
use linux_embedded_hal as hal;
use std::thread;
use std::time::Duration;
use sgpc3::Sgpc3;
fn main() {
let dev = I2cdev::new("/dev/i2c-1").unwrap();
let mut sensor = Sgpc3::new(dev, 0x58, Delay);
let serial = sensor.serial().unwrap();
println!("Serial number is {:x}", serial);
let feature_set = sensor.get_feature_set().unwrap();
println!("Feature set {:?}", feature_set);
sensor.self_test().unwrap();
sensor.init_preheat().unwrap();
thread::sleep(Duration::new(184_u64, 0));
for _ in 0..9 {
sensor.measure_tvoc().unwrap();
thread::sleep(Duration::new(2_u64, 0));
}
loop {
let (tvoc, raw) = sensor.measure_tvoc_and_raw().unwrap();
println!("TVOC: {} / RAW: {}", tvoc, raw);
thread::sleep(Duration::new(2_u64, 0));
let raw = sensor.measure_raw().unwrap();
println!("RAW {}", raw);
thread::sleep(Duration::new(2_u64, 0));
let tvoc = sensor.measure_tvoc().unwrap();
println!("TVOC {}", tvoc);
let baseline = sensor.get_baseline().unwrap();
println!("Baseline {}", baseline);
thread::sleep(Duration::new(2_u64, 0));
}
}