km003c-lib 0.4.0

Protocol parser and async USB library for the ChargerLAB POWER-Z KM003C
Documentation
use km003c_lib::uom::si::ratio::percent;
use km003c_lib::uom::si::time::microsecond;
use km003c_lib::{DeviceConfig, KM003C};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let mut device = KM003C::new(DeviceConfig::vendor().skip_reset()).await?;
    let settings = device.request_settings().await?;

    println!("Device name: {}", settings.device_name().unwrap_or("<invalid UTF-8>"));
    println!("Language selection: {}", settings.language_selection());
    println!("Uncalibrated: {}", settings.is_uncalibrated());
    println!("Brightness: {}%", settings.brightness().get::<percent>());
    println!(
        "Sample interval: {} us",
        settings.sample_interval().get::<microsecond>()
    );
    println!("Screen orientation: {}", settings.screen_orientation());
    println!("Mtools device mode: {}", settings.mtools_device_mode());
    println!("Selected main page: {}", settings.selected_main_page());

    Ok(())
}