Changeset 357 for trunk


Ignore:
Timestamp:
03/30/12 14:03:11 (8 years ago)
Author:
sc
Message:
  • Heavy set of revisions to distinguish general services from NeuroSky?-specific ones
Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Puzzlebox/Synapse/Configuration.py

    r352 r357  
    88 
    99__changelog__ = """\ 
    10 Last Update: 2012.03.29 
     10Last Update: 2012.03.30 
    1111""" 
    1212 
     
    100100EMOTIV_SERVER_PORT_EMOCOMPOSER = 1726 
    101101 
     102 
    102103##################################################################### 
    103104# ThinkGear Device configuration 
     
    124125THINKGEAR_BLUETOOTH_DISCOVER_DEVICES_TIMEOUT = 8 # default 8 
    125126THINKGEAR_BLUETOOTH_LOOKUP_NAME_TIMEOUT = 10 # default 10 
     127 
    126128 
    127129##################################################################### 
  • trunk/Puzzlebox/Synapse/Emotiv/Client.py

    r352 r357  
    99Last Update: 2012.03.29 
    1010""" 
     11 
     12import time 
    1113 
    1214import Puzzlebox.Synapse.Configuration as configuration 
     
    3537 
    3638SERVER_HOST = configuration.EMOTIV_SERVER_HOST 
    37 #SERVER_PORT = configuration.EMOTIV_SERVER_PORT_CONTROL_PANEL 
    38 SERVER_PORT = configuration.EMOTIV_SERVER_PORT_EMOCOMPOSER 
     39SERVER_PORT = configuration.EMOTIV_SERVER_PORT_CONTROL_PANEL 
     40#SERVER_PORT = configuration.EMOTIV_SERVER_PORT_EMOCOMPOSER 
    3941 
    4042TIMER_BASED__LOOP = True 
     
    4648##################################################################### 
    4749 
    48 #class puzzlebox_synapse_client_emotiv(QtCore.QThread): 
    49 class puzzlebox_synapse_client_emotiv(): 
     50class puzzlebox_synapse_client_emotiv(QtCore.QThread): 
    5051         
    5152        def __init__(self, log, \ 
     
    5556                          parent=None): 
    5657                 
    57                 #QtCore.QThread.__init__(self,parent) 
     58                QtCore.QThread.__init__(self,parent) 
    5859                 
    5960                self.log = log 
     
    6566                 
    6667                self.name = "Emotiv Client" 
    67                  
    68                 #self.protocol = emotiv_protocol 
    6968                 
    7069                #self.configureNetwork() 
     
    8079        ################################################################## 
    8180         
    82         def processEvent(self): 
     81        #def processEvent(self): 
    8382                 
    84                 print "yoda" 
    85                  
    86                 emotiv_protocol.start(host=self.server_host, port=self.server_port, initialized=True, parent=self) 
    87                  
    88                 print "brah" 
     83                #emotiv_protocol.start(host=self.server_host, port=self.server_port, initialized=True, parent=self) 
    8984                 
    9085         
     
    9388        def configureNetwork(self): 
    9489                 
    95                 print "here" 
    96                  
    9790                emotiv_protocol.start(host=self.server_host, \ 
    9891                                      port=self.server_port, \ 
    9992                                      initialized=False, \ 
    10093                                      parent=self) 
    101                  
    102                 print "there" 
    10394         
    10495         
     
    110101                if (self.parent != None): 
    111102                        self.parent.processPacketEmotiv(packet) 
    112                  
    113                  
    114                 #print "yoda" 
    115                  
    116                 #emotiv_protocol.start(host=self.server_host, port=self.server_port, initialized=True, parent=self) 
    117                  
    118                 #print "brah" 
    119                  
     103         
    120104         
    121105        ################################################################## 
    122106         
    123         #def run(self): 
    124         def start(self): 
     107        def run(self): 
    125108                 
    126109                if self.DEBUG: 
     
    129112                self.configureNetwork() 
    130113                 
    131                 #self.exec_() 
     114                self.exec_() 
    132115         
    133116         
     
    143126                emotiv_protocol.KEEP_RUNNING = False 
    144127                 
    145                 pass 
     128                count = 1 
     129                while emotiv_protocol.CONNECTED: 
     130                        time.sleep(0.10) 
     131                        count = count + 1 
     132                        if count >= 10: 
     133                                break 
    146134         
    147135         
     
    152140                self.stop() 
    153141                 
    154                 #if callThreadQuit: 
    155                         #QtCore.QThread.quit(self) 
     142                if callThreadQuit: 
     143                        QtCore.QThread.quit(self) 
    156144 
    157  
    158 ##################################################################### 
    159 # Command line class 
    160 ##################################################################### 
    161  
    162 #class CLIClient(QtClient): 
    163          
    164         #def __init__(self, log, \ 
    165                           #command_parameters, \ 
    166                           #server_host=SERVER_HOST, \ 
    167                           #server_port=SERVER_PORT, \ 
    168                           #DEBUG=DEBUG): 
    169                  
    170                 #self.log = log 
    171                 #self.DEBUG = DEBUG 
    172                 #self.parent = None 
    173                  
    174                 #self.command_parameters = command_parameters 
    175                 #self.server_host = server_host 
    176                 #self.server_port = server_port 
    177                  
    178                 #self.configureNetwork() 
    179                  
    180                 #self.execute_command_line() 
    181          
    182          
    183         ################################################################### 
    184          
    185         #def execute_command_line(self): 
    186                  
    187                 #(command) = self.parse_command_line(self.command_parameters) 
    188                  
    189                 #if (command != None): 
    190                  
    191                         #self.sendCommand(command) 
    192                          
    193                         #self.socket.waitForReadyRead(CLIENT_NO_REPLY_WAIT) 
    194          
    195          
    196         ################################################################### 
    197          
    198         #def parse_command_line(self, command_parameters): 
    199                  
    200                 #command = None 
    201                  
    202                 #for each in command_parameters: 
    203                         #if each.startswith("--command="): 
    204                                 #command = each[ len("--command="): ] 
    205                  
    206                  
    207                 #return(command) 
    208  
  • trunk/Puzzlebox/Synapse/Interface.py

    r353 r357  
    77 
    88__changelog__ = """\ 
    9 Last Update: 2012.03.29 
     9Last Update: 2012.03.30 
    1010""" 
    1111 
     
    1616### IMPORTS ### 
    1717import os, sys, time 
    18 import simplejson as json 
     18#import simplejson as json 
    1919 
    2020 
     
    138138                self.name = "Synapse Interface" 
    139139                 
    140                 self.thinkGearConnectServer = None 
     140                self.synapseServer = None 
    141141                self.thinkgearConnectClient = None 
     142                self.emotivClient = None 
    142143                 
    143144                self.maxEEGPower = THINKGEAR_EMULATION_MAX_EEG_POWER_VALUE 
     
    215216                 
    216217                 
    217                 # ThinkGear Device 
     218                # EEG Devices 
    218219                self.updateDevices() 
    219220                 
    220221                 
    221                 # ThinkGear Connect Server 
     222                # Connect Server 
    222223                self.textLabelBluetoothStatus.setText("Status: Disconnected") 
    223224                 
    224225                # Display Host for ThinkGear Connect Socket Server 
    225                 self.lineEditThinkGearHost.setText(THINKGEAR_SERVER_HOST) 
     226                self.lineEditSynapseHost.setText(THINKGEAR_SERVER_HOST) 
    226227                 
    227228                # Display Port for ThinkGear Connect Socket Server 
    228                 self.lineEditThinkGearPort.setText('%i' % THINKGEAR_SERVER_PORT) 
     229                self.lineEditSynapsePort.setText('%i' % THINKGEAR_SERVER_PORT) 
    229230                 
    230231                 
     
    276277                                  self.updateDevices) 
    277278                 
    278                 self.connect(self.pushButtonBluetoothConnect, \ 
    279                                   QtCore.SIGNAL("clicked()"), \ 
    280                                   self.connectToThinkGearDevice) 
    281                  
    282                 self.connect(self.pushButtonThinkGearConnect, \ 
     279                #self.connect(self.pushButtonBluetoothConnect, \ 
     280                                  #QtCore.SIGNAL("clicked()"), \ 
     281                                  #self.connectToThinkGearDevice) 
     282                 
     283                self.connect(self.pushButtonSynapseServer, \ 
    283284                                  QtCore.SIGNAL("clicked()"), \ 
    284285                                  self.startSynapseServer) 
     
    299300        ################################################################## 
    300301         
    301         def connectToThinkGearDevice(self): 
     302        def startSynapseServer(self): 
     303                 
     304                eeg_headset_model = str(self.comboBoxEEGHeadsetModel.currentText()) 
     305                device_address = str(self.comboBoxDeviceSelect.currentText()) 
     306                server_interface = str(self.lineEditSynapseHost.text()) 
     307                server_port = int(self.lineEditSynapsePort.text()) 
     308                emulate_headset_data = (device_address == 'ThinkGear Emulator') 
     309                 
     310                 
     311                if (eeg_headset_model == 'Emotiv EPOC'): 
     312                        emulate_headset_data = True 
     313                 
     314                 
     315                self.synapseServer = \ 
     316                        synapse_server.ThinkgearServer( \ 
     317                                self.log, \ 
     318                                server_interface=server_interface, \ 
     319                                server_port=server_port, \ 
     320                                device_address=device_address, \ 
     321                                device_model=None, \ 
     322                                emulate_headset_data=emulate_headset_data, \ 
     323                                DEBUG=DEBUG, \ 
     324                                parent=self) 
     325                 
     326                #self.connect(self.synapseServer, \ 
     327                             #QtCore.SIGNAL("sendPacket()"), \ 
     328                             #self.synapseServer.sendPacketQueue) 
     329                 
     330                self.synapseServer.start() 
     331                 
     332                 
     333                if ((eeg_headset_model == 'NeuroSky MindWave') or \ 
     334                    (eeg_headset_model == 'NeuroSky MindSet')): 
     335                         
     336                        self.startThinkGearConnectClient() 
     337                 
     338                elif (eeg_headset_model == 'Emotiv EPOC'): 
     339                         
     340                        self.startEmotivClient() 
     341                 
    302342                 
    303343                device_selection = self.comboBoxDeviceSelect.currentText() 
    304                  
    305                 self.disconnect(self.pushButtonBluetoothConnect, \ 
    306                                      QtCore.SIGNAL("clicked()"), \ 
    307                                      self.connectToThinkGearDevice) 
    308                  
    309                 self.connect(self.pushButtonBluetoothConnect, \ 
    310                                   QtCore.SIGNAL("clicked()"), \ 
    311                                   self.disconnectFromThinkGearDevice) 
    312                  
    313344                self.textLabelBluetoothStatus.setText("Status: Connected") 
    314                  
    315345                self.pushButtonBluetoothSearch.setEnabled(False) 
    316                  
    317                 self.pushButtonBluetoothConnect.setText('Disconnect') 
    318                 self.pushButtonBluetoothConnect.setChecked(True) 
    319                  
    320346                self.comboBoxDeviceSelect.setEnabled(False) 
    321347                self.comboBoxEEGHeadsetModel.setEnabled(False) 
    322          
    323          
    324         ################################################################## 
    325          
    326         def disconnectFromThinkGearDevice(self): 
    327                  
    328                 self.disconnect(self.pushButtonBluetoothConnect, \ 
     348                 
     349                self.lineEditSynapseHost.setEnabled(False) 
     350                self.lineEditSynapsePort.setEnabled(False) 
     351                 
     352                self.pushButtonSynapseServer.setText('Stop') 
     353                 
     354                self.progressBarEEGDelta.setValue(0) 
     355                self.progressBarEEGTheta.setValue(0) 
     356                self.progressBarEEGLowAlpha.setValue(0) 
     357                self.progressBarEEGHighAlpha.setValue(0) 
     358                self.progressBarEEGLowBeta.setValue(0) 
     359                self.progressBarEEGHighBeta.setValue(0) 
     360                self.progressBarEEGLowGamma.setValue(0) 
     361                self.progressBarEEGMidGamma.setValue(0) 
     362                 
     363                self.progressBarAttention.setValue(0) 
     364                self.progressBarMeditation.setValue(0) 
     365                 
     366                 
     367                self.disconnect(self.pushButtonSynapseServer, \ 
    329368                                     QtCore.SIGNAL("clicked()"), \ 
    330                                      self.disconnectFromThinkGearDevice) 
    331                  
    332                 self.connect(self.pushButtonBluetoothConnect, \ 
     369                                     self.startSynapseServer) 
     370                 
     371                self.connect(self.pushButtonSynapseServer, \ 
    333372                                  QtCore.SIGNAL("clicked()"), \ 
    334                                   self.connectToThinkGearDevice) 
     373                                  self.stopSynapseServer) 
     374         
     375         
     376        ################################################################## 
     377         
     378        def stopSynapseServer(self): 
     379                 
     380                 
     381                eeg_headset_model = str(self.comboBoxEEGHeadsetModel.currentText()) 
     382                device_address = str(self.comboBoxDeviceSelect.currentText()) 
     383                 
     384                if ((eeg_headset_model == 'NeuroSky MindWave') or \ 
     385                    (eeg_headset_model == 'NeuroSky MindSet')): 
     386                         
     387                        self.stopThinkGearConnectClient() 
     388                 
     389                elif (eeg_headset_model == 'Emotiv EPOC'): 
     390                         
     391                        self.stopEmotivClient() 
     392                 
     393                 
     394                if UPDATE_INTERFACE_VIA_TIMER: 
     395                        self.updateInterfaceTimer.stop() 
     396                else: 
     397                        try: 
     398                                self.synapseServer.exitThread() 
     399                        except Exception, e: 
     400                                if self.DEBUG: 
     401                                        print "Call failed to self.synapseServer.exitThread():", 
     402                                        print e 
     403                 
     404                 
     405                self.disconnect(self.pushButtonSynapseServer, \ 
     406                                QtCore.SIGNAL("clicked()"), \ 
     407                                self.stopSynapseServer) 
     408                 
     409                self.connect(self.pushButtonSynapseServer, \ 
     410                                  QtCore.SIGNAL("clicked()"), \ 
     411                                  self.startSynapseServer) 
     412                 
     413                self.lineEditSynapseHost.setEnabled(True) 
     414                self.lineEditSynapsePort.setEnabled(True) 
     415                 
     416                self.pushButtonSynapseServer.setText('Start') 
     417                 
     418                self.pushButtonBluetoothSearch.setEnabled(True) 
     419                #self.pushButtonBluetoothConnect.setEnabled(True) 
     420                 
     421                self.pushButtonSynapseServer.setChecked(False) 
    335422                 
    336423                self.textLabelBluetoothStatus.setText("Status: Disconnected") 
     
    338425                self.pushButtonBluetoothSearch.setEnabled(True) 
    339426                 
    340                 self.pushButtonBluetoothConnect.setText('Connect') 
    341                 self.pushButtonBluetoothConnect.setChecked(False) 
     427                #self.pushButtonBluetoothConnect.setText('Connect') 
     428                #self.pushButtonBluetoothConnect.setChecked(False) 
    342429                 
    343430                self.comboBoxDeviceSelect.setEnabled(True) 
     
    376463        ################################################################## 
    377464         
    378         def startSynapseServer(self): 
    379                  
    380                 eeg_headset_model = str(self.comboBoxEEGHeadsetModel.currentText()) 
    381                 device_address = str(self.comboBoxDeviceSelect.currentText()) 
    382                  
    383                 if ((eeg_headset_model == 'NeuroSky MindWave') or \ 
    384                     (eeg_headset_model == 'NeuroSky MindSet')): 
    385                          
    386                         self.startThinkGearConnectServer() 
    387                  
    388                 elif (eeg_headset_model == 'Emotiv EPOC'): 
    389                          
    390                         self.startEmotivServer() 
    391          
    392          
    393         ################################################################## 
    394          
    395         def processPacketEmotiv(self, packet): 
    396                  
    397                 print 
    398                 print "Booyah" 
    399                 print 
    400                 print packet 
    401                 print 
    402                 print 
    403          
    404          
    405         ################################################################## 
    406          
    407         def startEmotivServer(self): 
    408                  
    409                 eeg_headset_model = str(self.comboBoxEEGHeadsetModel.currentText()) 
    410                 device_address = str(self.comboBoxDeviceSelect.currentText()) 
    411                  
    412                 server_host = configuration.EMOTIV_SERVER_HOST 
    413                  
    414                 if device_address == 'Emotiv EPOC': 
    415                         server_port = configuration.EMOTIV_SERVER_PORT_CONTROL_PANEL 
    416                 else: 
    417                         server_port = configuration.EMOTIV_SERVER_PORT_EMOCOMPOSER 
    418                  
    419                 self.emotivClient = \ 
    420                    emotiv_client.puzzlebox_synapse_client_emotiv( \ 
    421                       log=self.log, \ 
    422                       server_host=server_host, \ 
    423                       server_port=server_port, \ 
    424                       DEBUG=DEBUG, \ 
    425                       parent=self) 
    426                  
    427                 self.emotivClient.start() 
    428                  
    429                  
    430                 #self.progressBarEEGDelta.setValue(0) 
    431                 #self.progressBarEEGTheta.setValue(0) 
    432                 #self.progressBarEEGLowAlpha.setValue(0) 
    433                 #self.progressBarEEGHighAlpha.setValue(0) 
    434                 #self.progressBarEEGLowBeta.setValue(0) 
    435                 #self.progressBarEEGHighBeta.setValue(0) 
    436                 #self.progressBarEEGLowGamma.setValue(0) 
    437                 #self.progressBarEEGMidGamma.setValue(0) 
    438                  
    439                 #self.progressBarAttention.setValue(0) 
    440                 #self.progressBarMeditation.setValue(0) 
    441                  
    442                  
    443                 #self.progressBarEEGDelta.setEnabled(False) 
    444                 #self.progressBarEEGTheta.setEnabled(False) 
    445                 #self.progressBarEEGLowAlpha.setEnabled(False) 
    446                 #self.progressBarEEGHighAlpha.setEnabled(False) 
    447                 #self.progressBarEEGLowBeta.setEnabled(False) 
    448                 #self.progressBarEEGHighBeta.setEnabled(False) 
    449                 #self.progressBarEEGLowGamma.setEnabled(False) 
    450                 #self.progressBarEEGMidGamma.setEnabled(False) 
    451                  
    452                 #self.progressBarAttention.setEnabled(False) 
    453                 #self.progressBarMeditation.setEnabled(False) 
    454          
    455          
    456         ################################################################## 
    457          
    458         def startThinkGearConnectServer(self): 
     465        def startThinkGearConnectClient(self): 
    459466                 
    460467                # Ensure EEG device is connected first 
    461468                 
    462                 if not self.pushButtonBluetoothConnect.isChecked(): 
    463                         self.connectToThinkGearDevice() 
    464                  
    465                  
    466                 self.pushButtonBluetoothSearch.setEnabled(False) 
    467                 self.pushButtonBluetoothConnect.setEnabled(False) 
    468                  
    469                 server_interface = str(self.lineEditThinkGearHost.text()) 
    470                 server_port = int(self.lineEditThinkGearPort.text()) 
    471                 device_address = str(self.comboBoxDeviceSelect.currentText()) 
    472                 emulate_headset_data = (device_address == 'ThinkGear Emulator') 
    473                  
    474                  
    475                 self.thinkGearConnectServer = \ 
    476                         synapse_server.ThinkgearServer( \ 
    477                                 self.log, \ 
    478                                 server_interface=server_interface, \ 
    479                                 server_port=server_port, \ 
    480                                 device_address=device_address, \ 
    481                                 device_model=None, \ 
    482                                 emulate_headset_data=emulate_headset_data, \ 
    483                                 DEBUG=DEBUG, \ 
    484                                 parent=self) 
    485                  
    486                 #self.connect(self.thinkGearConnectServer, \ 
    487                              #QtCore.SIGNAL("sendPacket()"), \ 
    488                              #self.thinkGearConnectServer.sendPacketQueue) 
    489                  
    490                 self.thinkGearConnectServer.start() 
     469                #if not self.pushButtonBluetoothConnect.isChecked(): 
     470                #self.connectToThinkGearDevice() 
     471                #device_selection = self.comboBoxDeviceSelect.currentText() 
     472                #self.textLabelBluetoothStatus.setText("Status: Connected") 
     473                #self.pushButtonBluetoothSearch.setEnabled(False) 
     474                #self.comboBoxDeviceSelect.setEnabled(False) 
     475                #self.comboBoxEEGHeadsetModel.setEnabled(False) 
     476                 
     477                 
     478                #self.pushButtonBluetoothSearch.setEnabled(False) 
     479                #self.pushButtonBluetoothConnect.setEnabled(False) 
     480                 
     481                server_interface = str(self.lineEditSynapseHost.text()) 
     482                server_port = int(self.lineEditSynapsePort.text()) 
     483                #device_address = str(self.comboBoxDeviceSelect.currentText()) 
     484                #emulate_headset_data = (device_address == 'ThinkGear Emulator') 
     485                 
     486                 
     487                #self.synapseServer = \ 
     488                        #synapse_server.ThinkgearServer( \ 
     489                                #self.log, \ 
     490                                #server_interface=server_interface, \ 
     491                                #server_port=server_port, \ 
     492                                #device_address=device_address, \ 
     493                                #device_model=None, \ 
     494                                #emulate_headset_data=emulate_headset_data, \ 
     495                                #DEBUG=DEBUG, \ 
     496                                #parent=self) 
     497                 
     498                ##self.connect(self.synapseServer, \ 
     499                             ##QtCore.SIGNAL("sendPacket()"), \ 
     500                             ##self.synapseServer.sendPacketQueue) 
     501                 
     502                #self.synapseServer.start() 
    491503                 
    492504                 
     
    506518                 
    507519                 
    508                 self.disconnect(self.pushButtonThinkGearConnect, \ 
    509                                      QtCore.SIGNAL("clicked()"), \ 
    510                                      self.startThinkGearConnectServer) 
    511                  
    512                 self.connect(self.pushButtonThinkGearConnect, \ 
    513                                   QtCore.SIGNAL("clicked()"), \ 
    514                                   self.stopThinkGearConnectServer) 
    515                  
    516                 self.lineEditThinkGearHost.setEnabled(False) 
    517                 self.lineEditThinkGearPort.setEnabled(False) 
    518                  
    519                 self.pushButtonThinkGearConnect.setText('Stop') 
    520          
    521          
    522         ################################################################## 
    523          
    524         def stopThinkGearConnectServer(self): 
     520                #self.disconnect(self.pushButtonSynapseServer, \ 
     521                                     #QtCore.SIGNAL("clicked()"), \ 
     522                                     #self.startThinkGearConnectClient) 
     523                 
     524                #self.connect(self.pushButtonSynapseServer, \ 
     525                                  #QtCore.SIGNAL("clicked()"), \ 
     526                                  #self.stopThinkGearConnectClient) 
     527                 
     528                #self.lineEditSynapseHost.setEnabled(False) 
     529                #self.lineEditSynapsePort.setEnabled(False) 
     530                 
     531                #self.pushButtonSynapseServer.setText('Stop') 
     532         
     533         
     534        ################################################################## 
     535         
     536        def stopThinkGearConnectClient(self): 
    525537                 
    526538                if UPDATE_INTERFACE_VIA_TIMER: 
     
    534546                                        print e 
    535547                         
    536                         try: 
    537                                 self.thinkGearConnectServer.exitThread() 
    538                         except Exception, e: 
    539                                 if self.DEBUG: 
    540                                         print "Call failed to self.thinkGearConnectServer.exitThread():", 
    541                                         print e 
    542                  
    543                 self.disconnect(self.pushButtonThinkGearConnect, \ 
    544                                 QtCore.SIGNAL("clicked()"), \ 
    545                                 self.stopThinkGearConnectServer) 
    546                  
    547                 self.connect(self.pushButtonThinkGearConnect, \ 
    548                                   QtCore.SIGNAL("clicked()"), \ 
    549                                   self.startSynapseServer) 
    550                  
    551                 self.lineEditThinkGearHost.setEnabled(True) 
    552                 self.lineEditThinkGearPort.setEnabled(True) 
    553                  
    554                 self.pushButtonThinkGearConnect.setText('Start') 
     548                        #try: 
     549                                #self.synapseServer.exitThread() 
     550                        #except Exception, e: 
     551                                #if self.DEBUG: 
     552                                        #print "Call failed to self.synapseServer.exitThread():", 
     553                                        #print e 
     554                 
     555                #self.disconnect(self.pushButtonSynapseServer, \ 
     556                                #QtCore.SIGNAL("clicked()"), \ 
     557                                #self.stopSynapseServer) 
     558                 
     559                #self.connect(self.pushButtonSynapseServer, \ 
     560                                  #QtCore.SIGNAL("clicked()"), \ 
     561                                  #self.startSynapseServer) 
     562                 
     563                #self.lineEditSynapseHost.setEnabled(True) 
     564                #self.lineEditSynapsePort.setEnabled(True) 
     565                 
     566                #self.pushButtonSynapseServer.setText('Start') 
     567                 
     568                ##self.pushButtonBluetoothSearch.setEnabled(True) 
     569                ##self.pushButtonBluetoothConnect.setEnabled(True) 
     570                 
     571                #self.pushButtonSynapseServer.setChecked(False) 
     572         
     573         
     574        ################################################################## 
     575         
     576        #def connectToThinkGearDevice(self): 
     577                 
     578                #device_selection = self.comboBoxDeviceSelect.currentText() 
     579                 
     580                ##self.disconnect(self.pushButtonBluetoothConnect, \ 
     581                                     ##QtCore.SIGNAL("clicked()"), \ 
     582                                     ##self.connectToThinkGearDevice) 
     583                 
     584                ##self.connect(self.pushButtonBluetoothConnect, \ 
     585                                  ##QtCore.SIGNAL("clicked()"), \ 
     586                                  ##self.disconnectFromThinkGearDevice) 
     587                 
     588                #self.textLabelBluetoothStatus.setText("Status: Connected") 
     589                 
     590                #self.pushButtonBluetoothSearch.setEnabled(False) 
     591                 
     592                ##self.pushButtonBluetoothConnect.setText('Disconnect') 
     593                ##self.pushButtonBluetoothConnect.setChecked(True) 
     594                 
     595                #self.comboBoxDeviceSelect.setEnabled(False) 
     596                #self.comboBoxEEGHeadsetModel.setEnabled(False) 
     597         
     598         
     599        ################################################################## 
     600         
     601        #def disconnectFromThinkGearDevice(self): 
     602                 
     603                ##self.disconnect(self.pushButtonBluetoothConnect, \ 
     604                                     ##QtCore.SIGNAL("clicked()"), \ 
     605                                     ##self.disconnectFromThinkGearDevice) 
     606                 
     607                ##self.connect(self.pushButtonBluetoothConnect, \ 
     608                                  ##QtCore.SIGNAL("clicked()"), \ 
     609                                  ##self.connectToThinkGearDevice) 
     610                 
     611                #self.textLabelBluetoothStatus.setText("Status: Disconnected") 
    555612                 
    556613                #self.pushButtonBluetoothSearch.setEnabled(True) 
    557                 self.pushButtonBluetoothConnect.setEnabled(True) 
    558                  
    559                 self.pushButtonThinkGearConnect.setChecked(False) 
     614                 
     615                ##self.pushButtonBluetoothConnect.setText('Connect') 
     616                ##self.pushButtonBluetoothConnect.setChecked(False) 
     617                 
     618                #self.comboBoxDeviceSelect.setEnabled(True) 
     619                #self.comboBoxEEGHeadsetModel.setEnabled(True) 
     620                 
     621                 
     622                #self.progressBarEEGDelta.setValue(0) 
     623                #self.progressBarEEGTheta.setValue(0) 
     624                #self.progressBarEEGLowAlpha.setValue(0) 
     625                #self.progressBarEEGHighAlpha.setValue(0) 
     626                #self.progressBarEEGLowBeta.setValue(0) 
     627                #self.progressBarEEGHighBeta.setValue(0) 
     628                #self.progressBarEEGLowGamma.setValue(0) 
     629                #self.progressBarEEGMidGamma.setValue(0) 
     630                 
     631                #self.progressBarAttention.setValue(0) 
     632                #self.progressBarMeditation.setValue(0) 
     633                 
     634                #self.progressBarSignalContactQuality.setValue(0) 
     635                 
     636                #self.maxEEGPower = THINKGEAR_EMULATION_MAX_EEG_POWER_VALUE 
     637                 
     638                ## In case the user connects to a MindSet, then disconnects 
     639                ## and re-connects to a MindSet Emulator, 
     640                ## we need to reset the max power values 
     641                #self.progressBarEEGDelta.setMaximum(self.maxEEGPower) 
     642                #self.progressBarEEGTheta.setMaximum(self.maxEEGPower) 
     643                #self.progressBarEEGLowAlpha.setMaximum(self.maxEEGPower) 
     644                #self.progressBarEEGHighAlpha.setMaximum(self.maxEEGPower) 
     645                #self.progressBarEEGLowBeta.setMaximum(self.maxEEGPower) 
     646                #self.progressBarEEGHighBeta.setMaximum(self.maxEEGPower) 
     647                #self.progressBarEEGLowGamma.setMaximum(self.maxEEGPower) 
     648                #self.progressBarEEGMidGamma.setMaximum(self.maxEEGPower) 
     649         
     650         
     651        ################################################################## 
     652         
     653        def startEmotivClient(self): 
     654                 
     655                eeg_headset_model = str(self.comboBoxEEGHeadsetModel.currentText()) 
     656                device_address = str(self.comboBoxDeviceSelect.currentText()) 
     657                 
     658                server_host = configuration.EMOTIV_SERVER_HOST 
     659                 
     660                if device_address == 'Emotiv EPOC': 
     661                        server_port = configuration.EMOTIV_SERVER_PORT_CONTROL_PANEL 
     662                else: 
     663                        server_port = configuration.EMOTIV_SERVER_PORT_EMOCOMPOSER 
     664                 
     665                self.emotivClient = \ 
     666                   emotiv_client.puzzlebox_synapse_client_emotiv( \ 
     667                      log=self.log, \ 
     668                      server_host=server_host, \ 
     669                      server_port=server_port, \ 
     670                      DEBUG=DEBUG, \ 
     671                      parent=self) 
     672                 
     673                self.emotivClient.start() 
     674                 
     675                 
     676                self.progressBarEEGDelta.setEnabled(False) 
     677                self.progressBarEEGTheta.setEnabled(False) 
     678                self.progressBarEEGLowAlpha.setEnabled(False) 
     679                self.progressBarEEGHighAlpha.setEnabled(False) 
     680                self.progressBarEEGLowBeta.setEnabled(False) 
     681                self.progressBarEEGHighBeta.setEnabled(False) 
     682                self.progressBarEEGLowGamma.setEnabled(False) 
     683                self.progressBarEEGMidGamma.setEnabled(False) 
     684                 
     685                self.progressBarAttention.setEnabled(False) 
     686                self.progressBarMeditation.setEnabled(False) 
     687                 
     688                 
     689        ################################################################## 
     690         
     691        def stopEmotivClient(self): 
     692                 
     693                self.emotivClient.stop() 
     694                 
     695                self.progressBarEEGDelta.setEnabled(True) 
     696                self.progressBarEEGTheta.setEnabled(True) 
     697                self.progressBarEEGLowAlpha.setEnabled(True) 
     698                self.progressBarEEGHighAlpha.setEnabled(True) 
     699                self.progressBarEEGLowBeta.setEnabled(True) 
     700                self.progressBarEEGHighBeta.setEnabled(True) 
     701                self.progressBarEEGLowGamma.setEnabled(True) 
     702                self.progressBarEEGMidGamma.setEnabled(True) 
     703                 
     704                self.progressBarAttention.setEnabled(True) 
     705                self.progressBarMeditation.setEnabled(True) 
    560706         
    561707         
     
    564710        def updateInterface(self): 
    565711                 
    566                 if not self.thinkGearConnectServer.emulate_headset_data: 
     712                if not self.synapseServer.emulate_headset_data: 
    567713                        self.processPacketThinkGear( \ 
    568                                 self.thinkGearConnectServer.protocol.data_packet) 
     714                                self.synapseServer.protocol.data_packet) 
    569715         
    570716         
     
    626772                        # If we are not emulating packets we'll set the maximum EEG Power value 
    627773                        # threshold to the default (or maximum value found within this packet) 
    628                         if not self.thinkGearConnectServer.emulate_headset_data: 
     774                        if not self.synapseServer.emulate_headset_data: 
    629775                                self.maxEEGPower = THINKGEAR_EMULATION_MAX_EEG_POWER_VALUE 
    630776                         
     
    690836                 
    691837                 
    692                 if ((self.thinkGearConnectServer.protocol != None) and 
     838                if ((self.synapseServer.protocol != None) and 
    693839                    (self.tabWidget.currentIndex() == \ 
    694840                     self.tabWidget.indexOf(self.tabControlPanel))): 
    695841                         
    696842                        self.updateProfileSessionStatus() 
     843         
     844         
     845        ################################################################## 
     846         
     847        def processPacketEmotiv(self, packet): 
     848                 
     849                print 
     850                print "Booyah" 
     851                print 
     852                print packet 
     853                print 
     854                print 
    697855         
    698856         
     
    719877                try: 
    720878                        target.textLabelPacketsReceived.setText( "%i" % \ 
    721                                 source.thinkGearConnectServer.protocol.packet_count) 
     879                                source.synapseServer.protocol.packet_count) 
    722880                except: 
    723881                        pass 
     
    725883                try: 
    726884                        target.textLabelPacketsDropped.setText( "%i" % \ 
    727                                 source.thinkGearConnectServer.protocol.bad_packets) 
     885                                source.synapseServer.protocol.bad_packets) 
    728886                except: 
    729887                        pass 
     
    735893                 
    736894                if self.parent == None: 
    737                         server = self.thinkGearConnectServer 
     895                        server = self.synapseServer 
    738896                else: 
    739                         server = self.parent.thinkGearConnectServer 
     897                        server = self.parent.synapseServer 
    740898                 
    741899                session_time = time.time() - \ 
     
    16021760                source.packets['signals'] = [] 
    16031761                 
    1604                 source.thinkGearConnectServer.protocol.session_start_timestamp = \ 
     1762                source.synapseServer.protocol.session_start_timestamp = \ 
    16051763                        time.time() 
    16061764                 
    1607                 source.thinkGearConnectServer.protocol.packet_count = 0 
    1608                 source.thinkGearConnectServer.protocol.bad_packets = 0 
     1765                source.synapseServer.protocol.packet_count = 0 
     1766                source.synapseServer.protocol.bad_packets = 0 
    16091767                 
    16101768                self.updateProfileSessionStatus() 
     
    16501808                        if self.thinkgearConnectClient != None: 
    16511809                                self.thinkgearConnectClient.exitThread() 
    1652                  
    1653                 if self.thinkGearConnectServer != None: 
    1654                         self.thinkGearConnectServer.exitThread() 
     1810                        if self.emotivClient != None: 
     1811                                self.emotivClient.exitThread() 
     1812                 
     1813                if self.synapseServer != None: 
     1814                        self.synapseServer.exitThread() 
    16551815         
    16561816         
  • trunk/puzzlebox_synapse_configuration.ini

    r276 r357  
    2525THINKGEAR_SERVER_HOST = '*' 
    2626THINKGEAR_SERVER_PORT = 13854 
     27 
     28EMOTIV_SERVER_HOST = '127.0.0.1' 
     29EMOTIV_SERVER_PORT_CONTROL_PANEL = 3008 
     30EMOTIV_SERVER_PORT_EMOCOMPOSER = 1726 
    2731 
    2832 
Note: See TracChangeset for help on using the changeset viewer.