1 stable release

1.0.0 Oct 18, 2024

#758 in Hardware support

GPL-3.0 license

92KB
1.5K SLoC

nlabapi

Crates.io License Documentation

Cargo Test

Low-level software interface for nLab devices


lib.rs:

This crate provides an interface to the nLab

Usage

This crate is on crates.io and can be used by adding nlab to the dependencies in your project's Cargo.toml.

Example

extern crate nlabapi;
use nlabapi::LabBench;

fn main() {
    // Create a LabBench
    let bench = LabBench::new().expect("Cannot create LabBench");

    // Print the bench to show a list of detected nLabs
    println!("{:?}", bench);

    // Open an nLab
    let nlab = bench.open_first_available(true).expect("Cannot open nLab");

    // Turn on analog output channel A1
    nlab.a1.turn_on();

    // Trigger an auto-triggered sweep of 20 samples at 4.0 Hz sample rate
    let sweep_handle = nlab.request(4.0, 20, None);

    // Loop through the received data, blocking on each sample until it arrives
    for sample in sweep_handle.receiver {
        // Print the sample data
        println!("{:?}", sample.data);
    }

    // Turn off the analog output channel A1
    nlab.a1.turn_off();

}

Dependencies

~4–16MB
~160K SLoC