use bleasy::{
characteristics::BATTERY_LEVEL,
{Filter, ScanConfig, Scanner},
};
use tokio_stream::StreamExt;
#[tokio::main]
async fn main() -> anyhow::Result<()> {
rsutil::log::Log4rsConfig::default().initialize().unwrap();
let config = ScanConfig::default()
.with_filters(&vec![Filter::Characteristic(BATTERY_LEVEL)])
.filter_by_characteristics(|characters, bat_level| characters.contains(bat_level))
.force_disconnect(true)
.stop_after_first_match();
let mut scanner = Scanner::new();
scanner.start(config).await?;
let device = scanner.device_stream()?.next().await.unwrap();
let battery_level = device.characteristic(BATTERY_LEVEL).await?.unwrap();
println!("Battery level: {:?}", battery_level.read().await?);
Ok(())
}