PandABlocks Python Client¶
A Python client to control and data ports of the PandABlocks TCP server.
PyPI  | 
  | 
Source code  | 
|
Documentation  | 
https://pandablocks.github.io/PandABlocks-client/master/index.html  | 
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¶
How-to Guides¶
Practical step-by-step guides for the more experienced user.
Explanations¶
Explanation of how the library works and why it works that way.
Reference¶
Technical reference material, for classes, methods, APIs, commands, and contributing to the project.
About the documentation¶
Why is the documentation structured this way?
Tutorials¶
How-to Guides¶
Explanations¶
Reference¶