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
|
f219b13a47
|
日志:日志文件路径支持 mission 配置 logpath
- 移除 main.cpp 中硬编码的 pPowerManger.log
- OnStartUp 读取 logpath 配置后调用 loguru::add_file
- 不配置则默认当前目录 pPowerManger.log,板上配置为 h100/data 目录
|
2026-08-19 16:54:31 +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
|
742f97c239
|
修复:pushMsgToQueue 缺少返回值导致 CCU 状态不更新
pushMsgToQueue 声明返回 bool,但成功路径 push 后仅 break,
函数末尾无 return,属未定义行为(返回值是垃圾寄存器值)。
导致 listenThreadFunc 中 if(pushMsgToQueue(Buff)) 判 false,
updatePoweSystemStates() 从不执行,CCU 状态消息入队后从不
处理(界面不显示)。
在函数末尾补 return true,并将各接收队列的 size() 检查
移入 lock_guard 内,消除与主线程 clear/pop 的 TOCTOU 竞争。
|
2026-08-19 14:31:15 +08:00 |
|
zjk
|
da90f98fa9
|
修复:UDP 接收队列数据竞争导致 SIGSEGV 崩溃
pushMsgToQueue 在监听线程向各接收队列 push 时无锁,
而 clearMsgQueue/popMsgFormQueue 在 MOOS 主线程持锁 pop,
并发操作同一 deque 造成堆内存损坏,收到 140 CCU UDP 消息后崩溃。
为 6 处 push 补上与 clear/pop 对应的互斥锁
(m_mutexCcuState/CcuSetParm/DisHighVolBus/DisHighAVolBus/
DisHighBVolBus/DisLowBus),修复数据竞争。
|
2026-08-19 14:06:03 +08:00 |
|
zjk
|
f3dd9e2c5a
|
构建:修复 GTest 链接失败——显式指定 Linux GTest 配置,避免从 PATH 探测到 Windows Anaconda 的 .lib
|
2026-08-18 19:45:50 +08:00 |
|
zjk
|
8ef5de9944
|
修复 aarch64 编译:to_ulong()/size() 返回 unsigned long,赋给 Json::Value 产生歧义,改为显式转换
build-test-deploy / ci (push) Failing after 7m15s
|
2026-08-14 15:35:03 +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
|
aa81980817
|
修复应急电池温度的问题
|
2026-02-26 13:42:15 +08:00 |
|
zjk
|
771b725634
|
增加开机闭合应急电断路器
|
2026-02-26 13:24:36 +08:00 |
|
zjk
|
d5507b2e00
|
在故障模式下断开推进电机\舵机\启闭机构和敞水机构的电
|
2026-02-26 10:47:26 +08:00 |
|
zjk
|
987d8b3ce0
|
增加了info字段,增加了上电检测,调整了绝缘电阻上报逻辑
|
2026-02-09 14:48:58 +08:00 |
|
zjk
|
e5193bd7f7
|
修复了程序在启动时偶尔崩溃的问题
|
2026-01-27 20:45:00 +08:00 |
|
zjk
|
b5ca051831
|
为数据库插入增加保护
|
2026-01-19 21:52:26 +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
|
5360521750
|
修复了艉舵忘记上电的问题
|
2025-07-12 15:57:21 +08:00 |
|
zjk
|
2ef5fd92ac
|
0712提交
|
2025-07-12 15:39:28 +08:00 |
|
zjk
|
4116397f3e
|
完善了次级配电的功能
|
2025-07-04 09:53:56 +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
|
45fdc455e9
|
修改了上电操作
|
2025-06-24 10:45:37 +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
|
ee050bb58b
|
523调试
|
2025-05-23 15:38:23 +08:00 |
|
zjk
|
3a14a3cff8
|
修复了配电系统校验码的问题
|
2025-05-22 19:28:56 +08:00 |
|
zjk
|
3e38fca181
|
增加调试页面
|
2025-05-21 13:15:31 +08:00 |
|
zjk
|
af8e7a1ed1
|
增加部分状态显示
|
2025-05-21 09:33:44 +08:00 |
|
zjk
|
fea319d3bf
|
应急联调完成
|
2025-05-19 20:42:20 +08:00 |
|
zjk
|
baa2e395fa
|
增加主页按钮
|
2025-05-19 02:36:10 +08:00 |
|
zjk
|
50a496e3e2
|
增加了日志功能,修复了bug
|
2025-05-19 02:14:11 +08:00 |
|
zjk
|
9e1819cd75
|
增加了log页面,但是没有后端
|
2025-05-19 01:48:25 +08:00 |
|
zjk
|
d6e3d466b2
|
增加mooos信息
|
2025-05-19 01:02:33 +08:00 |
|
zjk
|
f1a422e0c3
|
修正了状态页面的设备在线标志问题
|
2025-05-17 23:33:11 +08:00 |
|
zjk
|
2c6e0d2679
|
增加了操作时间内锁定按钮的功能
|
2025-05-17 23:27:36 +08:00 |
|
zjk
|
d5df7d3bcc
|
修复了网页操作的功能,增加了时间操作显示
|
2025-05-17 23:21:45 +08:00 |
|
zjk
|
ab803d8d7e
|
完成了网页控制断路器
|
2025-05-17 22:39:08 +08:00 |
|
zjk
|
fb23554408
|
增加控制功能
|
2025-05-17 11:21:34 +08:00 |
|
zjk
|
8585f0dd51
|
解决了websock频繁连接的问题
|
2025-05-17 08:39:18 +08:00 |
|
zjk
|
ac4301f99e
|
修复完成配电操作,且网页可用
|
2025-05-16 20:50:54 +08:00 |
|
zjk
|
70a077786f
|
完善了网页显示
|
2025-05-16 02:16:08 +08:00 |
|
zjk
|
e0b3e986c7
|
增加了网页服务
|
2025-05-16 01:08:12 +08:00 |
|
zjk
|
47079f79df
|
增加了数据库功能,采用直接编译源码的方式,不使用动态库链接
|
2025-05-14 23:27:35 +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
|
3e33c95cb1
|
增加了配电app
|
2025-05-05 19:03:57 +08:00 |
|