def setUp(self): source = EEGTablePacketSource() source.convert() self.collector = EEGDataCollector(source, FIELDS, WINDOW_SIZE) dataHandler = lambda x: x self.collector.setHandler(dataHandler) self.notifyCalled = 0
class TestEEGTableToPacketUtil(unittest.TestCase): def setUp(self): self.util = EEGTablePacketSource() self.util.convert() def test_dequeue(self): data = self.util.dequeue() self.assertEquals(len(data.sensors), 17) self.assertTrue("X" in data.sensors.keys()) self.assertTrue("quality" in data.sensors["X"].keys())
class TestEEGTableToPacketConverter(unittest.TestCase): def setUp(self): self.converter = EEGTablePacketSource(FILE_PATH, False) def test_convert_sunshine(self): self.assertFalse(self.converter.hasMore) self.converter.convert() self.assertTrue(self.converter.hasMore) for _ in range(0, len(self.converter.data)): self.converter.dequeue() self.assertFalse(self.converter.hasMore)
def setup_windows(self): """ Setup for headset on the Windows platform. """ global deviceConnected devices = [] try: for device in hid.find_all_hid_devices(): if device.vendor_id != 0x1234 and device.vendor_id != 0xED02: continue if device.product_name == 'Brain Waves': devices.append(device) device.open() self.serial_number = device.serial_number device.set_raw_data_handler(self.handler) elif device.product_name == 'EPOC BCI': devices.append(device) device.open() self.serial_number = device.serial_number device.set_raw_data_handler(self.handler) elif device.product_name == '00000000000': devices.append(device) device.open() self.serial_number = device.serial_number device.set_raw_data_handler(self.handler) elif device.product_name == 'Emotiv RAW DATA': devices.append(device) device.open() self.serial_number = device.serial_number device.set_raw_data_handler(self.handler) elif device.product_name == 'EEG Signals': devices.append(device) device.open() self.serial_number = device.serial_number device.set_raw_data_handler(self.handler) deviceConnected = (len(devices) > 0) if deviceConnected: crypto = gevent.spawn(self.setup_crypto, self.serial_number) console_updater = gevent.spawn(self.update_console) if self.write_to_file: print "Writing to file: " + fname if os.path.isfile(fname) == False: header = 'Timestamp;'; for k in enumerate(self.sensors): header = header + k[1] + ';'; header = header + 'QY;QF3;QF4;QP7;QFC6;QF7;QF8;QT7;QP8;QFC5;QAF4;QUnknown;QT8;QX;QO2;QO1;QAF3' with open(fname, 'w') as f: f.write(header + '\n') f.close() file_updater = gevent.spawn(self.update_file) else: global eegTableData filePath = scriptPath + "/../../../captured_data/janis/parts/2016-07-12-11-15_EEG_4096.csv" eegTableData = EEGTablePacketSource(filePath) eegTableData.convert() while self.running: try: gevent.sleep(0) except KeyboardInterrupt: self.running = False finally: if deviceConnected: for device in devices: device.close() gevent.kill(crypto, KeyboardInterrupt) gevent.kill(console_updater, KeyboardInterrupt) if self.write_to_file: gevent.kill(file_updater, KeyboardInterrupt)