Ignore:
Timestamp:
07/11/10 02:29:30 (11 years ago)
Author:
sc
Message:

remote_control/puzzlebox_brainstorms_client_interface_design.py:

  • concentration/relaxation/speed enable buttons working

remote_control/puzzlebox_brainstorms_network_client.py:

  • LEGO Mindstorms NXT status label bugfix

remote_control/puzzlebox_brainstorms_client_interface.py:

  • concentration/relaxation/speed enable buttons working
  • exit dialog added
  • driving motors stopped when client disconnected

remote_control/puzzlebox_brainstorms_client_interface_network.py:

  • client instantiation bugfix

remote_control/puzzlebox_brainstorms_client_interface_local.py:

  • connection to local server instance added

remote_control/puzzlebox_brainstorms_network_server.py:

  • local server instance support added
  • debugging output bugfix
File:
1 edited

Legend:

Unmodified
Added
Removed
  • remote_control/puzzlebox_brainstorms_client_interface.py

    r108 r109  
    6464class puzzlebox_brainstorms_client_interface(QtGui.QWidget, Ui_Form): 
    6565         
    66         def __init__(self, log, DEBUG=DEBUG, parent = None): 
     66        def __init__(self, log, server=None, DEBUG=DEBUG, parent = None): 
    6767                 
    6868                self.log = log 
     
    7575                self.connectWidgets() 
    7676                 
     77                self.name = "Brainstorms Interface" 
     78                 
     79                self.brainstormsServer = server 
    7780                self.brainstormsClient = None 
    7881                 
     
    98101                self.pushButtonTurnRightReverse.setEnabled(False) 
    99102                 
     103                self.pushButtonConcentrationEnable.setDown(True) 
     104                self.pushButtonRelaxationEnable.setDown(True) 
     105                self.pushButtonSpeedEnable.setDown(True) 
     106                 
    100107                 
    101108                # LEGO Mindstorms 
     
    163170                 
    164171                if self.DEBUG: 
    165                         print "Connecting to Brainstorms Server" 
    166                  
    167                 #server_port = int(self.lineEditNXTPort.text()) 
     172                        print "<---- [%s] Connecting to Brainstorms Server" % self.name 
    168173                 
    169174                self.configureNetworkBrainstorms() 
     
    201206                 
    202207                if self.DEBUG: 
    203                         print "Disconnecting from Brainstorms Server" 
     208                        print "- - [%s] Disconnecting from Brainstorms Server" % self.name 
     209                 
     210                self.stopMotors() 
     211                 
     212                # Ensure the stopMotors command has been received by the server 
     213                # so the NXT robot will stop before the client disconnects 
     214                self.brainstormsClient.socket.flush() 
    204215                 
    205216                self.brainstormsClient.socket.disconnectFromHost() 
     
    297308        ################################################################## 
    298309         
     310        def updateConcentrationButton(self): 
     311                 
     312                if self.pushButtonConcentrationEnable.isChecked(): 
     313                         
     314                        self.pushButtonConcentrationEnable.setText('Enabled') 
     315                 
     316                else: 
     317                         
     318                        self.pushButtonConcentrationEnable.setText('Disabled') 
     319                        self.progressBarConcentration.setValue(0) 
     320                 
     321                 
     322                self.updateSpeed() 
     323         
     324         
     325        ################################################################## 
     326         
     327        def updateRelaxationButton(self): 
     328                 
     329                if self.pushButtonRelaxationEnable.isChecked(): 
     330                 
     331                        self.pushButtonRelaxationEnable.setText('Enabled') 
     332                 
     333                else: 
     334                         
     335                        self.pushButtonRelaxationEnable.setText('Disabled') 
     336                        self.progressBarRelaxation.setValue(0) 
     337                 
     338                 
     339                self.updateSpeed() 
     340         
     341         
     342        ################################################################## 
     343         
     344        def updateSpeedButton(self): 
     345                 
     346                if self.pushButtonSpeedEnable.isChecked(): 
     347                 
     348                        self.pushButtonSpeedEnable.setText('Enabled') 
     349                        self.updateSpeed() 
     350                 
     351                else: 
     352                         
     353                        self.pushButtonSpeedEnable.setText('Disabled') 
     354                        self.progressBarSpeed.setValue(0) 
     355                        self.stopMotors() 
     356         
     357         
     358        ################################################################## 
     359         
    299360        def connectWidgets(self): 
    300361                 
     
    339400                 
    340401                 
     402                self.connect(self.pushButtonConcentrationEnable, \ 
     403                                  QtCore.SIGNAL("clicked()"), \ 
     404                                  self.updateConcentrationButton) 
     405                 
     406                self.connect(self.pushButtonRelaxationEnable, \ 
     407                                  QtCore.SIGNAL("clicked()"), \ 
     408                                  self.updateRelaxationButton) 
     409                 
     410                self.connect(self.pushButtonSpeedEnable, \ 
     411                                  QtCore.SIGNAL("clicked()"), \ 
     412                                  self.updateSpeedButton) 
     413                 
     414                 
    341415                #shortcut = QtGui.QShortcut(self) 
    342416                #shortcut.setKey(tr("Down")) 
     
    403477                #self.pushButtonForward.setAutoRepeatDelay(0) 
    404478                #self.pushButtonForward.setAutoRepeatInterval(0) 
    405  
     479         
    406480         
    407481        ################################################################## 
     
    458532                 
    459533                # Update GUI 
    460                 self.progressBarSpeed.setValue(new_speed) 
    461                  
    462                 # GUI button under "Speed" progress bar set to Enabled 
    463                 speed_control = (self.pushButtonSpeedEnable.text() == 'Enabled') 
     534                if self.pushButtonSpeedEnable.isChecked(): 
     535                        self.progressBarSpeed.setValue(new_speed) 
     536                 
    464537                 
    465538                # If there is a change between the new and current speeds 
     
    469542                if ((self.current_speed != new_speed) and \ 
    470543                         ((self.drive_state == 'drive_forward') or \ 
    471                           (speed_control))): 
     544                          (self.pushButtonSpeedEnable.isChecked()))): 
    472545                         
    473546                        if (new_speed == 0): 
     
    475548                                self.stopMotors() 
    476549                        else: 
    477                                 if self.brainstormsClient != None: 
     550                                if ((self.brainstormsClient != None) and \ 
     551                                    (self.pushButtonSpeedEnable.isChecked())): 
    478552                                        self.pushButtonForward.setDown(True) 
    479553                                        self.brainstormsClient.sendCommand('drive_forward', power=new_speed) 
     
    530604                         
    531605                        if ('attention' in packet['eSense'].keys()): 
    532                                 self.progressBarConcentration.setValue(packet['eSense']['attention']) 
     606                                if self.pushButtonConcentrationEnable.isChecked(): 
     607                                        self.progressBarConcentration.setValue(packet['eSense']['attention']) 
    533608                         
    534609                        if ('meditation' in packet['eSense'].keys()): 
    535                                 self.progressBarRelaxation.setValue(packet['eSense']['meditation']) 
     610                                if self.pushButtonRelaxationEnable.isChecked(): 
     611                                        self.progressBarRelaxation.setValue(packet['eSense']['meditation']) 
    536612                 
    537613                 
    538614                self.updateSpeed() 
     615         
     616         
     617        ################################################################## 
     618         
     619        def closeEvent(self, event): 
     620                 
     621                quit_message = "Are you sure you want to exit the program?" 
     622                 
     623                reply = QtGui.QMessageBox.question( \ 
     624                           self, \ 
     625                          'Message', \ 
     626                           quit_message, \ 
     627                           QtGui.QMessageBox.Yes, \ 
     628                           QtGui.QMessageBox.No) 
     629                 
     630                if reply == QtGui.QMessageBox.Yes: 
     631                         
     632                        if self.brainstormsClient != None: 
     633                                self.stopMotors() 
     634                                self.brainstormsClient.socket.flush() 
     635                                 
     636                                if self.brainstormsServer != None: 
     637                                         
     638                                        if self.brainstormsServer.rc == None: 
     639                                                 
     640                                                bluetooth_device = str(self.lineEditNXTPort.text()) 
     641                                                self.brainstormsServer.executeCommand( \ 
     642                                                        'stop_motors', \ 
     643                                                        bluetooth_device=bluetooth_device) 
     644                                                 
     645                                        else: 
     646                                                self.brainstormsServer.rc.run('stop_motors') 
     647                         
     648                         
     649                        event.accept() 
     650                 
     651                else: 
     652                        event.ignore() 
    539653 
    540654 
Note: See TracChangeset for help on using the changeset viewer.