示例#1
0
文件: Server.py 项目: vhenaoi/HVA
 def port(self):
     '''
     :list_ports: This module will provide a function called comports that 
         returns an iterable (generator or list) that will enumerate 
         available com ports. Note that on some systems non-existent ports 
         may be listed.
         
     :start_stream: Start handling streaming data from the board. 
         Call a provided callback for every single sample that is processed.
     '''
     Lista_puertos = list_ports.comports()
     print(Lista_puertos)
     for serial_device in Lista_puertos:
         code_serial = serial_device.serial_number
         if code_serial != None:
             if code_serial.startswith(serial_openBCI):
                 board = OpenBCICyton(port=serial_device.device,
                                      daisy=False)
                 Data = self.lslStreamers
                 board.start_stream(Data)
             else:
                 print(
                     'No hay dispositivo OpenBCI, conectar y volver a iniciar el programa'
                 )
                 input('Presione enter para finalizar ...')
示例#2
0
 def start_board(self):
     global fila
     fila = 0
     self.board = OpenBCICyton(port='COM8', daisy=False)
     self.stopconexioUltracortex = False
     self.stopconexioUltracortexPlot = False
     self.Crear_carpetaEEG()
示例#3
0
def connectToBoard():
    try:
        board = OpenBCICyton(daisy=True)
        return board
    except Exception as e:
        print(e)
        return None
示例#4
0
def printChannel(channelNum):
    try:
        board = OpenBCICyton(daisy=True)
    except Exception as e:
        id.makeErrorPopup(str(e))
        return

    callback = partial(printChannelsCallback, channelNum=channelNum)
    board.start_stream(callback)
示例#5
0
 def runSession(self):
     self.__createEEGStream()
     # eeg_thread = threading.Thread(target=self.__board.start_stream, args=(self.__lsl_streamers,))
     # eeg_thread.start()
     try:
         self.__board = OpenBCICyton()
         self.__board.start_stream(self.__lsl_streamers)
     except (KeyboardInterrupt, SystemExit):
         self.__board.stop_stream()
         sys.exit()
    def start_board_Ultracortex():
        global board

        try:
            board = OpenBCICyton("COM3", daisy=True)
            board.start_stream(ui.save_data_EEG)

        except:
            #ui.Errores("DONGLE DESCONECTADO")
            print("DONGLE DESCONECTADO")
def start_board_Ultracortex():
    global board

    try:
        #print("cualquier cosa")
        board = OpenBCICyton(port='/dev/ttyUSB0', daisy=True)
        board.start_stream(ui.save_data_EEG)

    except:
        #ui.Errores("DONGLE DESCONECTADO")
        print("DONGLE DESCONECTADO")
示例#8
0
def main():
    TIMEOUT = 60

    #Set (daisy = True) to stream 16 ch
    board = OpenBCICyton(daisy=True)

    signal.signal(signal.SIGALRM, signal_handler)
    signal.alarm(TIMEOUT)
    try:
        board.start_stream(print_raw)
    except Exception as e:
        print("timed out")
        board.stop_stream()
        sys.exit(0)
示例#9
0
    def startStream(self) :
        print("start streaming called")
        if not self.started:
            self.started = True

            if self.live: 
                from pyOpenBCI import OpenBCICyton
                print("LIVE: started eeg streaming")
                self.board = OpenBCICyton()
                self.eeg_thread = threading.Thread(target=self.board.start_stream, args=(self.push_data_sample,))
            else :
                print("FAKE DATA: started")
                self.eeg_thread = threading.Thread(target=self.__generate_artificial_data, args=(self.push_data_sample,))
            self.eeg_thread.start()
示例#10
0
 def start(self):
     print("start recording called")
     if self.live:
         from pyOpenBCI import OpenBCICyton
         print("LIVE: started eeg recording")
         header = ["timestamp"] + self.channels
         self.csv_writer = CSVWriter(self.output_filename,
                                     column_headers=header)
         self.board = OpenBCICyton()
         self.eeg_thread = threading.Thread(
             target=self.board.start_stream,
             args=(self.record_data_sample, ))
         self.eeg_thread.start()
         self.started = True
示例#11
0
 def port(self):
     '''
     Rec: Samples from the device (Samples)
     Func: Evaluate the list of ports in use and set the port to use.
     '''
     Lista_puertos = list_ports.comports()
     print(Lista_puertos)
     for serial_device in Lista_puertos:
         code_serial = serial_device.serial_number
         if code_serial != None:
             if code_serial.startswith(serial_openBCI):
                 board = OpenBCICyton(
                     port=serial_device.device, daisy=False)
                 Data = self.lslStreamers
                 board.start_stream(Data)
             else:
                 print(
                     'No hay dispositivo OpenBCI, conectar y volver a iniciar el programa')
                 input('Presione enter para finalizar ...')
示例#12
0
def stream():
    #print(address)
    #print(name)
    print(
        "Creating LSL stream for EEG. \nName: OpenBCIEEG\nID: OpenBCItestEEG\n"
    )

    info_eeg = StreamInfo('OpenBCIEEG', 'EEG', 16, 250, 'float32',
                          'OpenBCItestEEG')

    # print("Creating LSL stream for AUX. \nName: OpenBCIAUX\nID: OpenBCItestEEG\n")

    # info_aux = StreamInfo('OpenBCIAUX', 'AUX', 3, 250, 'float32', 'OpenBCItestAUX')

    info_eeg.desc().append_child_value("manufacturer", "OpenBCI")
    eeg_channels = info_eeg.desc().append_child("channels")

    for c in [
            'Fp1', 'Fp2', 'C3', 'C4', 'P7', 'P8', 'O1', 'O2', 'F7', 'F8', 'F3',
            'F4', 'T7', 'T8', 'P3', 'P4'
    ]:
        eeg_channels.append_child("channel") \
            .append_child_value("label", c) \
            .append_child_value("unit", "microvolts") \
            .append_child_value("type", "EEG")

    # eeg_outlet = StreamOutlet(eeg_info, LSL_EEG_CHUNK)

    outlet_eeg = StreamOutlet(info_eeg)

    # outlet_aux = StreamOutlet(info_aux)

    def lsl_streamers(sample):
        outlet_eeg.push_sample(
            np.array(sample.channels_data) * SCALE_FACTOR_EEG)
        # outlet_aux.push_sample(np.array(sample.aux_data)*SCALE_FACTOR_AUX)

    #board = OpenBCICyton(port='COM3', daisy=True)
    board = OpenBCICyton(port='/dev/tty.usbserial-DM01N7JO', daisy=True)

    board.start_stream(lsl_streamers)
示例#13
0
    def setup(self, device):
        self.device = device

        if self.device == 'sim':
            self.streamFunc = self.simulateStream

        elif self.device == 'emotiv':
            self.streamFunc = self.emotivStream

        elif self.device == 'openBCI':
            self.streamFunc = self.openBCIStream

        self.done = False

        if self.device == 'emotiv':
            try:
                self.s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
                self.s.connect((self.host, self.port))
                self.s.send(b"\r\n")

                # To read the header msgs about cykit etc...
                self.s.recv(168, socket.MSG_WAITALL)

                # Local buffer to store parts of the messages
                self.buffer = b''

                # If when when split by \r, \r was the last character of the message, we know that we have to remove \n from
                # the begining of the next message
                self.remove_newline = False
            except ConnectionRefusedError:
                print('uh oh. looks like CyKIT isn\'t setup right. '
                      'try again by restarting MusEEG')

        elif self.device == 'openBCI':
            from pyOpenBCI import OpenBCICyton
            self.board = OpenBCICyton(port='/dev/tty.usbserial-DM0258BS',
                                      daisy=True)
示例#14
0
 def start(self):
     print("started work session :D ")
     self.timestamp = datetime.now()
     self.model = torch.load(
         "../data_analysis/models/model_t_combined_continuous_filtered_3class.pickle"
     )
     self.focus_logger = FocusLogger(fs=self.fs)
     self.eeg_sampler = EEGSampler(fs=self.fs,
                                   buffer_seconds=self.buffer_seconds,
                                   update_seconds=DEFAULT_UPDATE_SECONDS,
                                   channels=DEFAULT_CHANNELS,
                                   binning=DEFAULT_BINNING,
                                   live=True,
                                   model=self.model,
                                   to_clean=True,
                                   three_class=True,
                                   focus_logger=self.focus_logger)
     if LIVE_DATA:
         self.board = OpenBCICyton()
         self.eeg_thread = threading.Thread(
             target=self.board.start_stream,
             args=(self.eeg_sampler.push_data_sample, ))
         self.eeg_thread.start()
     self.started = True
示例#15
0
from pyOpenBCI import OpenBCICyton

board = OpenBCICyton(port='/dev/tty.usbserial-DM01N5XP')
uVolts_per_count = (4500000)/24/(2**23-1) #uV/count
accel_G_per_count = 0.002 / (2**4) #G/count

def print_raw(sample):
    print(sample.channels_data)

board.start_stream(print_raw)
            and variables_usabilidad_Anterior == None):
        satisfaccion.append(Medir_Satisfaccion(sample))

    elif (variables_usabilidad != variables_usabilidad_Anterior
          and variables_usabilidad_Anterior != None):
        satisfaccion.append(Medir_Satisfaccion(sample))

    if (variables_usabilidad != None):
        variables_usabilidad_Comparar = variables_usabilidad_Anterior
        variables_usabilidad_Anterior = variables_usabilidad

    if (variables_usabilidad_Comparar != None and variables_usabilidad != None
            and
            variables_usabilidad_Comparar != variables_usabilidad_Anterior):
        Guardar_datos(variables_usabilidad_Comparar, satisfaccion)
        satisfaccion = []
        if ("FinTomaMuestraUsuario" in variables_usabilidad.decode("utf-8")):
            print("Entro en FinTomaMuestraUsuario")
            variables_usabilidad = None
            variables_usabilidad_Anterior = None
            variables_usabilidad_Comparar = None
            satisfaccion = []
    else:
        print("Sample:", sample)
    print(satisfaccion)


board = OpenBCICyton(daisy=True)

board.start_stream(print_raw)
# First you need to install pyOpenBCI using: pip install pyOpenBCI
from pyOpenBCI import OpenBCICyton
from pylsl import StreamInfo, StreamOutlet
import numpy as np

SCALE_FACTOR_EEG = (4500000) / 24 / (2**23 - 1)  #uV/count
SCALE_FACTOR_AUX = 0.002 / (2**4)

info_eeg = StreamInfo('OpenBCIEEG', 'EEG', 16, 125, 'float32',
                      'OpenBCItestEEG')

print("Creating LSL stream for AUX. \nName: OpenBCIAUX\nID: OpenBCItestEEG\n")

info_aux = StreamInfo('OpenBCIAUX', 'AUX', 3, 125, 'float32', 'OpenBCItestAUX')

outlet_eeg = StreamOutlet(info_eeg)
outlet_aux = StreamOutlet(info_aux)


def lsl_streamers(sample):
    outlet_eeg.push_sample(np.array(sample.channels_data) * SCALE_FACTOR_EEG)
    outlet_aux.push_sample(np.array(sample.aux_data) * SCALE_FACTOR_AUX)


board = OpenBCICyton(port='COM3', daisy=True)

board.start_stream(lsl_streamers)
	def __init__(self, stream_frames, callback):
		#self.board = Mockboard()
		self.board = OpenBCICyton(daisy = True)
		self.frame_counter = 0
		self.stream_frames = stream_frames
		self.callback = callback
示例#19
0
from pyOpenBCI import OpenBCICyton
from pylsl import StreamInfo, StreamOutlet
import numpy as np

SCALE_FACTOR_EEG = (4500000)/24/(2**23-1) #uV/count
SCALE_FACTOR_AUX = 0.002 / (2**4)


print("Creating LSL stream for EEG. \nName: OpenBCIEEG\nID: OpenBCItestEEG\n")

info_eeg = StreamInfo('OpenBCIEEG', 'EEG', 8, 250, 'float32', 'OpenBCItestEEG')

outlet_eeg = StreamOutlet(info_eeg)

def lsl_streamers(sample):
    outlet_eeg.push_sample(np.array(sample.channels_data)*SCALE_FACTOR_EEG)

board = OpenBCICyton()

board.start_stream(lsl_streamers) #begins the lsl stream
def start_board():
    board = OpenBCICyton(port='COM8', daisy=False)

    board.start_stream(save_data)
示例#21
0
            np.array(sample.channels_data[3]) * SCALE_FACTOR_EEG)
        data['CP2'].append(
            np.array(sample.channels_data[4]) * SCALE_FACTOR_EEG)
        data['T8'].append(np.array(sample.channels_data[5]) * SCALE_FACTOR_EEG)
        data['O2'].append(np.array(sample.channels_data[6]) * SCALE_FACTOR_EEG)
        data['O1'].append(np.array(sample.channels_data[7]) * SCALE_FACTOR_EEG)
        if len(data['FT7']) % 125 == 0:
            json_data = {
                'raw': [
                    data['FT7'], data['FT8'], data['T7'], data['CP1'],
                    data['CP2'], data['T8'], data['O2'], data['O1']
                ]
            }
            requests.post('http://0.0.0.0:5000/compute_psd', json=json_data)
            requests.post('http://0.0.0.0:5000/store_raw', json=json_data)

    elif len(data['FT7']) == 1000:
        requests.post('http://0.0.0.0:5000/predictml', json=data)
        data['FT7'] = []
        data['FT8'] = []
        data['T7'] = []
        data['CP1'] = []
        data['CP2'] = []
        data['T8'] = []
        data['O2'] = []
        data['O1'] = []


board = OpenBCICyton(port='/dev/ttyUSB1', daisy=True)
board.start_stream(process_predict)
示例#22
0
    print("Now done editing!")


LOADED = False  # Did user load a recording?
LOADED_PATH = ""

# Main loop
while True:
    user_input = str(input("What to do?"))

    # quit
    if (user_input == "q"): break

    # ping bci
    if (user_input == "p"):
        test = OpenBCICyton(daisy="True")

    # record
    elif (user_input == "r"):
        row_to_modify = int(
            input(
                "Row to record to? [0 - Left] [1 - Up] [2 - Right] [3 - Down]")
        )
        frame_input = int(input("Recording how many frames?"))
        mystream = StreamHandler(frame_input, collect_data)
        mystream.start_stream()
        print("Finished recording to", row_to_modify)

    # save or save as
    elif (user_input == "s" or user_input == "sa"):
        if (LOADED and user_input == "s"):
示例#23
0
def start_board():  # Hilo configuracion cyton y lectura de datos
    board = OpenBCICyton("COM8",
                         daisy=False)  # LLamado de la clase OpenBCYCyton.
    board.start_stream(
        ui.save_data)  # Se llama el metodo de solicitud de datos.
示例#24
0
        help='Chosse a callback function: print_raw, lsl_stream, or osc_stream.'
    )

    args = parser.parse_args()

    def print_raw(sample):
        print(sample.channels_data)

    callback = eval(args.fun)

    if args.board not in ['Cyton', 'CytonDaisy', 'Ganglion', 'Wifi']:
        sys.exit(
            'No Board Selected. You should use Cyton, CytonDaisy, Ganglion, or Wifi. Try: python openbci_interface.py --board Cyton'
        )
    elif args.board == 'Cyton':
        board = OpenBCICyton(port=args.port)
    elif args.boad == 'CytonDaisy':
        board = OpenBCICyton(port=args.port, daisy=True)
    elif args.board == 'Ganglion':
        if sys.platform.startswith("linux"):
            board = OpenBCIGanglion(mac=args.port)
        else:
            sys.exit(
                'Currently the Ganglion Python repo only works with Linux OS.')
    else:
        board = OpenBCIWiFi()

    valid_commands = '012345678!@#$%^&*qwertyuiQWERTYUI[]pdbsvnN;-=xXDzZASFGHJKLajbs?c<>'

    while True:
        command = input('--> ')
示例#25
0
from pyOpenBCI import OpenBCICyton
from pylsl import StreamInfo, StreamOutlet, local_clock
import numpy as np
import time

SCALE_FACTOR_EEG = (4500000) / 24 / (2**23 - 1)  #uV/count
SCALE_FACTOR_AUX = 0.002 / (2**4)

print("Creating LSL stream for EEG. \nName: OpenBCIEEG\nID: OpenBCItestEEG\n")

info_eeg = StreamInfo('OpenBCIEEG', 'EEG', 8, 250, 'float32', 'OpenBCItestEEG')

print("Creating LSL stream for AUX. \nName: OpenBCIAUX\nID: OpenBCItestEEG\n")

info_aux = StreamInfo('OpenBCIAUX', 'AUX', 3, 250, 'float32', 'OpenBCItestAUX')

outlet_eeg = StreamOutlet(info_eeg)
outlet_aux = StreamOutlet(info_aux)


def lsl_streamers(sample):
    outlet_eeg.push_sample(np.array(sample.channels_data) * SCALE_FACTOR_EEG)
    outlet_aux.push_sample(np.array(sample.aux_data) * SCALE_FACTOR_AUX)


board = OpenBCICyton(port='/dev/ttyUSB0')

board.start_stream(lsl_streamers)
def start_board():
    board = OpenBCICyton( "COM8",daisy=True)
    board.start_stream(save_data)
示例#27
0
def process_raw():
	EEG.load_data(raw_data)
	EEG.load_channel(1)
	EEG.remove_dc_offset()
	#EEG.notch_mains_interference()
	EEG.signalplot()
	#EEG.pyqtplot()
# Returns bandpassed data
# (uses scipy.signal butterworth filter)
#	start_Hz = 1
##	EEG.data = EEG.bandpass(start_Hz,stop_Hz)

# Make Spectrogram
#	EEG.spectrogram()

# Line graph of amplitude over time for a given frequency range.
# Arguments are start frequency, end frequency, and label
#	EEG.plot_band_power(8,12,"Alpha")

# Power spectrum plot
#	EEG.plot_spectrum_avg_fft()

t1 = []


print("AFTER PYQT")
	
board = OpenBCICyton(port='/dev/ttyUSB1', daisy=False)
board.start_stream(acquire_raw)
#t1 = threading.Thread(target=board.start_stream, args=(acquire_raw,))
#board.start_stream(acquire_raw)
示例#28
0
    board.write_command('5')
    board.write_command('6')
    board.write_command('7')
    board.write_command('8')
    board.write_command('!')
    # board.write_command('?')


print("Creating LSL stream for EEG. \nName: OpenBCIEEG\nID: OpenBCItestEEG\n")
info_eeg = StreamInfo('OpenBCIEEG', 'EEG', 8, 250, 'float32', 'OpenBCItestEEG')
outlet_eeg = StreamOutlet(info_eeg)
print("now sending data...")


def lsl_streamers(sample):
    print(np.array(sample.channels_data) * SCALE_FACTOR_EEG)

    outlet_eeg.push_sample(np.array(sample.channels_data) * SCALE_FACTOR_EEG)
    # print(np.array(sample.channels_data) * SCALE_FACTOR_EEG)


try:
    board = OpenBCICyton(port='/dev/ttyUSB0', daisy=False)
except:
    board = OpenBCICyton(port='COM4', daisy=False)

init(board)
print("start lsl steamers")
board.start_stream(lsl_streamers)
# print(sample.start_time, sample.board_type)
示例#29
0
"""
Source: https://github.com/OpenBCI/pyOpenBCI/blob/master/Examples/print_raw_example.py

"""

from pyOpenBCI import OpenBCICyton

def print_raw(sample):
    print(sample.channels_data)

#Set (daisy = True) to stream 16 ch 
board = OpenBCICyton(daisy = False)

board.start_stream(print_raw)
示例#30
0
Testing sampling frequency when streaming directly with lsl and python

"""
from pyOpenBCI import OpenBCICyton
from pylsl import StreamInfo, StreamOutlet
import numpy as np

SCALE_FACTOR_EEG = (4500000) / 24 / (2**23 - 1)  #uV/count
SCALE_FACTOR_AUX = 0.002 / (2**4)

print("Creating LSL stream for EEG. \nName: OpenBCIEEG\nID: OpenBCItestEEG\n")

info_eeg = StreamInfo('OpenBCIEEG', 'EEG', 8, 250, 'float32', 'OpenBCItestEEG')

print("Creating LSL stream for AUX. \nName: OpenBCIAUX\nID: OpenBCItestEEG\n")

info_aux = StreamInfo('OpenBCIAUX', 'AUX', 3, 250, 'float32', 'OpenBCItestAUX')

outlet_eeg = StreamOutlet(info_eeg)
outlet_aux = StreamOutlet(info_aux)


def lsl_streamers(sample):
    outlet_eeg.push_sample(np.array(sample.channels_data) * SCALE_FACTOR_EEG)
    outlet_aux.push_sample(np.array(sample.aux_data) * SCALE_FACTOR_AUX)


board = OpenBCICyton(port='COM11', daisy=False)

board.start_stream(lsl_streamers)