# e_drone_sp Rust library for BYROBOT drones. * Tested - Windows 10 (x64) - Ubuntu linux 20.04 (x64) - macOS Big Sur - Raspberry Pi OS (Raspberry PI Compute Module 4) - Raspberry Pi OS Lite (Raspberry PI Zero) * Support - [E-Drone](http://dev.byrobot.co.kr/documents/kr/products/e_drone/) - [Coding Drone](http://dev.byrobot.co.kr/documents/kr/products/coding_drone/) - [Battle Drone](http://dev.byrobot.co.kr/documents/kr/products/battle_drone/)

## Dependencies ### Linux If you see an error when you build your project, ``` error: failed to run custom build command for `libudev-sys v0.1.4` ``` You need to install '**libudev-dev**'. ``` sudo apt-get install libudev-dev ```

## Example ### Cargo.toml ```toml [dependencies] e_drone_sp="21.*" e_drone="21.*" ```

### main.rs ```rust extern crate e_drone_sp; use e_drone::system::{*}; use e_drone::protocol::{*}; use e_drone_sp::{*}; fn main() { let mut drone: Drone = Drone::new("COM75"); // Windows 10 //let mut drone: Drone = Drone::new("/dev/ttyACM0"); // linux, Raspberry PI USB //let mut drone: Drone = Drone::new("/dev/serial0"); // Raspberry PI UART if drone.is_connected() == false { return; } drone.request(DeviceType::Controller, DataType::Information); loop { handler(&drone.check()); if drone.get_time_passed_from_last_transfer() > 1200 { break; } } } fn handler(data: &Data) { match data { Data::Information(information) => { println!("{:?}", information); }, _ => {}, } } ```

## Examples in library
### Source code https://github.com/byrobot-rust/e_drone_sp/tree/master/examples

### Show in github1s.com * Drone - Flight
* Controller - Button - Buzzer - Display - Joystick - Light - Request - Vibrator

### Clone Library ``` git clone https://github.com/byrobot-rust/e_drone_sp/ ```

### Run ``` cargo run --example flight ``` ``` cargo run --example button ``` ``` cargo run --example buzzer ``` ``` cargo run --example display ``` ``` cargo run --example joystick ``` ``` cargo run --example light ``` ``` cargo run --example request ``` ``` cargo run --example vibrator ```