基于WAMP的HiPerCAM设备通信

hcam_devices的Python项目详细描述


hcam U设备

https://img.shields.io/pypi/v/hcam_devices.svghttps://img.shields.io/travis/StuartLittlefair/hcam_devices.svgDocumentation StatusUpdates

HiPERCAM的硬件通信

HiPERCAM项目需要在分布在多个硬件组件之间进行通信 一个网络。hcam_devices提供了一组工具,允许网络上的设备运行并与它们进行通信 其他。在

该体系结构使用一个中央WAMP服务器(例如crossbar)来处理通信 在网络插座上。网络上的设备定期向WAMP服务器和任何相关方发布遥测数据 可以订阅遥测主题以接收更新。在

设备可以公开远程过程调用(rpc),以便可以通过网络控制它们,还可以订阅 主题,以便可设置属性(例如CCD的温度设定值)可以通过发布到这些主题来控制 话题。在

安装

按常规安装:

pip install .

或者如果您没有根访问权限:

^{pr2}$

用法

首先,您需要一个运行的WAMP服务器。我推荐crossbar。横杆的配置文件 实例包含在这个包的data目录中。一旦你的WAMP服务器启动并运行,有几个 可以运行的脚本。在

hwserver

该程序运行HiPERCAM外围硬件(如CCD珀耳贴控制器、焦平面幻灯片、流量传感器等)。 运行此脚本将这些设备连接到WAMP服务器并允许监视和控制

hwlogger

为了使设备(尤其是CCD头)可以在非现场进行监视,此脚本订阅CCD遥测并保存 持久性非站点Influx数据库的硬件状态。这个数据库可以和第三方一起使用 像grafana这样的参与方工具可以为设备监视启用整洁的仪表板。在

hs服务器

NGC-CCD控制器负责驱动CCD,节省曝光量等。为了获得最大的可靠性和速度,该设备 该脚本通过连接到服务器。在

gtc服务器

最后,外部GTC环境(电子机架、旋转器、望远镜偏移等)都连接到WAMP服务器 使用这个脚本。在

python中的控件

一旦这些脚本运行,就可以用Python控制设备。这可以使用WAMP库来完成,比如autobahn。 另外,所包含的WAMP server config提供了一个简单的HTTP接口,可按如下方式使用:

fromhcam_devices.wamp.utilsimportcall,publish# call RPCsngc_status=call('hipercam.NGC.rpc.summary')call('hipercam.GTC.rpc.do_offset',raoff=0.05,decoff=0.001)# publish to a topicpublish('hipercam.FocalPlaneSlide.target_position',-50)

现在必须使用WAMP库来订阅设备遥测。在

可选包依赖项

hcam_devices支持其他几种工具,例如查找图表工具hfinder和 仪器控制图形用户界面hdriver。大多数用户不需要安装额外的模块。然而, 如果您希望能够运行hdriver,您需要与望远镜进行完全通信 在GTC上运行时,您需要安装CORBA实现omniORBpy。在

完整的安装说明可以在omniORB项目homepage找到。 确保同时安装omniORB和omniorbby。另外,omniorbby模块和lib64变量必须 两者都在PYTHONPATH中。最后,与GTC通信需要安装 接口定义语言(IDL)文件,以及从这些文件编译的python模块。联系S.Littlefair 对于这些文件,它还必须在PYTHONPATH中。在

  • 免费软件:麻省理工学院许可证

历史

  • PyPI的第一个版本。在

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

推荐PyPI第三方库


热门话题
JavaJSonarray不会从SeekBar读取double   使用另一个类从Java中的2D数组打印用户输入   java ClassNotFoundException的原因   spring调用两个方法以返回Java中的不同页面   httpurlconnection Java禁止的代码错误,但浏览器错误(2)   java画布矩阵转换   java:在另一个java映射中使用“Map”作为值   java“未找到用于解密的证书”(Apache CXF,WSSecurity)   java如何查看JTable中选择的行   java在没有xmlwrappers的情况下重复xml元素序列集   java将垂直直方图打印到控制台   java Spring JDBCTemplate:构造不带特殊字符的JSON   java PayPal RestApi获取用户信息