This crate aims to simplify implementation of the LXI Device Specification. The specifications consists of a core specification and a optional set of extended functions.
Currently the focus is on implementing HiSLIP/VXI-11/Socket protocols for Unix-like environments. A long-term goal is to support an async no-std environment like
- IVI-6.1 High-Speed LAN Instrument Protocol (HiSLIP) v2.0
- VXI-11 REVISION v1.0
- LXI Device specification v1.5
This crate does not handle command parsing and/or execution, look at scpi-rs(:crab:) or libscpi(C) for that.
Each protocol includes an example service, you can try them out with cargo run --example <protocol>
where protocol is either hislip
,vxi11
,raw
, or telnet
.
Run cargo run --example <protocol> -- --help
for help and specific arguments for each protocol.
This crate uses two types of tests, the cargo test framework and pytest. Cargo test is mostly used for unit-testing while pytest is integration tests against pyvisa.
- Install python requirements:
pip install -r requirements.txt
- [Optional but required to test HiSLIP] Install NI-VISA for Linux, see pyvisa guide here
- Run tests:
cargo test && pytest
- Install
cargo-llvm-cov
and testing dependencies above. - Run
./coverage --open
Lxi-rs is available under GPLv3 License, see LICENSE-GPL.
Core crates like lxi-device are licensed under MIT and APACHE version 2.