tello 0.6.3

SDK for intel DJI Tello drone using the native api
Documentation
use futures::executor::block_on;
use std::{string::String, thread::sleep, time::Duration};
use tello::Drone;

fn main() -> Result<(), String> {
    block_on(async {
        let mut drone = Drone::new("192.168.10.1:8889").command_mode();
        let state = drone.state_receiver().unwrap();
        drone.enable().await?;

        match state.recv_timeout(Duration::from_secs(5)) {
            Ok(message) => println!(
                "Battery {}% Height {}dm POS {:?}",
                message.bat, message.h, drone.odometry
            ),
            _ => println!("No state package received"),
        }

        println!("take_off {:?}", drone.take_off().await);
        sleep(Duration::from_secs(7));

        for _ in 0..6 {
            println!("forward {:?}", drone.forward(30).await);
            sleep(Duration::from_secs(5));
            println!("cw {:?}", drone.cw(60).await);
            sleep(Duration::from_secs(4));
        }

        println!("land {:?}", drone.land().await);
        sleep(Duration::from_secs(3));
        Ok(())
    })
}