我是一名远程控制我的实验室的研究人员。我使用 python 连接到我所有的仪器,每个仪器都是一个类的实例,例如:
Class Motor():
def setup():
establish connection with this guy
def move(x):
move this guy
def close():
close this guy
My_motor = Motor()
我的问题是,我经常失去与远程 PC 的连接,不小心重新运行代码或忘记关闭仪器,导致我的仪器实例丢失,这意味着我无法重新建立连接。
到目前为止,我的解决方案是在设备管理器中禁用-启用设备,尽管我经常需要重新启动计算机才能这样做^^。
有没有人有办法解决吗?更复杂的情况是,我的大学 IT 人员对可以安装什么软件极为严格,因此可能会排除 USBDEVIEW 等可能的路径。
一个更具体的例子:我连接到位于 ASRL2 的资源
import pyvisa
rm = pyvisa.ResourceManager()
inst = rm.open_resource('ASRL2::INSTR')
我的终端死机,计算机重新启动或我覆盖了我的实例 inst:
inst = 'Random thing'
现在我无法关闭原始连接或重新建立新连接。在 pyvisa 中,这将给出 VisaIOError:
VisaIOError: VI_ERROR_RSRC_BUSY (-1073807246): The resource is valid, but VISA cannot currently access it.