#[derive(Debug, Clone, PartialEq, Eq)] pub struct TestFrame { pub header: [u8; 2], pub cmd: u8, pub length: usize, pub payload: Vec, pub checksum: u8, pub dts_ms: u64, } #[derive(Debug, Clone, PartialEq, Eq)] pub struct TactileAFrameMetaData { pub header: [u8; 2], pub payload_len: usize, pub device_addr: u8, pub extend_code: u8, pub func_code: u8, pub start_addr: u32, pub except_data_len: usize, pub checksum: u8, } #[derive(Debug, Clone, PartialEq, Eq)] pub struct TactileAReqFrame { pub meta: TactileAFrameMetaData, } #[derive(Debug, Clone, PartialEq, Eq)] pub struct TactileARepFrame { pub meta: TactileAFrameMetaData, pub status: TactileAFrameStatusCode, pub payload: Vec, pub dts_ms: u64, } #[derive(Debug, Clone, PartialEq, Eq)] pub enum TactileAFrameStatusCode { Success, Failure, } #[derive(Debug, Clone, PartialEq, Eq)] pub enum TactileAFrame { Req(TactileAReqFrame), Rep(TactileARepFrame), }