class BDFThread(QtCore.QThread): newPacket = QtCore.Signal(object) def __init__(self, filename): super(BDFThread, self).__init__() self.bdf = BDFReader(open(filename, 'rb')) def emitPacket(self): packet = self.bdf.readPacket() if packet: self.newPacket.emit(packet) else: self.quit() def run(self): timer = QtCore.QTimer() timer.timeout.connect(self.emitPacket) timer.start(1000 / 250) self.exec_()
import sys import wave from os.path import splitext from bdf import BDFReader import struct filename = sys.argv[1] base, ext = splitext(filename) wavfile = wave.open(base + '.wav', 'w') wavfile.setnchannels(1) wavfile.setsampwidth(3) wavfile.setframerate(250) reader = BDFReader(file(filename, 'rb')) packet = reader.readPacket() while packet: data = struct.pack('=i', packet[0]) wavfile.writeframesraw(data[1:]) packet = reader.readPacket() wavfile.close() print "foo"
def send_packet(channels): data = json.dumps(channels) sock.sendto(data.encode('utf-8'), ('localhost', 8888)) data = struct.pack('=f', channels[0] * 0.022351744455307063) sock.sendto(data, ('localhost', 9999)) filename = sys.argv[1] filehandler = open(filename, 'rb') if filename.lower().endswith('.wav'): bdf = WAVReader(filehandler) else: bdf = BDFReader(filehandler) def handle_timeout(): packet = bdf.readPacket() if packet: send_packet(packet) else: app.quit() timer = QtCore.QTimer() timer.timeout.connect(handle_timeout) #timer.start(1000 / 250) timer.start(3)
def __init__(self, filename): super(BDFThread, self).__init__() self.bdf = BDFReader(open(filename, 'rb'))