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设备,强烈建议您生成 使用ser2netsocat

假设您的设备连接到/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作为使用 supervisorcircus。在

模拟器

提供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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
junit cucumber为什么会找到“runTest.java”来运行测试?   在Eclipse中找不到java KeyPairGenerator   java NotSerializableException即使在实现Serializable之后   noclassdeffounderror(java字符串连接)为什么会出现这种异常?   java Guice:将接口绑定到由动态代理创建的实例   使用Spring数据neo4j创建空间索引时发生java错误   java对于需要在50多个excel文件上运行并且每个文件平均包含25k行的项目,最佳的方法是什么   javaNIO中的java缓冲区写入/发送消息问题   如何在Java/eclipse中添加不调用super()的警告   JavaSpring:mvcUrl映射错误的id   java应该在getInstance或构造函数中使用Init方法吗?   安卓中的java空指针异常错误   java Jsoup不能完全获取原始html代码