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}