Changeset 274


Ignore:
Timestamp:
03/11/11 12:38:29 (10 years ago)
Author:
sc
Message:

Interface:

  • support for ttyUSB0-4 added

Protocol:

  • read_buffer_check_timer added
  • checkReadBuffer added

Server:

  • resetDevice added
Location:
trunk/synapse/Puzzlebox/Synapse
Files:
3 edited

Legend:

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

    r272 r274  
    697697                        if os.path.exists('/dev/ttyUSB1'): 
    698698                                self.comboBoxDeviceSelect.addItem('/dev/ttyUSB1') 
     699                        if os.path.exists('/dev/ttyUSB2'): 
     700                                self.comboBoxDeviceSelect.addItem('/dev/ttyUSB2') 
     701                        if os.path.exists('/dev/ttyUSB3'): 
     702                                self.comboBoxDeviceSelect.addItem('/dev/ttyUSB3') 
     703                        if os.path.exists('/dev/ttyUSB4'): 
     704                                self.comboBoxDeviceSelect.addItem('/dev/ttyUSB4') 
    699705                 
    700706                 
  • trunk/synapse/Puzzlebox/Synapse/Protocol.py

    r273 r274  
    1111 
    1212__changelog__ = """\ 
    13 Last Update: 2011.03.02 
     13Last Update: 2011.03.11 
    1414 
    1515""" 
     
    105105THINKGEAR_DEVICE_BLUETOOTH_CHANNEL = 3 
    106106 
    107 THINKGEAR_DEVICE_AUTOCONNECT_INTERVAL = 4 # seconds between attempting auto-connect packets 
     107THINKGEAR_DEVICE_AUTOCONNECT_INTERVAL = 4 # seconds between attempting 
     108                                          # to send auto-connect packets 
    108109THINKGEAR_DEVICE_ID = configuration.THINKGEAR_DEVICE_ID 
    109110#THINKGEAR_DEFAULT_DEVICE_ID = '\x7d\x68' 
     
    116117 
    117118DEVICE_BUFFER_CHECK_TIMER = 60 * 1000 # Check buffer size once every minute 
     119DEVICE_READ_BUFFER_CHECK_TIMER = 10 * 1000 # Check buffer size once x seconds 
    118120DEVICE_BUFFER_MAX_SIZE = 180 # Reset buffer if it grow this large 
    119121                             # as this would indicate the processing 
     
    151153                self.device = None 
    152154                self.buffer = '' 
     155                self.payload_timestamp = time.time() 
    153156                 
    154157                self.device = serial_device 
     
    631634                                continue 
    632635                         
    633                         payload_timestamp = time.time() 
     636                        self.payload_timestamp = time.time() 
    634637                         
    635638                        # Parse [PLENGTH] byte 
     
    706709                                 
    707710                                 
    708                                 self.processDataPayload(data_payload, payload_timestamp) 
     711                                self.processDataPayload(data_payload, self.payload_timestamp) 
    709712                                 
    710713                                 
     
    780783                               parent=None): 
    781784                 
    782                 QtCore.QThread.__init__(self,parent) 
     785                QtCore.QThread.__init__(self, parent) 
    783786                 
    784787                self.log = log 
    785788                self.DEBUG = DEBUG 
     789                self.parent = parent 
    786790                 
    787791                self.device_address = device_address 
     
    808812                self.buffer_check_timer.start(DEVICE_BUFFER_CHECK_TIMER) 
    809813                 
     814                self.read_buffer_check_timer = QtCore.QTimer() 
     815                QtCore.QObject.connect(self.read_buffer_check_timer, \ 
     816                                       QtCore.SIGNAL("timeout()"), \ 
     817                                       self.checkReadBuffer) 
     818                self.read_buffer_check_timer.start(DEVICE_READ_BUFFER_CHECK_TIMER) 
     819                 
    810820                self.keep_running = True 
    811821         
     
    947957        ################################################################## 
    948958         
     959        def checkReadBuffer(self): 
     960                 
     961                if self.DEBUG > 1: 
     962                        print "INFO: Read buffer timer check" 
     963                 
     964                current_time = time.time() 
     965                 
     966                if ((self.parent != None) and \ 
     967                    (self.parent.protocol != None)): 
     968                         
     969                        if (current_time - self.parent.protocol.payload_timestamp > \ 
     970                                 DEVICE_BUFFER_CHECK_TIMER): 
     971                                 
     972                                if self.DEBUG: 
     973                                        print "ERROR: Read buffer timer has expired, resetting connection" 
     974                                 
     975                        self.parent.resetDevice() 
     976         
     977         
     978        ################################################################## 
     979         
    949980        def reset(self): 
    950981                 
     
    9751006                self.keep_running = False 
    9761007                self.buffer_check_timer.stop() 
     1008                self.read_buffer_check_timer.stop() 
    9771009         
    9781010         
  • trunk/synapse/Puzzlebox/Synapse/Server.py

    r272 r274  
    99 
    1010__changelog__ = """\ 
    11 Last Update: 2011.03.01 
     11Last Update: 2011.03.11 
    1212 
    1313""" 
     
    596596                self.exec_() 
    597597         
    598          
     598                 
    599599        ################################################################## 
    600600         
     
    619619                if self.parent == None: 
    620620                        sys.exit() 
     621         
     622         
     623        ################################################################## 
     624         
     625        def resetDevice(self): 
     626                 
     627                if self.serial_device != None: 
     628                        self.serial_device.exitThread() 
     629                 
     630                if self.protocol != None: 
     631                        self.protocol.exitThread() 
     632                 
     633                self.configureEEG() 
     634 
Note: See TracChangeset for help on using the changeset viewer.