use esp_idf_svc::{sys::{esp_log_level_set, esp_log_level_t_ESP_LOG_NONE}};
use try_rust::{init_once, soft_ap, log_main_stack_watermark};
use std::{ffi::CString};
fn main() -> anyhow::Result<()> {
// 链接SDK中的补丁,以修正某些功能的兼容性问题。
esp_idf_svc::sys::link_patches();
// 初始化日志系统,为后续的调试和错误追踪提供支持。
esp_idf_svc::log::EspLogger::initialize_default();
unsafe {
esp_log_level_set(
CString::new("i2c.master").unwrap().as_ptr(),
esp_log_level_t_ESP_LOG_NONE,
);
}
log::info!("main start");
log_main_stack_watermark("main");
let h = std::thread::Builder::new()
.name("init".to_string())
.stack_size(16 * 1024)
.spawn(|| {
if let Err(e) = init_once() {
log::error!("init_once failed: {e:?}");
}
})?;
h.join().unwrap();
soft_ap::start()?;
// try_rust::ch2o::wz_async_read_active()?;
try_rust::ch2o::wz_async_read_query()?;
log::info!("main end");
Ok(())
}