pro3_control_panel/base/rt_settings.py
2025-12-15 09:23:52 +08:00

72 lines
4.9 KiB
Python

#! /usr/bin/env python
# -*- coding: utf-8 -*-
# Copyright (c) 2024 Realtek Semiconductor Corp.
# SPDX-License-Identifier: Apache-2.0
class RtSettings():
MIN_ROM_BOOT_DELAY_IN_MILLISECOND = 50
MIN_USB_ROM_BOOT_DELAY_IN_MILLISECOND = 200
MIN_USB_FLOADER_BOOT_DELAY_IN_MILLISECOND = 200
FLASH_PROTECTION_PROCESS_PROMPT = 0
FLASH_PROTECTION_PROCESS_TRY = 1
FLASH_PROTECTION_PROCESS_UNLOCK = 2
FLASH_PROTECTION_PROCESS_ABORT = 3
def __init__(self, **kwargs):
self.sense_packet_count = kwargs.get("SensePacketCount", 32)
self.request_retry_count = kwargs.get("RequestRetryCount", 3)
self.request_retry_interval_second = round(kwargs.get("RequestRetryIntervalInMillisecond", 10) / 1000, 2)
self.async_response_timeout_in_second = round(kwargs.get("AsyncResponseTimeoutInMilliseccond", 1000) / 1000, 2)
self.sync_response_timeout_in_second = round(kwargs.get("SyncResponseTimeoutInMillisecond", 1000) / 1000, 2)
self.baudrate_switch_delay_in_second = round(kwargs.get("BaudrateSwitchDelayInMillisecond", 200) / 1000, 2)
self.rom_boot_delay_in_second = round(max(kwargs.get("RomBootDelayInMillisecond", 100), self.MIN_ROM_BOOT_DELAY_IN_MILLISECOND) / 1000, 2)
self.usb_rom_boot_delay_in_second = round(max(kwargs.get("UsbRomBootDelayInMillisecond", 1000), self.MIN_USB_ROM_BOOT_DELAY_IN_MILLISECOND) / 1000, 2)
self.usb_floader_boot_delay_in_second = round(max(kwargs.get("UsbFloaderBootDelayInMillisecond", 1000), self.MIN_USB_FLOADER_BOOT_DELAY_IN_MILLISECOND) / 1000, 2)
self.switch_baudrate_at_floader = kwargs.get("SwitchBaudrateAtFloader", 0)
self.write_response_timeout_in_second = round(kwargs.get("WriteResponseTimeoutInMillisecond", 2000) / 1000, 2)
self.floader_boot_delay_in_second = round(kwargs.get("FloaderBootDelayInMillisecond", 1000) / 1000, 2)
self.auto_switch_to_download_mode_with_dtr_rts = kwargs.get("AutoSwitchToDownloadModeWithDtrRts", 0)
self.auto_reset_device_with_dtr_rts = kwargs.get("AutoResetDeviceWithDtrRts", 0)
self.flash_protection_process = kwargs.get("FlashProtectionProcess", self.FLASH_PROTECTION_PROCESS_PROMPT)
self.erase_by_block = kwargs.get("EraseByBlock", 0)
self.program_config1 = kwargs.get("ProgramConfig1", 0)
self.program_config2 = kwargs.get("ProgramConfig2", 0)
self.disable_nand_access_with_uart = kwargs.get("DisableNandAccessWithUart", 0)
self.ram_download_padding_byte = kwargs.get("RamDownloadPaddingByte", 0x00)
self.auto_program_spic_addr_mode_4byte = kwargs.get("AutoProgramSpicAddrMode4Byte", 0)
self.auto_switch_to_download_mode_with_dtr_rts_file = kwargs.get("AutoSwitchToDownloadModeWithDtrRtsTimingFile", "Reburn.cfg")
self.auto_reset_device_with_dtr_rts_file = kwargs.get("AutoResetDeviceWithDtrRtsTimingFile", "Reset.cfg")
self.post_process = kwargs.get("PostProcess", "RESET")
def __repr__(self):
profile_dict = {
"SensePacketCount": self.sense_packet_count,
"RequestRetryCount": self.request_retry_count,
"RequestRetryIntervalInMillisecond": int(self.request_retry_interval_second * 1000),
"AsyncResponseTimeoutInMilliseccond": int(self.async_response_timeout_in_second * 1000),
"SyncResponseTimeoutInMillisecond": int(self.sync_response_timeout_in_second * 1000),
"BaudrateSwitchDelayInMillisecond": int(self.baudrate_switch_delay_in_second * 1000),
"RomBootDelayInMillisecond": int(self.rom_boot_delay_in_second * 1000),
"UsbRomBootDelayInMillisecond": int(self.usb_rom_boot_delay_in_second * 1000),
"UsbFloaderBootDelayInMillisecond": int(self.usb_floader_boot_delay_in_second * 1000),
"SwitchBaudrateAtFloader": self.switch_baudrate_at_floader,
"WriteResponseTimeoutInMillisecond": int(self.write_response_timeout_in_second * 1000),
"FloaderBootDelayInMillisecond": int(self.floader_boot_delay_in_second * 1000),
"AutoSwitchToDownloadModeWithDtrRts": self.auto_switch_to_download_mode_with_dtr_rts,
"AutoResetDeviceWithDtrRts": self.auto_reset_device_with_dtr_rts,
"FlashProtectionProcess": self.flash_protection_process,
"EraseByBlock": self.erase_by_block,
"ProgramConfig1": self.program_config1,
"ProgramConfig2": self.program_config2,
"DisableNandAccessWithUart": self.disable_nand_access_with_uart,
"RamDownloadPaddingByte": self.ram_download_padding_byte,
"AutoProgramSpicAddrMode4Byte": self.auto_program_spic_addr_mode_4byte,
"AutoSwitchToDownloadModeWithDtrRtsTimingFile": self.auto_switch_to_download_mode_with_dtr_rts_file,
"AutoResetDeviceWithDtrRtsTimingFile": self.auto_reset_device_with_dtr_rts_file,
"PostProcess": self.post_process
}
return profile_dict