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