EPICS的Python扩展

(1) CaChannel

CaChannel是Channel Access的Python接口。CaChannel.ca模块是使用Python/C API编写的,它与caffi具有相同的API。因此,通过设置环境变量CACHANNEL_BACKEND=caffi,CaChannel接口也可以使用caffi.ca。如果不存在EPICS安装或C扩展无法导入,则无法使用。

(2) caffi

caffi是Channel Access外部功能接口。它使用CFFI调用EPICS Channel Access访问库。这个包提供了Channel Access的直接低级接口,类似于C API。

(3) caproto

Caproto是EPICS Channel Access协议的一种实现,用于纯Python中的分布式硬件控制,具有“sans-I/O”体系结构。

Caproto是一个用于构建可以说Channel Access(EPICS)的Python程序的工具包。它包括一个可重用的核心,对通道访问协议进行编码。它还包括一些基于该核心的客户机和服务器实现。这种分层设计的灵感来自于Python社区中编写网络协议的sans-I/O实现的广泛努力。

Caproto旨在成为EPICS的友好入口。对于那些想更好地了解硬件的工程师们了解更多关于EPICS社区的知识,以及对将其用于业余项目感兴趣的“制造商”来说,EPICS可能是有用的。Caproto也适用于大型实验设备。

(4) cothread

此模块包含用于使用轻量级Python线程Channel Access的Python绑定

从2-14版本开始,具有相同代码库的cothread现在完全支持Python 3,不需要应用补丁。

(5) pvaPY

它是Python和Conda的官方pvAccess绑定。

此页面提供对最近发布的pvapy模块版本的文档的访问,该版本由epics核心开发人员组维护。

(6) PyEPICS

Python的EPICS Channel Access。

PyEPICS是EPICS控制系统的Channel Access库与Python编程语言的接口。PyEPICS包为Python提供了一个基本的EPICS模块,提供了通过CA协议读取和写入EPICS过程变量(PV)的方法。该包包括CA模块中底层通道访问库上的一个较薄且相当完整的层,以及在此基础功能之上构建的更高层次的抽象。

该包包含一个非常简单的CA接口,类似于Unix命令行工具和EZCA库,函数为epics.caget()、epics.caput()、epics.cainfo()和epics.camonitor()。这也是一个pv.PV类,它将EPICS过程变量表示为一个功能齐全、易于使用的Python对象。其他模块为CA提供更高级别的编程支持,包括将相关的PV分组到device.Device,在alarm.Alarm中创建报警,并在autosave模块中保存PV值。还支持在wx模块中方便地使用EPICS到wxPython小部件,并支持在Qt模块中使用PyQt小部件。

发表评论