python visa模块_已经安装了pyvisa仍然报错没有模块
該樓層疑似違規已被系統折疊?隱藏此樓查看此樓
找到原因了。原因為pyvis是基于NIVISA的。而我現在的儀器是安捷倫的,必須用安捷倫的VISA。兩者雖然都是visa32.dll但是彼此不兼容。
只能用其他方法了。
新方法。已實現搜索所有可用設備。希望能幫助到更多的人
from ctypes import *
visa = WinDLL("visa32.dll") # or windll.visa32
def vi_status_check(vi_status, func, args):
if vi_status < 0:
raise RuntimeError(hex(vi_status + 2**32))
return args
visa.viOpenDefaultRM.errcheck = vi_status_check
visa.viOpenDefaultRM.argtypes = [POINTER(c_uint32)]
visa.viFindRsrc.errcheck = vi_status_check
visa.viFindRsrc.argtypes = [c_uint32, # sesn
c_char_p, # expr
POINTER(c_uint32), # findList
POINTER(c_uint32), # retcnt
c_char_p] # desc
rm_session = c_uint32()
visa.viOpenDefaultRM(byref(rm_session))
expr = b"?*INSTR"
instr_list = c_uint32()
nb = c_uint32()
desc = create_string_buffer(256)
visa.viFindRsrc(rm_session,
expr,
byref(instr_list),
byref(nb),
desc)
print(instr_list.value,nb.value,desc.value)
if(nb.value>1):
for i in range(nb.value):
visa.viFindNext(instr_list,desc)
print(desc.value)
總結
以上是生活随笔為你收集整理的python visa模块_已经安装了pyvisa仍然报错没有模块的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python sum函数numpy_解决
- 下一篇: 三星Galaxy S23系列参数泄露:顶