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
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9da9284803ddce7134a164463aeda29292fe94295d56c70e0bb08ee864547a83 |
|
MD5 | 1a9ec05df70ba95bfd3140879c22cd34 |
|
BLAKE2b-256 | 45cec2324930ecb3183b088b216a05c6ff5dc0c6fd6279e370086684c2d999e7 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1d296d252b6fb821f8253b4f6f63639caccd993813f334683d52de00268cd1e7 |
|
MD5 | be30da22773192d5a46f6a08a43cd149 |
|
BLAKE2b-256 | bdc5afcef29cec8eef5b4b083d8e351b15cc29fc2b8a9baf10fdc1bdc21a9223 |