cat_dev/mion/proto/cgis/
update.rs1use std::fmt::{Display, Formatter, Result as FmtResult};
2
3#[derive(Clone, Copy, Debug, Hash, PartialEq, Eq)]
6pub struct MIONFirmwareVersions {
7 fw: [u8; 3],
9 fpga: u32,
12}
13impl MIONFirmwareVersions {
14 #[must_use]
15 pub const fn from_versions(fw: [u8; 3], fpga: u32) -> Self {
16 Self { fw, fpga }
17 }
18
19 #[must_use]
20 pub const fn get_mion_version(&self) -> [u8; 3] {
21 self.fw
22 }
23 #[must_use]
25 pub fn displayable_mion_version(&self) -> String {
26 format!("0.{:02}.{}.{}", self.fw[0], self.fw[1], self.fw[2])
27 }
28
29 #[must_use]
30 pub const fn get_fpga_version(&self) -> u32 {
31 self.fpga
32 }
33 #[must_use]
35 pub fn displayable_fpga_version(&self) -> String {
36 format!("{:02X}", self.fpga)
37 }
38}
39impl Display for MIONFirmwareVersions {
40 fn fmt(&self, fmt: &mut Formatter<'_>) -> FmtResult {
41 write!(
42 fmt,
43 "MION: {} / FPGA: {}",
44 self.displayable_mion_version(),
45 self.displayable_fpga_version(),
46 )
47 }
48}