rsiot/components/cmp_plc/plc/library/drives/valve/
q.rs1use serde::{Deserialize, Serialize};
2
3pub use super::super::select_mode::QMode;
4
5#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
7pub struct Q {
8    pub control: bool,
10    pub hmi_status: QHmiStatus,
12}
13
14#[derive(Clone, Copy, Debug, Default, Deserialize, PartialEq, Serialize)]
16pub struct QHmiStatus {
17    pub state: QState,
19
20    pub mode: QMode,
22
23    pub hmi_permission: QHmiPermission,
25
26    pub control: bool,
28}
29
30#[derive(Clone, Copy, Debug, Default, Deserialize, PartialEq, Serialize)]
32pub struct QHmiPermission {
33    pub man_start: bool,
35    pub man_stop: bool,
37
38    pub mode_auto: bool,
40    pub mode_man: bool,
42    pub mode_local: bool,
44    pub mode_oos: bool,
46}
47
48#[derive(Clone, Copy, Debug, Default, PartialEq, Deserialize, Serialize)]
50pub enum QState {
51    #[default]
53    Closed,
54
55    Opening,
57
58    Opened,
60
61    Closing,
63
64    Alarm,
66}