simple_monitor/
simple_monitor.rs1use nsrt::{NSRT, Result, SamplingFrequency, Weighting};
2use std::thread;
3use std::time::Duration;
4
5fn main() -> Result<()> {
6 println!("Opening NSRT_mk4 device...");
7
8 let mut nsrt = NSRT::open()?
9 .weighting(Weighting::A)?
10 .time_constant(1.0)?
11 .sampling_frequency(SamplingFrequency::Freq48kHz)?
12 .apply()?;
13
14 let model = nsrt.read_model()?;
15 let serial = nsrt.read_serial_number()?;
16 let firmware = nsrt.read_firmware_revision()?;
17
18 println!("Connected to:");
19 println!(" Model: {}", model);
20 println!(" Serial: {}", serial);
21 println!(" Firmware: {}", firmware);
22
23 println!("Monitoring sound levels:");
24 println!("Level (dBA) | LEQ (dBA) | Temp (°C)");
25 println!("------------+-----------+----------");
26
27 loop {
28 let level = nsrt.read_level()?;
29 let leq = nsrt.read_leq()?;
30 let temp = nsrt.read_temperature()?;
31
32 println!("{:10.1} | {:9.1} | {:8.1}", level, leq, temp);
33
34 thread::sleep(Duration::from_secs(1));
35 }
36}