Skip to main content

rsiot/components/shared_tasks/cmp_linux_uart/
mod.rs

1//! Общие данные для компонентов cmp_linux_uart_master и cmp_linux_uart_slave
2
3use linux_embedded_hal::serialport;
4
5use crate::components_config::uart_general::{
6    Baudrate, DataBits, FieldbusRequest, FieldbusResponse, Parity, StopBits,
7};
8
9impl From<DataBits> for serialport::DataBits {
10    fn from(value: DataBits) -> Self {
11        match value {
12            DataBits::_5 => serialport::DataBits::Five,
13            DataBits::_6 => serialport::DataBits::Six,
14            DataBits::_7 => serialport::DataBits::Seven,
15            DataBits::_8 => serialport::DataBits::Eight,
16        }
17    }
18}
19
20impl From<Parity> for serialport::Parity {
21    fn from(value: Parity) -> Self {
22        match value {
23            Parity::None => serialport::Parity::None,
24            Parity::Even => serialport::Parity::Even,
25            Parity::Odd => serialport::Parity::Odd,
26        }
27    }
28}
29
30impl From<StopBits> for serialport::StopBits {
31    fn from(value: StopBits) -> Self {
32        match value {
33            StopBits::_1 => serialport::StopBits::One,
34            StopBits::_1p5 => unimplemented!("Stop bit 1.5 not implemented"),
35            StopBits::_2 => serialport::StopBits::Two,
36        }
37    }
38}