//use esp_idf_sys as _; // If using the `binstart` feature of `esp-idf-sys`, always keep this module imported

use esp_idf_hal::peripherals::Peripherals;
use esp_idf_hal::delay;
use embedded_hal::delay::blocking::DelayUs;
//use embedded_hal::delay::blocking::DelayMs;
use embedded_hal_0_2::blocking::delay::DelayMs as edelay;
use embedded_hal::digital::blocking::OutputPin;
use std::time::Duration;
use esp_idf_hal::prelude::*;
use std::thread;

fn main() {
    esp_idf_sys::link_patches();
    let peripherals = Peripherals::take().unwrap();
    let pins = peripherals.pins;

    let mut delay = delay::Ets;
    //DelayMs::delay_ms(&mut delay, 1000_u32);
    DelayUs::delay_ms(&mut delay, 1000_u32);
    
    let mut led = pins.gpio0.into_output().unwrap();

    loop {
        led.set_high().unwrap();
        delay.delay_ms(1000_u32);

        //thread::sleep(Duration::from_millis(1000));

        led.set_low().unwrap();
        edelay::delay_ms(&mut delay, 1000_u32);

        //delay.delay_ms(3000_u32);
        //thread::sleep(Duration::from_millis(1000));
    }
}