Skip to content

Latest commit

 

History

History
35 lines (24 loc) · 2.31 KB

README.md

File metadata and controls

35 lines (24 loc) · 2.31 KB

lxi-rs

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

Relevant standards:

Scope

This crate does not handle command parsing and/or execution, look at scpi-rs(:crab:) or libscpi(C) for that.

Examples

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.

Testing

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.

  1. Install python requirements: pip install -r requirements.txt
  2. [Optional but required to test HiSLIP] Install NI-VISA for Linux, see pyvisa guide here
  3. Run tests: cargo test && pytest

Coverage

  1. Install cargo-llvm-cov and testing dependencies above.
  2. Run ./coverage --open

Licensing

Lxi-rs is available under GPLv3 License, see LICENSE-GPL.

Core crates like lxi-device are licensed under MIT and APACHE version 2.