rsiot/components/cmp_plc/plc/library/drives/motor/
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 start: bool,
13}
14
15#[derive(Clone, Copy, Debug, Default, Deserialize, PartialEq, Serialize)]
17pub struct QHmiStatus {
18    pub state: QState,
20
21    pub mode: QMode,
23
24    pub hmi_permission: QHmiPermission,
26
27    pub start: bool,
29}
30
31#[derive(Clone, Copy, Debug, Default, Deserialize, PartialEq, Serialize)]
33pub struct QHmiPermission {
34    pub man_start: bool,
36    pub man_stop: bool,
38
39    pub mode_auto: bool,
41    pub mode_man: bool,
43    pub mode_local: bool,
45    pub mode_oos: bool,
47}
48
49#[derive(Clone, Copy, Debug, Default, PartialEq, Deserialize, Serialize)]
51pub enum QState {
52    #[default]
54    Stop,
55
56    Start,
58
59    Alarm,
61}