use crate::transport::args::TransportArgs;
use crate::transport::singleton::get_singleton_transport;
use clap::Parser;
#[derive(Parser)]
#[command(about = "Discover all connected moteus controllers")]
struct Args {
#[command(flatten)]
transport: TransportArgs,
}
pub fn run(register_transports: impl FnOnce()) -> Result<(), crate::Error> {
let args = Args::parse();
register_transports();
let transport = get_singleton_transport(Some(&args.transport.into()))?;
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(())
}