修复Web服务内存泄露、数据竞争与页面显示bug,适配x86编译

- 修复WebSocket推送无背压导致mongoose发送缓冲无限增长的内存泄露
- 为SystemData增加互斥锁,消除pushSystemData与主线程的数据竞争
- 修复网页状态文本判断反转、漏水告警阈值、FC状态、H2单位等显示bug
- 按协议修正电池紧急状态枚举解码(0x3A-0x3D为1-4级报警)
- 调整CMake适配系统安装的MOOS/IvP及jsoncpp,删除ARM专用build_debug.sh
This commit is contained in:
zjk
2026-08-12 23:17:36 +08:00
parent 7b0d0ff34b
commit ea06a415a1
11 changed files with 76 additions and 124 deletions
+13 -21
View File
@@ -6,11 +6,18 @@
# Chris Gagner, and tips borrowed from Dave Billin
#=======================================================================
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
CMAKE_MINIMUM_REQUIRED(VERSION 3.5)
PROJECT( IVP_EXTEND )
set (CMAKE_CXX_STANDARD 11)
set (MOOSIVP_SOURCE_TREE_BASE "/home/zjk/project/lib/moos-ivp")
#=======================================================================
# IvP 库安装前缀(MOOS 与 IvP 均安装于系统 /usr/local)
#=======================================================================
set (IVP_PREFIX "/usr/local")
# jsoncpp 头文件目录(Ubuntu 布局:/usr/include/jsoncpp/json/)
INCLUDE_DIRECTORIES(/usr/include/jsoncpp)
#=======================================================================
# Set the output directories for the binary and library files
@@ -36,28 +43,13 @@ INCLUDE_DIRECTORIES(${MOOS_INCLUDE_DIRS})
# Find the "moos-ivp" base directory
#=======================================================================
# Search for the moos-ivp folder
find_path( MOOSIVP_SOURCE_TREE_BASE
NAMES build-ivp.sh build-moos.sh configure-ivp.sh
PATHS "../moos-ivp" "../../moos-ivp" "../../moos-ivp/trunk/" "../moos-ivp/trunk/"
DOC "Base directory of the MOOS-IvP source tree"
NO_DEFAULT_PATH
)
# IvP 头文件与库从系统安装前缀加载
INCLUDE_DIRECTORIES(${IVP_PREFIX}/include/ivp)
if (NOT MOOSIVP_SOURCE_TREE_BASE)
message("Please set MOOSIVP_SOURCE_TREE_BASE to ")
message("the location of the \"moos-ivp\" folder ")
return()
endif()
#======================================================================
# Specify where to find IvP's headers and libraries...
#======================================================================
FILE(GLOB IVP_INCLUDE_DIRS ${MOOSIVP_SOURCE_TREE_BASE}/ivp/src/lib_* )
FILE(GLOB IVP_INCLUDE_DIRS ${IVP_PREFIX}/include/ivp )
INCLUDE_DIRECTORIES(${IVP_INCLUDE_DIRS})
FILE(GLOB IVP_LIBRARY_DIRS ${MOOSIVP_SOURCE_TREE_BASE}/lib )
FILE(GLOB IVP_LIBRARY_DIRS ${IVP_PREFIX}/lib )
LINK_DIRECTORIES(${IVP_LIBRARY_DIRS})
#======================================================================