Changeset 365


Ignore:
Timestamp:
03/31/12 01:35:37 (8 years ago)
Author:
sc
Message:
  • Emotiv packet processing working
Location:
trunk/Puzzlebox/Synapse
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Puzzlebox/Synapse/Emotiv/Client.py

    r364 r365  
    2929 
    3030try: 
    31         import Protocol as emotiv_protocol 
     31        import Puzzlebox.Synapse.Emotiv.Protocol as emotiv_protocol 
    3232except Exception, e: 
    3333        print "ERROR: [Synapse:Emotiv:Client] Exception importing Emotiv.Protocol:", 
     
    4545#SERVER_PORT = configuration.EMOTIV_SERVER_PORT_EMOCOMPOSER 
    4646 
    47 TIMER_BASED__LOOP = True 
    48 EVENT_TIMER_BASED_LOOP = True 
    49 EVENT_TIMER_FREQUENCY = 0.25 * 1000 # 4 Hz 
     47#EVENT_TIMER_BASED_LOOP = True 
     48#EVENT_TIMER_FREQUENCY = 0.25 * 1000 # 4 Hz 
    5049 
    5150##################################################################### 
     
    9493                 
    9594                if emotiv_protocol != None: 
    96                  
     95                         
    9796                        emotiv_protocol.start(host=self.server_host, \ 
    9897                                              port=self.server_port, \ 
     
    104103         
    105104        def processPacketEmotiv(self, packet): 
     105                 
     106                #print "Emotiv:Client", 
     107                #print packet 
    106108                 
    107109                # Pass GUI updating to Interface application or parent object 
  • trunk/Puzzlebox/Synapse/Interface.py

    r364 r365  
    6565 
    6666#import Puzzlebox.Synapse.Server as synapse_server 
     67import Puzzlebox.Synapse.Client as synapse_client 
    6768import Puzzlebox.Synapse.ThinkGear.Server as thinkgear_server 
    6869import Puzzlebox.Synapse.ThinkGear.Client as thinkgear_client 
    69 #import Puzzlebox.Synapse.Emotiv.Server as emotiv_server 
     70import Puzzlebox.Synapse.Emotiv.Server as emotiv_server 
    7071import Puzzlebox.Synapse.Emotiv.Client as emotiv_client 
    7172#import puzzlebox_logger 
     
    132133                 
    133134                self.synapseServer = None 
    134                 self.thinkgearConnectClient = None 
    135                 self.emotivClient = None 
     135                self.synapseClient = None 
     136                #self.thinkgearConnectClient = None 
     137                #self.emotivClient = None 
    136138                 
    137139                self.maxEEGPower = THINKGEAR_EMULATION_MAX_EEG_POWER_VALUE 
     
    293295                eeg_headset_model = str(self.comboBoxEEGHeadsetModel.currentText()) 
    294296                device_address = str(self.comboBoxDeviceSelect.currentText()) 
    295                 #server_interface = str(self.lineEditSynapseHost.text()) 
    296                 #server_port = int(self.lineEditSynapsePort.text()) 
     297                server_interface = str(self.lineEditSynapseHost.text()) 
     298                server_port = int(self.lineEditSynapsePort.text()) 
    297299                #emulate_headset_data = (device_address == 'ThinkGear Emulator') 
    298300                 
     
    326328                 
    327329                 
     330                 
     331                if UPDATE_INTERFACE_VIA_TIMER: 
     332                        self.updateInterfaceTimer.start(INTERFACE_UPDATE_FREQUENCY) 
     333                 
     334                else: 
     335                        self.synapseClient = \ 
     336                                synapse_client.puzzlebox_synapse_client( \ 
     337                                        self.log, \ 
     338                                        server_host=server_interface, \ 
     339                                        server_port=server_port, \ 
     340                                        DEBUG=0, \ 
     341                                        parent=self) 
     342                         
     343                        self.synapseClient.start() 
     344                 
     345                 
     346                 
    328347                device_selection = self.comboBoxDeviceSelect.currentText() 
    329348                self.textLabelBluetoothStatus.setText("Status: Connected") 
     
    374393                         
    375394                        self.stopEmotivService() 
     395                 
     396                 
     397                 
     398                if UPDATE_INTERFACE_VIA_TIMER: 
     399                        self.updateInterfaceTimer.stop() 
     400                else: 
     401                        try: 
     402                                self.synapseClient.exitThread() 
     403                                #self.synapseClient.disconnectFromHost() 
     404                        except Exception, e: 
     405                                if self.DEBUG: 
     406                                        print "Call failed to self.synapseClient.exitThread():", 
     407                                        #print "Call failed to self.synapseClient.disconnectFromHost():", 
     408                                        print e 
     409                 
    376410                 
    377411                 
     
    466500                 
    467501                 
    468                 if UPDATE_INTERFACE_VIA_TIMER: 
    469                         self.updateInterfaceTimer.start(INTERFACE_UPDATE_FREQUENCY) 
    470                  
     502                #if UPDATE_INTERFACE_VIA_TIMER: 
     503                        #self.updateInterfaceTimer.start(INTERFACE_UPDATE_FREQUENCY) 
     504                 
     505                #else: 
     506                        #self.thinkgearConnectClient = \ 
     507                                #thinkgear_client.puzzlebox_synapse_thinkgear_client( \ 
     508                                        #self.log, \ 
     509                                        #server_host=server_interface, \ 
     510                                        #server_port=server_port, \ 
     511                                        #DEBUG=0, \ 
     512                                        #parent=self) 
     513                         
     514                        #self.thinkgearConnectClient.start() 
     515         
     516         
     517        ################################################################## 
     518         
     519        def stopThinkGearConnectService(self): 
     520                 
     521                #if UPDATE_INTERFACE_VIA_TIMER: 
     522                        #self.updateInterfaceTimer.stop() 
     523                #else: 
     524                        #try: 
     525                                #self.thinkgearConnectClient.exitThread() 
     526                                ##self.thinkgearConnectClient.disconnectFromHost() 
     527                        #except Exception, e: 
     528                                #if self.DEBUG: 
     529                                        #print "Call failed to self.thinkgearConnectClient.exitThread():", 
     530                                        ##print "Call failed to self.thinkgearConnectClient.disconnectFromHost():", 
     531                                        #print e 
     532                 
     533                pass 
     534         
     535         
     536        ################################################################## 
     537         
     538        def startEmotivService(self): 
     539                 
     540                #eeg_headset_model = str(self.comboBoxEEGHeadsetModel.currentText()) 
     541                device_address = str(self.comboBoxDeviceSelect.currentText()) 
     542                 
     543                #server_host = configuration.EMOTIV_SERVER_HOST 
     544                 
     545                if device_address == 'Emotiv EPOC': 
     546                        #server_port = configuration.EMOTIV_SERVER_PORT_CONTROL_PANEL 
     547                        device_address = configuration.EMOTIV_SERVER_PORT_CONTROL_PANEL 
    471548                else: 
    472                         self.thinkgearConnectClient = \ 
    473                                 thinkgear_client.puzzlebox_synapse_thinkgear_client( \ 
    474                                         self.log, \ 
    475                                         server_host=server_interface, \ 
    476                                         server_port=server_port, \ 
    477                                         DEBUG=0, \ 
    478                                         parent=self) 
    479                          
    480                         self.thinkgearConnectClient.start() 
    481          
    482          
    483         ################################################################## 
    484          
    485         def stopThinkGearConnectService(self): 
    486                  
    487                 if UPDATE_INTERFACE_VIA_TIMER: 
    488                         self.updateInterfaceTimer.stop() 
    489                 else: 
    490                         try: 
    491                                 self.thinkgearConnectClient.exitThread() 
    492                                 #self.thinkgearConnectClient.disconnectFromHost() 
    493                         except Exception, e: 
    494                                 if self.DEBUG: 
    495                                         print "Call failed to self.thinkgearConnectClient.exitThread():", 
    496                                         #print "Call failed to self.thinkgearConnectClient.disconnectFromHost():", 
    497                                         print e 
    498          
    499          
    500         ################################################################## 
    501          
    502         def startEmotivService(self): 
    503                  
     549                        #server_port = configuration.EMOTIV_SERVER_PORT_EMOCOMPOSER 
     550                        device_address = configuration.EMOTIV_SERVER_PORT_EMOCOMPOSER 
     551                 
     552                #self.emotivClient = \ 
     553                   #emotiv_client.puzzlebox_synapse_client_emotiv( \ 
     554                      #log=self.log, \ 
     555                      #server_host=server_host, \ 
     556                      #server_port=server_port, \ 
     557                      #DEBUG=DEBUG, \ 
     558                      #parent=self) 
     559                 
     560                #self.emotivClient.start() 
     561                 
     562                 
     563                 
     564                server_interface = str(self.lineEditSynapseHost.text()) 
     565                server_port = int(self.lineEditSynapsePort.text()) 
    504566                eeg_headset_model = str(self.comboBoxEEGHeadsetModel.currentText()) 
    505                 device_address = str(self.comboBoxDeviceSelect.currentText()) 
    506                  
    507                 server_host = configuration.EMOTIV_SERVER_HOST 
    508                  
    509                 if device_address == 'Emotiv EPOC': 
    510                         server_port = configuration.EMOTIV_SERVER_PORT_CONTROL_PANEL 
    511                 else: 
    512                         server_port = configuration.EMOTIV_SERVER_PORT_EMOCOMPOSER 
    513                  
    514                 self.emotivClient = \ 
    515                    emotiv_client.puzzlebox_synapse_client_emotiv( \ 
    516                       log=self.log, \ 
    517                       server_host=server_host, \ 
    518                       server_port=server_port, \ 
    519                       DEBUG=DEBUG, \ 
    520                       parent=self) 
    521                  
    522                 self.emotivClient.start() 
     567                #device_address = str(self.comboBoxDeviceSelect.currentText()) 
     568                emulate_headset_data = (device_address == 'ThinkGear Emulator') 
     569                 
     570                 
     571                self.synapseServer = \ 
     572                        emotiv_server.puzzlebox_synapse_server_emotiv( \ 
     573                                self.log, \ 
     574                                server_interface=server_interface, \ 
     575                                server_port=server_port, \ 
     576                                device_model=eeg_headset_model, \ 
     577                                device_address=device_address, \ 
     578                                emulate_headset_data=emulate_headset_data, \ 
     579                                DEBUG=DEBUG, \ 
     580                                parent=self) 
     581                 
     582                self.synapseServer.start() 
     583                 
    523584                 
    524585                 
     
    540601        def stopEmotivService(self): 
    541602                 
    542                 self.emotivClient.stop() 
     603                #self.emotivClient.stop() 
    543604                 
    544605                self.progressBarEEGDelta.setEnabled(True) 
     
    563624                                self.synapseServer.protocol.data_packet) 
    564625         
     626         
     627        ################################################################## 
     628         
     629        def processPacket(self, packet): 
     630                 
     631                self.processPacketThinkGear(packet) 
     632                self.processPacketEmotiv(packet) 
    565633         
    566634        ################################################################## 
     
    700768                        print packet 
    701769                 
    702                 self.synapseServer.packet_queue.append(packet) 
     770                #self.synapseServer.packet_queue.append(packet) 
    703771         
    704772         
     
    9691037                except Exception, e: 
    9701038                        if self.DEBUG: 
    971                                 print "ERROR [Synapse-Interface]: Failed reading result from call to hcitool:", 
     1039                                print "ERROR [Synapse:Interface]: Failed reading result from call to hcitool:", 
    9721040                                print e 
    9731041                        result = '' 
     
    11261194                elif (model == 'Emotiv EPOC'): 
    11271195                         
     1196                        devices.insert(0, 'EmoComposer') 
    11281197                        devices.insert(0, 'Emotiv Headset') 
    1129                         devices.insert(0, 'EmoComposer') 
    11301198                 
    11311199                 
     
    16551723                        self.updateInterfaceTimer.stop() 
    16561724                else: 
    1657                         if self.thinkgearConnectClient != None: 
    1658                                 self.thinkgearConnectClient.exitThread() 
    1659                         if self.emotivClient != None: 
    1660                                 self.emotivClient.exitThread() 
     1725                        #if self.thinkgearConnectClient != None: 
     1726                                #self.thinkgearConnectClient.exitThread() 
     1727                        #if self.emotivClient != None: 
     1728                                #self.emotivClient.exitThread() 
     1729                        if self.synapseClient != None: 
     1730                                self.synapseClient.exitThread() 
    16611731                 
    16621732                if self.synapseServer != None: 
  • trunk/Puzzlebox/Synapse/Server.py

    r364 r365  
    3333        from PyQt4 import QtCore, QtGui, QtNetwork 
    3434 
    35 #import Puzzlebox.Synapse.ThinkGear.Server as thinkgear_server 
    36  
    37  
    3835##################################################################### 
    3936# Globals 
     
    139136                #self.blockSize = 0 
    140137                self.socket = QtNetwork.QTcpServer() 
    141                 self.socket.name = 'ThinkGear Server' 
     138                self.socket.name = 'Synapse:Server' 
    142139                 
    143140                if self.DEBUG: 
     
    359356        ################################################################## 
    360357         
    361         def processPacketEmotiv(self, packet): 
    362                  
    363                 if self.DEBUG > 2: 
    364                         print packet 
    365                  
    366                 if (packet != {}): 
    367                         self.packet_queue.append(packet) 
    368                          
    369                         if COMMUNICATION_MODE == 'Emit Signal': 
    370                                 self.emitSendPacketSignal() 
    371                          
    372                         else: 
    373                                 self.sendPacketQueue() 
    374                                  
    375                                 if (self.parent != None): 
    376                                         self.parent.processPacketEmotiv(packet) 
     358        #def processPacketEmotiv(self, packet): 
     359                 
     360                #if self.DEBUG > 2: 
     361                        #print packet 
     362                 
     363                #if (packet != {}): 
     364                        #self.packet_queue.append(packet) 
     365                         
     366                        #if COMMUNICATION_MODE == 'Emit Signal': 
     367                                #self.emitSendPacketSignal() 
     368                         
     369                        #else: 
     370                                #self.sendPacketQueue() 
     371                                 
     372                                #if (self.parent != None): 
     373                                        #self.parent.processPacketEmotiv(packet) 
    377374         
    378375         
  • trunk/Puzzlebox/Synapse/ThinkGear/Client.py

    r362 r365  
    1111 
    1212import os, sys 
    13 import signal 
     13#import signal 
    1414import simplejson as json 
    1515 
  • trunk/Puzzlebox/Synapse/ThinkGear/Server.py

    r364 r365  
    1313 
    1414import os, sys, time 
    15 #import signal 
    1615import math 
    1716 
     
    134133##################################################################### 
    135134 
    136 #class puzzlebox_synapse_server_thinkgear(QtCore.QThread): 
    137135class puzzlebox_synapse_server_thinkgear(synapse_server.puzzlebox_synapse_server): 
    138136         
Note: See TracChangeset for help on using the changeset viewer.