简单应用程序消息传递协议 (astropy.samp

astropy.samp 是SAMP消息传递系统的Python实现。

简单应用程序消息传递协议(SAMP)是一种进程间通信系统,它允许通常在同一台计算机上运行的不同客户端程序通过交换可能引用外部数据文件的短消息来彼此通信。国际天文学联盟(IVOA)开发了许多工具,包括虚拟天文学联盟 TOPCATSAO DS9Aladin .

所以通过使用 astropy.samp ,Python代码可以与其他正在运行的桌面客户机交互,例如在DS9中显示一个命名的FITS文件,提示Aladin在给定的天空位置重新居中,或者在用户高亮显示TOPCAT中的打印点时接收到一条标识行的消息。

协议的工作方式是SAMP“Hub”进程必须在本地主机上运行,然后各种客户机程序才能连接到它。一旦连接起来,这些客户机就可以通过集线器互相发送消息。有关详细信息,请参阅 SAMP standard .

astropy.samp 提供的类既可以设置这样的集线器进程,也可以帮助实现可以发送和接收消息的客户端。它还提供了一个独立的程序 samp_hub 它可以在自己的进程中运行持久化集线器。注意,从Python设置hub并不总是必要的,因为其他各种支持SAMP的应用程序可能独立地启动一个hub;在大多数情况下,在SAMP会话期间只使用一个正在运行的hub。

以下类在中可用 astropy.samp

astropy.samp is a full implementation of SAMP V1.3. As well as the Standard Profile, it supports the Web Profile, which means that it can be used to also communicate with web SAMP clients; see the sampjs 库示例以获取更多详细信息。

参考/API

astropy.samp公司包裹

此子包提供类,以便通过 Simple Application Messaging Protocal (SAMP) .

在融入 Astropy 之前,它被称为 SAMPy ,并由Luigi Paioro开发。

Classes

Conf ()

的配置参数 astropy.samp .

SAMPClient \(集线器[, name, description, ...] )

实用程序类,它提供了创建和管理与SAMP兼容的XML-RPC服务器(充当SAMP可调用客户机应用程序)的工具。

SAMPClientError 

SAMP客户端异常。

SAMPHubError 

SAMP集线器异常。

SAMPHubProxy ()

代理类简化与SAMP中心的客户机交互(通过标准概要文件)。

SAMPHubServer \ [secret, addr, port, ...] )

SAMP集线器服务器。

SAMPIntegratedClient \ [name, description, ...] )

一个简单的SAMP客户端。

SAMPMsgReplierWrapper \(cli)

函数装饰器,允许自动从绑定到SAMP调用(或notify)的函数获取错误并返回映射(如果有)。

SAMPProxyError \(faultCode,faultString, *  * 额外)

SAMP代理集线器异常

SAMPWarning 

Astropy-specific SAMP警告

WebProfileDialog ()

一个基类,使编写Web配置文件GUI同意对话框更容易。

类继承图

Inheritance diagram of astropy.samp.Conf, astropy.samp.client.SAMPClient, astropy.samp.errors.SAMPClientError, astropy.samp.errors.SAMPHubError, astropy.samp.hub_proxy.SAMPHubProxy, astropy.samp.hub.SAMPHubServer, astropy.samp.integrated_client.SAMPIntegratedClient, astropy.samp.utils.SAMPMsgReplierWrapper, astropy.samp.errors.SAMPProxyError, astropy.samp.errors.SAMPWarning, astropy.samp.hub.WebProfileDialog

致谢

此代码改编自 SAMPy 包由Luigi Paioro编写,他已经授予Astropy项目使用BSD许可证下的代码的权限。