Skip to content
Snippets Groups Projects

Add firmware version consistency check in Rust API

Merged Samuel Tardieu requested to merge rust-firmware-consistency into main
+ 15
0
@@ -19,6 +19,10 @@ pub enum Error<I2cError> {
InvalidDuration(Duration),
#[cfg(feature = "controller")]
InvalidRawSpeed,
#[cfg(feature = "controller")]
InvalidVersion((u8, u8, u8)),
#[cfg(feature = "controller")]
UnknownFirmwareFound,
}
impl<I2CError: core::fmt::Display> core::fmt::Display for Error<I2CError> {
@@ -31,6 +35,17 @@ impl<I2CError: core::fmt::Display> core::fmt::Display for Error<I2CError> {
Error::InvalidDuration(d) => write!(f, "invalid duration {d:?}"),
#[cfg(feature = "controller")]
Error::InvalidRawSpeed => write!(f, "invalid raw speed -128"),
#[cfg(feature = "controller")]
Error::InvalidVersion((major, minor, patch)) => {
let (req_major, req_minor, req_patch) =
crate::controller::REQUIRED_FIRMWARE_VERSION;
write!(
f,
"invalid firmware version {major}.{minor}.{patch} (expected {req_major}.{req_minor}.{req_patch})",
)
}
#[cfg(feature = "controller")]
Error::UnknownFirmwareFound => write!(f, "unknown program found on controller"),
}
}
}
Loading