use std::time;
mod msg {
rosrust::rosmsg_include!(roscpp_tutorials / TwoInts);
}
fn main() {
env_logger::init();
let args: Vec<_> = rosrust::args();
if args.len() != 3 {
eprintln!("usage: client X Y");
return;
}
let a = args[1].parse::<i64>().unwrap();
let b = args[2].parse::<i64>().unwrap();
rosrust::init("add_two_ints_client");
rosrust::wait_for_service("add_two_ints", Some(time::Duration::from_secs(10))).unwrap();
let client = rosrust::client::<msg::roscpp_tutorials::TwoInts>("add_two_ints").unwrap();
rosrust::ros_info!(
"{} + {} = {}",
a,
b,
client
.req(&msg::roscpp_tutorials::TwoIntsReq { a, b })
.unwrap()
.unwrap()
.sum
);
let retval = client.req_async(msg::roscpp_tutorials::TwoIntsReq { a, b });
rosrust::ros_info!("{} + {} = {}", a, b, retval.read().unwrap().unwrap().sum);
}