#ifndef PCCU_RCU_LINK_MANAGER_H #define PCCU_RCU_LINK_MANAGER_H #include "LinkManager.h" #include "../protocol/PmProtocol.h" #include "../protocol/DisProtocol.h" namespace ccu { //============================================================================ // RcuLinkManager:面向真实 CCU 设备的链路(配电桥接)。 // // - 本地监听:rcu_local_port(默认 7100),接收真实CCU 上报的数据 // - 发送目标:真实CCU(默认占位 192.168.0.200:7000,.moos 可配) // // 注册的消息: // - 配电反馈 0x0005~0x0008(Sum8):真实CCU 上报的配电状态, // 由 DisBridge 原帧转发给 pPowerManger 并解码显示 // - 配电指令 0x0001~0x0004(Sum8):真实CCU 的指令回显仅识别,不转发 // - PM 消息 0x0001~0x0004(Sum32):真实CCU 状态报文 0x0004 仅解码 // 显示,不转发(避免与 pCCU 自身模拟的状态报文冲突) //============================================================================ class RcuLinkManager : public LinkManager { public: RcuLinkManager(long localPort, const std::string& rcuHost, long rcuPort) : LinkManager("rcu", localPort), m_rcuHost(rcuHost), m_rcuPort(rcuPort) { registerDisFbMessages(registry()); registerDisCmdMessages(registry()); registerPmMessages(registry()); } void setRcuAddress(const std::string& host, long port) { m_rcuHost = host; m_rcuPort = port; } const std::string& rcuHost() const { return m_rcuHost; } long rcuPort() const { return m_rcuPort; } protected: std::string defaultRemoteHost() const override { return m_rcuHost; } long defaultRemotePort() const override { return m_rcuPort; } private: std::string m_rcuHost; long m_rcuPort; }; } // namespace ccu #endif // PCCU_RCU_LINK_MANAGER_H