我从此VISA收购电话获得的返回结果有问题:
ribData = []
ribData = inst.query('CURVe?')
我正在使用此呼叫从示波器获取波形。 我正在用Python开发该程序。
如果值是正数,则调用将返回二进制值,并且可以绘制它们的图形,但是如果将波形放在示波器的一半以下,则会收到错误消息:
Traceback (most recent call last):
File "C:/_Python/TDS3054/mainTds.py", line 107, in cButton
ribData = inst.query('CURVe?')
File "C:\Python34\lib\site-packages\pyvisa\resources\messagebased.py", line 384, in query
return self.read()
File "C:\Python34\lib\site-packages\pyvisa\resources\messagebased.py", line 309, in read
message = self.read_raw().decode(enco)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xfc in position 401: ordinal not in range(128)
在采集之前,我使用以下VISA调用来设置示波器。
inst.write('DATa:SOUrce CH2')
inst.write('DATa:WIDth 1')
inst.write('DATA:START 10')
inst.write('DATA:STOP 800')
inst.write('DATa:ENCdg RIBinary') # RIB -128 to +127
因为失败发生在获取调用(CURVe)上,所以我想知道是否有可用的VISA库调用来解决此问题。 也许我需要将Unicode设置为UTF-8,或者VISA不能处理Unicode,或者这不是我的问题。