mirror of
https://codeberg.org/icewind/mitemp-rs.git
synced 2026-06-03 17:24:08 +02:00
more example readme and clonable
This commit is contained in:
parent
bdcc13bad6
commit
ba7ead9848
4 changed files with 52 additions and 0 deletions
28
README.md
28
README.md
|
|
@ -4,6 +4,8 @@ Read Xiaomi MI Temperature and Humidity Sensor over BLE
|
|||
|
||||
## Usage
|
||||
|
||||
### Using channels
|
||||
|
||||
```rust
|
||||
use mitemp::{adapter_by_mac, BDAddr, Sensor};
|
||||
use std::str::FromStr;
|
||||
|
|
@ -14,6 +16,7 @@ fn main() -> Result<(), btleplug::Error> {
|
|||
let addr = BDAddr::from_str("00:1A:7D:DA:71:08").unwrap();
|
||||
let adapter = adapter_by_mac(addr)?;
|
||||
let device = BDAddr::from_str("58:2d:34:35:f3:d4").unwrap();
|
||||
|
||||
let sensor = Sensor::new(adapter, device);
|
||||
|
||||
let rx = sensor.listen();
|
||||
|
|
@ -22,6 +25,31 @@ fn main() -> Result<(), btleplug::Error> {
|
|||
dbg!(data);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Using getter
|
||||
|
||||
```rust
|
||||
use mitemp::{adapter_by_mac, BDAddr, Sensor};
|
||||
use std::str::FromStr;
|
||||
use std::thread::sleep;
|
||||
use std::time::Duration;
|
||||
|
||||
fn main() -> Result<(), btleplug::Error> {
|
||||
env_logger::init();
|
||||
|
||||
let addr = BDAddr::from_str("00:1A:7D:DA:71:08").unwrap();
|
||||
let adapter = adapter_by_mac(addr)?;
|
||||
let device = BDAddr::from_str("58:2d:34:35:f3:d4").unwrap();
|
||||
|
||||
let sensor = Sensor::new(adapter, device).start();
|
||||
|
||||
loop {
|
||||
let data = sensor.get_data();
|
||||
dbg!(data);
|
||||
sleep(Duration::from_secs(3));
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ fn main() -> Result<(), btleplug::Error> {
|
|||
let addr = BDAddr::from_str("00:1A:7D:DA:71:08").unwrap();
|
||||
let adapter = adapter_by_mac(addr)?;
|
||||
let device = BDAddr::from_str("58:2d:34:35:f3:d4").unwrap();
|
||||
|
||||
let sensor = Sensor::new(adapter, device);
|
||||
|
||||
let rx = sensor.listen();
|
||||
20
examples/getter.rs
Normal file
20
examples/getter.rs
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
use mitemp::{adapter_by_mac, BDAddr, Sensor};
|
||||
use std::str::FromStr;
|
||||
use std::thread::sleep;
|
||||
use std::time::Duration;
|
||||
|
||||
fn main() -> Result<(), btleplug::Error> {
|
||||
env_logger::init();
|
||||
|
||||
let addr = BDAddr::from_str("00:1A:7D:DA:71:08").unwrap();
|
||||
let adapter = adapter_by_mac(addr)?;
|
||||
let device = BDAddr::from_str("58:2d:34:35:f3:d4").unwrap();
|
||||
|
||||
let sensor = Sensor::new(adapter, device).start();
|
||||
|
||||
loop {
|
||||
let data = sensor.get_data();
|
||||
dbg!(data);
|
||||
sleep(Duration::from_secs(3));
|
||||
}
|
||||
}
|
||||
|
|
@ -12,14 +12,17 @@ use std::sync::{Arc, Mutex};
|
|||
|
||||
pub trait SensorState {}
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct Inactive {}
|
||||
|
||||
impl SensorState for Inactive {}
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct Active {}
|
||||
|
||||
impl SensorState for Active {}
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct Sensor<State: SensorState> {
|
||||
mac: BDAddr,
|
||||
adapter: ConnectedAdapter,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue