feat(gateway): enhance UART configuration validation for Modbus and KNX

Signed-off-by: Tony <tonylu@tony-cloud.com>
This commit is contained in:
Tony
2026-05-11 03:44:14 +08:00
parent bf23cf0b79
commit e94945fc0f
4 changed files with 286 additions and 36 deletions
@@ -3,6 +3,7 @@
#include <cstdint>
#include <memory>
#include <optional>
#include <set>
#include <string>
#include <vector>
@@ -31,6 +32,7 @@ struct GatewayBridgeServiceConfig {
UBaseType_t modbus_task_priority{4};
std::optional<GatewayModbusConfig> default_modbus_config;
bool allow_modbus_uart0{false};
bool allow_knx_uart0{false};
std::vector<int> reserved_uart_ports;
uint32_t bacnet_task_stack_size{8192};
UBaseType_t bacnet_task_priority{5};
@@ -63,6 +65,10 @@ class GatewayBridgeService {
ChannelRuntime* findRuntime(uint8_t gateway_id);
const ChannelRuntime* findRuntime(uint8_t gateway_id) const;
void collectUsedRuntimeResources(uint8_t except_gateway_id,
std::set<uint16_t>* modbus_tcp_ports,
std::set<uint16_t>* knx_udp_ports,
std::set<int>* serial_uarts) const;
DaliDomainService& dali_domain_;
GatewayCache& cache_;