DMM¶
Digital multimeter session view (IVI-inspired / SCPI :MEASure). All numeric values use SI base units (V, A, Ω).
See capability matrix for Base vs Extension status.
Open¶
Measure¶
Configure¶
Mock example¶
use instrument::prelude::*;
fn main() -> Result<()> {
let fixture = ScriptedFixture::builder()
.idn("Keysight Technologies", "34401A", "SN1", "1.0")
.kinds([InstrumentKind::Dmm])
.on_query("*IDN?", "Keysight Technologies,34401A,SN1,1.0")
.on_query(":MEAS:VOLT:DC?", "1.234")
.build();
let catalog = DeviceCatalog::from_fixture("mock://dmm-1", fixture)?;
let volts = catalog.open_dmm("mock://dmm-1")?.measure_voltage_dc(None)?;
println!("{volts} V");
Ok(())
}
using InstrumentComponents.Catalog;
using InstrumentComponents.Kind;
using InstrumentComponents.Mock;
var fixture = ScriptedFixture.Builder()
.Idn("Keysight Technologies", "34401A", "SN1", "1.0")
.Kinds(InstrumentKind.Dmm)
.OnQuery("*IDN?", "Keysight Technologies,34401A,SN1,1.0")
.OnQuery(":MEAS:VOLT:DC?", "1.234")
.Build();
var catalog = DeviceCatalog.FromFixture("mock://dmm-1", fixture);
var volts = catalog.OpenDmm("mock://dmm-1").MeasureVoltageDc();
Console.WriteLine($"{volts} V");
Async¶
AsyncDmm mirrors the sync methods with .await. See Rust async.
AsyncDmm exposes MeasureVoltageDcAsync, etc. See C# async.