1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
#[macro_use] extern crate log; extern crate env_logger; mod constants; mod gamepad; mod heartbeat; mod video; mod keyboard; use gamepad::Gamepad; use heartbeat::Heartbeat; use video::Video; use std::error::Error; use std::net::TcpStream; use std::io::Write; pub fn connect() { env_logger::init().unwrap(); let mut handshake_stream = match TcpStream::connect(format!("{}:{}", constants::DRONE_HOST, constants::DRONE_TCP_PORT)) { Ok(stream) => stream, Err(e) => panic!("Error connecting to handshake socket: {}", e.description()), }; let functions = [constants::get_handshake, constants::get_video_1_1, constants::get_video_1_2]; for index in 0..functions.len() { match handshake_stream.write(functions[index]().as_slice()) { Ok(_) => debug!("Sent {}", index), Err(e) => panic!("Error writing {}: {}", index, e.description()), } } Heartbeat::new().start(); Video::new().start(); Gamepad::new().start(); } #[cfg(test)] mod tests { use super::*; #[test] fn test_connect_valid() { connect(); } }