Automatically exit IAP mode on WCH-Link tools

This commit is contained in:
Nav
2024-12-08 23:33:07 +00:00
parent 1477719264
commit 3afcb65f31
11 changed files with 118 additions and 19 deletions

View File

@@ -20,6 +20,10 @@ namespace Usb
, deviceHandle(deviceHandle)
{}
UsbInterface::~UsbInterface() {
this->close();
}
void UsbInterface::init() {
Logger::debug("Claiming USB interface (number: " + std::to_string(this->interfaceNumber) + ")");
@@ -37,12 +41,14 @@ namespace Usb
void UsbInterface::close() {
if (this->claimed) {
const auto statusCode = ::libusb_release_interface(this->deviceHandle, this->interfaceNumber);
if (statusCode != 0) {
if (statusCode != 0 && statusCode != ::LIBUSB_ERROR_NO_DEVICE) {
Logger::error(
"Failed to release USB interface (number: " + std::to_string(this->interfaceNumber)
+ ") - error code: " + std::to_string(statusCode)
);
}
this->claimed = false;
}
}