예제 #1
0
 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))
예제 #2
0
    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)
예제 #3
0
    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,
                           ))