如何解决Pyvisa 是否与 Pycharm 的 pydev 调试器 REPL 中的 GPIB 设备通信?
我们正在编写一个驱动程序,通过带有 Waferprober 的 GPIB 远程操作 pyvisa。 与设备的连接是根据其手册设置的(在线不可用):
device = rm.open_resource(address,read_termination="\r",write_termination="\r",send_end=False)
正常运行程序时,通信按预期进行。 Waferprober 接收、执行命令并且可以读取结果/状态字节(如果适用)。设备屏幕上不会显示任何错误消息。
特别是“加载卡匣”命令(“jw”),它需要大约 12 秒的时间来执行,然后读取操作是否成功的状态。
但是,当进入 Pycharm 的调试模式 (pydev) 时,Prober 的行为方式不同。一些“立即”命令,例如要求 ID,仍然有效,但长命令,例如“装入卡匣”命令,会导致以下行为:
>>> device.write('jw')
==> 磁带已装入,但大约 1 秒后出现“GP-IB 接收命令格式无效!!”错误是由设备(在其显示屏上)引发的,根据手册,这是由以下原因引起的:
• 接收到的格式(使用字符和位数) 命令不合适。
但是,当重复该命令并添加“让python保持忙碌的东西”时,一切都再次按预期工作:
>>> device.write('jw'); time.sleep(15); # works
>>> device.write('jw'); dummy = input('do not enter anything until cassette is ready') # works
>>> device.write('jw'); time.sleep(5); # results in communication error after sleep (cassette is not ready at that point)
因此,无论何时执行 REPL 中的命令,调试环境中的某些东西似乎都试图……与 gpib 设备对话。
有人可以解释一下调试期间可能发生的事情,而正常执行期间不会发生的事情吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。