コード例 #1
0
 def __init__(self):     
     QtWidgets.QApplication.__init__(self,[''])     
     ############# LOGIC CONTROL ##################
     self.isconnected = Value('b',1) 
     self.trigger_server_activated = False
     self.streaming = Value('b',0)
     ############### INIT CONSTANTS DEFINITION ###########################
     self.constants = constants()
     ######### slots manager for multiple callbacks settings #############                                          
     self.slots = SlotsManager()
     ########### queue ###########
     self.queue = Queue()
     ################ BUFFER  ####################     
     self.buffer = buffer(self.constants)
     self.buffer.emitter.connect(self.slots.trigger)
     ################ INIT DATA MANAGER #####################
     self.eeg_dmg = data_manager_openBCI(self.constants, self.queue, self.buffer, self.slots)  
     self.eeg_dmg.start()
    ################# INIT GUI ################################
     self.gui = GUI(self, callbacks = [self.connection_manager, self.test_acquisition, self.launch_trigger_server, self.saveFileDialog, self.openFileNameDialog])
     ########## LOGGER ####################
     self.log = log.logger(self.gui.bci_graph.logger)
     ####### INIT DRIVER ###########
     self.driver = openBCI(self.queue, self.streaming, self.isconnected, self.log)
     self.driver.start()
コード例 #2
0
 def __init__(self):     
     QtWidgets.QApplication.__init__(self,[''])     
     ############# LOGIC CONTROL ##################
     self.isconnected = Value('b',1) 
     ############### INIT CONSTANTS DEFINITION ###########################
     self.constants = constants()
     ######### slots manager for multiple callbacks settings #############                                          
     self.slots = SlotsManager()
     ########### queue ###########
     self.queue = Queue()
     ##### TRIGGER SERVER ############
     self.trigger_server = trigger_server(self.constants.ADDRESS, self.constants.PORT)
     ################ BUFFER  ####################     
     self.buffer = buffer(self.constants)
     self.buffer.emitter.connect(self.slots.trigger)
     ################ INIT DATA MANAGER #####################
     self.eeg_dmg = data_manager_openBCI(self)  
     self.eeg_dmg.start()
     ###### INIT tcp/ip INTERFACE FOR DATA ACQUISITION
     self.recording_manager = recording_manager(self)
     ################# INIT GUI ################################
     self.gui = GUI(self, callbacks = [self.connection_manager, self.recording_manager.test_acquisition, self.recording_manager.update_state, self.saveFileDialog, self.openFileNameDialog])
     ########## LOGGER ####################
     self.log = log.logger(self.gui)
     ####### INIT DRIVER ###########
     self.driver = openBCI(self.queue, self.recording_manager.streaming, self.isconnected, self.log)
     self.driver.start()
コード例 #3
0
    def __init__(self):

        QtWidgets.QApplication.__init__(self,
                                        [''])  #Inicia la aplicación de QT

        ############# LOGIC CONTROL ##################
        self.isconnected = Value(
            'b', 1
        )  #Devuelve una "Envoltura de Sincronización" de tipo byte con valor 1

        # Iniciar Constantes
        self.constants = constants()

        ######### slots manager for multiple callbacks settings #############
        self.slots = SlotsManager()

        # Iniciar Encolamiento
        self.queue = Queue()
        self.queue_even = Queue()
        self.queue_odd = Queue()

        ##### TRIGGER SERVER ############
        self.trigger_server = trigger_server(self.constants.ADDRESS,
                                             self.constants.PORT)

        # Iniciar buffer donde se guardan los datos de los sensores
        self.buffer = buffer(self.constants)
        self.buffer.emitter.connect(
            self.slots.trigger)  ##### Ejecuta el evento para los callbacks??

        # Iniciar manejo de datos
        self.eeg_dmg = data_manager_openBCI(self)  #Envía toda la clase MYAPP
        self.eeg_dmg.start()

        # Iniciar interfaz TCP/IP para adquisición de datos
        self.recording_manager = recording_manager(
            self)  #Introduce la propia aplicación

        # Iniciar Aplicación GUI: envía la aplicación completa y una lista de callbacks
        # CALLBACKS: conjunto de acciones ante las que debe dar una respuesta = conexión, adquisición, actualización, guardar o cargar/abrir
        self.gui = GUI(self,
                       callbacks=[
                           self.connection_manager,
                           self.recording_manager.test_acquisition,
                           self.recording_manager.update_state,
                           self.saveFileDialog, self.openFileNameDialog
                       ])

        ########## LOGGER ####################
        self.log = log.logger(
            self.gui)  #Introducir la aplicación GUI previamente creada

        # Iniciar Driver
        self.driver = openBCI(
            self, self.queue, self.queue_even, self.queue_odd,
            self.recording_manager.streaming, self.isconnected, self.log
        )  #Introduce la cola, los estados del streaming y de conexión y el logger
        self.driver.start()
コード例 #4
0
 def __init__(self,
              signal=None,
              signal_numbers=None,
              seconds=None,
              sample_rate=None):
     ############### CONSTANTS ######################
     self.PATH = None
     self.SIGNAL = signal
     self.SIGNAL_NUMBERS = signal_numbers
     self.SECONDS = seconds
     self.SAMPLE_RATE = sample_rate
     self.WINDOW = self.SAMPLE_RATE * self.SECONDS
     self.freqTask = self.SAMPLE_RATE
     ############### data save trigger
     self.io = edf_writter(self.SIGNAL_NUMBERS + 1, self.SAMPLE_RATE)
     self.allData = []
     self.current_trial = 0
     ############### buffer ########################
     self.buffer = buffer(channels=self.SIGNAL_NUMBERS + 1,
                          num_samples=self.WINDOW,
                          sample_rate=self.SAMPLE_RATE)
     #        self.trigger_control = None
     ###### mutex lock
     self.mutexBuffer = Lock()
コード例 #5
0
import numpy as np
import pickle
############# EXTERNAL LIBRARIES ######################################
from PyQt5 import QtWidgets
from multiprocessing import Queue, Value

isconnected = Value('b', 1)
streaming = Value('b', 0)
############### INIT CONSTANTS DEFINITION ###########################
constants = constants()
######### slots manager for multiple callbacks settings #############
slots = SlotsManager()
########### queue ###########
queue = Queue()
################ BUFFER  ####################
buffer = buffer(constants)
buffer.emitter.connect(slots.trigger)
################ INIT DATA MANAGER #####################
eeg_dmg = data_manager_openBCI(constants, queue, buffer, slots)
eeg_dmg.start()

from FEATURES.online_features_02 import compute_online_features

from multiprocessing import Process, Array
from sklearn.externals import joblib
import numpy as np
import pickle

# callbacks
isstored = True
trial = 0