- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我尝试使用 python 3 和 pyvisa 1.8 与 GPIB 设备进行通信。
但是如何区分不同类型的异常。
例如:
try:
visa.ResourceManager().open_resources('COM1')
exception visa.VisaIOError:
<some code>
当打开失败时,它会生成一个通用异常 VisaIOError,但我怎么知道,是端口繁忙还是端口不存在还是其他?
喜欢:
try:
visa.ResourceManager().open_resources('COM1')
exception <1>:
# device busy
exception <2>:
# device does not exist
exception ...
我应该在位置 <1><2> 等处正确捕获不同类型的异常?
谢谢
最佳答案
如果您以某种方式向 Visa 提供错误数据,Visa 也会引发 ValueErrors 和 AttributeError。我认为它会引发 IOError,尽管我从未见过这种情况。
但是,是的,它主要引发 VisaIOError。
您可以做一些事情来获取有关异常的更多信息:
_rm = visa.ResourceManager()
try:
_rm.open_resources('COM1')
exception visa.VisaIOError as e:
print(e.args)
print(_rm.last_status)
print(_rm.visalib.last_status)
您可以将这些状态代码与 visa.constants.StatusCode 中的各种常量进行比较
if _rm.last_status == visa.constants.StatusCode.error_resource_busy:
print("The port is busy!")
last_status 和 visalib.last_status 有时会给出相同的状态代码 - 但有时它们不会,因此您可能应该同时检查它们。
请注意,我实例化了 ResourceManager。你不必这样做,但有些事情你可以用实例做,而你不能用类做,另外,如果你给它一个简短的名字,它会减少输入。
关于python - 如何设置 pyvisa 异常处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39041142/
我正在尝试使用 Python 后端 rm=ResourceManager('@py') 设置 pyvisa。 当我启动 rm.list_resources() 我收到以下错误: libgpib: er
我正在尝试使用 Pyvisa 从我的 Keithly 2701 DMM 的一个 channel 中捕获数据。 我通过 temp = keithly.ask('SCPI COmmand') 获得静态一次
我在树莓派2上安装pyvisa-py pn时出现错误,就是 ImportError: cannot import name rname 在我运行命令之后 rm = visa.ResourceManag
我正在尝试将示波器文件从 Tektronix 传输到 PC。不幸的是,我不断收到超时错误。我的写作工作但在阅读原始格式时我被卡住了。这是我的代码: import visa import time sc
我正在PyCharm Community Edition 2016.1.4上运行带有pyvisa 1.8的Python 3.5.1。 下面列出了“ python -m Visa info”的结果。 尝
我对 python 和仪器控制还是新手,我面临着一些尚未找到答案的问题。我正在使用 PyVisa 通过 rs232 控制单色仪(Spectral Products dk240)。(Python 3.5
我正在使用 pyVISA 来控制 GPIB 网络中的一些仪器。当我创建资源管理器时,我的 GPIB 网络中的所有仪器都进入远程模式,因此前面板显示被锁定并且不更新。当我关闭资源管理器时,仪器仍处于远程
我尝试使用 python 3 和 pyvisa 1.8 与 GPIB 设备进行通信。 但是如何区分不同类型的异常。 例如: try: visa.ResourceManager().open_res
我刚刚安装了 PyVISA使用 pip import visa rs = visa.ResourceManager() 我收到这个错误 Traceback (most recent call last
我正在开发一个 PyVISA 程序,该程序与功率分析仪和其他两个设备对话。我可以使用以下方法成功查询分析器: import pyvisa my_instrument = pyvisa.Resource
我正在使用是德科技波形发生器和 pyVisa,我注意到如果我的代码没有成功完成并结束,我需要对设备执行硬重置以再次尝试我的代码。 我曾尝试在 __del__ 方法下重置设备,以便设备处于已知状态,但似
二进制库:未找到错误。 我在 Windows 10 上从 Git Bash 运行并使用 pip 安装软件包。 我从他们的网站安装了 Ni-VISA 以及 pyVISA 和 pyVISA-py 软件包。
我想通过 GPIB 同时触发多个测量设备。有一个可与 LabVIEW 配合使用的 GPIB 函数“GET”,我想将其与 pyVISA 一起使用。 我可以使用 pyVISA 发送这个全局 GET 命令吗
我正在尝试使用 PyVISA 控制 GPIB 上的仪器(非常古老的霍尔测量设备)。我知道它可以与labview一起使用,在那里我发现了哪些地址执行什么操作以及一些带有跟踪器的基本命令,但没有什么乐趣。
我正在尝试通过 Python 与一个非常古老的仪器(CCD 相机)进行通信。仪器制造商于 1999 年出版的 GPIB 编程手册仅提供了基本命令列表。它还描述了 GPIB 通信的一些标准程序。 我之前
我想从外部控制我的 Keithley 6485 皮安表,方法是通过 RS232toUSB 将它连接到我的 Linux PC (CentOS 6.9) 并使用 pyvisa 在 python(2.7.1
所以我已经像这样初始化了 GPIB 仪器: import pyvisa rm = pyvisa.ResourceManager() kk = rm.open_resource('GPIB0::1::I
我正在尝试使用 Python 中的 pyVisa 通过以太网连接连接到温度室。该设备只允许通过端口 2049 进行连接。我可以通过 PuTTY 连接到它。或 HyperTerminal ,但是当我在
我正在尝试通过 Raspberry Pi 与 LeCroy WaveRunner 640Zi 示波器通信,它们通过 USB 电缆连接。我已经在 Windows 下做到了,但现在我无法让它在 Linux
我编写了一个数据采集程序/脚本,可与我们合作开发的设备配合使用。问题是我只能从此设备读取数据。无法写入,因此无法使用串行“?IDN*”命令来知道这是什么设备。 定义该设备的唯一内容是其“型号”,可以在
我是一名优秀的程序员,十分优秀!