Skip to content

Commit 0d84705

Browse files
author
William Schumacher
committed
Fixed wind0ze support...
It also updates at 128frame per sec as it should.
1 parent 5a20525 commit 0d84705

File tree

1 file changed

+39
-13
lines changed

1 file changed

+39
-13
lines changed

python/emotiv.py

+39-13
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
'F8': [178, 179, 180, 181, 182, 183, 168, 169, 170, 171, 172, 173, 174, 175],
2929
'AF4': [196, 197, 198, 199, 184, 185, 186, 187, 188, 189, 190, 191, 176, 177],
3030
'FC6': [214, 215, 200, 201, 202, 203, 204, 205, 206, 207, 192, 193, 194, 195],
31-
'F4': [216, 217, 218, 219, 220, 221, 222, 223, 208, 209, 210, 211, 212, 213],
31+
'F4': [216, 217, 218, 219, 220, 221, 222, 223, 208, 209, 210, 211, 212, 213]
3232
}
3333
quality_bits = [99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112]
3434

@@ -248,16 +248,17 @@ def updateStdout(self):
248248
print "F8 Reading: %i Strength: %i" % (self.sensors['F8']['value'], self.sensors['F8']['quality'])
249249
print "T7 Reading: %i Strength: %i" % (self.sensors['T7']['value'], self.sensors['T7']['quality'])
250250
print "P8 Reading: %i Strength: %i" % (self.sensors['P8']['value'], self.sensors['P8']['quality'])
251-
print "AF4 Reading: %i Strength: %i" % (self.sensors['AF8']['value'], self.sensors['AF8']['quality'])
251+
print "AF4 Reading: %i Strength: %i" % (self.sensors['AF4']['value'], self.sensors['AF4']['quality'])
252252
print "F4 Reading: %i Strength: %i" % (self.sensors['F4']['value'], self.sensors['F4']['quality'])
253-
print "AF3 Reading: %i Strength: %i" % (self.sensors['AF7']['value'], self.sensors['AF7']['quality'])
253+
print "AF3 Reading: %i Strength: %i" % (self.sensors['AF3']['value'], self.sensors['AF3']['quality'])
254254
print "O2 Reading: %i Strength: %i" % (self.sensors['O2']['value'], self.sensors['O2']['quality'])
255255
print "O1 Reading: %i Strength: %i" % (self.sensors['O1']['value'], self.sensors['O1']['quality'])
256256
print "FC5 Reading: %i Strength: %i" % (self.sensors['FC5']['value'], self.sensors['FC5']['quality'])
257-
print "Unknown Reading: %i Strength: %i" % (self.sensors['Unknown']['value'], self.sensors['Unknown']['quality'])
258-
print "Gyro X: %i, Gyro Y: %i, Battery: %i" % (
259-
self.sensors['X']['value'], self.sensors['Y']['value'], g_battery)
260-
gevent.sleep(0)
257+
print "Unknown Reading: %i Strength: %i" % (
258+
self.sensors['Unknown']['value'], self.sensors['Unknown']['quality'])
259+
print "Gyro X: %i, Gyro Y: %i Battery: %i" % (
260+
self.sensors['X']['value'], self.sensors['Y']['value'], g_battery)
261+
gevent.sleep(1)
261262

262263
def getLinuxSetup(self):
263264
rawinputs = []
@@ -297,14 +298,40 @@ def getLinuxSetup(self):
297298
print "Couldn't open file: %s" % e
298299

299300
def setupWin(self, headsetId):
301+
hidrawDevices = []
302+
#filter = hid.HidDeviceFilter(vendor_id=0x21A1,
303+
# product_name='EPOC BCI')#This device doesn't receive any input
300304
filter = hid.HidDeviceFilter(vendor_id=0x21A1,
301-
product_name='Brain Waves')#This doesn't seem right... I'm not using windows though so w/e
305+
product_name='00000000000')
306+
#devices = filter.get_devices()
307+
#for device in devices:
308+
#hidrawDevices.append(device)
309+
#filter = hid.HidDeviceFilter(vendor_id=0x21A1,
310+
# product_name='00000000000')
302311
devices = filter.get_devices()
303-
assert len(devices) > headsetId
304-
self.device = devices[headsetId]
312+
for device in devices:
313+
self.device = device
305314
self.device.open()
306-
feature = self.device.find_feature_reports()[0]
307-
self.setupCrypto(self.device.serial_number, feature.get())
315+
self.device.set_raw_data_handler(self.handler)
316+
self.serialNum = self.device.serial_number
317+
#self.device.find_feature_reports()[0]
318+
gevent.spawn(self.setupCrypto, self.serialNum)
319+
gevent.spawn(self.updateStdout)
320+
321+
while self._goOn:
322+
try:
323+
gevent.sleep(0)
324+
except KeyboardInterrupt:
325+
self._goOn = False
326+
for device in hidrawDevices:
327+
device.close()
328+
329+
def handler(self, data):
330+
assert data[0] == 0
331+
tasks.put_nowait(''.join(map(chr, data[1:])))
332+
self.packetsReceived += 1
333+
self.device.set_raw_data_handler(self.handler)
334+
return True
308335

309336
def setupPosix(self):
310337
_os_decryption = False
@@ -315,7 +342,6 @@ def setupPosix(self):
315342
else:
316343
setup = self.getLinuxSetup()
317344
self.serialNum = setup[0]
318-
#self.hidraw = open("/dev/hidraw4")
319345
if os.path.exists("/dev/" + setup[1]):
320346
self.hidraw = open("/dev/" + setup[1])
321347
else:

0 commit comments

Comments
 (0)