Commit Graph
33 Commits
Author SHA1 Message Date
zjk 5b8f0b1421 锂电池改用 BCU-MBMS CAN 协议按节点解析 + bcu_node 解析数据落库 + 板卡对时脚本
- pCCU/CanBms:按《04KT38电池BCU-MBMS通信(CAN)定义》重写解码,
  BmsStatus 单状态模型改为 BcuNodeStatus 多节点模型(0x10XX00YY,
  节点地址 01~36h),支持 0x0000 电压/电流/SOC/告警码、0x0001 单体
  电压、0x0002 单体温度、0x0003 继电器、0x0006 绝缘/端口电压、
  0x0010 告警位(附录1 中文码表)六类报文
- 平均单体温度偏移修正:协议文档 BYTE5 写"偏移0"有误,实测固件与
  最高/最低一致均带 -40℃ 偏移(实车 0x10020002 原始 68/69 减 40 后
  为 28/29℃,落在最低28~最高30区间内,按文档直读则超出物理范围)
- pCCU/DbStore:新增 bcu_node 解析数据表,锂电池 BMS 报文每帧落一行
  节点合成状态(原 comm_log 仅原始帧,BMS/CAN 帧此前不落 pCCU 库),
  buildReport 增加 BMS 记录数
- 快照/网页:BCU 按节点分组展示(告警位解析中文含义、数据 age),
  PM 状态报文锂电池/应急电池卡片
- pPowerManger:新增 iport 本地输入端口配置(UDP bind 延迟到
  OnStartUp 读取配置后执行,保证 iport/ccuhost/ccuport 生效),
  各 mission 文件补充注释
- test:CAN BCU 解码用例按新协议/新偏移更新(实车抓包 + 文档示例值),
  133 项全部通过
- docs:删除旧 BMS 协议(xlsx/20230324docx),归档 04KT38 BCU-MBMS
  CAN 定义、配电控制器通信协议 20260824、配电系统 CAN 通讯协议
- scripts:新增 sync-board-time.sh,223 板卡(RK3588)时间校正
  (本机为基准 + RTT 折半补偿对时,尽力写 RTC,支持 status/--time)
2026-09-01 12:58:33 +08:00
zjk 2590282aed 0827协议修订:姿态数据2改预留 + 状态帧新增剩余发电量 + CCU地址可配置
build-test-deploy / ci (push) Successful in 1h13m13s
FC协议(0827 docx):
- 控制指令域:字节12,13/16,17由纵倾/横倾姿态数据2改为预留(编码恒0、解码忽略)
- 状态反馈域:字节147,148由预留12改为剩余发电量(MWh),贯通JSON/网页显示
- PM→CCU链路:姿态字段4xuchar改为2xshort(数据1),结构体大小与线上布局不变
- 同步更新:CCU转发映射、SnapshotBuilder、pCCU网页、fuelcell网页、SQLite列描述、单测/模拟器
- 修正集成测试遗留断言(20B→24B、心跳d[19]→d[23])并增强预留字节校验

CCU地址可配置:
- pPowerManger 支持 moos 配置项 ccuhost/ccuport(默认127.0.0.1:7000)
- build-board.sh 增加 --ccu-host/--ccu-port 参数

文档:FC协议文档更新为0827版,清理过期协议docx
2026-08-28 00:09:17 +08:00
zjk 54c32a180a 新增复合管控器(pCCU) + 惯导数据解析 + 设备控制页增强 + 0824协议文档归档
- 新增 pCCU 复合管控器程序(src/pCCU):FC/PM 双链路(UDP)、协议编解码器
  (FcProtocol/PmProtocol/Frame/Message/MessageRegistry)、快照与落库(DbStore)、
  内置 WebServer;挂入 src/CMakeLists.txt 与板卡 mission(h100.moos)
- 惯导/深度数据:新增 uDevice_insData 消息解析,接入 UpperCommManager,
  pPowerMangerHost 注册监视,UpmsgTest 覆盖
- pPowerMangerHost 设备控制页增强(web/index.html)
- 部署/运维脚本改为 4 个 systemd 服务(moosdb/pPowerManger/pPowerMangerHost/pCCU):
  deploy/clean-data/fetch-data 同步适配
- 协议文档:归档 0824 控制主机与复合管控器通信协议 xlsx 及关联 docx,移除旧 md
- 测试:新增 pccu 单元/集成测试与 disSysTest Python 配电仿真
- 清理:移除未使用的 CCU 状态调试打印 coutMsg;.gitignore 补充编译产物/临时文件忽略
2026-08-26 22:43:10 +08:00
zjk 12f0dee86e 修复:跨线程数据竞争 + 协议字段越界 + UDP 发送失败吞错
- 并发安全:PowerManger 新增 m_stateMutex,保护 m_pmCurrentState /
  m_currentDisBreakerState / m_CcuColCmd / faultCode,并封装
  addFaultCode/clearFaultCodes/getFaultCodes 访问器
- SystemData 新增跨线程读访问器(getDynVoltageLink/getPowerBusStatus/
  getDcdcStatus/getDeviceCommonStatus 等)及配电故障码集合加锁访问
- upmsg buildMsg / httpserver pushSystemData / LowerCommManager 均改为
  持锁快照,避免 listen 线程与 comm 线程撕裂读写
- 修复析构顺序:先删 httpServer 再删其他对象,避免 use-after-free
- 修复 ccuState reserved2 越界读(协议预留 2 字节,结构体仅声明 1),
  修正 coutMsg 中 SOC 门限/功率限制字段打印
- udpComm::sendDisSysCmd 不再吞掉异常,返回 sendMsg 实际结果并记录 ERROR,
  新增 SendDisSysCmdFailsWithoutSocket 单测
- 新增 fullFeeder 全类型 UDP 集成仿真器与 fetch-data/clean-data 脚本,
  .gitignore 补充 SQLite 运行期文件与 fullFeeder 二进制
2026-08-21 11:36:19 +08:00
zjk 7819ea621f 基线:UDP 收包长度校验 + SQLite 表描述符重构 + 清理设计文档 2026-08-19 22:31:23 +08:00
zjk e455e2e9da 修复:编译告警(格式串不匹配、非 void 函数缺返回值、C++17 结构化绑定)
- 修复 LOG_F 格式串与参数类型/数量不匹配(udpComm.h、uPlan_taskStart.h、httpserver.cpp、PowerManagerFsm.cpp、WaterBasedReady.cpp、LowerCommManager.cpp)
- httpserver.cpp 中 mg_connection::fd 为 void*,打印时强转为 int
- uExternComm_setOpCondition.h / uPower_sysState.h 补齐返回值,消除 -Wreturn-type
- driver.cpp 移除结构化绑定(C++17),保持 -std=c++11
- PowerManagerFsm.hpp 为 class Lifting 补充 react(DevCmdExt) 声明,消除死代码编译错误
2026-08-19 21:52:29 +08:00
zjk f50c7bd612 数据库:下位机交互数据全量落库,SQLite 封装重构
- 新增 msg_log 原始帧表,RX/TX 双向记录原始字节与校验结果
- SQLite 封装改为描述符驱动的泛化 insert,删除 10 个手写 SQL
- 新增 ccuSetParmCmd/ccuSetParmFb 表,补齐 CCU 参数设定反馈落库
- 错误防崩溃:统一加锁、fail-open 降级、损坏自动重建、析构顺序修复
- WAL/迁移/预编译语句路径,数据库路径支持 mission 配置 dbpath
- 清理未使用的 shell.c/sqlite3ext.h/SQLite.zip
2026-08-19 16:28:41 +08:00
zjk ea06a415a1 修复Web服务内存泄露、数据竞争与页面显示bug,适配x86编译
- 修复WebSocket推送无背压导致mongoose发送缓冲无限增长的内存泄露
- 为SystemData增加互斥锁,消除pushSystemData与主线程的数据竞争
- 修复网页状态文本判断反转、漏水告警阈值、FC状态、H2单位等显示bug
- 按协议修正电池紧急状态枚举解码(0x3A-0x3D为1-4级报警)
- 调整CMake适配系统安装的MOOS/IvP及jsoncpp,删除ARM专用build_debug.sh
2026-08-12 23:17:36 +08:00
zjk 987d8b3ce0 增加了info字段,增加了上电检测,调整了绝缘电阻上报逻辑 2026-02-09 14:48:58 +08:00
zjk e5193bd7f7 修复了程序在启动时偶尔崩溃的问题 2026-01-27 20:45:00 +08:00
zjk 481171d9ea 增加了xc声纳的上电 2025-09-12 11:35:17 +08:00
zjk 6a78989fec 调试0723 2025-07-23 22:20:42 +08:00
zjk ba8cd0383a 0702调试 2025-07-02 16:20:36 +08:00
zjk 16d4c25c77 系修复了dcdc和冷却系统获取状态的bug,优化故障码变量 2025-06-30 18:49:16 +08:00
zjk 035205101b 0606 2025-06-06 13:28:05 +08:00
zjk 8fab3bdf06 完善了显示,修改了复合管控的通信协议 2025-06-03 20:05:08 +08:00
zjk 2be7ce203e 修复 2025-05-25 08:41:58 +08:00
zjk 3a14a3cff8 修复了配电系统校验码的问题 2025-05-22 19:28:56 +08:00
zjk fea319d3bf 应急联调完成 2025-05-19 20:42:20 +08:00
zjk ab803d8d7e 完成了网页控制断路器 2025-05-17 22:39:08 +08:00
zjk fb23554408 增加控制功能 2025-05-17 11:21:34 +08:00
zjk e0b3e986c7 增加了网页服务 2025-05-16 01:08:12 +08:00
zjk b7a624334e 已完成上位机通信代码结构优化 2025-05-14 21:01:57 +08:00
zjk 18f00d70d4 优化消息代码 2025-05-14 15:12:26 +08:00
zjk 476be20025 修改了次级配电协议,优化消息结构 2025-05-14 10:02:47 +08:00
zjk a45ba75c37 屏蔽了squit3,实现了外部通讯交互 2025-04-27 00:11:30 +08:00
zjk 06226b6704 重构了与DB的交互逻辑,以及与任务\上位机指令的消息,使用新的loguru库进行日志管理 2025-04-20 22:42:28 +08:00
zjk b653f17b03 完善待机工况及相关逻辑 2025-04-09 23:28:05 +08:00
zjk 785a47ff99 优化通信代码,修复状态机的bug 2025-04-09 15:11:31 +08:00
zjk bac5f5291e 优化了上位机的通信函数 2025-04-07 23:32:35 +08:00
zjk 35e5d5230e 修复了udp的错误发送数据就报错的故障,莫名其妙好的,真是奇怪 2025-04-07 22:16:56 +08:00
zjk b5a746c2ef 测试 2025-04-07 21:45:19 +08:00
zjk 7ef9ec5ac0 优化结构 2025-04-07 21:18:02 +08:00