dash7/file/
firmware_version.rs

1use deku::prelude::*;
2
3use crate::utils::{read_string, write_string};
4
5use super::SystemFile;
6
7// TODO: fixed length strings would be better here
8#[derive(DekuRead, DekuWrite, Debug, Clone, PartialEq)]
9pub struct FirmwareVersion {
10    pub major: u8,
11    pub minor: u8,
12
13    #[deku(
14        reader = "read_string::<6>(deku::rest)",
15        writer = "write_string::<6>(deku::output, &self.application_name)"
16    )]
17    pub application_name: String,
18
19    #[deku(
20        reader = "read_string::<7>(deku::rest)",
21        writer = "write_string::<7>(deku::output, &self.git_sha1)"
22    )]
23    pub git_sha1: String,
24}
25
26impl SystemFile for FirmwareVersion {
27    const ID: u8 = 0x02;
28    const SIZE: u32 = 17;
29}