use std::env;
use tango::dev::{All, DevProxy, Named};
use tango::error::Result;
fn main() -> Result<()> {
let name = env::args().nth(1).unwrap_or_else(|| "test/motor/1".to_string());
let motor = DevProxy::new(name.as_str());
let info = motor.info()?;
println!("{} is a {} served by {} on {}", motor.name()?, info.class, info.server_id, info.server_host);
println!(" documented at {:?}", info.doc_url);
println!("Commands:");
for Named { name, value: info } in motor.command_info(All)? {
let info = info?;
println!(" {:<10} {:?} -> {:?}", name.value(), info.in_kind, info.out_kind);
}
println!("Attributes:");
for Named { name, value: info } in motor.attr_info(All)? {
let info = info?;
println!(" {:<10} {:?} {:?} {:?}, unit {:?}", name.value(), info.mode, info.data_kind,
info.data_format, info.config.unit);
}
let position = motor.attr_info("position")?;
println!("position: {:?}, format {:?}, change event {:?}", position.config.doc,
position.config.display_format, position.config.change_event);
let admin = motor.admin_dev()?;
println!("The admin device is {}, which is {:?}", admin.name()?, admin.state()?);
Ok(())
}