Python 3 tools to request data from the Karabo controlsystem.
Project description
karabo_bridge is a Python 3 client to receive pipeline data from the Karabo control system used at European XFEL. A simulated Karabo bridge server is included to allow testing code without a connection to a real Karabo server.
Installing
to install the package:
$ python3 -m pip install karabo-bridge or $ git clone https://github.com/European-XFEL/karabo-bridge-py.git $ cd ./karabo-bridge-py $ python3 -m pip install .
How to use
Request data from a karabo bridge server
Use the Client class from karabo_brige to create a client and the next method to request data from the server. The function returns 2 dictionaries: the first one holds a train data and the second one holds the associated train metadata. Both dictionaries are keyed by source name, and the values are dictionaries containing parameters name and values for data and metadata information (source name, timestamp, trainId) for the metadata. Values are all built-in python types, or numpy arrays.
>>> from karabo_bridge import Client
>>> krb_client = Client('tcp://server-host-name:12345')
>>> data, metadata = krb_client.next()
>>> data.keys()
dict_keys(['source1', 'source2', 'source3'])
>>> data['source1'].keys()
dict_keys(['param1', 'param2'])
>>> metadata['source1']
{'source1': {'source': 'source1',
'timestamp': 1528476983.744877,
'timestamp.frac': '744877000000000000',
'timestamp.sec': '1528476983',
'timestamp.tid': 10000000073}}
Use the Simulation server
To start a simulation, call the start_gen function and provide a port to bind to. You can the use the Client class and connect to it to test the client without the need to use Karabo.
>>> from karabo_bridge import start_gen
>>> start_gen(1234)
Server : emitted train: 10000000000
Server : emitted train: 10000000001
Server : emitted train: 10000000002
Server : emitted train: 10000000003
Server : emitted train: 10000000004
...
You can also run the simulated server from the command line:
$ karabo-bridge-server-sim 1234
Project details
Release history Release notifications | RSS feed
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 karabo_bridge-0.7.0.tar.gz
.
File metadata
- Download URL: karabo_bridge-0.7.0.tar.gz
- Upload date:
- Size: 19.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cec6fbc2aa8de9dcabc1590029d24787fbe5b6a1760242f76f7d5f5781954223 |
|
MD5 | 02a5a14e46dd2a51bcdc76019c093a51 |
|
BLAKE2b-256 | bd84c0d3bf226837d8b28e9009ff533f8844fad151c873d58a2b1e97ec51f1d0 |
Provenance
File details
Details for the file karabo_bridge-0.7.0-py3-none-any.whl
.
File metadata
- Download URL: karabo_bridge-0.7.0-py3-none-any.whl
- Upload date:
- Size: 26.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4ea87e2d30ad399da6c08e9e07fffd8905a9d754a666147429da3bf27fcfc776 |
|
MD5 | 1f7b966fa1c108931dd0c90246ce6cae |
|
BLAKE2b-256 | 49ee13677884ca55c6339fa024d8078f7e5f41da74cfda4a315429d4cee605c5 |