Skip to main content

μSCPI

An asynchronous SCPI instrumentation library.

Install

PyPI

Installing the latest release from PyPI.

pip install -U uscpi

Repository

When using git, clone the repository and change your present working directory.

git clone http://github.com/mcpcpc/uscpi
cd uscpi/

Create and activate a virtual environment.

python3 -m venv venv
source venv/bin/activate

Install μSCPI to the virtual environment.

pip install -e .

Usage

Asynchronous

A basic example using the asyncio library.

from asyncio import run
from uscpi import TCP
from uscpi import Instrument

client = TCP(host="127.0.0.1", port=5025)
instrument = Instrument(client=client)

async def main():
    response = await instrument.idn()
    print(response)

if __name__ == "__main__":
     run(main())

Connection Timeout

By default, μSCPI will wait indefinitely for a connection to be established. If the timeout property is defined, an asyncio.TimeoutError will be raised after the specified connection time period (in seconds) is exceeded.

TCP(host="127.0.0.1", port=5025, timeout=0.1)

Automatic Connection Management

To ensure proper connection cleanup, the built-in asynchronous context manager can be used.

async def main():
    async with TCP("127.0.0.1", 8080) as client:
        instrument = Instrument(client=client)
        response = await instrument.idn()
        print(response)

Event Callbacks

There are four user callback functions that can be implemented and executed when a corresponding event is triggered: connection_made_cb, connection_lost_cb, data_received_cb, and eof_received_cb. Each callable object must be passed to the client method during instantiation.

def user_cb():
    print("Connection made!")

TCP(host="127.0.0.1", port=5025, connection_made_cb=user_cb)

Features

μSCPI is fairly lightweight and leaves a majority of instrument function commands to be implemented by the user. Nonetheless, the following IEEE-488.2 commands have been implemented:

  • Clear Status Command
  • Event Status Enable Command and Query
  • Standard Event Status Register Query
  • Identification Query
  • Reset Command
  • Service Request Enable Command and Query
  • Read Status Byte Query
  • Trigger Command
  • Self-Test Query
  • Wait-to-Continue Command

You can learn more about each of these commands by using the built-in help method.

>>> from uscpi import Instrument
>>> help(Instrument)

Credits

Metadata

Release files for uscpi 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for uscpi 0.3.0
File Size Uploaded
uscpi-0.3.0.tar.gz 10.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for uscpi 0.3.0
File Interpreter ABI Platform
uscpi-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 18.9 kB

Release files / uscpi-0.3.0.tar.gz

Download URL uscpi-0.3.0.tar.gz
Size 10.4 kB
Tags Source
SHA-256 checksum
How to use checksums
9da9284803ddce7134a164463aeda29292fe94295d56c70e0bb08ee864547a83
BLAKE2b-256 checksum
How to use checksums
45cec2324930ecb3183b088b216a05c6ff5dc0c6fd6279e370086684c2d999e7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.18

Release files / uscpi-0.3.0-py3-none-any.whl

Download URL uscpi-0.3.0-py3-none-any.whl
Size 8.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1d296d252b6fb821f8253b4f6f63639caccd993813f334683d52de00268cd1e7
BLAKE2b-256 checksum
How to use checksums
bdc5afcef29cec8eef5b4b083d8e351b15cc29fc2b8a9baf10fdc1bdc21a9223
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.18

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

0.2.0

2 release files

0.1.0

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page