Skip to content

Commit 04ea38f

Browse files
author
AJ Keller
authored
Merge pull request #66 from chrisjz/wifi-ganglion
FIX: Streaming Ganglion over WIFI
2 parents 076eb98 + f5b1a02 commit 04ea38f

File tree

3 files changed

+74
-4
lines changed

3 files changed

+74
-4
lines changed

openbci/wifi.py

Lines changed: 70 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,13 @@ def connect(self):
154154
if self.log:
155155
print("Connected to %s with %s channels" % (self.board_type, self.eeg_channels_per_sample))
156156

157+
gains = None
158+
if self.board_type == k.BOARD_CYTON:
159+
gains = [24, 24, 24, 24, 24, 24, 24, 24]
160+
elif self.board_type == k.BOARD_GANGLION:
161+
gains = [51, 51, 51, 51]
162+
self.local_wifi_server.set_parser(ParseRaw(gains=gains, board_type=self.board_type))
163+
157164
if self.high_speed:
158165
output_style = 'raw'
159166
else:
@@ -340,6 +347,65 @@ def set_channel(self, channel, toggle_position):
340347
except Exception as e:
341348
print("Something went wrong while setting channels: " + str(e))
342349

350+
def set_sample_rate(self, sample_rate):
351+
""" Change sample rate """
352+
try:
353+
if self.board_type == k.BOARD_CYTON:
354+
if sample_rate == 250:
355+
self.wifi_write('~6')
356+
elif sample_rate == 500:
357+
self.wifi_write('~5')
358+
elif sample_rate == 1000:
359+
self.wifi_write('~4')
360+
elif sample_rate == 2000:
361+
self.wifi_write('~3')
362+
elif sample_rate == 4000:
363+
self.wifi_write('~2')
364+
elif sample_rate == 8000:
365+
self.wifi_write('~1')
366+
elif sample_rate == 16000:
367+
self.wifi_write('~0')
368+
else:
369+
print("Sample rate not supported: " + str(sample_rate))
370+
elif self.board_type == k.BOARD_GANGLION:
371+
if sample_rate == 200:
372+
self.wifi_write('~7')
373+
elif sample_rate == 400:
374+
self.wifi_write('~6')
375+
elif sample_rate == 800:
376+
self.wifi_write('~5')
377+
elif sample_rate == 1600:
378+
self.wifi_write('~4')
379+
elif sample_rate == 3200:
380+
self.wifi_write('~3')
381+
elif sample_rate == 6400:
382+
self.wifi_write('~2')
383+
elif sample_rate == 12800:
384+
self.wifi_write('~1')
385+
elif sample_rate == 25600:
386+
self.wifi_write('~0')
387+
else:
388+
print("Sample rate not supported: " + str(sample_rate))
389+
else:
390+
print("Board type not supported for setting sample rate")
391+
except Exception as e:
392+
print("Something went wrong while setting sample rate: " + str(e))
393+
394+
def set_accelerometer(self, toggle_position):
395+
""" Enable / disable accelerometer """
396+
try:
397+
if self.board_type == k.BOARD_GANGLION:
398+
# Commands to set toggle to on position
399+
if toggle_position == 1:
400+
self.wifi_write('n')
401+
# Commands to set toggle to off position
402+
elif toggle_position == 0:
403+
self.wifi_write('N')
404+
else:
405+
print("Board type not supported for setting accelerometer")
406+
except Exception as e:
407+
print("Something went wrong while setting accelerometer: " + str(e))
408+
343409
"""
344410
345411
Clean Up (atexit)
@@ -474,4 +540,7 @@ def set_callback(self, callback):
474540
self.handler.callback = callback
475541

476542
def set_gains(self, gains):
477-
self.parser.set_ads1299_scale_factors(gains)
543+
self.parser.set_ads1299_scale_factors(gains)
544+
545+
def set_parser(self, parser):
546+
self.parser = parser

scripts/stream_data_wifi.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@
44

55

66
def printData(sample):
7-
print sample
7+
print(sample)
88

99

1010
if __name__ == '__main__':
1111
shield_name = 'OpenBCI-E2B6'
1212
logging.basicConfig(filename="test.log",format='%(asctime)s - %(levelname)s : %(message)s',level=logging.DEBUG)
1313
logging.info('---------LOG START-------------')
14-
shield = bci.OpenBCIWiFi(shield_name=shield_name, log=True)
14+
shield = bci.OpenBCIWiFi(shield_name=shield_name, log=True, high_speed=False)
1515
print("WiFi Shield Instantiated")
1616
shield.start_streaming(printData)
1717

scripts/stream_data_wifi_high_speed.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44

55

66
def printData(sample):
7-
print sample.sample_number
7+
print(sample.sample_number)
8+
print(sample.channel_data)
89

910

1011
if __name__ == '__main__':

0 commit comments

Comments
 (0)