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}