def send_start_dfu(self, program_mode, softdevice_size=0, bootloader_size=0, app_size=0): super(DfuTransportBle, self).send_start_dfu(program_mode, softdevice_size, bootloader_size, app_size) image_size_packet = DfuTransport.create_image_size_packet(softdevice_size, bootloader_size, app_size) self._send_event(DfuEvent.PROGRESS_EVENT, progress=0, log_message="Setting up transfer...") try: logging.debug("Sending 'START DFU' command") self.send_control_data(DfuOpcodesBle.START_DFU, chr(program_mode)) logging.debug("Sending image size") self.send_packet_data(image_size_packet) self._wait_for_response(DfuOpcodesBle.START_DFU) except IllegalStateException: #If at first you don't succeed, try, try again. self.close() self.disconnected_event_received = False self.open() if not self.is_open(): raise IllegalStateException("Failed to open transport backend.") logging.debug("Sending 'START DFU' command") self.send_control_data(DfuOpcodesBle.START_DFU, chr(program_mode)) logging.debug("Sending image size") self.send_packet_data(image_size_packet) self._wait_for_response(DfuOpcodesBle.START_DFU)
def send_start_dfu(self, program_mode, softdevice_size=0, bootloader_size=0, app_size=0): super(DfuTransportBle, self).send_start_dfu(program_mode, softdevice_size, bootloader_size, app_size) image_size_packet = DfuTransport.create_image_size_packet( softdevice_size, bootloader_size, app_size) self._send_event(DfuEvent.PROGRESS_EVENT, progress=0, log_message="Setting up transfer...") try: self._start_dfu(program_mode, image_size_packet) except IllegalStateException: # We got disconnected. Try to send Start DFU again in case of buttonless dfu. self.close() self.open() if not self.is_open(): raise IllegalStateException( "Failed to reopen transport backend.") self._start_dfu(program_mode, image_size_packet)
def send_start_dfu(self, mode, softdevice_size=None, bootloader_size=None, app_size=None): super(DfuTransportSerial, self).send_start_dfu(mode, softdevice_size, bootloader_size, app_size) frame = int32_to_bytes(DFU_START_PACKET) frame += int32_to_bytes(mode) frame += DfuTransport.create_image_size_packet(softdevice_size, bootloader_size, app_size) packet = HciPacket(frame) self.send_packet(packet) time.sleep(DfuTransportSerial.SEND_START_DFU_WAIT_TIME)
def send_start_dfu(self, mode, softdevice_size=None, bootloader_size=None, app_size=None): super(DfuTransportSerial, self).send_start_dfu(mode, softdevice_size, bootloader_size, app_size) frame = [x for x in int32_to_bytes(DFU_START_PACKET)] frame += [x for x in int32_to_bytes(mode)] frame += [x for x in DfuTransport.create_image_size_packet(softdevice_size, bootloader_size, app_size)] packet = HciPacket(frame) self.send_packet(packet) self.sd_size = softdevice_size self.total_size = softdevice_size+bootloader_size+app_size #logger.info("Wait after Init Packet %s second", self.get_erase_wait_time()) time.sleep( self.get_erase_wait_time() )
def send_start_dfu(self, program_mode, softdevice_size=0, bootloader_size=0, app_size=0): super(DfuTransportBle, self).send_start_dfu(program_mode, softdevice_size, bootloader_size, app_size) image_size_packet = DfuTransport.create_image_size_packet(softdevice_size, bootloader_size, app_size) self._send_event(DfuEvent.PROGRESS_EVENT, progress=0, log_message="Setting up transfer...") try: self._start_dfu(program_mode, image_size_packet) except IllegalStateException: # We got disconnected. Try to send Start DFU again in case of buttonless dfu. self.close() self.open() if not self.is_open(): raise IllegalStateException("Failed to reopen transport backend.") self._start_dfu(program_mode, image_size_packet)
def send_start_dfu(self, program_mode, softdevice_size=0, bootloader_size=0, app_size=0): super(DfuTransportBle, self).send_start_dfu(program_mode, softdevice_size, bootloader_size, app_size) image_size_packet = DfuTransport.create_image_size_packet( softdevice_size, bootloader_size, app_size) self._send_event(DfuEvent.PROGRESS_EVENT, progress=0, log_message="Setting up transfer...") try: logging.debug("Sending 'START DFU' command") self.send_control_data(DfuOpcodesBle.START_DFU, chr(program_mode)) logging.debug("Sending image size") self.send_packet_data(image_size_packet) self._wait_for_response(DfuOpcodesBle.START_DFU) except IllegalStateException: #If at first you don't succeed, try, try again. self.close() self.disconnected_event_received = False self.open() if not self.is_open(): raise IllegalStateException( "Failed to open transport backend.") logging.debug("Sending 'START DFU' command") self.send_control_data(DfuOpcodesBle.START_DFU, chr(program_mode)) logging.debug("Sending image size") self.send_packet_data(image_size_packet) self._wait_for_response(DfuOpcodesBle.START_DFU)