nsrt 0.1.0

A Rust driver for the NSRT_mk4 sound level meter
Documentation
use nsrt::{NSRT, Result, SamplingFrequency, Weighting};
use std::thread;
use std::time::Duration;

fn main() -> Result<()> {
    println!("Opening NSRT_mk4 device...");

    let mut nsrt = NSRT::open()?
        .weighting(Weighting::A)?
        .time_constant(1.0)?
        .sampling_frequency(SamplingFrequency::Freq48kHz)?
        .apply()?;

    let model = nsrt.read_model()?;
    let serial = nsrt.read_serial_number()?;
    let firmware = nsrt.read_firmware_revision()?;

    println!("Connected to:");
    println!("  Model: {}", model);
    println!("  Serial: {}", serial);
    println!("  Firmware: {}", firmware);

    println!("Monitoring sound levels:");
    println!("Level (dBA) | LEQ (dBA) | Temp (°C)");
    println!("------------+-----------+----------");

    loop {
        let level = nsrt.read_level()?;
        let leq = nsrt.read_leq()?;
        let temp = nsrt.read_temperature()?;

        println!("{:10.1} | {:9.1} | {:8.1}", level, leq, temp);

        thread::sleep(Duration::from_secs(1));
    }
}