#!/usr/bin/env cargo run
use jetsongpio::{Direction, GPIO, Level, Mode};
use std::thread;
use std::time::Duration;
const INPUT_PIN: u32 = 18;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut prev_value: Option<Level> = None;
let gpio = GPIO::new();
gpio.setmode(Mode::BOARD)?; gpio.setup(vec![INPUT_PIN], Direction::IN, None, None)?; println!("Starting demo now! Press CTRL+C to exit");
loop {
let value = gpio.input(INPUT_PIN)?;
if prev_value.is_none() || value != prev_value.unwrap() {
let value_str = match value {
Level::HIGH => "HIGH",
Level::LOW => "LOW",
};
println!("Value read from pin {} : {}", INPUT_PIN, value_str);
prev_value = Some(value);
}
thread::sleep(Duration::from_secs(1));
}
}