rsiot/components/cmp_livecounter/
config.rs

1use std::time::Duration;
2
3use crate::message::{Message, MsgDataBound};
4
5pub type FnFindPartnerCounter<TMsg> = fn(&Message<TMsg>) -> Option<u8>;
6pub type FnCheckPartnerCounter<TMsg> = fn(bool) -> Message<TMsg>;
7pub type FnGenerateSelfCounter<TMsg> = fn(u8) -> Option<Message<TMsg>>;
8
9/// Конфигурация cmp_check_livecounter
10#[derive(Clone)]
11pub struct Config<TMsg>
12where
13    TMsg: MsgDataBound,
14{
15    /// Функция для формирования сообщения о собственном счетчике
16    pub fn_generate_self_counter: FnGenerateSelfCounter<TMsg>,
17
18    /// Период создания сообщения о собственном счетчике
19    pub generate_self_period: Duration,
20
21    /// Ищем сообщения со значением счетчика
22    ///
23    /// Заглушка: `|_| None`
24    pub fn_find_partner_counter: FnFindPartnerCounter<TMsg>,
25
26    /// Функция для формирования сообщения о наличии связи. В функцию передается булевое значение,
27    /// указывающее на наличие связи. true - есть связь, false - нет связи.
28    pub fn_check_partner_counter: FnCheckPartnerCounter<TMsg>,
29
30    /// Период проверки счетчика на наличие связи
31    pub check_partner_period: Duration,
32}