Skip to main content

rsiot/components/cmp_linux_uart_slave/
config.rs

1use std::time::Duration;
2
3use crate::{
4    components_config::uart_general::{Baudrate, DataBits, Parity, StopBits},
5    message::MsgDataBound,
6};
7
8/// Конфигурация для компонента cmp_linux_uart_slave
9#[derive(Clone)]
10pub struct Config<TMsg>
11where
12    TMsg: MsgDataBound,
13{
14    /// Название порта
15    ///
16    /// Примеры:
17    ///
18    /// ```
19    /// port: "/dev/ttyUSB0"
20    /// port: "/dev/ttyAMA0"
21    /// ```
22    pub port: &'static str,
23
24    /// Скорость сетевого обмена
25    pub baudrate: Baudrate,
26
27    /// Кол-во бит данных
28    pub data_bits: DataBits,
29
30    /// Бит четности
31    pub parity: Parity,
32
33    /// Кол-во стоповых бит
34    pub stop_bits: StopBits,
35
36    /// Время ожидания данных в буфере
37    pub timeout: Duration,
38
39    /// # Пример
40    ///
41    /// ```rust
42    /// fn_output: |_| vec![]
43    /// ```
44    pub fn_output: fn(&[u8]) -> Result<Option<TMsg>, anyhow::Error>,
45}