Skip to main content

An asynchronous SCPI instrumentation library.

Project description

μ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

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

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

Uploaded Source

Built Distribution

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.

Supported by

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