Python 如何保持与pyvisa py的连接?闲置5分钟后管道破裂
我目前正在安装NI VISA的Windows PC上连接VISA instruments,并试图切换到Ubuntu 18上的Docker容器,使用Python 如何保持与pyvisa py的连接?闲置5分钟后管道破裂,python,python-3.x,sockets,broken-pipe,pyvisa,Python,Python 3.x,Sockets,Broken Pipe,Pyvisa,我目前正在安装NI VISA的Windows PC上连接VISA instruments,并试图切换到Ubuntu 18上的Docker容器,使用pyvisa pyasvisalib。从国家工具切换到开源解决方案后,所有代码仍然可以正常工作,但不知何故,到工具的会话并没有保持活跃 我的连接是通过连接pyvisa py的vxi11接口完成的,据我所知,该接口扩展了rcp协议。如果我没有使用此设备超过5分钟,远程设备会关闭连接(与套接字的正常情况一样),我会收到以下错误: BrokenPipeErr
pyvisa py
asvisalib
。从国家工具切换到开源解决方案后,所有代码仍然可以正常工作,但不知何故,到工具的会话并没有保持活跃
我的连接是通过连接pyvisa py
的vxi11接口完成的,据我所知,该接口扩展了rcp
协议。如果我没有使用此设备超过5分钟,远程设备会关闭连接(与套接字的正常情况一样),我会收到以下错误:
BrokenPipeError: [Errno 32] Broken pipe
此问题在我的系统上是100%可复制的,代码如下:
将pyvisa导入为visa
导入时间
rm=visa.ResourceManager(“@py”)
原始安装=rm.open安装资源('TCPIP0::10.0.1.21::安装0::安装')
原始仪器查询(':OUTP:STAT?'))
时间。睡眠(60*6)
原始仪器查询(':OUTP:STAT?'))
我已经在PyVisa
和PyVisa py
包中搜索了一些选项来启用keepalive功能,但我找到的最接近的是PyVisa py.tcpip.tcpiinstrsession
中的这些行
if attribute==constants.VI\u ATTR\u TCPIP\u KEEPALIVE:
引发未实现的错误
此外,当我深入研究源代码时,在所有文件中没有一个地方可以找到神奇的代码行socket.SO\u KEEPALIVE
这就提出了一个问题:keepalive软件包是从
PyVisa
中的其他地方发送的,还是该选项还没有实现?这个问题很可能是docker连接有问题。如果你有类似的问题,也许可以帮助你。