1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
#![no_std] pub mod error; pub mod event; pub mod mqtt; pub mod wifi; pub use esp_idf_sys as sys; use core::convert::TryFrom; use error::{Error, EspError}; use esp_idf_sys::*; pub fn esp_int_into_result(value: i32) -> Result<(), Error> { if value == 0 { Ok(()) } else if let Ok(error) = EspError::try_from(value) { Err(Error::EspIdf { error }) } else { Err(Error::EnumFromIntError { value: value }) } } pub mod nvs { use crate::*; pub fn init() -> Result<(), error::Error> { unsafe { let retval = nvs_flash_init() as u32; if retval == ESP_ERR_NVS_NO_FREE_PAGES || retval == ESP_ERR_NVS_NEW_VERSION_FOUND { let retval = nvs_flash_erase(); esp_int_into_result(retval)?; let retval = nvs_flash_init(); esp_int_into_result(retval) } else { esp_int_into_result(retval as i32) } } } } pub mod tcpip { use crate::*; pub fn init() { unsafe { tcpip_adapter_init(); } } }