Changeset 146


Ignore:
Timestamp:
08/06/10 04:16:49 (11 years ago)
Author:
sc
Message:

synapse/interface/puzzlebox_synapse_interface_design:

  • isCheckable status added to pushButtons

synapse/puzzlebox_synapse_server.py:

  • external ThinkGear? emulation control added
  • Pyside network address handling added

synapse/puzzlebox_synapse_configuration:

  • host v. interface distinction

synapse/puzzlebox_synapse_protocol_thinkgear.py:

  • comment cleanup

synapse/puzzlebox_synapse_interface.py:

  • connection/disconnection support for MindSet? Emulator device done
  • start/stop support for ThinkGear? Connect server done
Location:
synapse
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • synapse/interface/puzzlebox_synapse_interface_design.ui

    r144 r146  
    220220      <string>Start</string> 
    221221     </property> 
     222     <property name="checkable"> 
     223      <bool>true</bool> 
     224     </property> 
    222225    </widget> 
    223226    <widget class="QLabel" name="textLabelBluetoothStatus"> 
     
    251254     <property name="text"> 
    252255      <string>Connect</string> 
     256     </property> 
     257     <property name="checkable"> 
     258      <bool>true</bool> 
    253259     </property> 
    254260    </widget> 
  • synapse/puzzlebox_synapse_configuration.ini

    r144 r146  
    2121 
    2222THINKGEAR_SERVER_INTERFACE = '' # listen on all of server's network interfaces 
    23 THINKGEAR_SERVER_HOST = '127.0.0.1' 
     23THINKGEAR_SERVER_HOST = '*' 
    2424THINKGEAR_SERVER_PORT = 13854 
    2525 
  • synapse/puzzlebox_synapse_configuration.py

    r144 r146  
    2929 
    3030THINKGEAR_SERVER_INTERFACE = '' # listen on all of server's network interfaces 
    31 THINKGEAR_SERVER_HOST = '127.0.0.1' 
     31#THINKGEAR_SERVER_HOST = '127.0.0.1' 
     32THINKGEAR_SERVER_HOST = '*' 
    3233THINKGEAR_SERVER_PORT = 13854 
    3334 
  • synapse/puzzlebox_synapse_interface.py

    r145 r146  
    7474                self.name = "Synapse Interface" 
    7575                 
     76                self.thinkGearConnectServer = None 
     77                 
    7678                #self.brainstormsServer = server 
    7779                #self.brainstormsClient = None 
     
    8890                 
    8991                icon = QtGui.QIcon() 
    90                 icon.addPixmap(QtGui.QPixmap("images/puzzlebox.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off) 
     92                icon.addPixmap(QtGui.QPixmap("images/puzzlebox.ico"), \ 
     93                               QtGui.QIcon.Normal, \ 
     94                               QtGui.QIcon.Off) 
    9195                self.setWindowIcon(icon) 
    9296                 
     
    103107                # Display Host for ThinkGear Connect Socket Server 
    104108                self.lineEditThinkGearHost.setText(THINKGEAR_SERVER_HOST) 
    105                 #self.lineEditThinkGearHost.setEnabled(False) 
    106109                 
    107110                # Display Port for ThinkGear Connect Socket Server 
    108111                self.lineEditThinkGearPort.setText('%i' % THINKGEAR_SERVER_PORT) 
    109                 #self.lineEditThinkGearPort.setEnabled(False) 
    110112         
    111113         
     
    129131                device_selection = self.comboBoxDeviceSelect.currentText() 
    130132                 
    131                  
    132                 self.disconnect(self.pushButtonBluetoothConnect, \ 
    133                                      QtCore.SIGNAL("clicked()"), \ 
    134                                      self.connectToThinkGearDevice) 
    135                  
    136                 self.connect(self.pushButtonBluetoothConnect, \ 
    137                                   QtCore.SIGNAL("clicked()"), \ 
    138                                   self.disconnectFromThinkGearDevice) 
    139                  
    140                 self.textLabelBluetoothStatus.setText("Status: Connected") 
    141                  
    142                 self.pushButtonBluetoothConnect.setText('Disconnect') 
    143                  
    144                 self.comboBoxDeviceSelect.setEnabled(False) 
     133                success = self.startThinkGearDeviceProcessing() 
     134                 
     135                if success: 
     136                 
     137                        self.disconnect(self.pushButtonBluetoothConnect, \ 
     138                                             QtCore.SIGNAL("clicked()"), \ 
     139                                             self.connectToThinkGearDevice) 
     140                         
     141                        self.connect(self.pushButtonBluetoothConnect, \ 
     142                                          QtCore.SIGNAL("clicked()"), \ 
     143                                          self.disconnectFromThinkGearDevice) 
     144                         
     145                        self.textLabelBluetoothStatus.setText("Status: Connected") 
     146                         
     147                        self.pushButtonBluetoothConnect.setText('Disconnect') 
     148                        self.pushButtonBluetoothConnect.setChecked(True) 
     149                         
     150                        self.comboBoxDeviceSelect.setEnabled(False) 
     151                 
     152                 
     153                return(success) 
    145154         
    146155         
     
    160169                 
    161170                self.pushButtonBluetoothConnect.setText('Connect') 
     171                self.pushButtonBluetoothConnect.setChecked(False) 
    162172                 
    163173                self.comboBoxDeviceSelect.setEnabled(True) 
    164  
     174         
     175         
     176        ################################################################## 
     177         
     178        def startThinkGearDeviceProcessing(self): 
     179                 
     180                #device_address = self.comboBoxDeviceSelect.currentText() 
     181                 
     182                #emulate_headset_data = (device_address == 'MindSet Emulator') 
     183                 
     184                #self.thinkGearConnectServer = \ 
     185                        #puzzlebox_synapse_server(log, \ 
     186                                                 #server_interface, \ 
     187                                                 #server_port, \ 
     188                                                 #device_address, \ 
     189                                                 #DEBUG=DEBUG, \ 
     190                                                 #parent=self) 
     191                 
     192                 
     193                #self.thinkGearConnectServer.start() 
     194                 
     195                return(True) 
     196         
    165197         
    166198        ################################################################## 
     
    168200        def startThinkGearConnectServer(self): 
    169201                 
    170                 pass 
     202                # Ensure EEG device is connected first 
     203                 
     204                if not self.pushButtonBluetoothConnect.isChecked(): 
     205                        success = self.connectToThinkGearDevice() 
     206                else: 
     207                        success = True 
     208                 
     209                 
     210                if success: 
     211                 
     212                        self.pushButtonBluetoothConnect.setEnabled(False) 
     213                         
     214                        server_interface = str(self.lineEditThinkGearHost.text()) 
     215                        server_port = int(self.lineEditThinkGearPort.text()) 
     216                        device_address = str(self.comboBoxDeviceSelect.currentText()) 
     217                        emulate_headset_data = (device_address == 'MindSet Emulator') 
     218                         
     219                         
     220                        self.thinkGearConnectServer = \ 
     221                                synapse_server.puzzlebox_synapse_server( \ 
     222                                        log, \ 
     223                                        server_interface=server_interface, \ 
     224                                        server_port=server_port, \ 
     225                                        device_address=device_address, \ 
     226                                        emulate_headset_data=emulate_headset_data, \ 
     227                                        DEBUG=DEBUG, \ 
     228                                        parent=self) 
     229                         
     230                        self.thinkGearConnectServer.start() 
     231                         
     232                         
     233                        self.disconnect(self.pushButtonThinkGearConnect, \ 
     234                                             QtCore.SIGNAL("clicked()"), \ 
     235                                             self.startThinkGearConnectServer) 
     236                         
     237                        self.connect(self.pushButtonThinkGearConnect, \ 
     238                                          QtCore.SIGNAL("clicked()"), \ 
     239                                          self.stopThinkGearConnectServer) 
     240                         
     241                        self.lineEditThinkGearHost.setEnabled(False) 
     242                        self.lineEditThinkGearPort.setEnabled(False) 
     243                         
     244                        self.pushButtonThinkGearConnect.setText('Stop') 
     245         
     246         
     247        ################################################################## 
     248         
     249        def stopThinkGearConnectServer(self): 
     250                 
     251                self.thinkGearConnectServer.exitThread() 
     252                 
     253                self.disconnect(self.pushButtonThinkGearConnect, \ 
     254                                     QtCore.SIGNAL("clicked()"), \ 
     255                                     self.stopThinkGearConnectServer) 
     256                 
     257                self.connect(self.pushButtonThinkGearConnect, \ 
     258                                  QtCore.SIGNAL("clicked()"), \ 
     259                                  self.startThinkGearConnectServer) 
     260                 
     261                self.lineEditThinkGearHost.setEnabled(True) 
     262                self.lineEditThinkGearPort.setEnabled(True) 
     263                 
     264                self.pushButtonThinkGearConnect.setText('Start') 
     265                 
     266                self.pushButtonBluetoothConnect.setEnabled(True) 
    171267         
    172268         
  • synapse/puzzlebox_synapse_interface_design.py

    r144 r146  
    33# Form implementation generated from reading ui file 'puzzlebox_synapse_interface_design.ui' 
    44# 
    5 # Created: Wed Aug  4 14:53:35 2010 
     5# Created: Thu Aug  5 16:27:48 2010 
    66#      by: PyQt4 UI code generator 4.7.3 
    77# 
     
    7676                self.pushButtonThinkGearConnect = QtGui.QPushButton(self.tab) 
    7777                self.pushButtonThinkGearConnect.setGeometry(QtCore.QRect(8, 349, 161, 31)) 
     78                self.pushButtonThinkGearConnect.setCheckable(True) 
    7879                self.pushButtonThinkGearConnect.setObjectName("pushButtonThinkGearConnect") 
    7980                self.textLabelBluetoothStatus = QtGui.QLabel(self.tab) 
     
    8485                self.pushButtonBluetoothConnect = QtGui.QPushButton(self.tab) 
    8586                self.pushButtonBluetoothConnect.setGeometry(QtCore.QRect(8, 196, 161, 31)) 
     87                self.pushButtonBluetoothConnect.setCheckable(True) 
    8688                self.pushButtonBluetoothConnect.setObjectName("pushButtonBluetoothConnect") 
    8789                self.lineEditThinkGearHost = QtGui.QLineEdit(self.tab) 
  • synapse/puzzlebox_synapse_protocol_thinkgear.py

    r144 r146  
    99# For more information please refer to http://www.gnu.org/copyleft/gpl.html 
    1010# 
    11 # Last Update: 2010.08.04 
     11# Last Update: 2010.08.05 
    1212# 
    1313##################################################################### 
     
    6868else: 
    6969        print "Using PySide module" 
    70          
     70 
    7171#from PyQt4 import QtCore 
    7272#from PySide import QtCore 
  • synapse/puzzlebox_synapse_server.py

    r144 r146  
    99# For more information please refer to http://www.gnu.org/copyleft/gpl.html 
    1010# 
    11 # Last Update: 2010.08.04 
     11# Last Update: 2010.08.05 
    1212# 
    1313##################################################################### 
     
    126126                          server_port=SERVER_PORT, \ 
    127127                          device_address=THINKGEAR_DEVICE_SERIAL_PORT, \ 
     128                          emulate_headset_data=ENABLE_SIMULATE_HEADSET_DATA, \ 
    128129                          DEBUG=DEBUG, \ 
    129130                          parent=None): 
     
    137138                self.server_port = server_port 
    138139                self.device_address = device_address 
     140                self.emulate_headset_data = emulate_headset_data 
    139141                 
    140142                self.message_frequency_timer = MESSAGE_FREQUENCY_TIMER 
     
    150152                self.protocol = None 
    151153                 
     154                 
    152155                self.configureEEG() 
    153156                 
    154157                self.configureNetwork() 
    155158                 
     159                 
    156160                self.updateTimer = QtCore.QTimer() 
    157                 QtCore.QObject.connect(self.updateTimer, QtCore.SIGNAL("timeout()"), self.timerEvent) 
     161                QtCore.QObject.connect(self.updateTimer, \ 
     162                                       QtCore.SIGNAL("timeout()"), \ 
     163                                       self.timerEvent) 
    158164                self.updateTimer.start(MESSAGE_FREQUENCY_TIMER) 
    159165         
     
    163169        def configureEEG(self): 
    164170                 
    165                 if not ENABLE_SIMULATE_HEADSET_DATA: 
     171                if not self.emulate_headset_data: 
    166172                         
    167173                        self.serial_device = \ 
     
    203209                        print "<---- [%s] Initializing server on %s:%i" % \ 
    204210                           (self.socket.name, self.server_interface, self.server_port) 
    205                          
    206                 if (self.server_interface == ''): 
    207                         result = self.socket.listen(port=self.server_port) 
     211                 
     212                 
     213                if ((self.server_interface == '') or \ 
     214                         (self.server_interface == '*')): 
     215                        address=QtNetwork.QHostAddress.Any 
    208216                else: 
    209                         result = self.socket.listen(address=self.server_interface, \ 
    210                                            port=self.server_port) 
     217                        #address=self.server_interface 
     218                        address=QtNetwork.QHostAddress(self.server_interface) 
     219                 
     220                 
     221                result = self.socket.listen(address, self.server_port) 
     222                 
    211223                 
    212224                if not result: 
     
    508520        def updateStatus(self): 
    509521                 
    510                 if ENABLE_SIMULATE_HEADSET_DATA: 
     522                if self.emulate_headset_data: 
    511523                         
    512524                        # Craft a simulated data packet 
     
    551563                        self.protocol.exitThread() 
    552564                 
     565                self.socket.close() 
     566                 
    553567                if callThreadQuit: 
    554568                        QtCore.QThread.quit(self) 
    555569                 
    556                 sys.exit() 
     570                if self.parent == None: 
     571                        sys.exit() 
    557572 
    558573 
     
    605620                                          server_port, \ 
    606621                                          device_address, \ 
     622                                          emulate_headset_data = \ 
     623                                             ENABLE_SIMULATE_HEADSET_DATA, \ 
    607624                                          DEBUG=DEBUG) 
    608625         
Note: See TracChangeset for help on using the changeset viewer.