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
/*!
Попытка разработать подход к программированию на Rust в стиле промышленных ПЛК.

## Структурные единицы

- Функциональные блоки (FB)

### Организационные блоки (OB)

Верхнеуровневые элементы. Выполнены в виде задач tokio. Параллельно можно запускать несколько OB. Поскольку задачи выполняются в разных потоках, нет необходимости вытеснять OB по приоритетам - они выполняются параллельно.

plc-rs не заботится, откуда данные приходят и куда отправляются. Входные данные поступают из брокера сообщений и передаются по каналу в OB. Выходные данные также отправляются в брокер сообщений. Коммуникации с устройствами также программируются во внешних крейтах.

### Функциональные блоки (FB)

Базовые компоненты для построения программы. Сохраняют состояние между вызовами.

*/

mod config;
mod fn_process;
mod new;
pub mod plc;
mod template;

pub use rsiot_component_core::ComponentCollection;
pub use rsiot_messages_core::IMessage;

/// Компонент для исполнения логики наподобие PLC.
///
/// См. [документацию](https://docs.rs/rsiot-plc/latest/)
pub mod cmp_plc {
    pub use crate::config::Config;
    pub use crate::new::new;
    pub use crate::plc;
}