Safe Rust bindings for VISA(Virtual Instrument Software Architecture) library
Most documentation comes from NI-VISA Product Documentation
This crate needs to link to an installed visa library, for example, NI-VISA.
You can specify path of visa64.lib
file (or visa32.lib
on 32-bit systems) by setting environment variable LIB_VISA_PATH
.
On Windows and macOS, the default installation path will be added if no path is specified.
Codes below will find the first Keysight instrument in your environment and print out its *IDN?
response.
```rust fn findaninstr() -> visars::Result<()>{ use std::ffi::CString; use std::io::{BufRead, BufReader, Read, Write}; use visars::prelude::*;
// open default resource manager let rm: DefaultRM = DefaultRM::new()?;
// expression to match resource name let expr = CString::new("?KEYSIGH?INSTR").unwrap().into();
// find the first resource matched let rsc = rm.find_res(&expr)?;
// open a session to the resource, the session will be closed when rm is dropped let instr: Instrument = rm.open(&rsc, AccessMode::NOLOCK, TIMEOUTIMMEDIATE)?;
// write message (&instr).writeall(b"*IDN?\n").maperr(iotovs_err)?;
// read response let mut bufreader = BufReader::new(&instr); let mut buf = String::new(); bufreader.readline(&mut buf).maperr(iotovs_err)?;
eprintln!("{}", buf); Ok(()) } ```
License: MIT OR Apache-2.0