2013-05-17 33 views
1

我試圖從SDK的耳機Emotiv公司太平洋業務中心編譯文件沒有屬性「SERIALNUM」。但是,當我編譯它,我得到這個錯誤信息:Emokit SDK:「Emotiv公司」對象有在Python

"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) 

我需要這個學校項目。我在蟒蛇新的,所以我不知道會不會是,我已經張貼了這個問題,在emokit SDK網站,但我沒有答案。這是網站爲全碼:https://github.com/openyou/emokit/blob/master/python/emokit/emotiv.py 任何幫助,將不勝感激。

+1

添加'其他:提高ValueError異常(「不應該在這裏得到!」)'的'gevent.spawn'代碼之前,並可以幫助你獲得關於錯誤的更清晰。我敢打賭你在代碼中的任何地方都沒有設置'serialNum'就會掉下if語句。你應該弄清楚是什麼導致這樣的事情發生,並添加另一種情況下,等 –

+0

您也可能會https://github.com/nh2/hemokit嘗試。 – nh2

回答

0

在最近EPOCs,該vendor_id發生了變化。嘗試更換行:

if device.vendor_id != 0x21A1: 

if device.vendor_id != 0x21A1 and device.vendor_id != 0x1234: 

有人注意到這一點已經和emokit Github的頁面上開設了ticket