feat(gateway_knx): add TP-UART control and initialization functionality

Signed-off-by: Tony <tonylu@tony-cloud.com>
This commit is contained in:
Tony
2026-05-11 02:40:31 +08:00
parent 1a8ee06ec1
commit bf23cf0b79
2 changed files with 187 additions and 5 deletions
@@ -133,6 +133,7 @@ class GatewayKnxTpIpRouter {
void closeSockets();
bool configureSocket();
bool configureTpUart();
bool initializeTpUart();
void handleUdpDatagram(const uint8_t* data, size_t len, const ::sockaddr_in& remote);
void handleRoutingIndication(const uint8_t* body, size_t len);
void handleTunnellingRequest(const uint8_t* body, size_t len, const ::sockaddr_in& remote);
@@ -151,6 +152,7 @@ class GatewayKnxTpIpRouter {
const ::sockaddr_in& remote);
void sendRoutingIndication(const uint8_t* data, size_t len);
void pollTpUart();
void handleTpUartControlByte(uint8_t byte);
void handleTpTelegram(const uint8_t* data, size_t len);
void forwardCemiToTp(const uint8_t* data, size_t len);
@@ -168,6 +170,10 @@ class GatewayKnxTpIpRouter {
bool tunnel_connected_{false};
::sockaddr_in tunnel_remote_{};
std::vector<uint8_t> tp_rx_frame_;
std::vector<uint8_t> tp_last_sent_telegram_;
TickType_t tp_uart_last_byte_tick_{0};
bool tp_uart_extended_frame_{false};
bool tp_uart_online_{false};
std::string last_error_;
};