GE Pace图书馆
gepace的Python项目详细描述
GE Pace图书馆
此库用于控制GE压力自动控制的基本功能 校准设备(Pace)型号1000、5000和6000。在
它由一个核心库、一个可选的模拟器和 可选的tango设备服务器。在
它已经在Pace5000型号上进行了测试,但应该可以与其他型号配合使用。在
它可以与ETH或串行线路连接(如下所示 设置串行线路连接的推荐方法)
安装
从您最喜欢的python环境类型中:
$ pip install gepace
图书馆
gepace库的核心由Pace对象组成。 要创建一个速度对象,您需要传递一个通信对象。在
通信对象可以是任何支持简单API的对象 包含两种方法(支持同步或异步版本):
- 在
write_readline(buff: bytes) -> bytes
或
在async write_readline(buff: bytes) -> bytes
- 在
write(buff: bytes) -> None
或
在async write(buff: bytes) -> None
支持此API的库是sockio (gepace是预装的,所以您不必担心安装它)。在
此库包括TCP对象的异步和同步版本。它也是 支持一组功能,如重新连接和超时处理。在
以下是如何连接到GE Pace控制器:
importasynciofromsockio.aioimportTCPfromgepaceimportPaceasyncdefmain():tcp=TCP("192.168.1.123",5000)# use host name or IPpace=Pace(tcp)idn=awaitpace.idn()name=awaitpace.name()print("Connected to {} ({})".format(idn,name))# channel access:temp_A=awaitpace['A'].temperature()unit=awaitpace['A'].unit()print("Channel A temperature: {}{}".format(temp_A,unit))# loop access:source_1=awaitpace[1].source()print("Loop 1 source: {}".format(source_1))# activate controlawaitpace.control(True)# hardware only accepts queries every 100ms. Yo can, however,# group queries in single request:asyncwithpaceasgroup:pace.idn()pace.control()pace['A'].temperature()idn,ctrl,temp_A=group.repliesasyncio.run(main())
串行线路
要访问基于串行线路的速度设备,强烈建议您生成 使用ser2net或 socat
假设您的设备连接到/dev/ttyS0
,波特率设置为19200,
以下是如何使用socat将设备暴露在机器端口5000上:
socat -v TCP-LISTEN:5000,reuseaddr,fork file:/dev/ttyS0,rawer,b19200,cs8,eol=10,icanon=1
可能值得考虑将socat或ser2net作为使用 supervisor或{a6}。在
模拟器
提供了一个速度模拟器。在
在使用之前,请确保所有设备都安装有:
$ pip install pace[simulator]
使用了sinstruments引擎。在
要启动模拟器,您需要编写一个YAML配置文件,其中定义 您要模拟多少个设备以及它们拥有哪些属性。在
以下示例导出2个硬件设备。第一个是最小值 配置使用默认值,第二个定义一些初始值 明确地:
^{pr2}$要启动模拟器,请键入:
$ sinstruments-server -c ./config.yml --log-level=DEBUG 2020-05-14 16:02:35,004 INFO simulator: Bootstraping server 2020-05-14 16:02:35,004 INFO simulator: no backdoor declared 2020-05-14 16:02:35,004 INFO simulator: Creating device Pace ('Pace') 2020-05-14 16:02:35,080 INFO simulator.Pace[('', 5000)]: listening on ('', 5000) (newline='\n') (baudrate=None)
(要查看选项的完整列表,请键入sinstruments-server --help
)
您可以像访问真正的硬件一样访问它:
$ nc localhost 5000 *IDN? GE,Pace5000,204683,1.01A
或使用库:
$python>>>fromsockio.sioimportTCP# use synchronous socket in the CLI!>>>fromcryoconimportCryoCon>>>cryo=CryoCon(TCP('localhost',5000))>>>print(cryo.idn())Cryo-con,24C,204683,1.01A
探戈服务器
还提供了tango设备服务器。在
确保所有设备都安装有:
$ pip install cryocon[tango-ds]
在tango数据库中注册cryocon tango服务器:
$ tangoctl server add -s CryoConTempController/test -d CryoConTempController test/cryocon/1
$ tangoctl device property write -d test/cryocon/1 -p address -v "tcp://192.168.123:5000"
(上面的示例使用tangoctl。你需要
在使用之前用pip install tangoctl
安装它。你可以自由使用任何其他的
探戈工具,如fandango或Jive)
启动服务器时使用:
$ CryoConTempController test
托多
- 添加
on_connection_made
回调以初始化控制器:- 单位=
K
- 缓存标识号,固件版本,硬件版本
- 我们应该藏起来吗系统:名称?以及输入:名称?理论上可以修改 直接与硬件前面板
- 单位=
- 项目
标签: