def program_kp_boot_32u4_firmware_hex(self, device, file_name): try: device.close() boot_dev = kp_boot_32u4.BootloaderDevice(device) with boot_dev: boot_dev.write_flash_hex(file_name) boot_dev.reset_mcu() except Exception as err: error_msg_box("Error programming the bootloader to hex file: " + str(err))
def resetDeviceHandler(self, device_path): device = self.tryOpenDevicePath(device_path) if device == None: return if is_keyplus_device(device): protocol.reset_device(device) elif is_xusb_bootloader_device(device): xusbboot.reset(device) elif is_kp_boot_device(device): device.close() dev = kp_boot_32u4.BootloaderDevice(device) with dev: dev.reset_mcu() elif is_nrf24lu1p_bootloader_device(device): print("TODO: reset: ", device_path, file=sys.stderr) else: print("Can't reset device: ", device_path, file=sys.stderr)
def setup_kp_boot_32u4_label(self): try: boot_dev = kp_boot_32u4.BootloaderDevice(self.device) except easyhid.HIDException as err: # Incase opening the device fails raise Exception( "Error Opening Device: {} | {}:{}".format( self.device.path, self.device.vendor_id, self.device.product_id), ) self.label.setText('kp_boot_32u4 - v{}\n' 'MCU: {}\n' 'Flash size: {} EEPROM size: {}\n' 'Bootloader size: {}\n'.format( boot_dev.version, boot_dev.chip_name, boot_dev.flash_size, boot_dev.eeprom_size, boot_dev.boot_size, ))