PandABlocks Python Client#

Code CI Docs CI Test Coverage Latest PyPI version Apache License

A Python client which connects to the control and data ports of the PandABlocks TCP server.

PyPI

pip install pandablocks

Source code

PandABlocks/PandABlocks-client

Documentation

https://PandABlocks.github.io/PandABlocks-client

Releases

PandABlocks/PandABlocks-client

Command line tool features an interactive console, load/save control, and HDF5 writing:

$ pip install pandablocks

$ pandablocks control <panda-hostname>
< PCAP.     # Hit TAB key...
PCAP.ACTIVE     PCAP.BITS1      PCAP.BITS3      PCAP.GATE       PCAP.SAMPLES    PCAP.TRIG       PCAP.TS_END     PCAP.TS_TRIG
PCAP.BITS0      PCAP.BITS2      PCAP.ENABLE     PCAP.HEALTH     PCAP.SHIFT_SUM  PCAP.TRIG_EDGE  PCAP.TS_START
< PCAP.ACTIVE?
OK =1

$ pandablocks hdf <panda-hostname> /tmp/panda-%d.h5
INFO:Opened '/tmp/panda-1.h5' with 60 byte samples stored in 11 datasets
INFO:Closed '/tmp/panda-1.h5' after writing 50000000 samples. End reason is 'Disarmed'

Library features a Sans-IO core with both asyncio and blocking wrappers:

from pandablocks.blocking import BlockingClient
from pandablocks.commands import Get

with BlockingClient("hostname-or-ip") as client:
    # Commands sent to Control port
    idn = client.send(Get("*IDN"))
    print(f"Hello {idn}")
    for data in client.data():
        # Data captured from Data port
        print(f"I got some PCAP data {data}")

How the documentation is structured#

The documentation is split into 2 sections:

The User Guide contains documentation on how to install and use pandablocks.

The Developer Guide contains documentation on how to develop and contribute changes back to pandablocks.