vacuubrand库
vacuubrand的Python项目详细描述
Vacubrand库
此库用于控制vacubrand控制器的基本功能。在
它由一个核心库、一个可选的模拟器和 可选的tango设备服务器。在
目前只支持DCP 3000。在
安装
从您最喜欢的python环境类型中:
$ pip install vacuubrand
图书馆
vacuubrand库的核心由DCP3000对象组成。 要创建DCP3000对象,您需要传递一个通信对象。在
通信对象可以是任何支持简单API的对象 包含两种方法(支持同步或异步版本):
write_readline(buff: bytes) -> bytes
或write(buff: bytes) -> None
或
通常使用对象结束。 以下是如何连接到DCP 3000控制器:
importasynciofromconnioimportconnection_for_urlfromvacuubrand.dcp3000importDCP3000asyncdefmain():# could also be a socket bridge: 'serial-tcp://<host>:<port>'comm=connection_for_url('serial:///dev/ttyS0')dcp=DCP3000(comm)print(awaitdcp.pressure())asyncio.run(main())
串行线路
要访问基于串行线路的DCP 3000设备,强烈建议您生成 使用ser2net或 socat
假设您的设备连接到/dev/ttyS0
,波特率设置为19200,
以下是如何使用socat将设备暴露在机器端口5000上:
socat -v TCP-LISTEN:8500,reuseaddr,fork file:/dev/ttyS0,rawer,b19200,cs8,eol=10,icanon=1
ser2net配置文件中的等效行为:
^{pr2}$可能值得考虑将socat或ser2net作为使用 supervisor或circus。在
模拟器
提供DCP 3000模拟器。在
在使用之前,请确保所有设备都安装有:
$ pip install vacuubrand[simulator]
使用了sinstruments引擎。在
要启动模拟器,您需要编写一个YAML配置文件,其中定义 您要模拟多少个设备以及它们拥有哪些属性。在
以下示例导出2个硬件设备。第一个是最小值 配置使用默认值,第二个定义一些初始值 明确地:
# config.ymldevices:-class:DCP3000package:vacuubrand.simulatortransports:-type:serialurl:/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>>>fromconnioimportconnection_for_url>>>fromvacuubrand.dcp3000importDCP3000>>>conn=connection_for_url("serial:///tmp/dcp3000-1")>>>dcp=DCP3000(conn)>>>print(awaitdcp.actual_pressure())1004.1
探戈服务器
还提供了tango设备服务器。在
确保所有设备都安装有:
$ pip install vacuubrand[tango]
在tango数据库中注册cryocon 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
安装它。你可以自由使用任何其他的
探戈工具,如fandango或Jive)
启动服务器时使用:
$ Vacuubrand test
- 项目
标签: