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

1use serde::{Deserialize, Serialize};
2
3/// Входная структура
4#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
5pub struct I {
6    /// Источник выбора режима:
7    /// - false => из hmi,
8    /// - true => из plc
9    pub mode_source: bool,
10    /// Переключение в режим auto из контроллера
11    pub mode_auto: bool,
12    /// Переключение в режим manual из контроллера
13    pub mode_man: bool,
14    /// Переключение в режим local из контроллера
15    pub mode_local: bool,
16    /// Переключение в режим oos из контроллера
17    pub mode_oos: bool,
18
19    /// Команда с hmi
20    pub hmi_command: IHmiCommand,
21}
22
23/// Команда с hmi
24#[allow(non_camel_case_types)]
25#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
26pub enum IHmiCommand {
27    /// Нет команды - по-умолчанию
28    #[default]
29    no_command,
30
31    /// Переключение в режим man из hmi
32    mode_man,
33    /// Переключение в режим auto из hmi
34    mode_auto,
35    /// Переключение в режим local из hmi
36    mode_local,
37    /// Переключение в режим oos из hmi
38    mode_oos,
39}