Skip to content

Rust implementation of protocols defined by "LAN eXtensions for Instrumentation"(LXI).

License

Notifications You must be signed in to change notification settings

Atmelfan/lxi-rs

Repository files navigation

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.

About

Rust implementation of protocols defined by "LAN eXtensions for Instrumentation"(LXI).

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages