Skip to main content

N1081B Python SDK - WebSocket-based control library for the Nuclear Instruments N1081B logic unit

Project description

N1081B Python SDK

Python client library to control the Nuclear Instruments N1081B programmable logic unit over a WebSocket interface.

It provides a typed API to:

  • configure and read back all available functions:

    • Logic functions: Wire, AND, OR, OR-Veto, Veto, Majority, Coincidence Gate, LUT
    • Counting and timing: Scaler, Counter, Counter/Timer, Chronometer, Rate Meter, Rate Meter Advanced
    • Time measurement: Time Tag, Time of Flight, Time over Threshold
    • Signal generation: Pulse Generator, Digital Generator, Pattern Generator
  • Acquisition control (start/stop/reset) and result readout for all function types that support it

  • Input/output configuration per section: signal standard and impedance

  • Input configuration per channel: input enable, gate, delay and signal inversion

  • Output configuration per channel: output enable, monostable and signal inversion

  • Logic analyser: configuration and status readout for all input and output channels

  • System settings: ethernet, clock and configuration file management

It is also possible to set and get the input and output sections and channels configuration parameters.

It implements the logic analyser configuration and data retrieval to acquire the logic status of all input and output channels.

Ethernet, clock and configuration file settings can also be managed through the SDK.

The full user documentation is available here


Features

  • Simple WebSocket connection handling (connect/disconnect/login, password change)
  • Enumerations for all categorical parameters (sections, function types, signal standards, impedance, etc.)
  • High-level configuration helpers for each function type, for input/output sections and channels, for the logic analyzer and for the settings management

Installation

From PyPI

pip install n1081b-sdk

From source (this repository)

git clone https://gitlab.nuclearinstruments.eu/public-repo/n1081/n1081b_sdk_python.git
cd n1081b_sdk_python

# (optional) create a virtualenv
python -m venv .venv
source .venv/bin/activate  # on Windows: .venv\Scripts\activate

pip install -e .

Quick start

Minimal example showing how to connect to a board, configure a section and start acquisition.

from n1081b_sdk import N1081B

# 1. Create device object and connect
device = N1081B("192.168.0.10")
device.connect()

# 2. Login with default password
if not device.login("password"):
    raise RuntimeError("Login failed")

# 3. Configure input of section A in NIM standard
device.set_input_configuration(N1081B.Section.SEC_A, 
                               N1081B.SignalStandard.STANDARD_NIM,
                               N1081B.SignalStandard.STANDARD_NIM,
                               0, N1081B.SignalImpedance.IMPEDANCE_50)

# 4. Configure section A as a scaler
device.set_section_function(N1081B.Section.SEC_A, N1081B.FunctionType.FN_SCALER)

# 5. Configure scaler enabling all four input channels and the input gate
device.configure_scaler(N1081B.Section.SEC_A, True, True, True, True, True)

# 6. Read results
data = device.get_function_results(N1081B.Section.SEC_A)
print(data)

# 7. Disconnect
device.disconnect()

See the examples/ directory for fully worked demos of each function type.


Documentation

The full user guide is generated with MkDocs and published as GitLab Pages.

To build the documentation locally:

pip install -r requirements-mkdocs.txt
mkdocs serve

Then open http://127.0.0.1:8000/ in your browser.


Versioning

Follow Semantic Versioning for library releases:

  • MAJOR – incompatible API changes
  • MINOR – new functionality in a backwards compatible manner
  • PATCH – backwards compatible bug fixes

Tag releases in Git and publish the same version on PyPI and GitLab Pages.


Contact / Support

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

n1081b_sdk-1.0.1.tar.gz (2.0 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

n1081b_sdk-1.0.1-py3-none-any.whl (9.6 kB view details)

Uploaded Python 3

File details

Details for the file n1081b_sdk-1.0.1.tar.gz.

File metadata

  • Download URL: n1081b_sdk-1.0.1.tar.gz
  • Upload date:
  • Size: 2.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for n1081b_sdk-1.0.1.tar.gz
Algorithm Hash digest
SHA256 ceaed8d9619029c86e497f5e93f8c2c0768d69befe0e03b74677f7c46eeebb7b
MD5 74ddacee4ecf68f3aca1fae18ea54259
BLAKE2b-256 2649ca6cbc4094b4eecaf11a12cf63fe8cdef09f1a4264b6240d9c5edf215e80

See more details on using hashes here.

File details

Details for the file n1081b_sdk-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: n1081b_sdk-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 9.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for n1081b_sdk-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9fd18b405c5cc4172fede89897ae0163ff1777b65c0f9eb93ee9e85d59f5b99f
MD5 bd47b903cc2f5b46d7801affebfe3d12
BLAKE2b-256 9aeb6f2df8b920ec6290451ba73684f91d29d47a8f9d5b8e3b4eed08d8dadb39

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page