rsiot/components/cmp_plc/plc/library/drives/valve_analog/
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 hmi_status: QHmiStatus,
10
11    pub mv_plc_act: bool,
13    pub mv_hmi_act: bool,
15    pub mv: f64,
17}
18
19#[derive(Clone, Copy, Debug, Default, Deserialize, PartialEq, Serialize)]
21pub struct QHmiStatus {
22    pub state: QState,
24
25    pub mode: QMode,
27
28    pub mv_plc_act: bool,
30    pub mv_hmi_act: bool,
32    pub mv: f64,
34
35    pub rbk: f64,
37
38    pub hmi_permission: QHmiPermission,
40}
41
42#[derive(Clone, Copy, Debug, Default, Deserialize, PartialEq, Serialize)]
44pub struct QHmiPermission {
45    pub man_start: bool,
47    pub man_stop: bool,
49
50    pub mode_auto: bool,
52    pub mode_man: bool,
54    pub mode_local: bool,
56    pub mode_oos: bool,
58
59    pub mv_hmi_en: bool,
61    pub mv_plc_en: bool,
63    pub mv_hmi_plc_en: bool,
65    pub mv_hmi: bool,
67}
68
69#[derive(Clone, Copy, Debug, Default, PartialEq, Deserialize, Serialize)]
71pub enum QState {
72    #[default]
74    Closed,
75
76    Opening,
78
79    Opened,
81
82    Closing,
84
85    Alarm,
87}