diff --git a/src/main.rs b/src/main.rs index 9b2c7b3..51eecb2 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,6 +1,6 @@ use std::{collections::HashMap, convert::Infallible, sync::Arc, time::{SystemTime, UNIX_EPOCH}}; -use bluer::{self, Adapter, AdapterEvent, Address}; +use bluer::{self, Adapter, AdapterEvent, Address, DiscoveryFilter, DiscoveryTransport}; use anyhow::Result; use futures::{Stream, StreamExt}; @@ -86,7 +86,7 @@ async fn main() -> Result<()> { sniffer_store.lock().await.insert(data, SystemTime::now()); } }); - + let filter = warp::path!("metrics") .map(move || Arc::clone(&store)) @@ -108,6 +108,13 @@ async fn extract(adapter: Arc, evt: AdapterEvent) -> Option { } async fn sensor_reports<'a>(adapter: Arc) -> Result + 'a> { + let filter = DiscoveryFilter { + transport: DiscoveryTransport::Le, + duplicate_data: true, + ..Default::default() }; + + adapter.set_discovery_filter(filter).await?; + Ok(adapter.discover_devices_with_changes().await? .filter_map(move |evt| { extract(Arc::clone(&adapter), evt) })) }