#ifndef PCCU_BAT_LINK_MANAGER_H #define PCCU_BAT_LINK_MANAGER_H #include "LinkManager.h" #include "../protocol/BatProtocol.h" namespace ccu { //============================================================================ // BatLinkManager:面向锂电池组(动力/仪表,协议一致)的链路。 // // - 本地监听:接收电池状态反馈的端口(动力/仪表各自独立端口,可配置) // - 发送目标:锂电池组(默认 动力 192.168.100.137:7000 / 仪表 192.168.100.136:7000) // 地址端口均可由 .moos 配置覆盖。 //============================================================================ class BatLinkManager : public LinkManager { public: BatLinkManager(BatRole role, long localPort, const std::string& batHost, long batPort) : LinkManager((role == BatRole::Dyn) ? "bat_dyn" : "bat_ins", localPort), m_role(role), m_batHost(batHost), m_batPort(batPort) { registerBatMessages(registry()); } BatRole role() const { return m_role; } void setBatAddress(const std::string& host, long port) { m_batHost = host; m_batPort = port; } const std::string& batHost() const { return m_batHost; } long batPort() const { return m_batPort; } protected: std::string defaultRemoteHost() const override { return m_batHost; } long defaultRemotePort() const override { return m_batPort; } private: BatRole m_role; std::string m_batHost; long m_batPort; }; } // namespace ccu #endif // PCCU_BAT_LINK_MANAGER_H