Crate ljm

Source
Expand description

§ljm

An idiomatic Rust wrapper for the LabJack LJM library.

This library is far from complete and functionality is added as needed. Please feel free to submit PRs expanding support for the LJM library.

§Usage Requirements

§Example

use std::ffi::CString;

fn main() -> Result<(), ljm::Error> {

  let handle = ljm::Handle::open(
    ljm::DeviceType::Any,
    ljm::ConnectionType::Any,
    ljm::Identifier::DemoMode
  )?;

  let name = CString::new("TEST_FLOAT32").unwrap();

  handle.write_name(&name, 3.14)?;

  let value = handle.read_name(&name)?;

  handle.close()
}

§Alternative Crates

  • ljmrs offers an API through libloading that more closely mirrors the C library. The goal of this crate is to be somewhat more idiomatic and ergonomic, such as providing a Handle type that attempts to use RAII for device handles.

Structs§

Handle
A LabJack device handle.
LjmString
A CString that may be no longer than ljm_sys::LJM_STRING_MAX_SIZE, not including null-termination.
Register
A Modbus register specified by address and data type.

Enums§

ConnectionType
A LabJack device connection type.
DataType
An LJM data type.
DeviceType
A LabJack device type.
Error
An LJM error.
Identifier
Some ID that may identify a LabJack device to be connected.
LjmStringError
An error indicating a failure to construct an LjmString

Functions§

name_to_reg
Takes a Modbus register name as input and produces the corresponding Modbus register.