# in progress
## new feature
## refactor
##  bug fix


# 2.0.20.1
## new feature
- Merged API from version 2.0.20.

## bug fix

## refactor


# 2.0.19.1
## new feature
- Merged API from version 2.0.19.

## bug fix

## refactor


# 2.0.18.1
## new feature
- Merged API from version 2.0.18. Adapt to single-port power supply firmware update.

## bug fix

## refactor


# 2.0.17.2
## new feature

## bug fix
- Fix the error where the Settings.ini file is not read when no parameters are passed.

## refactor


# 2.0.17.1
## new feature
- Add 5 parameters: Interface=USB, DeviceNum=0, IP=192.168.1.100, Port=5000, TimeOut=10000. If all 5 parameters are provided with values, use the parameters to open the device and update the firmware. If 5 parameters are incomplete or no parameters are provided, use the content of the local Setting.ini file. If the file does not exist, use the default parameters to open the device and update the firmware.

## bug fix

## refactor
- Merged API from version 2.0.17.


# 2.0.16.2
## new feature

## bug fix

## refactor
- During MCU update, add a delay after erasing flash before sending firmware package data.


# 2.0.16.1
## new feature

## bug fix

## refactor
- Merged API from version 2.0.16.


# 2.0.15.1
## new feature

## bug fix

## refactor
- Merged API from version 2.0.15. When updating multiple devices with Updater, pass DevNum to the underlying update function. For ETH devices, keep DevNum as 0. Note: When the Settings.ini file does not exist, multiple devices cannot be updated simultaneously. In this case, DevNum cannot be specified for multiple devices, which may cause USB contention and lead to update failure.


# 2.0.13.1
## new feature

## bug fix

## refactor
Merged API from version 2.0.13. Removed VISA dependency during Updater build, and excluded ptest files to avoid inability to use Updater when VISA is not installed.


# 2.0.11.4
## new feature

## bug fix

## refactor
Added BootSetting startup configuration to the firmware update function, supporting firmware updates after modifying ETH device parameters (such as IP). For ETH devices, the timeout for updating Root and Node firmware must be greater than or equal to 25 seconds.


# 2.0.11.3
## new feature

## bug fix

## refactor
- Merged latest API updates for version 2.0.11. Adjusted the device version query function to device_open_query. Allow updating ROOT firmware when return value is -8. Removed power-cycle log output after update completion.


# 2.0.11.2
## new feature

## bug fix

## refactor
- Merged latest API updates for version 2.0.11.


# 2.0.11.1
## new feature

## bug fix

## refactor
- Merged latest API updates for version 2.0.11.


# 2.0.10.2
## new feature

## bug fix
- Fixed incorrect status output when device_open_usb_updater returns a non-zero value.

## refactor
- Merged latest API updates for version 2.0.10. Adjusted update order: update Node and Root first, then FPGA and BUS.


# 2.0.10.1
## new feature
- Merged API from version 2.0.10. When Open returns -1, firmware update will not be executed. When Open returns -8, Node and Root firmware will not be updated.

## bug fix

## refactor


# 2.0.7.3
## new feature
- Added -y option to allow firmware update to proceed without key press confirmation.

## bug fix
- Adjusted device open and version query process: use the wrapped device_open_usb_updater interface and call device_close to release resources after opening.

## refactor
- h2_Updater merged API from version 2.0.7. Released latest firmware versions: FPGA (2.0.4), BUS (2.0.1), Node_MC (2.0.4), Root_MCU (2.0.3). Note: Node_MC (2.0.4) and Root_MCU (2.0.3) are paired versions. Do not mix MCU firmware arbitrarily.


# 2.0.6
## new feature

## bug fix

## refactor
- h2_Updater merged API from version 2.0.6. No changes to Updater.


# 2.0.4.1
## new feature
- Added Updater based on API version 2.0.4. Update sequence: FPGA (2.0.2), BUS (2.0.1), Node_MC (1.0.4), Root_MCU (2.0.1). Note: Node_MC (1.0.4) and Root_MCU (2.0.1) are paired versions. Do not mix MCU firmware arbitrarily.

## bug fix

## refactor