Expand description
Safe rust bindings for VISA(Virtual Instrument Software Architecture) library
Most documentation comes from NI-VISA Product Documentation
§Requirements
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, the default installation path will be added if no path is specified.
§Example
Codes below will find the first Keysight instrument in your environment and print out its *IDN?
response.
fn main() -> visa_rs::Result<()>{
use std::ffi::CString;
use std::io::{BufRead, BufReader, Read, Write};
use visa_rs::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::NO_LOCK, TIMEOUT_IMMEDIATE)?;
// write message
(&instr).write_all(b"*IDN?\n").map_err(io_to_vs_err)?;
// read response
let mut buf_reader = BufReader::new(&instr);
let mut buf = String::new();
buf_reader.read_line(&mut buf).map_err(io_to_vs_err)?;
eprintln!("{}", buf);
Ok(())
}
Re-exports§
pub use visa_sys as vs;
Modules§
- enums
- Defines visa attributes, visa status, visa event, etc as Rust enums
- flags
- Defines
AccessMode
andFlushMode
- handler
- Defines
Callback
trait used inInstrument::install_handler
, which returns aHandler
to manage lifetime of data passed - prelude
- session
Structs§
- DefaultRM
- A
ResourceManager
which close everything on drop - Error
- From
Bytes With NulError - Instrument
- Session to a specified resource
- JobID
- Job ID of an asynchronous operation.
- ResList
- Returned by
DefaultRM::find_res_list
, handler to iterator over matched resources - Visa
String - Simple wrapper of std::ffi::CString
- WeakRM
- A
ResourceManager
which isClone
and doesn’t close everything on drop
Constants§
Traits§
- AsResource
Manager - Ability as the Default Resource Manager for VISA
Functions§
- io_
to_ vs_ err - Quickly convert std::io::Error.
Type Aliases§
- Access
Key - Access key used in
Instrument::lock
- ResID
- resource ID
- Result