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 hashes)

Uploaded Source

Built Distribution

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

Uploaded Python 3

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