Changeset 281


Ignore:
Timestamp:
08/23/11 13:32:39 (9 years ago)
Author:
sc
Message:
  • initial work for integration with Puzzlebox Jigsaw
  • searchForThinkGearDevices cleanup for multiple ThinkGear? devices
  • GUI cleanup for multiple ThinkGear? devices
Location:
trunk
Files:
3 edited

Legend:

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

    r278 r281  
    1212__changelog__ = """\ 
    1313Last Update: 2011.02.07 
    14  
    1514""" 
    1615 
  • trunk/Puzzlebox/Synapse/Interface.py

    r275 r281  
    9797                self.log = log 
    9898                self.DEBUG = DEBUG 
    99                  
    100                 QtGui.QWidget.__init__(self, parent) 
    101                 self.setupUi(self) 
    102                  
    103                 self.configureSettings() 
    104                 self.connectWidgets() 
     99                self.parent=parent 
     100                 
     101                if self.parent == None: 
     102                        QtGui.QWidget.__init__(self, parent) 
     103                        self.setupUi(self) 
     104                 
     105                        self.configureSettings() 
     106                        self.connectWidgets() 
    105107                 
    106108                self.name = "Synapse Interface" 
     
    154156                 
    155157                # ThinkGear Device 
    156                 self.searchForThinkGearDevices() 
     158                self.updateThinkGearDevices() 
    157159                 
    158160                 
     
    208210                self.connect(self.pushButtonBluetoothSearch, \ 
    209211                                  QtCore.SIGNAL("clicked()"), \ 
    210                                   self.searchForThinkGearDevices) 
     212                                  self.updateThinkGearDevices) 
    211213                 
    212214                self.connect(self.pushButtonBluetoothConnect, \ 
     
    322324                server_port = int(self.lineEditThinkGearPort.text()) 
    323325                device_address = str(self.comboBoxDeviceSelect.currentText()) 
    324                 emulate_headset_data = (device_address == 'MindSet Emulator') 
     326                emulate_headset_data = (device_address == 'ThinkGear Emulator') 
    325327                 
    326328                 
     
    644646        def searchForThinkGearDevices(self): 
    645647                 
     648                thinkgear_devices = [] 
     649                 
    646650                #self.pushButtonBluetoothSearch.setText('Searching') 
    647651                 
    648                 mindset_devices = [] 
    649                  
    650652                if (sys.platform == 'win32'): 
     653                         
     654                        # Bluetooth module doesn't compile properly under WindowsError 
    651655                         
    652656                        for portname in self.enumerateSerialPorts(): 
    653657                                 
    654                                 if portname not in mindset_devices: 
     658                                if portname not in thinkgear_devices: 
    655659                                        #portname = self.fullPortName(portname) 
    656                                         mindset_devices.append(portname) 
     660                                        thinkgear_devices.append(portname) 
    657661                 
    658662                 
    659663                else: 
    660664                         
    661                         # Bluetooth module doesn't compile properly under Windows 
    662                          
    663665                        bluetooth_devices = [] 
    664666                         
    665                         #bluetooth_devices = bluetooth.discover_devices( \ 
    666                                                     #duration=5, \ 
    667                                                     #flush_cache=True, \ 
    668                                                     #lookup_names=True) 
    669                          
    670                         command = '%s con' % PATH_TO_HCITOOL 
    671                          
    672                         output = os.popen(command, 'r') 
    673                          
    674                         for line in output.readlines(): 
    675                                 try: 
    676                                         address = line.split(' ')[2] 
    677                                 except: 
    678                                         pass 
    679                                 else: 
    680                                         bluetooth_devices.append(address) 
     667                        try: 
     668                                bluetooth_devices = bluetooth.discover_devices( \ 
     669                                                       duration=5, \ 
     670                                                       flush_cache=True, \ 
     671                                                       lookup_names=False) 
     672                        except: 
     673                                #command = '%s con' % PATH_TO_HCITOOL 
     674                                command = '%s scan' % PATH_TO_HCITOOL 
     675                                 
     676                                if self.DEBUG: 
     677                                        print 'Calling "%s":' % command  
     678                                 
     679                                output = os.popen(command, 'r') 
     680                                 
     681                                for line in output.readlines(): 
     682                                        print line 
     683                                        try: 
     684                                                address = line.split(' ')[2] 
     685                                        except: 
     686                                                pass 
     687                                        else: 
     688                                                bluetooth_devices.append(address) 
     689                         
    681690                         
    682691                        for address in bluetooth_devices: 
    683692                                device_name = bluetooth.lookup_name(address) 
    684693                                if ((device_name == 'MindSet') and \ 
    685                                     (address not in mindset_devices)): 
    686                                         mindset_devices.append(address) 
    687                          
    688                          
    689                         if self.DEBUG: 
     694                                    (address not in thinkgear_devices)): 
     695                                        thinkgear_devices.append(address) 
     696                         
     697                         
     698                        if self.DEBUG > 2: 
    690699                                print "Bluetooth MindSet devices found:", 
    691                                 print mindset_devices 
    692                          
    693                          
    694                         self.comboBoxDeviceSelect.clear() 
    695                          
    696                         self.comboBoxDeviceSelect.addItem('MindSet Emulator') 
     700                                print thinkgear_devices 
     701                         
     702                         
     703                        if self.parent == None: 
     704                                self.comboBoxDeviceSelect.clear() 
     705                        else: 
     706                                self.parent.comboBoxDeviceSelect.clear() 
     707                         
     708                        #self.comboBoxDeviceSelect.addItem('ThinkGear Emulator') 
    697709                         
    698710                        if os.path.exists('/dev/ttyUSB0'): 
    699                                 self.comboBoxDeviceSelect.addItem('/dev/ttyUSB0') 
     711                                thinkgear_devices.append('/dev/ttyUSB0') 
    700712                        if os.path.exists('/dev/ttyUSB1'): 
    701                                 self.comboBoxDeviceSelect.addItem('/dev/ttyUSB1') 
     713                                thinkgear_devices.append('/dev/ttyUSB1') 
    702714                        if os.path.exists('/dev/ttyUSB2'): 
    703                                 self.comboBoxDeviceSelect.addItem('/dev/ttyUSB2') 
     715                                thinkgear_devices.append('/dev/ttyUSB2') 
    704716                        if os.path.exists('/dev/ttyUSB3'): 
    705                                 self.comboBoxDeviceSelect.addItem('/dev/ttyUSB3') 
     717                                thinkgear_devices.append('/dev/ttyUSB3') 
    706718                        if os.path.exists('/dev/ttyUSB4'): 
    707                                 self.comboBoxDeviceSelect.addItem('/dev/ttyUSB4') 
    708                  
    709                  
    710                 for mindset_device in mindset_devices: 
    711                         self.comboBoxDeviceSelect.addItem(mindset_device) 
    712                  
    713                  
    714                 #self.pushButtonBluetoothSearch.setText('Search') 
     719                                thinkgear_devices.append('/dev/ttyUSB4') 
     720                        if os.path.exists('/dev/ttyUSB5'): 
     721                                thinkgear_devices.append('/dev/ttyUSB5') 
     722                        if os.path.exists('/dev/ttyUSB6'): 
     723                                thinkgear_devices.append('/dev/ttyUSB6') 
     724                        if os.path.exists('/dev/ttyUSB7'): 
     725                                thinkgear_devices.append('/dev/ttyUSB7') 
     726                        if os.path.exists('/dev/ttyUSB8'): 
     727                                thinkgear_devices.append('/dev/ttyUSB8') 
     728                        if os.path.exists('/dev/ttyUSB9'): 
     729                                thinkgear_devices.append('/dev/ttyUSB9') 
     730                 
     731                        if os.path.exists('/dev/ttyACM0'): 
     732                                thinkgear_devices.append('/dev/ttyACM0') 
     733                        if os.path.exists('/dev/ttyACM1'): 
     734                                thinkgear_devices.append('/dev/ttyACM1') 
     735                        if os.path.exists('/dev/ttyACM2'): 
     736                                thinkgear_devices.append('/dev/ttyACM2') 
     737                        if os.path.exists('/dev/ttyACM3'): 
     738                                thinkgear_devices.append('/dev/ttyACM3') 
     739                        if os.path.exists('/dev/ttyACM4'): 
     740                                thinkgear_devices.append('/dev/ttyACM4') 
     741                 
     742                if self.DEBUG: 
     743                        print "ThinkGear devices found:", 
     744                        print thinkgear_devices 
     745                 
     746                 
     747                return(thinkgear_devices) 
     748         
     749         
     750        ################################################################## 
     751         
     752        def updateThinkGearDevices(self): 
     753                 
     754                devices = self.searchForThinkGearDevices() 
     755                 
     756                devices.insert(0, 'ThinkGear Emulator') 
     757                 
     758                for device in devices: 
     759                        self.comboBoxDeviceSelect.addItem(device) 
    715760         
    716761         
  • trunk/interface/puzzlebox_synapse_interface_design.ui

    r219 r281  
    169169<html><head><meta name="qrichtext" content="1" /><style type="text/css"> 
    170170p, li { white-space: pre-wrap; } 
    171 </style></head><body style=" font-family:'Sans'; font-size:10pt; font-weight:400; font-style:normal;"> 
    172 &lt;p align=&quot;center&quot; style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Bluetooth Address&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> 
     171&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Cantarell'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt; 
     172&lt;p align=&quot;center&quot; style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Sans'; font-size:10pt;&quot;&gt;Hardware Address&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> 
    173173     </property> 
    174174     <property name="wordWrap"> 
     
    291291     </property> 
    292292    </widget> 
    293     <widget class="QLabel" name="labelNeuroSkyMindSet"> 
    294      <property name="geometry"> 
    295       <rect> 
    296        <x>8</x> 
    297        <y>87</y> 
    298        <width>161</width> 
    299        <height>21</height> 
    300       </rect> 
    301      </property> 
    302      <property name="text"> 
    303       <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt; 
    304 &lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt; 
    305 p, li { white-space: pre-wrap; } 
    306 &lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Sans'; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt; 
    307 &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;NeuroSky MindSet&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> 
    308      </property> 
    309      <property name="alignment"> 
    310       <set>Qt::AlignCenter</set> 
    311      </property> 
    312     </widget> 
    313293    <widget class="Line" name="lineHorizontalDivider"> 
    314294     <property name="geometry"> 
     
    821801     <item> 
    822802      <property name="text"> 
    823        <string>MindSet Emulator</string> 
     803       <string>ThinkGear Emulator</string> 
    824804      </property> 
    825805     </item> 
     
    840820      <bool>false</bool> 
    841821     </property> 
     822    </widget> 
     823    <widget class="QComboBox" name="comboBoxEEGHeadsetModel"> 
     824     <property name="enabled"> 
     825      <bool>true</bool> 
     826     </property> 
     827     <property name="geometry"> 
     828      <rect> 
     829       <x>7</x> 
     830       <y>84</y> 
     831       <width>166</width> 
     832       <height>28</height> 
     833      </rect> 
     834     </property> 
     835     <item> 
     836      <property name="text"> 
     837       <string>NeuroSky MindWave</string> 
     838      </property> 
     839     </item> 
     840     <item> 
     841      <property name="text"> 
     842       <string>NeuroSky MindSet</string> 
     843      </property> 
     844     </item> 
    842845    </widget> 
    843846   </widget> 
     
    878881&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt; 
    879882p, li { white-space: pre-wrap; } 
    880 &lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Sans'; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt; 
    881 &lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> 
     883&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Cantarell'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt; 
     884&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Sans'; font-size:10pt;&quot;&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> 
    882885     </property> 
    883886    </widget> 
Note: See TracChangeset for help on using the changeset viewer.