lss_driver 0.8.4

Driver for Lynxmotion LSS servos
Documentation
use structopt::StructOpt;

#[derive(StructOpt, Debug)]
#[structopt()]
struct Args {
    #[structopt(about = "Serial port to use")]
    port: String,
}

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let args: Args = Args::from_args();
    let mut driver = lss_driver::LSSDriver::new(&args.port)?;
    for i in 0..254 {
        if driver.query_status(i).await.is_ok() {
            println!("servo_id: {}", i);
            println!(
                "  firmware_version: {}",
                driver.query_firmware_version(i).await?
            );
            println!("  model: {:?}", driver.query_model(i).await?);
            println!("  serial_number: {}", driver.query_serial_number(i).await?);
            println!("  status: {:?}", driver.query_status(i).await?);
            println!(
                "  safety_status: {:?}",
                driver.query_safety_status(i).await?
            );
            println!(
                "  motion_profile: {}",
                driver.query_motion_profile(i).await?
            );
            println!(
                "  angular_acceleration: {}",
                driver.query_angular_acceleration(i).await?
            );
            println!(
                "  angular_deceleration: {}",
                driver.query_angular_deceleration(i).await?
            );
            println!(
                "  filter_position_count: {}",
                driver.query_filter_position_count(i).await?
            );
            println!(
                "  angular_holding_stiffness: {}",
                driver.query_angular_holding_stiffness(i).await?
            );
            println!(
                "  angular_stiffness: {}",
                driver.query_angular_stiffness(i).await?
            );
            println!("  maximum_speed: {}", driver.query_maximum_speed(i).await?);
        }
    }
    Ok(())
}