#![no_std]
#![no_main]

mod gpio;
mod lock;
mod timer;

use timer::Smartdelay;

use esp_hal::{
    clock::CpuClock,
    main,
};
use esp_backtrace as _;

use log::info;

#[main]
fn main() -> ! {
    // let clocks = esp_hal::Config::default().with_cpu_clock(CpuClock::max());
    // let peripherals = esp_hal::init(clocks);

    // let io = Io::new(peripherals.IO_MUX);
    let delay = Smartdelay::setup_delay();
    let mut Smart_delay = Smartdelay::new(delay);
    let mut led_pins = gpio::setup_display_pins();
    let mut button_pins = gpio::setup_Unlock_Button();

    esp_println::logger::init_logger_from_env();
    let mut lock = lock::Smartlock::new(&mut led_pins, &mut button_pins);

    info!("Lock is online");

    loop {
        
        lock.lock(&mut Smart_delay);
        
    }
}
$abcdeabcde151015202530354045505560fghijfghij