Я использую Python 2.7 для связи с системой движения глаз через USB.Устройство поставляется с ActiveXControl - я использовал makepy для создания оболочки Python для доступа к методам.
Это сценарий, который создает экземпляр объекта COM и пытается собрать данные (я исключил серийный номер).номер устройства):
Код инстанции
# this code creates an instance of priCS681Comm.ocx
import win32com.client
import win32com.client.dynamic
from win32com.client import gencache
gencache.EnsureModule('{35F923BD-6F0F-477D-A07C-E33C53FB692B}', 0, 3, 0)
cs = win32com.client.Dispatch("PRICS681.priCS681Comm")
cs.ConnectionConnect('xxxxxx')
print cs.Connected
print cs.InconsistentPacketNumber
print cs.InconsistentTimeStamp
print cs.PacketsReceived
cs.GetDataAngular()
Traceback
C:\Python27\Lib\site-packages\win32com\client>python LateAndEarly.py
True
0
0
0
Traceback (most recent call last):
File "LateAndEarly.py", line 16, in <module>
cs.GetDataAngular()
File "C:\Python27\lib\site-packages\win32com\gen_py\35F923BD-6F0F-477D-A07C-E3
3C53FB692Bx0x3x0.py", line 415, in GetDataAngular
return self._ApplyTypes_(1610809374, 1, (12, 0), (), u'GetDataAngular', None
,)
File "C:\Python27\lib\site-packages\win32com\client\__init__.py", line 467, in
_ApplyTypes_
self._oleobj_.InvokeTypes(dispid, 0, wFlags, retType, argTypes, *args),
pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, u'PRICS681', u'Su
bscript out of range', None, 1000009, -2146828279), None)
Подключенный логический тип возвращает значение True;однако сообщения о том, что пакеты не получены.Вызов метода GetDataAngular также создает ошибку, которую я не могу интерпретировать.В руководстве говорится, что данные могут быть собраны только один раз событие ReceiveData - это может быть проблемой.Я вижу определение функции для обработчика события OnReceiveData в сгенерированном файле makepy;однако я не уверен, что делать дальше ...