跳转到主要内容

vacuubrand 库

项目描述

Vacuubrand库

DCP3000 pirani

此库用于控制Vacuubrand控制器的基本功能。

它由核心库、可选模拟器和可选的tango设备服务器组成。

目前仅支持DCP 3000。

安装

在您喜欢的Python环境中输入

$ pip install vacuubrand

vacuubrand库的核心是DCP3000对象。要创建DCP3000对象,您需要传递一个通信对象。

通信对象可以是任何支持简单API的对象,该API由两个方法组成(支持同步或异步版本)

  • write_readline(buff: bytes) -> bytes
  • write(buff: bytes) -> None

通常您会使用一个connio.connection_for_url()对象。以下是如何连接到DCP 3000控制器

import asyncio
from connio import connection_for_url
from vacuubrand.dcp3000 import DCP3000


async def main():
    # could also be a socket bridge: 'serial-tcp://<host>:<port>'
    comm = connection_for_url('serial:///dev/ttyS0')
    dcp = DCP3000(comm)

    print(await dcp.pressure())


asyncio.run(main())

串行线

要访问基于串行线的DCP 3000设备,强烈建议您使用ser2netsocat启动串行到TCP桥接器。

假设您的设备连接到/dev/ttyS0且波特率设置为19200,以下是使用socat在机器端口5000公开您的设备的示例

socat -v TCP-LISTEN:8500,reuseaddr,fork file:/dev/ttyS0,rawer,b19200,cs8,eol=10,icanon=1

在ser2net配置文件中对应的行将是

8500:raw:0:/dev/ttyR15:19200 8DATABITS NONE 1STOPBIT

可能值得考虑使用supervisorcircus将socat或ser2net作为服务启动。

模拟器

提供了一个DCP 3000模拟器。

在使用之前,请确保使用以下命令安装所有内容:

$ pip install vacuubrand[simulator]

使用sinstruments引擎。

要启动模拟器,您需要编写一个YAML配置文件,其中定义您想模拟的设备数量及其属性。

以下示例导出2个硬件设备。第一个使用默认值的最小配置,第二个明确定义了一些初始值

# config.yml

devices:
- class: DCP3000
  package: vacuubrand.simulator
  transports:
  - type: serial
    url: /tmp/dcp3000-1

要启动模拟器,请输入

$ sinstruments-server -c ./config.yml --log-level=DEBUG
2020-07-02 12:18:45,065 INFO  simulator: Bootstraping server
2020-07-02 12:18:45,065 INFO  simulator: no backdoor declared
2020-07-02 12:18:45,065 INFO  simulator: Creating device DCP3000 ('DCP3000')
2020-07-02 12:18:45,067 INFO  simulator: Created symbolic link "/tmp/dcp3000-1" to simulator pseudo terminal '/dev/pts/7'
2020-07-02 12:18:45,067 INFO  simulator.DCP3000[/tmp/dcp3000-1]: listening on /tmp/dcp3000-1 (baud=None)

(要查看完整的选项列表,请输入sinstruments-server --help)

您可以像访问真实硬件一样访问它

$ miniterm.py -e --eol CRLF /tmp/dcp3000-1
IN_PV_1
1004.1 mbar

或使用库

$ python
>>> from connio import connection_for_url
>>> from vacuubrand.dcp3000 import DCP3000
>>> conn = connection_for_url("serial:///tmp/dcp3000-1")
>>> dcp = DCP3000(conn)
>>> print(await dcp.actual_pressure())
1004.1

Tango服务器

还提供了一个tango设备服务器。

请确保使用以下命令安装所有内容:

$ pip install vacuubrand[tango]

在tango数据库中注册Vacuubrand tango服务器

$ tangoctl server add -s Vacuubrand/test -d DCP3000 test/dcp3000/1
$ tangoctl device property write -d test/dcp3000/1 -p url -v "/dev/ttyS0"

(上述示例使用tangoctl。在使用之前,您需要使用pip install tangoctl安装它。您也可以使用任何其他tango工具,如fandango或Jive)

使用以下命令启动服务器

$ Vacuubrand test

项目详细信息


下载文件

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

源分发

vacuubrand-2.1.3.tar.gz (10.7 kB 查看散列)

上传时间

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面