spike_prime 1.1.1

Wrapper around the SPIKE Prime communication protocol.
Documentation
use std::{io::stdout, time::Duration};

use crossterm::execute;
use spike_prime::prelude::*;

#[tokio::main]
async fn main() -> Result<()> {
    let manager = Manager::new().await?;
    let adapter = manager.adapters().await?.drain(..).next().unwrap();
    println!("Scanning for SPIKE Prime hubs");
    let device = SpikePrime::scan_first(&adapter).await?;
    println!("Device found!");
    let mut connection = device.connect().await?;
    connection.enable_device_notifications().await?;
    println!("Message sent");
    loop {
        let response = connection.device_notification().await;
        if let Some(n) = response {
            execute! {
                stdout(),
                crossterm::terminal::Clear(crossterm::terminal::ClearType::All),
                crossterm::cursor::MoveTo(0, 0),
            }?;
            println!("{n:?}");
        }
        tokio::time::sleep(Duration::from_millis(1)).await;
    }
}