Changeset 222


Ignore:
Timestamp:
11/29/10 04:23:30 (10 years ago)
Author:
sc
Message:

trunk/brainstorms/interface/puzzlebox_brainstorms_interface_design.ui:
trunk/brainstorms/Puzzlebox/Brainstorms/Interface_Design.py:

  • search buttons added for device lists

trunk/brainstorms/Puzzlebox/Brainstorms/Interface.py:

  • searchForDevices() added
  • enumerateSerialPorts() added
  • fullPortName() added
  • search button and connect support added
  • NXT support working again
Location:
trunk/brainstorms
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/brainstorms/Puzzlebox/Brainstorms/Interface.py

    r221 r222  
    1010 
    1111__changelog__ = """\ 
    12 Last Update: 2010.10.01 
     12Last Update: 2010.11.28 
    1313 
    1414""" 
     
    2323 
    2424import os, sys 
     25 
     26if (sys.platform == 'win32'): 
     27        import _winreg as winreg 
     28        import itertools 
     29        import re 
     30        import serial 
     31else: 
     32        import bluetooth 
    2533 
    2634try: 
     
    6270THINKGEAR_SERVER_PORT = configuration.THINKGEAR_SERVER_PORT 
    6371 
     72DEVICE_PATH = '/dev' 
     73PATH_TO_HCITOOL = '/usr/bin/hcitool' 
     74 
    6475##################################################################### 
    6576# Classes 
     
    110121                 
    111122                 
     123                # Search for available Serial and Bluetooth devices 
     124                self.searchForDevices() 
     125                 
     126                 
    112127                # LEGO Mindstorms 
    113                  
    114128                self.textLabelNXTStatus.setText("Status: Disconnected") 
    115129                 
    116130                # Display communication port for LEGO Mindstorms NXT device 
    117                 self.lineEditNXTPort.setText(NXT_BLUETOOTH_DEVICE) 
    118                 self.lineEditNXTPort.setEnabled(True) 
     131                #self.lineEditNXTPort.setText(NXT_BLUETOOTH_DEVICE) 
     132                self.comboBoxNXTPortSelect.setEnabled(True) 
     133                 
     134                 
     135                # RC Helicopter 
     136                self.textLabelHelicopterStatus.setText("Status: Disconnected") 
    119137                 
    120138                 
     
    157175        def configureNetworkBrainstorms(self): 
    158176                 
    159                 bluetooth_device = self.lineEditNXTPort.text() 
     177                bluetooth_device = str(self.comboBoxNXTPortSelect.currentText()) 
    160178                 
    161179                self.brainstormsClient = \ 
     
    173191        def connectToBrainstormsServer(self): 
    174192                 
     193                # Prevent attempting to connect to a device which no longer exists 
     194                if (sys.platform != 'win32'): 
     195                        device = str(self.comboBoxNXTPortSelect.currentText()) 
     196                        if ((not device.startswith(DEVICE_PATH)) or \ 
     197                            (not os.path.exists(device))): 
     198                                self.searchForDevices() 
     199                                return 
     200                 
     201                 
    175202                if self.DEBUG: 
    176203                        print "<---- [%s] Connecting to Brainstorms Server" % self.name 
     
    195222                self.pushButtonNXTConnect.setText('Disconnect') 
    196223                 
    197                 self.lineEditNXTPort.setEnabled(False) 
     224                self.comboBoxNXTPortSelect.setEnabled(False) 
     225                self.pushButtonNXTSearch.setEnabled(False) 
    198226                 
    199227                self.pushButtonTurnLeft.setEnabled(True) 
     
    250278                 
    251279                self.comboBoxNXTPortSelect.setEnabled(True) 
     280                self.pushButtonNXTSearch.setEnabled(True) 
    252281                 
    253282                self.pushButtonTurnLeft.setEnabled(False) 
     
    277306                 
    278307                self.brainstormsClient = None 
     308                 
     309                self.searchForDevices() 
    279310         
    280311         
     
    432463                 
    433464                 
     465                self.connect(self.pushButtonNXTSearch, \ 
     466                                  QtCore.SIGNAL("clicked()"), \ 
     467                                  self.searchForDevices) 
     468                 
    434469                self.connect(self.pushButtonNXTConnect, \ 
    435470                                  QtCore.SIGNAL("clicked()"), \ 
    436471                                  self.connectToBrainstormsServer) 
    437472                 
     473                 
     474                self.connect(self.pushButtonConcentrationEnable, \ 
     475                                  QtCore.SIGNAL("clicked()"), \ 
     476                                  self.updateConcentrationButton) 
     477                 
     478                self.connect(self.pushButtonRelaxationEnable, \ 
     479                                  QtCore.SIGNAL("clicked()"), \ 
     480                                  self.updateRelaxationButton) 
     481                 
     482                self.connect(self.pushButtonSpeedEnable, \ 
     483                                  QtCore.SIGNAL("clicked()"), \ 
     484                                  self.updateSpeedButton) 
     485                 
     486                 
     487                self.connect(self.pushButtonNXTMessageOne, QtCore.SIGNAL("pressed()"), \ 
     488                             self.sendMessageOne) 
     489                 
     490                self.connect(self.pushButtonNXTMessageTwo, QtCore.SIGNAL("pressed()"), \ 
     491                             self.sendMessageTwo) 
     492                 
     493                self.connect(self.pushButtonNXTMessageThree, QtCore.SIGNAL("pressed()"), \ 
     494                             self.sendMessageThree) 
     495                 
     496                self.connect(self.pushButtonNXTMessageFour, QtCore.SIGNAL("pressed()"), \ 
     497                             self.sendMessageFour) 
     498                 
     499                self.connect(self.pushButtonNXTMessageFive, QtCore.SIGNAL("pressed()"), \ 
     500                             self.sendMessageFive) 
     501                 
     502                self.connect(self.pushButtonNXTMessageSix, QtCore.SIGNAL("pressed()"), \ 
     503                             self.sendMessageSix) 
     504                 
     505                 
     506                 
     507                # RC Helicopter Buttons 
     508                self.connect(self.pushButtonHelicopterSearch, \ 
     509                                  QtCore.SIGNAL("clicked()"), \ 
     510                                  self.searchForDevices) 
     511                 
     512                #self.connect(self.pushButtonHelicopterConnect, \ 
     513                                  #QtCore.SIGNAL("clicked()"), \ 
     514                                  #self.connectToHelicopter) 
     515                 
     516                 
     517                 
     518                # Control Panel Buttons 
     519                self.connect(self.pushButtonMessageOne, QtCore.SIGNAL("pressed()"), \ 
     520                             self.sendMessageOne) 
     521                 
     522                self.connect(self.pushButtonMessageTwo, QtCore.SIGNAL("pressed()"), \ 
     523                             self.sendMessageTwo) 
     524                 
     525                self.connect(self.pushButtonMessageThree, QtCore.SIGNAL("pressed()"), \ 
     526                             self.sendMessageThree) 
     527                 
     528                self.connect(self.pushButtonMessageFour, QtCore.SIGNAL("pressed()"), \ 
     529                             self.sendMessageFour) 
     530                 
     531                self.connect(self.pushButtonMessageFive, QtCore.SIGNAL("pressed()"), \ 
     532                             self.sendMessageFive) 
     533                 
     534                self.connect(self.pushButtonMessageSix, QtCore.SIGNAL("pressed()"), \ 
     535                             self.sendMessageSix) 
     536                 
     537                 
    438538                self.connect(self.pushButtonThinkGearConnect, \ 
    439539                                  QtCore.SIGNAL("clicked()"), \ 
     
    441541                 
    442542                 
    443                 self.connect(self.pushButtonConcentrationEnable, \ 
    444                                   QtCore.SIGNAL("clicked()"), \ 
    445                                   self.updateConcentrationButton) 
    446                  
    447                 self.connect(self.pushButtonRelaxationEnable, \ 
    448                                   QtCore.SIGNAL("clicked()"), \ 
    449                                   self.updateRelaxationButton) 
    450                  
    451                 self.connect(self.pushButtonSpeedEnable, \ 
    452                                   QtCore.SIGNAL("clicked()"), \ 
    453                                   self.updateSpeedButton) 
    454                  
    455                  
    456                 self.connect(self.pushButtonNXTMessageOne, QtCore.SIGNAL("pressed()"), \ 
    457                              self.sendMessageOne) 
    458                  
    459                 self.connect(self.pushButtonNXTMessageTwo, QtCore.SIGNAL("pressed()"), \ 
    460                              self.sendMessageTwo) 
    461                  
    462                 self.connect(self.pushButtonNXTMessageThree, QtCore.SIGNAL("pressed()"), \ 
    463                              self.sendMessageThree) 
    464                  
    465                 self.connect(self.pushButtonNXTMessageFour, QtCore.SIGNAL("pressed()"), \ 
    466                              self.sendMessageFour) 
    467                  
    468                 self.connect(self.pushButtonNXTMessageFive, QtCore.SIGNAL("pressed()"), \ 
    469                              self.sendMessageFive) 
    470                  
    471                 self.connect(self.pushButtonNXTMessageSix, QtCore.SIGNAL("pressed()"), \ 
    472                              self.sendMessageSix) 
    473                  
    474                  
    475                 # Control Panel Buttons 
    476                 self.connect(self.pushButtonMessageOne, QtCore.SIGNAL("pressed()"), \ 
    477                              self.sendMessageOne) 
    478                  
    479                 self.connect(self.pushButtonMessageTwo, QtCore.SIGNAL("pressed()"), \ 
    480                              self.sendMessageTwo) 
    481                  
    482                 self.connect(self.pushButtonMessageThree, QtCore.SIGNAL("pressed()"), \ 
    483                              self.sendMessageThree) 
    484                  
    485                 self.connect(self.pushButtonMessageFour, QtCore.SIGNAL("pressed()"), \ 
    486                              self.sendMessageFour) 
    487                  
    488                 self.connect(self.pushButtonMessageFive, QtCore.SIGNAL("pressed()"), \ 
    489                              self.sendMessageFive) 
    490                  
    491                 self.connect(self.pushButtonMessageSix, QtCore.SIGNAL("pressed()"), \ 
    492                              self.sendMessageSix) 
    493                               
    494                  
    495                  
    496543                #shortcut = QtGui.QShortcut(self) 
    497544                #shortcut.setKey(tr("Down")) 
     
    591638                #self.pushButtonForward.setAutoRepeatDelay(0) 
    592639                #self.pushButtonForward.setAutoRepeatInterval(0) 
     640         
     641         
     642        ################################################################## 
     643         
     644        def searchForDevices(self): 
     645                 
     646                nxt_devices = [] 
     647                rc_helicopter_devices = [] 
     648                 
     649                #if (sys.platform != 'win32'): 
     650                if False: # temporarily disabled 
     651                         
     652                        # Bluetooth module doesn't compile properly under Windows 
     653                         
     654                        bluetooth_devices = [] 
     655                         
     656                        try: 
     657                                bluetooth_devices = bluetooth.discover_devices( \ 
     658                                                       duration=5, \ 
     659                                                       flush_cache=True, \ 
     660                                                       lookup_names=False) 
     661                        except: 
     662                                #command = '%s con' % PATH_TO_HCITOOL 
     663                                command = '%s scan' % PATH_TO_HCITOOL 
     664                                 
     665                                output = os.popen(command, 'r') 
     666                                 
     667                                for line in output.readlines(): 
     668                                        print line 
     669                                        try: 
     670                                                address = line.split(' ')[2] 
     671                                        except: 
     672                                                pass 
     673                                        else: 
     674                                                bluetooth_devices.append(address) 
     675                         
     676                        for address in bluetooth_devices: 
     677                                device_name = bluetooth.lookup_name(address) 
     678                                if ((device_name == 'NXT') and \ 
     679                                    (address not in nxt_devices)): 
     680                                        nxt_devices.append(address) 
     681                         
     682                         
     683                        if self.DEBUG: 
     684                                print "Bluetooth NXT devices found:", 
     685                                print nxt_devices 
     686                 
     687                 
     688                # List all serial devices 
     689                serial_devices = self.enumerateSerialPorts() 
     690                 
     691                for serial_device in serial_devices: 
     692                        #serial_device = self.fullPortName(serial_device) 
     693                        nxt_devices.append(serial_device) 
     694                        rc_helicopter_devices.append(serial_device) 
     695                 
     696                 
     697                # Configure combo boxes 
     698                if nxt_devices == []: 
     699                        nxt_devices.append('N/A') 
     700                 
     701                if rc_helicopter_devices == []: 
     702                        rc_helicopter_devices.append('N/A') 
     703                 
     704                 
     705                # Don't reset combo boxes if already connected 
     706                if self.pushButtonNXTConnect.text != 'Disconnect': 
     707                         
     708                        self.comboBoxNXTPortSelect.clear() 
     709                         
     710                        #nxt_devices.reverse() 
     711                        for nxt_device in nxt_devices: 
     712                                self.comboBoxNXTPortSelect.addItem(nxt_device) 
     713                 
     714                 
     715                if self.pushButtonHelicopterConnect.text != 'Disconnect': 
     716                         
     717                        self.comboBoxHelicopterPortSelect.clear() 
     718                         
     719                        #rc_helicopter_devices.reverse() 
     720                        for rc_helicopter in rc_helicopter_devices: 
     721                                self.comboBoxHelicopterPortSelect.addItem(rc_helicopter) 
     722         
     723         
     724        ################################################################## 
     725         
     726        def enumerateSerialPorts(self): 
     727                 
     728                """ Uses the Win32 registry to return an 
     729                iterator of serial (COM) ports 
     730                existing on this computer. 
     731                 
     732                from http://eli.thegreenplace.net/2009/07/31/listing-all-serial-ports-on-windows-with-python/ 
     733                """ 
     734                 
     735                serial_ports = [] 
     736                 
     737                if (sys.platform == 'win32'): 
     738                         
     739                        path = 'HARDWARE\\DEVICEMAP\\SERIALCOMM' 
     740                        try: 
     741                                key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, path) 
     742                        except WindowsError: 
     743                                #raise IterationError 
     744                                #return 
     745                                pass 
     746                         
     747                        for i in itertools.count(): 
     748                                try: 
     749                                        val = winreg.EnumValue(key, i) 
     750                                        #yield str(val[1]) 
     751                                        serial_ports.append( str(val[1]) ) 
     752                                except EnvironmentError: 
     753                                        break 
     754                 
     755                 
     756                else: 
     757                         
     758                        if os.path.exists(DEVICE_PATH): 
     759                                device_list = os.listdir(DEVICE_PATH) 
     760                                 
     761                                device_list.sort() 
     762                         
     763                                for device in device_list: 
     764                                        if device.startswith('ttyUSB'): 
     765                                                serial_ports.append( DEVICE_PATH + '/' + device ) 
     766                                        if device.startswith('rfcomm'): 
     767                                                serial_ports.append( DEVICE_PATH + '/' + device ) 
     768                                        if device.startswith('ttyACM'): 
     769                                                serial_ports.append( DEVICE_PATH + '/' + device ) 
     770                                        if device.startswith('ttyS'): 
     771                                                serial_ports.append( DEVICE_PATH + '/' + device ) 
     772                 
     773                 
     774                return(serial_ports) 
     775         
     776         
     777        ################################################################## 
     778         
     779        def fullPortName(self, portname): 
     780                 
     781                """ Given a port-name (of the form COM7, 
     782                COM12, CNCA0, etc.) returns a full 
     783                name suitable for opening with the 
     784                Serial class. 
     785                """ 
     786                 
     787                m = re.match('^COM(\d+)$', portname) 
     788                if m and int(m.group(1)) < 10: 
     789                        return portname 
     790                 
     791                return '\\\\.\\' + portname 
    593792         
    594793         
     
    776975                                        if self.brainstormsServer.rc == None: 
    777976                                                 
    778                                                 bluetooth_device = str(self.lineEditNXTPort.text()) 
     977                                                bluetooth_device = str(self.comboBoxNXTPortSelect.currentText()) 
    779978                                                self.brainstormsServer.executeCommand( \ 
    780979                                                        'stop_motors', \ 
  • trunk/brainstorms/Puzzlebox/Brainstorms/Interface_Design.py

    r220 r222  
    33# Form implementation generated from reading ui file 'interface/puzzlebox_brainstorms_interface_design.ui' 
    44# 
    5 # Created: Sat Nov 27 06:11:05 2010 
     5# Created: Sun Nov 28 15:57:37 2010 
    66#      by: PyQt4 UI code generator 4.7.4 
    77# 
     
    974974                self.textLabelSpeed.setWordWrap(False) 
    975975                self.textLabelSpeed.setObjectName("textLabelSpeed") 
    976                 self.pushButtonNXTConnect = QtGui.QPushButton(self.tabLEGOMindstorms) 
    977                 self.pushButtonNXTConnect.setGeometry(QtCore.QRect(310, 190, 161, 31)) 
    978                 self.pushButtonNXTConnect.setObjectName("pushButtonNXTConnect") 
    979976                self.labelLEGOMindstorms = QtGui.QLabel(self.tabLEGOMindstorms) 
    980977                self.labelLEGOMindstorms.setGeometry(QtCore.QRect(310, 90, 161, 21)) 
     
    982979                self.labelLEGOMindstorms.setObjectName("labelLEGOMindstorms") 
    983980                self.progressBarSpeed = QtGui.QProgressBar(self.tabLEGOMindstorms) 
    984                 self.progressBarSpeed.setEnabled(False) 
     981                self.progressBarSpeed.setEnabled(True) 
    985982                self.progressBarSpeed.setGeometry(QtCore.QRect(712, 32, 60, 310)) 
    986983                self.progressBarSpeed.setProperty("value", 0) 
     
    10141011                self.textLabelRelaxation.setObjectName("textLabelRelaxation") 
    10151012                self.progressBarRelaxation = QtGui.QProgressBar(self.tabLEGOMindstorms) 
    1016                 self.progressBarRelaxation.setEnabled(False) 
     1013                self.progressBarRelaxation.setEnabled(True) 
    10171014                self.progressBarRelaxation.setGeometry(QtCore.QRect(606, 32, 60, 310)) 
    10181015                self.progressBarRelaxation.setProperty("value", 0) 
     
    10431040                self.textLabelNXTStatus.setObjectName("textLabelNXTStatus") 
    10441041                self.progressBarConcentration = QtGui.QProgressBar(self.tabLEGOMindstorms) 
    1045                 self.progressBarConcentration.setEnabled(False) 
     1042                self.progressBarConcentration.setEnabled(True) 
    10461043                self.progressBarConcentration.setGeometry(QtCore.QRect(502, 32, 60, 310)) 
    10471044                self.progressBarConcentration.setProperty("value", 0) 
     
    11021099                self.pushButtonNXTMessageSix.setGeometry(QtCore.QRect(394, 350, 80, 27)) 
    11031100                self.pushButtonNXTMessageSix.setObjectName("pushButtonNXTMessageSix") 
     1101                self.pushButtonNXTSearch = QtGui.QPushButton(self.tabLEGOMindstorms) 
     1102                self.pushButtonNXTSearch.setGeometry(QtCore.QRect(311, 190, 66, 31)) 
     1103                self.pushButtonNXTSearch.setCheckable(False) 
     1104                self.pushButtonNXTSearch.setObjectName("pushButtonNXTSearch") 
     1105                self.pushButtonNXTConnect = QtGui.QPushButton(self.tabLEGOMindstorms) 
     1106                self.pushButtonNXTConnect.setGeometry(QtCore.QRect(385, 190, 86, 31)) 
     1107                self.pushButtonNXTConnect.setCheckable(True) 
     1108                self.pushButtonNXTConnect.setObjectName("pushButtonNXTConnect") 
    11041109                self.tabWidget.addTab(self.tabLEGOMindstorms, "") 
    11051110                self.tabRCHelicopter = QtGui.QWidget() 
    11061111                self.tabRCHelicopter.setEnabled(True) 
    11071112                self.tabRCHelicopter.setObjectName("tabRCHelicopter") 
    1108                 self.pushButtonHelicopterConnect = QtGui.QPushButton(self.tabRCHelicopter) 
    1109                 self.pushButtonHelicopterConnect.setEnabled(True) 
    1110                 self.pushButtonHelicopterConnect.setGeometry(QtCore.QRect(300, 145, 161, 31)) 
    1111                 self.pushButtonHelicopterConnect.setObjectName("pushButtonHelicopterConnect") 
    11121113                self.labelRCHelicopter = QtGui.QLabel(self.tabRCHelicopter) 
    11131114                self.labelRCHelicopter.setEnabled(True) 
     
    14071408                self.textLabelHelicopterConcentration.setWordWrap(False) 
    14081409                self.textLabelHelicopterConcentration.setObjectName("textLabelHelicopterConcentration") 
     1410                self.pushButtonHelicopterConnect = QtGui.QPushButton(self.tabRCHelicopter) 
     1411                self.pushButtonHelicopterConnect.setGeometry(QtCore.QRect(375, 143, 86, 31)) 
     1412                self.pushButtonHelicopterConnect.setCheckable(True) 
     1413                self.pushButtonHelicopterConnect.setObjectName("pushButtonHelicopterConnect") 
     1414                self.pushButtonHelicopterSearch = QtGui.QPushButton(self.tabRCHelicopter) 
     1415                self.pushButtonHelicopterSearch.setGeometry(QtCore.QRect(301, 143, 66, 31)) 
     1416                self.pushButtonHelicopterSearch.setCheckable(False) 
     1417                self.pushButtonHelicopterSearch.setObjectName("pushButtonHelicopterSearch") 
    14091418                self.tabWidget.addTab(self.tabRCHelicopter, "") 
    14101419                self.tabControlPanel = QtGui.QWidget() 
     
    16021611                self.labelFeedbackDescription.setObjectName("labelFeedbackDescription") 
    16031612                self.textEditFeedback = QtGui.QTextEdit(self.tabControlPanel) 
     1613                self.textEditFeedback.setEnabled(True) 
    16041614                self.textEditFeedback.setGeometry(QtCore.QRect(200, 226, 321, 121)) 
    16051615                self.textEditFeedback.setObjectName("textEditFeedback") 
     
    16191629                self.lineEditFeedbackEmail.setObjectName("lineEditFeedbackEmail") 
    16201630                self.pushButtonSendFeedback = QtGui.QPushButton(self.tabControlPanel) 
    1621                 self.pushButtonSendFeedback.setEnabled(False) 
     1631                self.pushButtonSendFeedback.setEnabled(True) 
    16221632                self.pushButtonSendFeedback.setGeometry(QtCore.QRect(420, 355, 98, 27)) 
    16231633                self.pushButtonSendFeedback.setObjectName("pushButtonSendFeedback") 
     
    16351645"</style></head><body style=\" font-family:\'Sans\'; font-size:10pt; font-weight:400; font-style:normal;\">\n" 
    16361646"<p align=\"center\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:9pt;\">Speed</span></p></body></html>", None, QtGui.QApplication.UnicodeUTF8)) 
    1637                 self.pushButtonNXTConnect.setText(QtGui.QApplication.translate("Form", "Connect", None, QtGui.QApplication.UnicodeUTF8)) 
    16381647                self.labelLEGOMindstorms.setText(QtGui.QApplication.translate("Form", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n" 
    16391648"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n" 
     
    16751684                self.pushButtonNXTMessageFive.setText(QtGui.QApplication.translate("Form", "Five", None, QtGui.QApplication.UnicodeUTF8)) 
    16761685                self.pushButtonNXTMessageSix.setText(QtGui.QApplication.translate("Form", "Six", None, QtGui.QApplication.UnicodeUTF8)) 
     1686                self.pushButtonNXTSearch.setText(QtGui.QApplication.translate("Form", "Search", None, QtGui.QApplication.UnicodeUTF8)) 
     1687                self.pushButtonNXTConnect.setText(QtGui.QApplication.translate("Form", "Connect", None, QtGui.QApplication.UnicodeUTF8)) 
    16771688                self.tabWidget.setTabText(self.tabWidget.indexOf(self.tabLEGOMindstorms), QtGui.QApplication.translate("Form", "LEGO Mindstorms", None, QtGui.QApplication.UnicodeUTF8)) 
    1678                 self.pushButtonHelicopterConnect.setText(QtGui.QApplication.translate("Form", "Connect", None, QtGui.QApplication.UnicodeUTF8)) 
    16791689                self.labelRCHelicopter.setText(QtGui.QApplication.translate("Form", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n" 
    16801690"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n" 
     
    17241734"</style></head><body style=\" font-family:\'Sans\'; font-size:10pt; font-weight:400; font-style:normal;\">\n" 
    17251735"<p align=\"center\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:9pt;\">Concentration</span></p></body></html>", None, QtGui.QApplication.UnicodeUTF8)) 
     1736                self.pushButtonHelicopterConnect.setText(QtGui.QApplication.translate("Form", "Connect", None, QtGui.QApplication.UnicodeUTF8)) 
     1737                self.pushButtonHelicopterSearch.setText(QtGui.QApplication.translate("Form", "Search", None, QtGui.QApplication.UnicodeUTF8)) 
    17261738                self.tabWidget.setTabText(self.tabWidget.indexOf(self.tabRCHelicopter), QtGui.QApplication.translate("Form", "RC Helicopter", None, QtGui.QApplication.UnicodeUTF8)) 
    17271739                self.comboBoxEEGHeadsetModel.setItemText(0, QtGui.QApplication.translate("Form", "NeuroSky MindSet", None, QtGui.QApplication.UnicodeUTF8)) 
  • trunk/brainstorms/interface/puzzlebox_brainstorms_interface_design.ui

    r221 r222  
    28972897     </property> 
    28982898    </widget> 
    2899     <widget class="QPushButton" name="pushButtonNXTConnect"> 
    2900      <property name="geometry"> 
    2901       <rect> 
    2902        <x>310</x> 
    2903        <y>190</y> 
    2904        <width>161</width> 
    2905        <height>31</height> 
    2906       </rect> 
    2907      </property> 
    2908      <property name="text"> 
    2909       <string>Connect</string> 
    2910      </property> 
    2911     </widget> 
    29122899    <widget class="QLabel" name="labelLEGOMindstorms"> 
    29132900     <property name="geometry"> 
     
    33843371     <property name="text"> 
    33853372      <string>Six</string> 
     3373     </property> 
     3374    </widget> 
     3375    <widget class="QPushButton" name="pushButtonNXTSearch"> 
     3376     <property name="geometry"> 
     3377      <rect> 
     3378       <x>311</x> 
     3379       <y>190</y> 
     3380       <width>66</width> 
     3381       <height>31</height> 
     3382      </rect> 
     3383     </property> 
     3384     <property name="text"> 
     3385      <string>Search</string> 
     3386     </property> 
     3387     <property name="checkable"> 
     3388      <bool>false</bool> 
     3389     </property> 
     3390    </widget> 
     3391    <widget class="QPushButton" name="pushButtonNXTConnect"> 
     3392     <property name="geometry"> 
     3393      <rect> 
     3394       <x>385</x> 
     3395       <y>190</y> 
     3396       <width>86</width> 
     3397       <height>31</height> 
     3398      </rect> 
     3399     </property> 
     3400     <property name="text"> 
     3401      <string>Connect</string> 
     3402     </property> 
     3403     <property name="checkable"> 
     3404      <bool>true</bool> 
    33863405     </property> 
    33873406    </widget> 
     
    33943413     <string>RC Helicopter</string> 
    33953414    </attribute> 
    3396     <widget class="QPushButton" name="pushButtonHelicopterConnect"> 
    3397      <property name="enabled"> 
    3398       <bool>true</bool> 
    3399      </property> 
    3400      <property name="geometry"> 
    3401       <rect> 
    3402        <x>300</x> 
    3403        <y>145</y> 
    3404        <width>161</width> 
    3405        <height>31</height> 
    3406       </rect> 
    3407      </property> 
    3408      <property name="text"> 
    3409       <string>Connect</string> 
    3410      </property> 
    3411     </widget> 
    34123415    <widget class="QLabel" name="labelRCHelicopter"> 
    34133416     <property name="enabled"> 
     
    44114414     </property> 
    44124415    </widget> 
     4416    <widget class="QPushButton" name="pushButtonHelicopterConnect"> 
     4417     <property name="geometry"> 
     4418      <rect> 
     4419       <x>375</x> 
     4420       <y>143</y> 
     4421       <width>86</width> 
     4422       <height>31</height> 
     4423      </rect> 
     4424     </property> 
     4425     <property name="text"> 
     4426      <string>Connect</string> 
     4427     </property> 
     4428     <property name="checkable"> 
     4429      <bool>true</bool> 
     4430     </property> 
     4431    </widget> 
     4432    <widget class="QPushButton" name="pushButtonHelicopterSearch"> 
     4433     <property name="geometry"> 
     4434      <rect> 
     4435       <x>301</x> 
     4436       <y>143</y> 
     4437       <width>66</width> 
     4438       <height>31</height> 
     4439      </rect> 
     4440     </property> 
     4441     <property name="text"> 
     4442      <string>Search</string> 
     4443     </property> 
     4444     <property name="checkable"> 
     4445      <bool>false</bool> 
     4446     </property> 
     4447    </widget> 
     4448    <zorder>labelRCHelicopter</zorder> 
     4449    <zorder>textLabelTitleHelicopter</zorder> 
     4450    <zorder>comboBoxHelicopterPortSelect</zorder> 
     4451    <zorder>labelPuzzleboxHelicopter</zorder> 
     4452    <zorder>textLabelHelicopterStatus</zorder> 
     4453    <zorder>line6_19</zorder> 
     4454    <zorder>line3_4</zorder> 
     4455    <zorder>pushButtonHelicopterThrottle</zorder> 
     4456    <zorder>pushButtonHelicopterRudderLeft</zorder> 
     4457    <zorder>pushButtonHelicopterRudderRight</zorder> 
     4458    <zorder>pushButtonHelicopterAileronLeft</zorder> 
     4459    <zorder>pushButtonHelicopterAileronRight</zorder> 
     4460    <zorder>pushButtonHelicopterElevatorForward</zorder> 
     4461    <zorder>comboBoxHelicopterTransmitter</zorder> 
     4462    <zorder>textLabelHelicopterTransmitterType</zorder> 
     4463    <zorder>verticalSliderHelicopterThrottle</zorder> 
     4464    <zorder>line</zorder> 
     4465    <zorder>pushButtonHelicopterElevatorReverse</zorder> 
     4466    <zorder>labelHelicopterThrottle</zorder> 
     4467    <zorder>labelHelicopterElevator</zorder> 
     4468    <zorder>labelHelicopterRudder</zorder> 
     4469    <zorder>labelHelicopterAileron</zorder> 
     4470    <zorder>verticalSliderHelicopterElevatorForward</zorder> 
     4471    <zorder>verticalSliderHelicopterElevatorReverse</zorder> 
     4472    <zorder>horizontalSliderHelicopterRudderRight</zorder> 
     4473    <zorder>horizontalSliderHelicopterRudderLeft</zorder> 
     4474    <zorder>horizontalSliderHelicopterAileronRight</zorder> 
     4475    <zorder>horizontalSliderHelicopterAileronLeft</zorder> 
     4476    <zorder>line_2</zorder> 
     4477    <zorder>pushButtonHelicopterHover</zorder> 
     4478    <zorder>pushButtonHelicopterFlyForward</zorder> 
     4479    <zorder>pushButtonHelicopterLand</zorder> 
     4480    <zorder>labelHelicopterHover</zorder> 
     4481    <zorder>labelHelicopterFlyForward</zorder> 
     4482    <zorder>labelHelicopterLand</zorder> 
     4483    <zorder>progressBarHelicopterSpeed</zorder> 
     4484    <zorder>line6_13</zorder> 
     4485    <zorder>pushButtonHelicopterRelaxationEnable</zorder> 
     4486    <zorder>progressBarHelicopterRelaxation</zorder> 
     4487    <zorder>textLabelHelicopterSpeed</zorder> 
     4488    <zorder>progressBarHelicopterConcentration</zorder> 
     4489    <zorder>line6_14</zorder> 
     4490    <zorder>pushButtonHelicopterConcentrationEnable</zorder> 
     4491    <zorder>pushButtonHelicopterSpeedEnable</zorder> 
     4492    <zorder>textLabelHelicopterRelaxation</zorder> 
     4493    <zorder>textLabelHelicopterConcentration</zorder> 
     4494    <zorder>pushButtonNXTConnect_3</zorder> 
     4495    <zorder>pushButtonNXTSearch_2</zorder> 
     4496    <zorder>pushButtonHelicopterConnect</zorder> 
     4497    <zorder>pushButtonHelicopterSearch</zorder> 
    44134498   </widget> 
    44144499   <widget class="QWidget" name="tabControlPanel"> 
     
    48094894    </widget> 
    48104895    <widget class="QCheckBox" name="checkBoxMotorSpinReversed"> 
     4896     <property name="enabled"> 
     4897      <bool>false</bool> 
     4898     </property> 
    48114899     <property name="geometry"> 
    48124900      <rect> 
     
    48454933    <widget class="QLineEdit" name="lineEditRightMotorPort"> 
    48464934     <property name="enabled"> 
    4847       <bool>true</bool> 
     4935      <bool>false</bool> 
    48484936     </property> 
    48494937     <property name="geometry"> 
     
    48804968    <widget class="QLineEdit" name="lineEditLeftMotorPort"> 
    48814969     <property name="enabled"> 
    4882       <bool>true</bool> 
     4970      <bool>false</bool> 
    48834971     </property> 
    48844972     <property name="geometry"> 
Note: See TracChangeset for help on using the changeset viewer.