Remove ble-server

This commit is contained in:
Mika Bomm 2024-10-07 11:45:47 +02:00
parent 82259615e2
commit a8fd8107b3
2 changed files with 0 additions and 83 deletions

View file

@ -1,10 +0,0 @@
[package]
name = "ble-server"
version = "0.1.0"
edition = "2021"
[dependencies]
bluer = { version = "*", features = ["full"] }
btleplug = "*"
tokio = { version = "1", features = ["full"] }
uuid = "*"

View file

@ -1,73 +0,0 @@
use btleplug::api::{
bleuuid::uuid_from_u16, Central, Manager as _, Peripheral as _, ScanFilter, WriteType,
};
use btleplug::platform::{Adapter, Manager, Peripheral};
use std::error::Error;
use std::str::FromStr;
use std::thread;
use std::time::Duration;
use tokio::time::{self, sleep};
use uuid::Uuid;
#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
let characteristic = Uuid::from_str("e54b0002-67f5-479e-8711-b3b99198ce6c").unwrap();
let manager = Manager::new().await.unwrap();
// get the first bluetooth adapter
let adapters = manager.adapters().await?;
let central = adapters.into_iter().nth(0).unwrap();
// start scanning for devices
central.start_scan(ScanFilter::default()).await?;
// instead of waiting, you can use central.events() to get a stream which will
// notify you of new devices, for an example of that see examples/event_driven_discovery.rs
time::sleep(Duration::from_secs(5)).await;
// find the device we're interested in
let handle = find_light(&central).await.unwrap();
println!("{:#?}", handle);
handle.connect().await?;
// connect to the device
//light.connect().await?;
// discover services and characteristics
handle.discover_services().await?;
// find the characteristic we want
let chars = handle.characteristics();
println!("Characteristics: {:#?}", chars);
let light = chars.iter().find(|c| c.uuid == characteristic).unwrap();
while true {
handle
.write(light, &[0x00], WriteType::WithoutResponse)
.await
.unwrap();
sleep(Duration::new(2, 0)).await;
}
handle.disconnect().await.unwrap();
Ok(())
}
async fn find_light(central: &Adapter) -> Option<Peripheral> {
for p in central.peripherals().await.unwrap() {
if p.properties()
.await
.unwrap()
.unwrap()
.local_name
.iter()
.any(|name| name.contains("RAK4630"))
{
return Some(p);
}
}
None
}