跳转到主要内容

用于从Karabo控制系统请求数据的Python 3工具。

项目描述

https://github.com/European-XFEL/karabo-bridge-py/workflows/Tests/badge.svg https://codecov.io/gh/European-XFEL/karabo-bridge-py/branch/master/graph/badge.svg

karabo_bridge 是一个用于从位于 欧洲XFEL 的 Karabo 控制系统接收管道数据的Python 3客户端。包含一个模拟的Karabo桥服务器,以便在没有连接到真实Karabo服务器的情况下进行测试代码。

安装

要安装包

$ 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 .

如何使用

从karabo桥服务器请求数据

使用 karabo_brige 中的 Client 类创建客户端,并使用 next 方法从服务器请求数据。函数返回2个字典:第一个包含列车数据,第二个包含相关的列车元数据。这两个字典都按源名称键,值是包含数据参数名称和值的字典,以及元数据信息(源名称、时间戳、trainId)的元数据。值都是内置的Python类型或NumPy数组。

>>> 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}}

使用模拟服务器

要开始仿真,请调用start_gen函数并提供要绑定的端口号。您可以使用Client类并连接到它来测试客户端,无需使用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
...

您还可以从命令行运行模拟服务器

$ karabo-bridge-server-sim 1234

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分布

karabo_bridge-0.7.0.tar.gz (19.8 kB 查看哈希值)

上传时间 源代码

构建分布

karabo_bridge-0.7.0-py3-none-any.whl (26.1 kB 查看哈希值)

上传时间 Python 3

支持者