use std::error::Error;
use std::thread::sleep;
use std::time::Duration;
use brewdrivers::controllers::WaveshareV2;
use brewdrivers::state::BinaryState;
fn main() -> Result<(), Box<dyn Error>> {
env_logger::init_from_env(env_logger::Env::new().default_filter_or("info"));
let mut ws = WaveshareV2::connect(0x01, "/dev/ttyUSB0", 38400, Duration::from_millis(20))?;
log::info!("software revision: {:?}", ws.software_revision());
ws.set_relay(0, BinaryState::On)?;
ws.set_relay(2, BinaryState::On)?;
let statuses = ws.get_all_relays()?;
for i in 0..8 {
println!("Relay {}: {}", i, statuses[i]);
}
sleep(Duration::from_millis(100));
ws.set_all_relays(BinaryState::Off)?;
Ok(())
}