我想通過使用API來控制泰克RSA306頻譜分析儀。該程序找到RSA300API.dll文件,但在搜索並連接到設備時會引發錯誤。我正在運行的程序是Tektronix的一個例子。我目前使用的設置是Python的2.7.12 64(蟒蛇4.1.1)在64位Windows 7Python AttributeError:function'Search'not found
from ctypes import *
import numpy as np
import matplotlib.pyplot as plt
我定位.dll文件用:
rsa300 = WinDLL("RSA300API.dll")
出現的錯誤執行搜索功能時:
longArray = c_long*10
deviceIDs = longArray()
deviceSerial = c_wchar_p('')
numFound = c_int(0)
serialNum = c_char_p('')
nomenclature = c_char_p('')
header = IQHeader()
rsa300.Search(byref(deviceIDs), byref(deviceSerial), byref(numFound))
if numFound.value == 1:
rsa300.Connect(deviceIDs[0])
else:
print('Unexpected number of instruments found.')
exit()
運行當出現以下錯誤消息:
C:\Anaconda2\python.exe C:/Tektronix/RSA_API/lib/x64/trial
<WinDLL 'RSA300API.dll', handle e47b0000 at 3ae4e80>
Traceback (most recent call last):
File "C:/Tektronix/RSA_API/lib/x64/trial", line 44, in <module>
rsa300.Search(byref(deviceIDs), byref(deviceSerial), byref(numFound))
File "C:\Anaconda2\lib\ctypes\__init__.py", line 376, in __getattr__
func = self.__getitem__(name)
File "C:\Anaconda2\lib\ctypes\__init__.py", line 381, in __getitem__
func = self._FuncPtr((name_or_ordinal, self))
AttributeError: function 'Search' not found
我遇到的問題是沒有找到'搜索'功能。這個問題的解決方案是什麼?
你確定你打開的dll的方式嗎?也許你應該嘗試這種方式:http://stackoverflow.com/a/3173926/5920310 你確定在dll裏面有一個'Search'函數嗎? –
我會假設在dll中有一個'搜索'功能。該DLL直接從泰克網站下載,示例程序也是從那裏下載的。 @XavierC。 – Rwinder
你可以提供:'dir(rsa300)'和'help(rsa300)'的輸出嗎?我會幫你的。 – richar8086