Skip to main content

Crate nanonis_rs

Crate nanonis_rs 

Source
Expand description

§nanonis-rs

A Rust client library for communicating with Nanonis SPM systems via TCP.

§Quick Start

use nanonis_rs::{NanonisClient, NanonisError};

fn main() -> Result<(), NanonisError> {
    let mut client = NanonisClient::new("192.168.1.100", 6501)?;

    // Get current bias voltage
    let bias = client.bias_get()?;
    println!("Current bias: {} V", bias);

    // Set new bias voltage
    client.bias_set(0.5)?;

    Ok(())
}

§Usage Pattern

All instrument control is done through NanonisClient. Import types from domain modules only when needed:

use nanonis_rs::{NanonisClient, NanonisError};
use nanonis_rs::motor::{MotorDirection, MotorGroup};
use nanonis_rs::scan::ScanFrame;

fn main() -> Result<(), NanonisError> {
    let mut client = NanonisClient::new("192.168.1.100", 6501)?;

    // Motor control
    client.motor_start_move(MotorDirection::ZPlus, 100u16, MotorGroup::Group1, true)?;

    // Scan control
    let frame = client.scan_frame_get()?;
    println!("Scan center: ({}, {})", frame.center.x, frame.center.y);

    Ok(())
}

§Streaming Data

For continuous data acquisition, use TCPLoggerStream:

use nanonis_rs::TCPLoggerStream;

let mut stream = TCPLoggerStream::new("192.168.1.100", 6502)?;
let frame = stream.read_frame()?;
println!("Got {} channels", frame.data.len());

Modules§

atom_track
Atom tracking types.
beam_defl
Beam deflection types.
bias
Bias control types.
bias_spectr
Bias spectroscopy types.
cpd_comp
CPD compensation types.
data_log
Data logging types.
dig_lines
Digital lines types.
folme
Follow-me types.
gen_pi_ctrl
Generic PI controller types.
gen_swp
Generic sweep types.
hs_swp
High-speed sweep types.
interf
Interferometer types.
kelvin_ctrl
Kelvin controller types.
lockin
Lock-in amplifier types.
lockin_freq_swp
Lock-in frequency sweep types.
marks
Marks types.
motor
Motor control types.
oc_sync
OC sync types.
oscilloscope
Oscilloscope types.
pattern
Pattern types.
pi_ctrl
PI controller types.
piezo
Piezo control types.
pll
PLL (Phase-Locked Loop) types.
pll_signal_anlzr
PLL signal analyzer types.
scan
Scan control types.
script
Script types.
signal_chart
Signal chart types.
signals
Signal management types.
spectrum_anlzr
Spectrum analyzer types.
tcplog
TCP logger types.
tip_recovery
Tip recovery types.
user_out
User output types.
util
Utility types.
z_ctrl
Z-controller types.
z_spectr
Z spectroscopy types.

Structs§

ConnectionConfig
Connection configuration for the Nanonis TCP client.
NanonisClient
High-level client for communicating with Nanonis SPM systems via TCP.
NanonisClientBuilder
Builder for constructing NanonisClient instances with flexible configuration.
Position
TCPLoggerStream
Simple TCP Logger Stream - connects to data stream only, no control

Enums§

NanonisError
Error types for Nanonis communication.
NanonisValue