pCCU 锂电池页新增 BCU 断路器控制(0x10XX81FF 经 pCanBridge 下行 CAN 总线)
- CanBms: bcuCtrlCanId(0x10XX81FF) + buildBcuRelayCtrlData(02 00 总正 总负 FF*4) - SystemData: BcuCtrlCmd 下行队列(Web线程入队->Iterate/MOOS线程出队Notify) + 下发统计 - CCU: /api/bcu_ctrl(addr/action 或 pos/neg, 校验地址01h~36h) + Iterate 经 MOOS CAN_TX_0x* 下发 - pCanBridge 变双向透传: 订阅 CAN_TX_0x*,CanEndpoint::sendFrame(13字节CANET帧,TCP写,互斥保护) - 网页: 每BCU节点断路器闭合/断开按钮(confirm确认) + 下发统计卡片 - 测试: pccuTest 控制帧编码用例(183项);集成测试新增假CANET服务器验证完整下行链路(闭合/断开/非法地址)
This commit is contained in:
@@ -520,6 +520,25 @@ static void testRcuRegistry() {
|
||||
CHECK(gotName == "pm_status");
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// 13. BCU 断路器控制帧(0x10XX81FF 下行)
|
||||
static void testBcuCtrlFrame() {
|
||||
// CAN ID:0x10 XX 81 FF,XX=节点地址
|
||||
CHECK(bcuCtrlCanId(1) == 0x100181FFu);
|
||||
CHECK(bcuCtrlCanId(54) == 0x103681FFu);
|
||||
|
||||
// 数据域:02 00 总正 总负 FF*4
|
||||
uint8_t d[8];
|
||||
buildBcuRelayCtrlData(1, 1, d);
|
||||
CHECK(d[0] == 0x02 && d[1] == 0x00);
|
||||
CHECK(d[2] == 0x01 && d[3] == 0x01);
|
||||
CHECK(d[4] == 0xFF && d[5] == 0xFF && d[6] == 0xFF && d[7] == 0xFF);
|
||||
buildBcuRelayCtrlData(0, 0, d);
|
||||
CHECK(d[2] == 0x00 && d[3] == 0x00);
|
||||
buildBcuRelayCtrlData(1, 0, d);
|
||||
CHECK(d[2] == 0x01 && d[3] == 0x00);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
int main() {
|
||||
testFrameLengths();
|
||||
@@ -535,6 +554,7 @@ int main() {
|
||||
testDisRoundTrip();
|
||||
testRegistryLengthDispatch();
|
||||
testRcuRegistry();
|
||||
testBcuCtrlFrame();
|
||||
|
||||
std::printf("\n==== pccuTest: %d passed, %d failed ====\n", g_pass, g_fail);
|
||||
return g_fail == 0 ? 0 : 1;
|
||||
|
||||
Reference in New Issue
Block a user