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

Download files

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

Source Distribution

uscpi-0.3.0.tar.gz (10.4 kB view details)

Uploaded Source

Built Distribution

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

uscpi-0.3.0-py3-none-any.whl (8.5 kB view details)

Uploaded Python 3

File details

Details for the file uscpi-0.3.0.tar.gz.

File metadata

  • Download URL: uscpi-0.3.0.tar.gz
  • Upload date:
  • Size: 10.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for uscpi-0.3.0.tar.gz
Algorithm Hash digest
SHA256 9da9284803ddce7134a164463aeda29292fe94295d56c70e0bb08ee864547a83
MD5 1a9ec05df70ba95bfd3140879c22cd34
BLAKE2b-256 45cec2324930ecb3183b088b216a05c6ff5dc0c6fd6279e370086684c2d999e7

See more details on using hashes here.

File details

Details for the file uscpi-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: uscpi-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 8.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for uscpi-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1d296d252b6fb821f8253b4f6f63639caccd993813f334683d52de00268cd1e7
MD5 be30da22773192d5a46f6a08a43cd149
BLAKE2b-256 bdc5afcef29cec8eef5b4b083d8e351b15cc29fc2b8a9baf10fdc1bdc21a9223

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 files

0.2.0

2 files

0.1.0

2 files

0.0.1

2 files

Supported by

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