Changeset 153


Ignore:
Timestamp:
08/10/10 04:59:56 (11 years ago)
Author:
sc
Message:

synapse/setup.py:

  • renamed from synapse/puzzlebox_synapse_setup.py
  • preparation for 0.3.0 release

synapse/puzzlebox_synapse_interface.py:

  • preparation for 0.3.0 release
  • general code and comment cleanup
  • UPDATE_INTERFACE_VIA_TIMER switch added for selecting thread-safe interface update methods

synapse/puzzlebox_synapse_server_thinkgear.py:

  • general code and comment cleanup
Location:
synapse
Files:
2 edited
1 moved

Legend:

Unmodified
Added
Removed
  • synapse/puzzlebox_synapse_interface.py

    r152 r153  
    3737#from PySide import QtCore, QtGui 
    3838 
    39 #from PyQt4 import QtNetwork 
    40  
    4139from puzzlebox_synapse_interface_design import Ui_Form 
    4240 
    4341import puzzlebox_synapse_configuration as configuration 
    4442import puzzlebox_synapse_server_thinkgear as synapse_server 
    45 #import puzzlebox_synapse_client_thinkgear as thinkgear_client 
     43import puzzlebox_synapse_client_thinkgear as thinkgear_client 
    4644#import puzzlebox_logger 
    4745 
     
    5149 
    5250DEBUG = 1 
    53  
    54 #THINKGEAR_POWER_THRESHOLDS = configuration.THINKGEAR_POWER_THRESHOLDS 
    55  
    56 #BLUETOOTH_DEVICE = configuration.NXT_BLUETOOTH_DEVICE 
    57  
    58 #NXT_BLUETOOTH_DEVICE = configuration.NXT_BLUETOOTH_DEVICE 
    59  
    60 #DEFAULT_NXT_POWER_LEVEL = configuration.DEFAULT_NXT_POWER_LEVEL 
    6151 
    6252THINKGEAR_SERVER_HOST = configuration.THINKGEAR_SERVER_HOST 
     
    7262PATH_TO_HCITOOL = '/usr/bin/hcitool' 
    7363 
     64UPDATE_INTERFACE_VIA_TIMER = True # Alternative is to establish a 
     65                                  # ThinkGear Connect client which 
     66                                  # updates the interface on demand 
     67                                  # as packets are received 
     68 
    7469INTERFACE_UPDATE_FREQUENCY = 1000 # ms 
    7570 
     
    10095                self.debug_console_buffer = '' 
    10196                 
    102                 self.updateInterfaceTimer = QtCore.QTimer() 
    103                 QtCore.QObject.connect(self.updateInterfaceTimer, \ 
    104                                             QtCore.SIGNAL("timeout()"), \ 
    105                                             self.updateInterface) 
     97                if UPDATE_INTERFACE_VIA_TIMER: 
     98                        self.updateInterfaceTimer = QtCore.QTimer() 
     99                        QtCore.QObject.connect(self.updateInterfaceTimer, \ 
     100                                                    QtCore.SIGNAL("timeout()"), \ 
     101                                                    self.updateInterface) 
    106102         
    107103         
     
    111107                 
    112108                # Synapse Interface 
    113                  
    114109                icon = QtGui.QIcon() 
    115110                icon.addPixmap(QtGui.QPixmap("images/puzzlebox.ico"), \ 
     
    120115                 
    121116                # ThinkGear Device 
    122                  
    123117                self.searchForThinkGearDevices() 
    124118                 
    125119                 
    126120                # ThinkGear Connect Server 
    127                  
    128121                self.textLabelBluetoothStatus.setText("Status: Disconnected") 
    129122                 
     
    174167                device_selection = self.comboBoxDeviceSelect.currentText() 
    175168                 
    176                 success = self.startThinkGearDeviceProcessing() 
    177                  
    178                 if success: 
    179                  
    180                         self.disconnect(self.pushButtonBluetoothConnect, \ 
    181                                              QtCore.SIGNAL("clicked()"), \ 
    182                                              self.connectToThinkGearDevice) 
    183                          
    184                         self.connect(self.pushButtonBluetoothConnect, \ 
    185                                           QtCore.SIGNAL("clicked()"), \ 
    186                                           self.disconnectFromThinkGearDevice) 
    187                          
    188                         self.textLabelBluetoothStatus.setText("Status: Connected") 
    189                          
    190                         self.pushButtonBluetoothSearch.setEnabled(False) 
    191                          
    192                         self.pushButtonBluetoothConnect.setText('Disconnect') 
    193                         self.pushButtonBluetoothConnect.setChecked(True) 
    194                          
    195                         self.comboBoxDeviceSelect.setEnabled(False) 
    196                  
    197                  
    198                 return(success) 
     169                self.disconnect(self.pushButtonBluetoothConnect, \ 
     170                                     QtCore.SIGNAL("clicked()"), \ 
     171                                     self.connectToThinkGearDevice) 
     172                 
     173                self.connect(self.pushButtonBluetoothConnect, \ 
     174                                  QtCore.SIGNAL("clicked()"), \ 
     175                                  self.disconnectFromThinkGearDevice) 
     176                 
     177                self.textLabelBluetoothStatus.setText("Status: Connected") 
     178                 
     179                self.pushButtonBluetoothSearch.setEnabled(False) 
     180                 
     181                self.pushButtonBluetoothConnect.setText('Disconnect') 
     182                self.pushButtonBluetoothConnect.setChecked(True) 
     183                 
     184                self.comboBoxDeviceSelect.setEnabled(False) 
    199185         
    200186         
     
    238224        ################################################################## 
    239225         
    240         def startThinkGearDeviceProcessing(self): 
    241                  
    242                 #device_address = self.comboBoxDeviceSelect.currentText() 
    243                  
    244                 #emulate_headset_data = (device_address == 'MindSet Emulator') 
    245                  
    246                 #self.thinkGearConnectServer = \ 
    247                         #puzzlebox_synapse_server(log, \ 
    248                                                  #server_interface, \ 
    249                                                  #server_port, \ 
    250                                                  #device_address, \ 
    251                                                  #DEBUG=DEBUG, \ 
    252                                                  #parent=self) 
    253                  
    254                  
    255                 #self.thinkGearConnectServer.start() 
    256                  
    257                 return(True) 
    258          
    259          
    260         ################################################################## 
    261          
    262226        def startThinkGearConnectServer(self): 
    263227                 
     
    265229                 
    266230                if not self.pushButtonBluetoothConnect.isChecked(): 
    267                         success = self.connectToThinkGearDevice() 
     231                        self.connectToThinkGearDevice() 
     232                 
     233                 
     234                self.pushButtonBluetoothSearch.setEnabled(False) 
     235                self.pushButtonBluetoothConnect.setEnabled(False) 
     236                 
     237                server_interface = str(self.lineEditThinkGearHost.text()) 
     238                server_port = int(self.lineEditThinkGearPort.text()) 
     239                device_address = str(self.comboBoxDeviceSelect.currentText()) 
     240                emulate_headset_data = (device_address == 'MindSet Emulator') 
     241                 
     242                 
     243                self.thinkGearConnectServer = \ 
     244                        synapse_server.puzzlebox_synapse_server_thinkgear( \ 
     245                                log, \ 
     246                                server_interface=server_interface, \ 
     247                                server_port=server_port, \ 
     248                                device_address=device_address, \ 
     249                                emulate_headset_data=emulate_headset_data, \ 
     250                                DEBUG=DEBUG, \ 
     251                                parent=self) 
     252                 
     253                self.thinkGearConnectServer.start() 
     254                 
     255                 
     256                if UPDATE_INTERFACE_VIA_TIMER: 
     257                        self.updateInterfaceTimer.start(INTERFACE_UPDATE_FREQUENCY) 
     258                 
    268259                else: 
    269                         success = True 
    270                  
    271                  
    272                 if success: 
    273                          
    274                         self.pushButtonBluetoothSearch.setEnabled(False) 
    275                         self.pushButtonBluetoothConnect.setEnabled(False) 
    276                          
    277                         server_interface = str(self.lineEditThinkGearHost.text()) 
    278                         server_port = int(self.lineEditThinkGearPort.text()) 
    279                         device_address = str(self.comboBoxDeviceSelect.currentText()) 
    280                         emulate_headset_data = (device_address == 'MindSet Emulator') 
    281                          
    282                          
    283                         self.thinkGearConnectServer = \ 
    284                                 synapse_server.puzzlebox_synapse_server_thinkgear( \ 
    285                                         log, \ 
    286                                         server_interface=server_interface, \ 
     260                        self.thinkgearConnectClient = \ 
     261                                thinkgear_client.puzzlebox_synapse_client_thinkgear( \ 
     262                                        self.log, \ 
     263                                        server_host=server_interface, \ 
    287264                                        server_port=server_port, \ 
    288                                         device_address=device_address, \ 
    289                                         emulate_headset_data=emulate_headset_data, \ 
    290                                         DEBUG=DEBUG, \ 
     265                                        DEBUG=0, \ 
    291266                                        parent=self) 
    292267                         
    293                         self.thinkGearConnectServer.start() 
    294                          
    295                         self.updateInterfaceTimer.start(INTERFACE_UPDATE_FREQUENCY) 
    296                          
    297                         #self.thinkgearConnectClient = \ 
    298                                 #thinkgear_client.puzzlebox_synapse_client_thinkgear( \ 
    299                                         #self.log, \ 
    300                                         #server_host=server_interface, \ 
    301                                         #server_port=server_port, \ 
    302                                         #DEBUG=0, \ 
    303                                         #parent=self) 
    304                          
    305                         #self.thinkgearConnectClient.start() 
    306                          
    307                          
    308                         self.disconnect(self.pushButtonThinkGearConnect, \ 
    309                                              QtCore.SIGNAL("clicked()"), \ 
    310                                              self.startThinkGearConnectServer) 
    311                          
    312                         self.connect(self.pushButtonThinkGearConnect, \ 
    313                                           QtCore.SIGNAL("clicked()"), \ 
    314                                           self.stopThinkGearConnectServer) 
    315                          
    316                         self.lineEditThinkGearHost.setEnabled(False) 
    317                         self.lineEditThinkGearPort.setEnabled(False) 
    318                          
    319                         self.pushButtonThinkGearConnect.setText('Stop') 
     268                        self.thinkgearConnectClient.start() 
     269                 
     270                 
     271                self.disconnect(self.pushButtonThinkGearConnect, \ 
     272                                     QtCore.SIGNAL("clicked()"), \ 
     273                                     self.startThinkGearConnectServer) 
     274                 
     275                self.connect(self.pushButtonThinkGearConnect, \ 
     276                                  QtCore.SIGNAL("clicked()"), \ 
     277                                  self.stopThinkGearConnectServer) 
     278                 
     279                self.lineEditThinkGearHost.setEnabled(False) 
     280                self.lineEditThinkGearPort.setEnabled(False) 
     281                 
     282                self.pushButtonThinkGearConnect.setText('Stop') 
    320283         
    321284         
     
    324287        def stopThinkGearConnectServer(self): 
    325288                 
    326                 #self.thinkgearConnectClient.disconnectFromHost() 
    327                  
    328                 self.updateInterfaceTimer.stop() 
     289                if UPDATE_INTERFACE_VIA_TIMER: 
     290                        self.updateInterfaceTimer.stop() 
     291                else: 
     292                        self.thinkgearConnectClient.disconnectFromHost() 
    329293                 
    330294                self.thinkGearConnectServer.exitThread() 
     
    360324                if self.DEBUG > 2: 
    361325                        print packet 
    362                  
    363                 #self.textEditDebugConsole.append( str(packet) ) 
    364326                 
    365327                 
     
    511473                if reply == QtGui.QMessageBox.Yes: 
    512474                         
    513                         self.updateInterfaceTimer.stop() 
    514                          
    515                         #if self.thinkgearConnectClient != None: 
    516                                 #self.thinkgearConnectClient.disconnectFromHost() 
     475                        if UPDATE_INTERFACE_VIA_TIMER: 
     476                                self.updateInterfaceTimer.stop() 
     477                        else: 
     478                                if self.thinkgearConnectClient != None: 
     479                                        self.thinkgearConnectClient.disconnectFromHost() 
    517480                         
    518481                        if self.thinkGearConnectServer != None: 
  • synapse/puzzlebox_synapse_server_thinkgear.py

    r152 r153  
    180180                         
    181181                        self.serial_device = \ 
    182                            serial_interface.puzzlebox_synapse_protocol_thinkgear_serial_device( \ 
    183                               self.log, \ 
    184                               device_address=self.device_address, \ 
    185                               DEBUG=self.DEBUG, \ 
    186                               parent=self) 
     182                                serial_interface.puzzlebox_synapse_protocol_thinkgear_serial_device( \ 
     183                                        self.log, \ 
     184                                        device_address=self.device_address, \ 
     185                                        DEBUG=self.DEBUG, \ 
     186                                        parent=self) 
    187187                         
    188188                        self.serial_device.start() 
    189189                         
    190190                        self.protocol = \ 
    191                            serial_interface.puzzlebox_synapse_protocol_thinkgear( \ 
    192                               self.log, \ 
    193                               self.serial_device, \ 
    194                               DEBUG=self.DEBUG, \ 
    195                               parent=self) 
     191                                serial_interface.puzzlebox_synapse_protocol_thinkgear( \ 
     192                                        self.log, \ 
     193                                        self.serial_device, \ 
     194                                        DEBUG=self.DEBUG, \ 
     195                                        parent=self) 
    196196                         
    197197                        self.protocol.start() 
     
    543543                 
    544544                #if (self.parent != None): 
    545                                 #self.parent.processPacketThinkGear(self.protocol.data_packet) 
     545                        #self.parent.processPacketThinkGear(self.protocol.data_packet) 
    546546         
    547547         
  • synapse/setup.py

    r152 r153  
    2424         
    2525setup( 
    26         name='Puzzlebox ThinkGear Emulator', 
    27         version='0.2.4', 
    28         description='Puzzlebox ThinkGear Emulator', 
     26        name='puzzlebox_synapse', 
     27        version='0.3.0', 
     28        description='Puzzlebox Synapse provides a GUI and socket-server interface to commercially available EEG headsets', 
    2929        author='Steve Castellotti', 
    3030        author_email='sc@puzzlebox.info', 
    3131        url='http://brainstorms.puzzlebox.info', 
     32        license='GPLv2', 
    3233        options={"py2exe":{"includes":["sip"], "excludes": ["bluetooth"]}}, 
    33         console=["puzzlebox_thinkgear_server.py", 
     34        console=["puzzlebox_synapse_client_thinkgear.py", \ 
     35                 "puzzlebox_synapse_server_thinkgear.py" 
    3436        ], 
    35         data_files=[("puzzlebox_thinkgear_emulator_configuration.ini"), 
    36                     ("images", ["images/puzzlebox.ico"]), 
     37        data_files=[("puzzlebox_synapse_configuration.ini"), 
     38                    ("images", ["images/puzzlebox.ico", \ 
     39                                "images/puzzlebox_logo.png"]), 
     40        ], 
     41        windows=[ \ 
     42                { 
     43                 "script": "puzzlebox_synapse_interface.py", 
     44                 "icon_resources": [(1, \ 
     45                 os.path.join("images", "puzzlebox.ico"))] 
     46                }, 
     47        ], 
     48        classifiers=[ \ 
     49                'Development Status :: 4 - Beta', 
     50                'Intended Audience :: End Users/Desktop', 
     51                'Programming Language :: Python', 
     52                'Operating System :: OS Independent', 
     53                'License :: OSI Approved :: GNU General Public License (GPL)', 
     54                'Topic :: Scientific/Engineering :: Human Machine Interfaces', 
    3755        ], 
    3856) 
Note: See TracChangeset for help on using the changeset viewer.