rsiot_components_config/modbus_client/
config.rs

1use std::net::IpAddr;
2
3use super::{InputConfig, PeriodicConfig};
4
5#[derive(Clone, Debug)]
6pub struct Config<TMessage> {
7    /// true - разрешение работы
8    pub enabled: bool,
9
10    pub client_type: ClientType,
11
12    /// Адрес подчиненного устройства (обычно 1)
13    pub unit_id: u8,
14
15    /// Конфигурация запросов на основе входных сообщений
16    pub input_config: Vec<InputConfig<TMessage>>,
17
18    /// Конфигурация периодических запросов
19    pub periodic_config: Vec<PeriodicConfig<TMessage>>,
20}
21
22/// Конфигурация Modbus клиента
23#[derive(Clone, Debug)]
24pub enum ClientType {
25    /// Вариант для Modbus TCP
26    Tcp(TcpClientType),
27    /// Вариант для Modbus RTU
28    Rtu,
29}
30
31/// Конфигурация Modbus TCP клиента
32#[derive(Clone, Debug)]
33pub struct TcpClientType {
34    /// IP-адрес устройства
35    pub host: IpAddr,
36
37    /// Порт устройства (обычно 502)
38    pub port: u16,
39}