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}