4
4
except :
5
5
windows = False
6
6
7
- import sys
7
+ import sys , os
8
8
import logging
9
9
logger = logging .getLogger ("emotiv" )
10
10
@@ -58,7 +58,7 @@ def __repr__(self):
58
58
)
59
59
60
60
class Emotiv (object ):
61
- def __init__ (self , headsetId = 0 , research_headset = False ):
61
+ def __init__ (self , headsetId = 0 , research_headset = True ):
62
62
63
63
if research_headset :
64
64
self .rijn = rijndael (research_key , 16 )
@@ -69,9 +69,9 @@ def __init__(self, headsetId=0, research_headset = False):
69
69
self .packets = []
70
70
71
71
if self .setupWin (headsetId ) if windows else self .setupPosix (headsetId ):
72
- logger .info ("Fine, connected to the Emotiv receiver" )
72
+ logger .info ("Fine, connected to the Emotiv EPOC receiver" )
73
73
else :
74
- logger .error ("Unable to connect to the Emotiv receiver :-(" )
74
+ logger .error ("Unable to connect to the Emotiv EPOC receiver :-(" )
75
75
sys .exit (1 )
76
76
77
77
def setupWin (self , headsetId ):
@@ -88,11 +88,26 @@ def handle(data):
88
88
89
89
def setupPosix (self , headsetId ):
90
90
def reader ():
91
- self .hidraw = open ("/dev/hidraw1" )
91
+ _os_decryption = False
92
+ if os .path .exists ('/dev/eeg/raw' ):
93
+ #The decrpytion is handled by the Linux epoc daemon. We don't need to handle it there.
94
+ _os_decryption = True
95
+ self .hidraw = open ("/dev/eeg/raw" )
96
+ else :
97
+ if os .path .exists ("/dev/hidraw2" ):
98
+ self .hidraw = open ("/dev/hidraw2" )
99
+ else :
100
+ self .hidraw = open ("/dev/hidraw2" )
101
+
92
102
while self ._goOn :
93
103
data = self .hidraw .read (32 )
94
104
if data != "" :
95
- self .gotData (data )
105
+ if _os_decryption :
106
+ self .packets .append (EmotivPacket (data ))
107
+ else :
108
+ #Decrypt it!
109
+ self .gotData (data )
110
+
96
111
self ._dataReader = Thread (target = reader )
97
112
self ._dataReader .start ()
98
113
return True
0 commit comments