我正在尝试从SDK编译一个用于耳机Emotiv Epoc的文件。但是当我编译它的时候,我得到了这个错误信息:
"Traceback (most recent call last):
File "emotiv.py", line 419, in
a.setup()
File "emotiv.py", line 232, in setup
self.setupWin()
File "emotiv.py", line 305, in setupWin
gevent.spawn(self.setupCrypto, self.serialNum)
AttributeError: 'Emotiv' object has no attribute 'serialNum'"
我检查了导致此错误的代码片段:
def setupWin(self):
devices = []
try:
for device in hid.find_all_hid_devices():
if device.vendor_id != 0x21A1:
continue
if device.product_name == 'Brain Waves':
devices.append(device)
device.open()
self.serialNum = device.serial_number
device.set_raw_data_handler(self.handler)
elif device.product_name == 'EPOC BCI':
devices.append(device)
device.open()
self.serialNum = device.serial_number
device.set_raw_data_handler(self.handler)
elif device.product_name == '00000000000':
devices.append(device)
device.open()
self.serialNum = device.serial_number
device.set_raw_data_handler(self.handler)
gevent.spawn(self.setupCrypto, self.serialNum)**<-- the error line**
gevent.spawn(self.updateStdout)
我需要这个做学校的项目。我是python的新手,所以我不知道是什么问题,我已经在emokit sdk站点上发布了这个问题,但我没有得到答案。这是完整代码的网站:https://github.com/openyou/emokit/blob/master/python/emokit/emotiv.py如有任何帮助,将不胜感激。
发布于 2013-06-21 20:42:51
在较新的EPOC上,vendor_id
发生了变化。尝试替换该行:
if device.vendor_id != 0x21A1:
使用
if device.vendor_id != 0x21A1 and device.vendor_id != 0x1234:
有人已经注意到了这一点,并在emokit Github页面上打开了一个ticket。
https://stackoverflow.com/questions/16619039
复制相似问题