Changeset 212


Ignore:
Timestamp:
11/17/10 17:20:00 (10 years ago)
Author:
sc
Message:

Brainstorms/Helicopter_Control.py:

  • test_packet function added
  • packet timing and formulation set to more closely match data detected by logic analyser
File:
1 edited

Legend:

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

    r211 r212  
    1010 
    1111__changelog__ = """ 
    12 Last Update: 2010.11.15 
     12Last Update: 2010.11.17 
    1313 
    1414""" 
     
    4646 
    4747PROTOCOL_SYNC = '\x80' 
    48 PROTOCOL_SYNC_HEAD1 = '\xff' 
    49 PROTOCOL_SYNC_HEAD2 = '\x80' 
    50 PROTOCOL_SYNC_TAIL = False 
    51 PACKET_LENGTH = 10 
     48PROTOCOL_SYNC_HEAD1 = '\x00' 
     49PROTOCOL_SYNC_HEAD2 = '\x00' 
     50PROTOCOL_ADD_SYNC_TO_HEAD = False 
     51PROTOCOL_ADD_SYNC_TO_TAIL = False 
     52PACKET_LENGTH = 14 
    5253PAYLOAD_MINIMUM_LENGTH = 8 
    53  
    54 DEVICE_BUFFER_TIMER = 18  # Check buffer size once every 20ms 
     54ECHO_ON = False 
     55 
     56DEVICE_BUFFER_TIMER = 22  # Frame cycle 22ms 
    5557 
    5658COMMAND_PACKET = { 
     
    5961        'minimum_thrust': '\x80\x59\x68\x81\x86\xd1\xa4\x29', \ 
    6062        'maximum_thrust': '\x83\xad\xdf\x91\xe0\x83\x12\x8d\x54', \ 
    61         'max_test': '\x80\x83\xad\xe4\x22\x98\x30\x8b\x8d\x54\xff', \ 
     63        'test_packet': '\x00\x00\x03\x54\x06\x15\x09\xca\x0e\x2f\x13\x54\x14\xaa', \ 
    6264        'maximum_forward': '\x83\xad\xde\x11\xcd\xb0\x8b\x8d\x54', \ 
    6365} 
     
    159161                        print "--> Command: neutral" 
    160162                 
    161                 #self.protocol.command_packet = COMMAND_PACKET['neutral'] 
    162                 self.protocol.command_packet = COMMAND_PACKET['max_test'] 
     163                self.protocol.command_packet = COMMAND_PACKET['neutral']         
     164         
     165         
     166        ################################################################## 
     167         
     168        def test_packet(self): 
     169                 
     170                if self.DEBUG: 
     171                        print "--> Command: test_packet" 
     172                 
     173                self.protocol.command_packet = COMMAND_PACKET['test_packet'] 
    163174         
    164175         
     
    173184                QtCore.QThread.msleep(1 * 1000) # 1 second 
    174185                 
    175                 #self.protocol.command_packet = COMMAND_PACKET['minimum_thrust'] 
    176                 self.protocol.command_packet = COMMAND_PACKET['max_test'] 
     186                self.protocol.command_packet = COMMAND_PACKET['minimum_thrust'] 
    177187                QtCore.QThread.msleep(1 * 1000) # 1 second 
    178188                 
     
    215225                elif (self.command == 'neutral'): 
    216226                        self.mode = 'write' 
    217                         self.neutral() 
     227                        self.neutral()           
     228                elif (self.command == 'test_packet'): 
     229                        self.mode = 'write' 
     230                        self.test_packet() 
    218231                 
    219232                elif (self.command == 'hover'): 
     
    339352                         
    340353                        data_payload = self.device.getBuffer() 
    341                          
    342                         # Remove PROTOCOL_SYNC_TAIL 
    343                         #data_payload = data_payload[:-1] 
    344354                         
    345355                         
     
    375385                while self.keep_running: 
    376386                         
    377                         # Synchronize on [SYNC] bytes 
    378                         #if not PROTOCOL_SYNC_TAIL: 
    379                                 #buffer = PROTOCOL_SYNC 
     387                        # Preppend or Append [SYNC] bytes 
     388                        #if PROTOCOL_ADD_SYNC_TO_HEAD: 
     389                                #buffer = PROTOCOL_SYNC_HEAD1 
     390                                #buffer += PROTOCOL_SYNC_HEAD2 
    380391                                #buffer += self.command_packet 
    381                         #else: 
     392                         
     393                        #if PROTOCOL_ADD_SYNC_TO_TAIL: 
    382394                                #buffer = self.command_packet 
    383                                 #buffer += PROTOCOL_SYNC 
     395                                #buffer += PROTOCOL_SYNC_HEAD1 
     396                                #buffer += PROTOCOL_SYNC_HEAD2 
    384397                                 
    385398                        buffer = self.command_packet 
    386                          
    387399                        self.device.buffer = buffer 
    388400                        #self.device.buffer = packet 
     
    655667                                #byte = self.device.read() 
    656668                                byte = self.device.recv(1) 
    657                                 self.device.write(byte) 
     669                                 
     670                                if ECHO_ON: 
     671                                        self.device.write(byte) 
    658672                                 
    659673                                if (len(byte) != 0): 
Note: See TracChangeset for help on using the changeset viewer.