use btle::asyncs::stream::StreamExt; use btle::error::StdError; use btle::windows; pub fn main() -> Result<(), Box> { let mut runtime = tokio::runtime::Builder::new() .enable_all() .build() .expect("can't make async runtime"); runtime.block_on(main_async()) } async fn main_async() -> Result<(), Box> { println!("starting"); let mut watcher = windows::ble::observer::Watcher::new().map_err(StdError)?; watcher.set_scan_enable(true).map_err(StdError)?; let mut stream = watcher.advertisement_stream(); println!("waiting for next advertisement"); loop { println!("{:?}", stream.next().await); } }