rsiot/drivers_i2c/pm_di16/
config.rs

1use std::time::Duration;
2
3use crate::{
4    drivers_i2c::I2cSlaveAddress,
5    message::{Message, MsgDataBound},
6};
7
8pub type FnOutput<TMsg> = fn(bool) -> Option<Message<TMsg>>;
9
10/// Настройка модулуля коммуникации с модулем PM-DI16
11#[derive(Clone)]
12pub struct Config<TMsg>
13where
14    TMsg: MsgDataBound,
15{
16    /// Адрес модуля
17    pub address: I2cSlaveAddress,
18
19    /// Функция преобразования значений входов в исходящие сообщения для входа a.0
20    pub fn_output_a_0: FnOutput<TMsg>,
21    /// Функция преобразования значений входов в исходящие сообщения для входа a.1
22    pub fn_output_a_1: FnOutput<TMsg>,
23    /// Функция преобразования значений входов в исходящие сообщения для входа a.2
24    pub fn_output_a_2: FnOutput<TMsg>,
25    /// Функция преобразования значений входов в исходящие сообщения для входа a.3
26    pub fn_output_a_3: FnOutput<TMsg>,
27    /// Функция преобразования значений входов в исходящие сообщения для входа a.4
28    pub fn_output_a_4: FnOutput<TMsg>,
29    /// Функция преобразования значений входов в исходящие сообщения для входа a.5
30    pub fn_output_a_5: FnOutput<TMsg>,
31    /// Функция преобразования значений входов в исходящие сообщения для входа a.6
32    pub fn_output_a_6: FnOutput<TMsg>,
33    /// Функция преобразования значений входов в исходящие сообщения для входа a.7
34    pub fn_output_a_7: FnOutput<TMsg>,
35
36    /// Функция преобразования значений входов в исходящие сообщения для входа b.0
37    pub fn_output_b_0: FnOutput<TMsg>,
38    /// Функция преобразования значений входов в исходящие сообщения для входа b.1
39    pub fn_output_b_1: FnOutput<TMsg>,
40    /// Функция преобразования значений входов в исходящие сообщения для входа b.2
41    pub fn_output_b_2: FnOutput<TMsg>,
42    /// Функция преобразования значений входов в исходящие сообщения для входа b.3
43    pub fn_output_b_3: FnOutput<TMsg>,
44    /// Функция преобразования значений входов в исходящие сообщения для входа b.4
45    pub fn_output_b_4: FnOutput<TMsg>,
46    /// Функция преобразования значений входов в исходящие сообщения для входа b.5
47    pub fn_output_b_5: FnOutput<TMsg>,
48    /// Функция преобразования значений входов в исходящие сообщения для входа b.6
49    pub fn_output_b_6: FnOutput<TMsg>,
50    /// Функция преобразования значений входов в исходящие сообщения для входа b.7
51    pub fn_output_b_7: FnOutput<TMsg>,
52
53    /// Период чтения входов
54    pub fn_output_period: Duration,
55}