rsiot/components/cmp_plc/plc/library/drives/select_mode/
q.rs

1use serde::{Deserialize, Serialize};
2
3/// Область памяти output
4#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
5pub struct Q {
6    /// Режим работы
7    pub mode: QMode,
8
9    /// Статус для вывода на hmi
10    pub hmi_status: QHmiStatus,
11}
12
13/// Статут для вывода на hmi
14#[derive(Clone, Copy, Debug, Default, Deserialize, PartialEq, Serialize)]
15pub struct QHmiStatus {
16    /// Режим работы
17    pub mode: QMode,
18    /// Разрешения для работы с hmi
19    pub hmi_permission: QHmiPermission,
20}
21
22/// Разрешения для работы с hmi
23#[derive(Clone, Copy, Debug, Default, Deserialize, PartialEq, Serialize)]
24pub struct QHmiPermission {
25    /// Разрешение переключения в режим auto
26    pub mode_auto: bool,
27    /// Разрешение переключения в режим manual
28    pub mode_man: bool,
29    /// Разрешение переключения в режим local
30    pub mode_local: bool,
31    /// Разрешение переключения в режим oos
32    pub mode_oos: bool,
33}
34
35/// Режим работы
36#[derive(Clone, Copy, Debug, Default, PartialEq, Deserialize, Serialize)]
37pub enum QMode {
38    /// Автоматический режим
39    #[default]
40    Auto,
41
42    /// Местный
43    Local,
44
45    /// Ручной
46    Manual,
47
48    /// Out of service - выведен из эксплуатации
49    Oos,
50}