Exemplo n.º 1
0
 def check_set_multi_node_index(self, interface):
     # check if need to set different node index on multi-node processor and set if needed
     if self.multi_node_index == self.multi_curnode_index_holder[0]:
         return True
     success = False
     chk_retry_count = 0
     out_value = None
     while success is False:
         if self.write_block(interface, WRITE_CURNODE_INDEX,
                             pack_8(self.multi_node_index), False):
             data = self.read_block(interface, READ_CURNODE_INDEX, 1, 0,
                                    False)
             out_value = unpack_8(data) if data != None else None
         if out_value == self.multi_node_index:
             success = True
         else:
             chk_retry_count = chk_retry_count + 1
             self.inc_read_error_count(interface)
             if chk_retry_count <= MAX_RETRY_COUNT * 5:
                 self.node_log(interface, 'Error setting WRITE_CURNODE_INDEX, old={0}, new={1}, idx={2}, retry={3}'.\
                               format(self.multi_curnode_index_holder[0], self.multi_node_index, self.index, chk_retry_count))
                 gevent.sleep(0.025)
             else:
                 self.node_log(interface, 'Error setting WRITE_CURNODE_INDEX, retry limit reached, old={0}, new={1}, idx={2}, retry={3}'.\
                               format(self.multi_curnode_index_holder[0], self.multi_node_index, self.index, chk_retry_count))
                 break
     if success:
         self.multi_curnode_index_holder[0] = self.multi_node_index
     return success
Exemplo n.º 2
0
 def jump_to_bootloader(self, interface):
     try:
         if self.api_level >= 32:
             self.node_log(interface, 'Sending JUMP_TO_BOOTLOADER message to serial node {0}'.format(self.index+1))
             self.write_block(interface, JUMP_TO_BOOTLOADER, pack_8(0), False)
             self.serial.flushInput()
             time.sleep(0.1)
             self.serial.flushInput()
             self.serial.flushOutput()
             self.serial.close()
     except Exception as ex:
         self.node_log(interface, 'Error sending JUMP_TO_BOOTLOADER message to serial node {0}: {1}'.format(self.index+1, ex))