crazyradio 0.3.0

Crazyradio USB dongle driver
Documentation
use crazyradio::{Channel, Crazyradio, Datarate};
use std::str;

fn main() -> Result<(), crazyradio::Error> {
    let mut cr = Crazyradio::open_first()?;

    cr.set_datarate(Datarate::Dr2M)?;

    println!("Scanning for Crazyflies ...");
    let channels = cr.scan_channels(
        Channel::from_number(0).unwrap(),
        Channel::from_number(125).unwrap(),
        &[0xff],
    )?;
    if !channels.is_empty() {
        println!(
            "{} Crazyflies found, connecting {:?}.",
            channels.len(),
            channels[0]
        );

        cr.set_channel(channels[0])?;

        println!("Fetching and displaying up to 100 console packets:");
        println!("==================================================");
        let mut ack_data = [0u8; 32];
        for _i in 1..100 {
            if let Ok(ack) = cr.send_packet(&[0xff], &mut ack_data) {
                if ack.length > 0 && ack_data[0] == 0 {
                    print!("{}", str::from_utf8(&ack_data[1..ack.length]).unwrap());
                }
            }
        }
    } else {
        println!("No Crazyflie found!");
    }

    Ok(())
}