锂电池通信(docs/锂电池协议20230324.docx): - 协议层 BatProtocol:自检0x0000(2B)/设备控制0x0001(17B)/电池组状态0x0003(80B)/ 电池包报警0x0004(68B),uint32字节和校验、小端 - 链路层 BatLinkManager:动力/仪表锂电池独立UDP链路,本机监听与远端IP端口 均由.moos配置(dyn_bat_*/ins_bat_*/bat_work_condition) - SystemData/SnapshotBuilder/网页:电池数据按动力/仪表归类展示(运行状态/接触器 电气量/电池包电压温度/报警),收发帧落库SQLite,网页新增电池标签页 操作->指令下发(PowerCoordinator): - 操作接口:自检/上下电(母线接触器55H接通77H断开,含预充)/功率设定(0~500kW)/ 电池切换(低压->高压6步、高压->低压5步,按协议时序) - 步骤引擎:每电池独立步骤队列,下发->状态反馈确认->超时兜底;周期1s心跳控制帧 - PM操控指令insBatCmd/dynBatCmd/dynBatPower自动映射为电池操作 电源协调状态机骨架(CoordFsm, TinyFSM): - 事件Tick/PmControl/StepDone + 状态Normal/Switching/Fault,react均为TODO占位 - 当前未接线(无start/dispatch调用,运行行为与接入前一致),CoordFsm.hpp头部附接线指南 测试与部署: - pccuTest新增电池协议编解码/帧长/链路分发用例(175项通过);集成测试覆盖电池 心跳、启停映射(0x10->0x55/0x20->0x77)、状态落库;同步pccu_it.moos与ws_check - h100.moos与pCCU.moos增加锂电池链路配置;归档锂电池协议文档
48 lines
1.5 KiB
C++
48 lines
1.5 KiB
C++
#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
|