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

1use serde::{Deserialize, Serialize};
2
3/// Входная структура
4#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
5pub struct I {
6    /// Выбор источника команд выбора (`sp_hmi_en`, `sp_plc_en`):
7    /// false => из hmi
8    /// true => из plc
9    pub sp_en_source: bool,
10    /// Активировать задание из hmi
11    pub sp_hmi_en: bool,
12    /// Активировать задание из plc
13    pub sp_plc_en: bool,
14    /// Задание из plc
15    pub sp_plc: f64,
16
17    /// Команда с hmi
18    pub hmi_command: IHmiCommand,
19}
20
21/// Команда с hmi
22#[allow(non_camel_case_types)]
23#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
24pub enum IHmiCommand {
25    /// Нет команды
26    #[default]
27    no_command,
28
29    /// Активировать задание из hmi
30    sp_hmi_en,
31    /// Активировать задание из plc
32    sp_plc_en,
33    /// Задание из hmi
34    sp_hmi(f64),
35}