info/
info.rs

1#[tokio::main(flavor = "current_thread")]
2async fn main() -> Result<(), color_eyre::Report> {
3    tracing_subscriber::fmt()
4        .with_line_number(true)
5        .with_env_filter(tracing_subscriber::EnvFilter::from_default_env())
6        .with_file(true)
7        .pretty()
8        .init();
9    color_eyre::install()?;
10    run().await
11}
12
13async fn run() -> Result<(), color_eyre::Report> {
14    for _ in 0..2 {
15        let mug = ember_mug::EmberMug::find_and_connect().await?;
16        let mut chars: Vec<_> = mug.get_characteristics().collect();
17        let known = ember_mug::KnownCharacteristic::all();
18        for k in known {
19            let Some(char) = chars.iter().position(|&c| c.uuid == k.get()) else {
20                println!("couldn't find {k:?}");
21                continue;
22            };
23            let char = chars.remove(char);
24            println!("known: {k:?}\n{} cap: {:?}", char.uuid, char.properties);
25        }
26        for ch in chars {
27            tracing::info!(?ch, "was left");
28        }
29        println!("battery: {:?}", mug.get_battery().await?);
30        println!("current_temp: {}", mug.get_current_temperature().await?);
31        println!("color: {:?}", mug.get_mug_color().await?);
32        println!("name: {:?}", mug.get_name().await?);
33        println!("state: {:?}", mug.get_liquid_state().await?);
34        println!(
35            "target_temperature: {}",
36            mug.get_target_temperature().await?
37        );
38        println!("ota: {:?}", mug.get_ota().await?);
39        println!("tdz: {:?}", mug.get_time_date_zone().await?);
40        println!("meta: {:?}", mug.get_mug_meta().await?);
41        println!("dsk: {:?}", mug.get_dsk().await?);
42        println!("udsk: {:?}", mug.get_udsk().await?);
43    }
44    Ok(())
45}