Added minimum firmware version warning for WCH-LinkE debug tools

This commit is contained in:
Nav
2025-01-28 00:00:18 +00:00
parent 35e059c1bf
commit ff7d7ae56f
3 changed files with 14 additions and 12 deletions

View File

@@ -52,10 +52,8 @@ namespace DebugToolDrivers::Wch::Protocols::WchLink
};
return DeviceInfo{
WchFirmwareVersion{response.payload[0], response.payload[1]},
response.payload.size() >= 4
? variantsById.valueAt(response.payload[2])
: std::nullopt
.firmwareVersion = WchFirmwareVersion{.major = response.payload[0], .minor = response.payload[1]},
.variant = response.payload.size() >= 4 ? variantsById.valueAt(response.payload[2]) : std::nullopt
};
}

View File

@@ -11,13 +11,7 @@ namespace DebugToolDrivers::Wch
std::uint8_t major = 0;
std::uint8_t minor = 0;
WchFirmwareVersion() = default;
WchFirmwareVersion(std::uint8_t major, std::uint8_t minor)
: major{major}
, minor{minor}
{}
std::string toString() const {
[[nodiscard]] std::string toString() const {
return std::to_string(this->major) + "." + std::to_string(this->minor);
}

View File

@@ -82,7 +82,17 @@ namespace DebugToolDrivers::Wch
}
void WchLinkBase::postInit() {
Logger::info("WCH-Link firmware version: " + this->getDeviceInfo().firmwareVersion.toString());
const auto& deviceInfo = this->getDeviceInfo();
constexpr auto MIN_VERSION = WchFirmwareVersion{.major = 2, .minor = 9};
if (deviceInfo.firmwareVersion < MIN_VERSION) {
Logger::warning(
"WCH-Link firmware version (" + deviceInfo.firmwareVersion.toString() + ") may not be compatible with"
" Bloom. A minimum version of " + MIN_VERSION.toString() + " is required."
);
}
Logger::info("WCH-Link firmware version: " + deviceInfo.firmwareVersion.toString());
}
bool WchLinkBase::isInitialised() const {