use std::net::SocketAddr;
use std::ops::RangeInclusive;
use std::time::Duration;
use rusty_modbus_tcp::config::TcpServerConfig;
#[derive(Debug, Clone)]
pub struct GatewayConfig {
pub tcp_listen: SocketAddr,
pub routes: Vec<RouteEntry>,
pub serial_timeout: Duration,
pub max_tcp_connections: usize,
pub tcp_config: TcpServerConfig,
}
impl Default for GatewayConfig {
fn default() -> Self {
Self {
tcp_listen: "0.0.0.0:502".parse().unwrap(),
routes: Vec::new(),
serial_timeout: Duration::from_secs(1),
max_tcp_connections: 64,
tcp_config: TcpServerConfig::default(),
}
}
}
#[derive(Debug, Clone)]
pub struct RouteEntry {
pub unit_id_range: RangeInclusive<u8>,
pub backend_addr: SocketAddr,
}