forked from GaloisInc/rust-mavlink
-
Notifications
You must be signed in to change notification settings - Fork 0
/
mavlink-dump.rs
37 lines (31 loc) · 849 Bytes
/
mavlink-dump.rs
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
extern crate mavlink;
use std::sync::Arc;
use std::thread;
use std::env;
use std::time::Duration;
fn main() {
let args: Vec<_> = env::args().collect();
if args.len() < 2 {
println!("Usage: mavlink-dump (tcp|udpin|udpout):ip:port");
return;
}
let vehicle = Arc::new(mavlink::connect(&args[1]).unwrap());
vehicle.send(&mavlink::request_parameters()).unwrap();
vehicle.send(&mavlink::request_stream()).unwrap();
thread::spawn({
let vehicle = vehicle.clone();
move || {
loop {
vehicle.send(&mavlink::heartbeat_message()).ok();
thread::sleep(Duration::from_secs(1));
}
}
});
loop {
if let Ok(msg) = vehicle.recv() {
println!("{:?}", msg);
} else {
break;
}
}
}