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}