rsiot/components/cmp_plc/plc/library/state_machine/
mod.rs

1//! Блок реализации машины состояния
2
3mod i;
4mod logic;
5mod q;
6mod s;
7#[cfg(test)]
8mod tests;
9
10pub use i::*;
11pub use q::*;
12pub use s::*;
13use serde::Serialize;
14
15use crate::components::cmp_plc::plc::{FbSystemData, FunctionBlockBase, IFunctionBlock};
16
17/// Блок реализации машины состояния
18pub type FB<TState> = FunctionBlockBase<I<TState>, Q<TState>, S<TState>>;
19
20impl<TState> IFunctionBlock<I<TState>, Q<TState>, S<TState>>
21    for FunctionBlockBase<I<TState>, Q<TState>, S<TState>>
22where
23    TState: Copy + Default + PartialEq + Serialize,
24{
25    fn logic(input: &mut I<TState>, stat: &mut S<TState>, system_data: &FbSystemData) -> Q<TState> {
26        logic::logic(input, stat, system_data)
27    }
28}