use crate::transport::args::parse_with_transport_args;
use crate::transport::singleton::get_singleton_transport;
use clap::Parser;
#[derive(Parser)]
#[command(about = "Discover all connected moteus controllers")]
struct Args {}
pub fn run(register_transports: impl FnOnce()) -> Result<(), crate::Error> {
register_transports();
let (_args, options) = parse_with_transport_args::<Args>().map_err(crate::Error::Protocol)?;
let transport = get_singleton_transport(Some(&options))?;
let mut transport = transport.lock().unwrap();
let devices = transport.discover(0, 0)?;
if devices.is_empty() {
println!("No devices found!");
return Ok(());
}
for device in &devices {
println!("{}", device);
}
Ok(())
}