rsiot/components_config/spi_master/
fieldbus_request.rs1use std::time::{Duration, Instant};
2
3use crate::components_config::master_device::RequestResponseBound;
4
5#[derive(Clone, Debug)]
7pub struct FieldbusRequest {
8 pub request_creation_time: Instant,
12
13 pub request_kind: u8,
17
18 pub operations: Vec<Operation>,
20}
21
22impl FieldbusRequest {
23 pub fn new(request_kind: impl Into<u8>, operations: Vec<Operation>) -> Self {
25 Self {
26 request_creation_time: Instant::now(),
27 request_kind: request_kind.into(),
28 operations,
29 }
30 }
31}
32
33#[derive(Clone, Debug)]
35pub enum Operation {
36 Delay(Duration),
38
39 WriteRead(Vec<u8>, u8),
41
42 Write(Vec<u8>),
44}
45
46impl RequestResponseBound for FieldbusRequest {}