Changeset 164


Ignore:
Timestamp:
08/19/10 13:36:21 (11 years ago)
Author:
sc
Message:

trunk/synapse/synapse-protocol.py:

  • import order fixed

trunk/synapse/puzzlebox_synapse_configuration.ini:

  • developer Bluetooth MAC removed from default configuration file

trunk/synapse/Puzzlebox/Synapse/Client.py:

  • network address parsing bugfix merged

trunk/synapse/Puzzlebox/Synapse/Interface.py:

  • max EEG scaling bugfix merged
  • windows COM port searching feature merged

trunk/synapse/Puzzlebox/Synapse/Protocol.py:

  • debug enhancment bugfix merged
Location:
trunk/synapse
Files:
5 edited

Legend:

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

    r163 r164  
    8484                self.socket.name = 'ThinkGear Client' 
    8585                 
    86                 if ((self.server_host == '') or \ 
    87                          (self.server_host == '*')): 
    88                         self.server_host=QtNetwork.QHostAddress.Any 
     86                if self.server_host == '*': 
     87                        self.server_host = '127.0.0.1' 
     88                 
     89                self.server_host=QtNetwork.QHostAddress(self.server_host) 
    8990                 
    9091                self.socket.readyRead.connect(self.printReply) 
  • trunk/synapse/Puzzlebox/Synapse/Interface.py

    r163 r164  
    237237                # and re-connects to a MindSet Emulator, 
    238238                # we need to reset the max power values 
    239                 self.progressBarEEGDelta.setMaximum(THINKGEAR_EMULATION_MAX_EEG_POWER_VALUE) 
    240                 self.progressBarEEGTheta.setMaximum(THINKGEAR_EMULATION_MAX_EEG_POWER_VALUE) 
    241                 self.progressBarEEGLowAlpha.setMaximum(THINKGEAR_EMULATION_MAX_EEG_POWER_VALUE) 
    242                 self.progressBarEEGHighAlpha.setMaximum(THINKGEAR_EMULATION_MAX_EEG_POWER_VALUE) 
    243                 self.progressBarEEGLowBeta.setMaximum(THINKGEAR_EMULATION_MAX_EEG_POWER_VALUE) 
    244                 self.progressBarEEGHighBeta.setMaximum(THINKGEAR_EMULATION_MAX_EEG_POWER_VALUE) 
    245                 self.progressBarEEGLowGamma.setMaximum(THINKGEAR_EMULATION_MAX_EEG_POWER_VALUE) 
    246                 self.progressBarEEGMidGamma.setMaximum(THINKGEAR_EMULATION_MAX_EEG_POWER_VALUE) 
     239                self.progressBarEEGDelta.setMaximum(self.maxEEGPower) 
     240                self.progressBarEEGTheta.setMaximum(self.maxEEGPower) 
     241                self.progressBarEEGLowAlpha.setMaximum(self.maxEEGPower) 
     242                self.progressBarEEGHighAlpha.setMaximum(self.maxEEGPower) 
     243                self.progressBarEEGLowBeta.setMaximum(self.maxEEGPower) 
     244                self.progressBarEEGHighBeta.setMaximum(self.maxEEGPower) 
     245                self.progressBarEEGLowGamma.setMaximum(self.maxEEGPower) 
     246                self.progressBarEEGMidGamma.setMaximum(self.maxEEGPower) 
    247247         
    248248         
     
    376376                if ('eegPower' in packet.keys()): 
    377377                         
     378                        # If we are not emulating packets we'll set the maximum EEG Power value 
     379                        # threshold to the default (or maximum value found within this packet) 
     380                        if not self.thinkGearConnectServer.emulate_headset_data: 
     381                                self.maxEEGPower = THINKGEAR_EMULATION_MAX_EEG_POWER_VALUE 
    378382                         
    379383                        for value in packet['eegPower'].keys(): 
     
    433437        ################################################################## 
    434438         
     439        def enumerateSerialPorts(self): 
     440                 
     441                """ Uses the Win32 registry to return an 
     442                iterator of serial (COM) ports 
     443                existing on this computer. 
     444 
     445                from http://eli.thegreenplace.net/2009/07/31/listing-all-serial-ports-on-windows-with-python/ 
     446                """ 
     447             
     448                path = 'HARDWARE\\DEVICEMAP\\SERIALCOMM' 
     449                try: 
     450                        key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, path) 
     451                except WindowsError: 
     452                        raise IterationError 
     453 
     454                for i in itertools.count(): 
     455                        try: 
     456                                val = winreg.EnumValue(key, i) 
     457                                yield str(val[1]) 
     458                        except EnvironmentError: 
     459                                break 
     460         
     461         
     462        ################################################################## 
     463         
     464        def fullPortName(self, portname): 
     465                 
     466                """ Given a port-name (of the form COM7, 
     467                COM12, CNCA0, etc.) returns a full 
     468                name suitable for opening with the 
     469                Serial class. 
     470                """ 
     471 
     472                m = re.match('^COM(\d+)$', portname) 
     473                if m and int(m.group(1)) < 10: 
     474                        return portname 
     475                 
     476                return '\\\\.\\' + portname 
     477         
     478         
     479        ################################################################## 
     480         
    435481        def searchForThinkGearDevices(self): 
    436482                 
    437483                #self.pushButtonBluetoothSearch.setText('Searching') 
    438484                 
    439                 if (sys.platform != 'win32'): 
     485                mindset_devices = [] 
     486                 
     487                if (sys.platform == 'win32'): 
     488                         
     489                        for portname in self.enumerateSerialPorts(): 
     490                                 
     491                                #portname = self.fullPortName(portname) 
     492                                mindset_devices.append(portname) 
     493                 
     494                 
     495                else: 
    440496                         
    441497                        # Bluetooth module doesn't compile properly under Windows 
     
    447503                                                    #flush_cache=True, \ 
    448504                                                    #lookup_names=True) 
    449                          
    450                         addresses = [] 
    451505                         
    452506                        command = '%s con' % PATH_TO_HCITOOL 
     
    460514                                        pass 
    461515                                else: 
    462                                         addresses.append(address) 
    463                          
    464                         for address in addresses: 
     516                                        bluetooth_devices.append(address) 
     517                         
     518                        for address in bluetooth_devices: 
    465519                                device_name = bluetooth.lookup_name(address) 
    466520                                if device_name == 'MindSet': 
    467                                         bluetooth_devices.append(address) 
     521                                        mindset_devices.append(address) 
    468522                         
    469523                         
    470524                        if self.DEBUG: 
    471                                 print "Bluetooth devices found:", 
    472                                 print bluetooth_devices 
     525                                print "Bluetooth MindSet devices found:", 
     526                                print mindset_devices 
    473527                         
    474528                         
     
    476530                         
    477531                        self.comboBoxDeviceSelect.addItem('MindSet Emulator') 
    478                          
    479                          
    480                         for mindset_device in bluetooth_devices: 
    481                                 self.comboBoxDeviceSelect.addItem(mindset_device) 
     532                 
     533                 
     534                for mindset_device in mindset_devices: 
     535                        self.comboBoxDeviceSelect.addItem(mindset_device) 
    482536                 
    483537                 
  • trunk/synapse/Puzzlebox/Synapse/Protocol.py

    r163 r164  
    9090 
    9191THINKGEAR_DEVICE_SERIAL_PORT = configuration.THINKGEAR_DEVICE_SERIAL_PORT 
    92 THINKGEAR_DEVICE_BLUETOOTH_ADDRESS = \ 
    93         configuration.THINKGEAR_DEVICE_BLUETOOTH_ADDRESS 
     92#THINKGEAR_DEVICE_BLUETOOTH_ADDRESS = \ 
     93        #configuration.THINKGEAR_DEVICE_BLUETOOTH_ADDRESS 
    9494 
    9595DEFAULT_SERIAL_BAUDRATE = 57600 
     
    828828                 
    829829                try: 
    830                         device = serial.Serial(port = self.device_address, \ 
     830##                      device = serial.Serial(port = self.device_address, \ 
     831##                                                  baudrate = baudrate, \ 
     832##                                                  bytesize = init_byte_size, \ 
     833##                                                  parity = init_parity, \ 
     834##                                                  stopbits = init_stopbits, \ 
     835##                                                  xonxoff = init_software_flow_control, \ 
     836##                                                  rtscts = init_rts_cts_flow_control, \ 
     837##                                                  timeout = timeout) 
     838                         
     839                        device = serialWrapper(port = self.device_address, \ 
    831840                                                    baudrate = baudrate, \ 
    832841                                                    bytesize = init_byte_size, \ 
     
    840849                        if self.DEBUG: 
    841850                                print "ERROR:", 
    842                                 print e 
     851                                print e, 
     852                                print self.device_address 
    843853                                sys.exit() 
    844854                 
  • trunk/synapse/puzzlebox_synapse_configuration.ini

    r163 r164  
    1212 
    1313# Use Bluetooth MAC address for Linux 
    14 THINKGEAR_DEVICE_BLUETOOTH_ADDRESS = '00:13:EF:00:56:70' 
     14THINKGEAR_DEVICE_BLUETOOTH_ADDRESS = '' 
    1515# THINKGEAR_DEVICE_BLUETOOTH_ADDRESS = '00:13:EF:xx:xx:xx' # Linux example 
    1616 
  • trunk/synapse/synapse-protocol.py

    r163 r164  
    2525DEBUG = 2 
    2626 
    27 if tgConf.THINKGEAR_DEVICE_BLUETOOTH_ADDRESS == '': 
    28         device_address = tgConf.THINKGEAR_DEVICE_SERIAL_PORT 
    29 else: 
    30         device_address = tgConf.THINKGEAR_DEVICE_BLUETOOTH_ADDRESS 
     27device_address = None 
    3128 
    3229for each in sys.argv: 
    3330        if each.startswith("--device="): 
    3431                device_address = each[ len("--device="): ] 
     32 
     33if device_address == None: 
     34        if tgConf.THINKGEAR_DEVICE_BLUETOOTH_ADDRESS == '': 
     35                device_address = tgConf.THINKGEAR_DEVICE_SERIAL_PORT 
     36        else: 
     37                device_address = tgConf.THINKGEAR_DEVICE_BLUETOOTH_ADDRESS 
    3538         
    36         app = QtCore.QCoreApplication(sys.argv) 
    37         serial_device = tgProtocol.SerialDevice(log, device_address, DEBUG=DEBUG) 
    38         protocol = tgProtocol.ProtocolHandler(log, serial_device, DEBUG=DEBUG) 
    39         protocol.start() 
    40         serial_device.run() 
     39app = QtCore.QCoreApplication(sys.argv) 
     40serial_device = tgProtocol.SerialDevice(log, device_address, DEBUG=DEBUG) 
     41protocol = tgProtocol.ProtocolHandler(log, serial_device, DEBUG=DEBUG) 
     42protocol.start() 
     43serial_device.run() 
Note: See TracChangeset for help on using the changeset viewer.