Ignore:
Timestamp:
04/02/12 05:24:27 (8 years ago)
Author:
sc
Message:
  • breakout of Device from Session complete
File:
1 edited

Legend:

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

    r372 r373  
    2121        try: 
    2222                import PySide as PyQt4 
    23                 from PySide import QtCore, QtGui, QtNetwork 
     23                from PySide import QtCore, QtGui 
    2424        except Exception, e: 
    25                 print "ERROR: Exception importing PySide:", 
     25                print "ERROR: [Synapse:Session] Exception importing PySide:", 
    2626                print e 
    2727                configuration.ENABLE_PYSIDE = False 
     
    3131if not configuration.ENABLE_PYSIDE: 
    3232        print "INFO: [Synapse:Session] Using PyQt4 module" 
    33         from PyQt4 import QtCore, QtGui, QtNetwork 
     33        from PyQt4 import QtCore, QtGui 
    3434 
    3535 
     
    4646DEBUG = configuration.DEBUG 
    4747 
    48 #SYNAPSE_SERVER_HOST = configuration.SYNAPSE_SERVER_HOST 
    49 #SYNAPSE_SERVER_PORT = configuration.SYNAPSE_SERVER_PORT 
    50  
    51 #EMULATE_THINKGEAR_FOR_EMOTIV = configuration.EMULATE_THINKGEAR_FOR_EMOTIV 
    52  
    53 PATH_TO_HCITOOL = '/usr/bin/hcitool' 
    54  
    5548 
    5649##################################################################### 
     
    6356                     DEBUG=DEBUG, \ 
    6457                     parent=None, \ 
    65                      #embedded_mode=False): 
    6658                     ): 
    6759                 
     
    6961                self.DEBUG = DEBUG 
    7062                self.parent=parent 
    71                 #self.embedded_mode=embedded_mode 
    7263                 
    7364                if self.parent == None: 
     
    10495                                print "DEBUG: User default path not found" 
    10596                        self.homepath = os.getcwd() 
    106                  
    107                  
    108                 self.activePlugins = [] 
    10997         
    11098         
     
    174162                 
    175163                return(session_time) 
    176          
    177          
    178         ################################################################## 
    179          
    180         #def enumerateSerialPorts(self): 
    181                  
    182                 #""" Uses the Win32 registry to return an 
    183                 #iterator of serial (COM) ports 
    184                 #existing on this computer. 
    185                  
    186                 #from http://eli.thegreenplace.net/2009/07/31/listing-all-serial-ports-on-windows-with-python/ 
    187                 #""" 
    188           
    189                 #path = 'HARDWARE\\DEVICEMAP\\SERIALCOMM' 
    190                 #try: 
    191                         #key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, path) 
    192                 #except WindowsError: 
    193                         ##raise IterationError 
    194                         #return 
    195                  
    196                 #for i in itertools.count(): 
    197                         #try: 
    198                                 #val = winreg.EnumValue(key, i) 
    199                                 #yield str(val[1]) 
    200                         #except EnvironmentError: 
    201                                 #break 
    202          
    203          
    204         ################################################################## 
    205          
    206         #def fullPortName(self, portname): 
    207                  
    208                 #""" Given a port-name (of the form COM7, 
    209                 #COM12, CNCA0, etc.) returns a full 
    210                 #name suitable for opening with the 
    211                 #Serial class. 
    212                 #""" 
    213                  
    214                 #m = re.match('^COM(\d+)$', portname) 
    215                 #if m and int(m.group(1)) < 10: 
    216                         #return portname 
    217                  
    218                 #return '\\\\.\\' + portname 
    219          
    220          
    221         ################################################################## 
    222          
    223         #def searchForSerialDevices(self, devices=[]): 
    224                  
    225                 #if (sys.platform == 'win32'): 
    226                          
    227                         #for portname in self.enumerateSerialPorts(): 
    228                                  
    229                                 #if portname not in devices: 
    230                                         ##portname = self.fullPortName(portname) 
    231                                         #devices.append(portname) 
    232                  
    233                 #else: 
    234                          
    235                          
    236                         #if os.path.exists('/dev/tty.MindWaveMobile-SPPDev'): 
    237                                 #devices.append('/dev/tty.MindWaveMobile-SPPDev') 
    238                          
    239                         #if os.path.exists('/dev/tty.MindWave'): 
    240                                 #devices.append('/dev/tty.MindWave') 
    241                         #if os.path.exists('/dev/tty.MindWave1'): 
    242                                 #devices.append('/dev/tty.MindWave1') 
    243                         #if os.path.exists('/dev/tty.MindWave2'): 
    244                                 #devices.append('/dev/tty.MindWave2') 
    245                         #if os.path.exists('/dev/tty.MindWave3'): 
    246                                 #devices.append('/dev/tty.MindWave3') 
    247                         #if os.path.exists('/dev/tty.MindWave4'): 
    248                                 #devices.append('/dev/tty.MindWave4') 
    249                         #if os.path.exists('/dev/tty.MindWave5'): 
    250                                 #devices.append('/dev/tty.MindWave5') 
    251                          
    252                         #if os.path.exists('/dev/tty.MindSet-DevB'): 
    253                                 #devices.append('/dev/tty.MindSet-DevB') 
    254                          
    255                         #if os.path.exists('/dev/ttyUSB0'): 
    256                                 #devices.append('/dev/ttyUSB0') 
    257                         #if os.path.exists('/dev/ttyUSB1'): 
    258                                 #devices.append('/dev/ttyUSB1') 
    259                         #if os.path.exists('/dev/ttyUSB2'): 
    260                                 #devices.append('/dev/ttyUSB2') 
    261                         #if os.path.exists('/dev/ttyUSB3'): 
    262                                 #devices.append('/dev/ttyUSB3') 
    263                         #if os.path.exists('/dev/ttyUSB4'): 
    264                                 #devices.append('/dev/ttyUSB4') 
    265                         #if os.path.exists('/dev/ttyUSB5'): 
    266                                 #devices.append('/dev/ttyUSB5') 
    267                         #if os.path.exists('/dev/ttyUSB6'): 
    268                                 #devices.append('/dev/ttyUSB6') 
    269                         #if os.path.exists('/dev/ttyUSB7'): 
    270                                 #devices.append('/dev/ttyUSB7') 
    271                         #if os.path.exists('/dev/ttyUSB8'): 
    272                                 #devices.append('/dev/ttyUSB8') 
    273                         #if os.path.exists('/dev/ttyUSB9'): 
    274                                 #devices.append('/dev/ttyUSB9') 
    275                          
    276                         #if os.path.exists('/dev/rfcomm0'): 
    277                                 #devices.append('/dev/rfcomm0') 
    278                         #if os.path.exists('/dev/rfcomm1'): 
    279                                 #devices.append('/dev/rfcomm1') 
    280                         #if os.path.exists('/dev/rfcomm2'): 
    281                                 #devices.append('/dev/rfcomm2') 
    282                         #if os.path.exists('/dev/rfcomm3'): 
    283                                 #devices.append('/dev/rfcomm3') 
    284                         #if os.path.exists('/dev/rfcomm4'): 
    285                                 #devices.append('/dev/rfcomm4') 
    286                          
    287                         #if os.path.exists('/dev/ttyACM0'): 
    288                                 #devices.append('/dev/ttyACM0') 
    289                         #if os.path.exists('/dev/ttyACM1'): 
    290                                 #devices.append('/dev/ttyACM1') 
    291                         #if os.path.exists('/dev/ttyACM2'): 
    292                                 #devices.append('/dev/ttyACM2') 
    293                         #if os.path.exists('/dev/ttyACM3'): 
    294                                 #devices.append('/dev/ttyACM3') 
    295                         #if os.path.exists('/dev/ttyACM4'): 
    296                                 #devices.append('/dev/ttyACM4') 
    297                  
    298                  
    299                 #return(devices) 
    300          
    301          
    302         ################################################################## 
    303          
    304         #def hcitoolScanForRemoteDevices(self, devices=[]): 
    305                  
    306                 #bluetooth_devices = [] 
    307                  
    308                 ##command = '%s scan 2> /dev/null' % PATH_TO_HCITOOL 
    309                 #command = '%s scan' % PATH_TO_HCITOOL 
    310                  
    311                 #if self.DEBUG > 1: 
    312                         #print 'INFO: Calling "%s"' % command  
    313                  
    314                 #output = os.popen(command, 'r') 
    315                  
    316                 #try: 
    317                         #result = output.readlines() 
    318                 #except Exception, e: 
    319                         #if self.DEBUG: 
    320                                 #print "ERROR [Synapse-Interface]: Failed reading result from call to hcitool:", 
    321                                 #print e 
    322                         #result = '' 
    323                  
    324                 #if result == '': 
    325                         #return([]) # Under OS X hcitool doesn't exist so we don't see any devices 
    326                  
    327                 #for line in result: 
    328                         #line = line.strip() 
    329                         #if line == '' or line == 'Scanning ...': 
    330                                 #continue 
    331                         #elif self.DEBUG > 1: 
    332                                 #print line 
    333                         #try: 
    334                                 #address = line.split('\t')[0] 
    335                         #except: 
    336                                 #pass 
    337                         #else: 
    338                                 #bluetooth_devices.append(address) 
    339                  
    340                  
    341                 #for address in bluetooth_devices: 
    342                          
    343                         #command = '%s name %s' % (PATH_TO_HCITOOL, address) 
    344                          
    345                         #if self.DEBUG: 
    346                                 #print 'INFO: Calling "%s"' % command 
    347                          
    348                         #output = os.popen(command, 'r') 
    349                          
    350                         #for line in output.readlines(): 
    351                                 #line = line.strip() 
    352                                 #if line == '': 
    353                                         #continue 
    354                                 #elif self.DEBUG: 
    355                                         #print '\t', 
    356                                         #print line 
    357                                  
    358                                 #device_name = line.strip() 
    359                          
    360                                 #if ((device_name == 'MindSet' or device_name == 'MindWave Mobile') and \ 
    361                                         #(address not in devices)): 
    362                                         #devices.append(address) 
    363                                  
    364                                 #else: 
    365                                         #if self.DEBUG: 
    366                                                 #print 'INFO: Found but not recognized: [%s] %s' % \ 
    367                                                         #(address, device_name) 
    368                  
    369                  
    370                 #return (devices) 
    371          
    372          
    373         ################################################################## 
    374          
    375         #def hcitoolGetActiveConnections(self, devices=[]): 
    376                  
    377                 #bluetooth_devices = [] 
    378                  
    379                 ##command = '%s con 2> /dev/null' % PATH_TO_HCITOOL 
    380                 #command = '%s con' % PATH_TO_HCITOOL 
    381                  
    382                 #if self.DEBUG > 1: 
    383                         #print 'INFO: Calling "%s"' % command  
    384                  
    385                 #output = os.popen(command, 'r') 
    386                  
    387                 #try: 
    388                         #result = output.readlines() 
    389                 #except Exception, e: 
    390                         #if self.DEBUG: 
    391                                 #print "ERROR [Synapse:Interface]: Failed reading result from call to hcitool:", 
    392                                 #print e 
    393                         #result = '' 
    394  
    395                 #if result == '': 
    396                         #return([]) # Under OS X hcitool doesn't exist so we don't see any devices 
    397  
    398                 #for line in result: 
    399                         #line = line.strip() 
    400                         #if line == '' or line == 'Connections:': 
    401                                 #continue 
    402                         #elif self.DEBUG > 1: 
    403                                 #print line 
    404                         #try: 
    405                                 #address = line.split(' ')[2] 
    406                         #except: 
    407                                 #pass 
    408                         #else: 
    409                                 #bluetooth_devices.append(address) 
    410                  
    411                  
    412                 #for address in bluetooth_devices: 
    413                          
    414                         #command = '%s name %s' % (PATH_TO_HCITOOL, address) 
    415                          
    416                         #if self.DEBUG: 
    417                                 #print 'INFO: Calling "%s":' % command 
    418                          
    419                         #output = os.popen(command, 'r') 
    420                          
    421                         #for line in output.readlines(): 
    422                                 #line = line.strip() 
    423                                 #if line == '': 
    424                                         #continue 
    425                                 #elif self.DEBUG: 
    426                                         #print '\t', 
    427                                         #print line 
    428                                  
    429                                 #device_name = line.strip() 
    430                          
    431                                 #if ((device_name == 'MindSet' or device_name == 'MindWave Mobile') and \ 
    432                                         #(address not in devices)): 
    433                                         #devices.append(address) 
    434                  
    435                  
    436                 #return (devices) 
    437          
    438          
    439         ################################################################## 
    440          
    441         #def searchForDevices(self): 
    442                  
    443                 #enable_hcitool = configuration.ENABLE_HCITOOL 
    444                  
    445                 #devices = [] 
    446                  
    447                 ##self.pushButtonBluetoothSearch.setText('Searching') 
    448                  
    449                 #if ((sys.platform != 'win32' and sys.platform != 'darwin') and \ 
    450                      #configuration.THINKGEAR_BLUETOOTH_SEARCH): 
    451                          
    452                         ## Bluetooth module doesn't compile properly under Windows 
    453                         ## and doesn't exist under OS X 
    454                          
    455                         ## PyBluez API Documentation 
    456                         ## http://pybluez.googlecode.com/svn/www/docs-0.7/index.html 
    457                          
    458                         #bluetooth_devices = [] 
    459                          
    460                         #if not enable_hcitool: 
    461                                  
    462                                 #try: 
    463                                          
    464                                         #if self.DEBUG: 
    465                                                 #print "INFO: Searching for Bluetooth devices using PyBluez module" 
    466                                          
    467                                         #bluetooth_devices = bluetooth.discover_devices( \ 
    468                                               #duration=configuration.THINKGEAR_BLUETOOTH_DISCOVER_DEVICES_TIMEOUT, \ 
    469                                                                #flush_cache=True, \ 
    470                                                                #lookup_names=False) 
    471                                          
    472                                         #for address in bluetooth_devices: 
    473                                                  
    474                                                 #if self.DEBUG: 
    475                                                         #print "INFO: Device discovered", 
    476                                                         #print address 
    477                                                  
    478                                                 #device_name = bluetooth.lookup_name(address, \ 
    479                                                                  #configuration.THINKGEAR_BLUETOOTH_LOOKUP_NAME_TIMEOUT) 
    480                                                 #if ((device_name == 'MindSet' or device_name == 'MindWave Mobile') and \ 
    481                                                         #(address not in devices)): 
    482                                                         #devices.append(address) 
    483                                          
    484                                          
    485                                         ## There is an issue under recent released of Linux 
    486                                         ## in which already-connected Bluetooth ThinkGear devices 
    487                                         ## are not appearing in a bluetooth device scan. However, 
    488                                         ## using "hcitool" connected devices can be listed correctly. 
    489                                         ## There does not appear to be an equivalent PyBluez feature. 
    490                                         ## (http://pybluez.googlecode.com/svn/www/docs-0.7/index.html) 
    491                                          
    492                                         #if devices == []: 
    493                                                 #if self.DEBUG: 
    494                                                         #print "INFO: No devices found through PyBluez module. Falling back to hcitool." 
    495                                                 #devices = self.hcitoolGetActiveConnections(devices) 
    496                                  
    497                                  
    498                                 #except Exception, e: 
    499                                         #if self.DEBUG: 
    500                                                 #print "ERROR: Exception calling Python Bluetooth module. (Is PyBluez installed?):" 
    501                                                 #print e 
    502                                          
    503                                          
    504                                         ##if (sys.platform != 'darwin'): 
    505                                         #enable_hcitool = True 
    506                          
    507                          
    508                         #if enable_hcitool: 
    509                                  
    510                                 #devices = self.hcitoolScanForRemoteDevices(devices) 
    511                                 #devices = self.hcitoolGetActiveConnections(devices) 
    512                          
    513                          
    514                         #if self.DEBUG > 2: 
    515                                 #print "Bluetooth Devices found:", 
    516                                 #print devices 
    517                  
    518                  
    519                 #devices = self.searchForSerialDevices(devices) 
    520                  
    521                  
    522                 #if self.DEBUG: 
    523                         #print "Devices found:", 
    524                         #print devices 
    525                  
    526                  
    527                 #return(devices) 
    528164         
    529165         
Note: See TracChangeset for help on using the changeset viewer.