2025-09-30 18:34:50 +08:00
|
|
|
cmake_minimum_required(VERSION 3.16)
|
|
|
|
|
project(EdgeProxy LANGUAGES CXX)
|
|
|
|
|
|
|
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
|
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
|
|
2026-01-14 17:45:26 +08:00
|
|
|
find_package(Eigen3 REQUIRED)#新增
|
2025-09-30 18:34:50 +08:00
|
|
|
find_package(spdlog REQUIRED)
|
|
|
|
|
find_package(Boost REQUIRED COMPONENTS system thread)
|
|
|
|
|
message(STATUS "Found Boost version: ${Boost_VERSION}")
|
2025-10-11 14:06:38 +08:00
|
|
|
find_package(PahoMqttCpp REQUIRED)
|
2025-10-15 14:27:21 +08:00
|
|
|
find_package(SQLite3 REQUIRED)
|
2025-10-11 14:06:38 +08:00
|
|
|
|
2025-10-20 17:45:43 +08:00
|
|
|
find_package(PkgConfig REQUIRED)
|
|
|
|
|
pkg_check_modules(GST REQUIRED gstreamer-1.0 gstreamer-app-1.0)
|
2025-10-21 09:59:56 +08:00
|
|
|
find_package(OpenCV REQUIRED)
|
2025-10-23 16:15:09 +08:00
|
|
|
|
2025-10-15 14:27:21 +08:00
|
|
|
add_subdirectory(src/vendor/crow)
|
2025-09-30 18:34:50 +08:00
|
|
|
|
2026-01-14 17:45:26 +08:00
|
|
|
set(BYTETRACK_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src/algorithm/bytetrack/src)
|
|
|
|
|
set(BYTETRACK_SRCS
|
|
|
|
|
${BYTETRACK_DIR}/BYTETracker.cpp
|
|
|
|
|
${BYTETRACK_DIR}/KalmanFilter.cpp
|
|
|
|
|
${BYTETRACK_DIR}/Object.cpp
|
|
|
|
|
${BYTETRACK_DIR}/Rect.cpp
|
|
|
|
|
${BYTETRACK_DIR}/STrack.cpp
|
|
|
|
|
${BYTETRACK_DIR}/lapjv.cpp
|
|
|
|
|
)
|
|
|
|
|
|
2025-10-11 14:06:38 +08:00
|
|
|
add_library(nlohmann_json INTERFACE)
|
|
|
|
|
target_include_directories(nlohmann_json INTERFACE
|
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/vendor
|
2025-10-24 13:11:33 +08:00
|
|
|
|
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/../libs # 如果你的 libs 目录有项目自定义头文件
|
|
|
|
|
|
2025-09-30 18:34:50 +08:00
|
|
|
)
|
|
|
|
|
|
2026-01-14 17:45:26 +08:00
|
|
|
|
2025-10-11 14:06:38 +08:00
|
|
|
add_library(edge_proxy_lib STATIC
|
2025-10-13 16:39:46 +08:00
|
|
|
# TCP通讯层
|
2025-10-11 18:24:56 +08:00
|
|
|
src/network/tcp_server.cc
|
2025-10-14 16:45:50 +08:00
|
|
|
# --- 设备管理模块 ---
|
2025-10-14 17:47:06 +08:00
|
|
|
src/deviceManager/device_manager.cc
|
2025-10-13 13:55:15 +08:00
|
|
|
# 小工具
|
|
|
|
|
src/utils/mqtt_topic_matcher.cpp
|
|
|
|
|
# --- MQTT 核心模块 ---
|
|
|
|
|
src/mqtt/mqtt_client.cpp
|
|
|
|
|
src/mqtt/mqtt_router.cpp
|
|
|
|
|
src/mqtt/handler/data_handler.cpp
|
|
|
|
|
src/mqtt/handler/command_handler.cpp
|
|
|
|
|
# --- 协议层 ---
|
|
|
|
|
src/protocol/protocol.cc
|
2025-10-14 14:30:52 +08:00
|
|
|
src/protocol/private_protocol_adapter.cc
|
2025-10-14 15:29:13 +08:00
|
|
|
src/protocol/protocol_factory.cc
|
2025-10-14 11:18:01 +08:00
|
|
|
# 系统监视
|
|
|
|
|
src/systemMonitor/system_monitor.cc
|
|
|
|
|
#modbus
|
|
|
|
|
src/modbus/modbus_rtu_client.cc
|
2025-10-16 17:42:59 +08:00
|
|
|
src/modbus/modbus_rtu_bus_service.cc
|
2025-10-14 16:06:43 +08:00
|
|
|
src/modbus/generic_modbus_parser.cc
|
2025-10-14 15:29:13 +08:00
|
|
|
# --- Modbus Master ---
|
|
|
|
|
src/protocol/modbus/modbus_protocol.cc
|
|
|
|
|
src/modbus/modbus_master_poller.cc
|
2025-10-14 18:10:15 +08:00
|
|
|
# 数据缓存/断点续传
|
|
|
|
|
src/dataCache/data_cache.cc
|
|
|
|
|
src/dataCache/cache_uploader.cc
|
2025-10-15 14:27:21 +08:00
|
|
|
#web
|
|
|
|
|
src/web/web_server.cc
|
2025-10-17 17:20:45 +08:00
|
|
|
#SQL
|
|
|
|
|
src/dataStorage/data_storage.cc
|
2025-10-21 15:34:24 +08:00
|
|
|
#tts
|
|
|
|
|
src/tts/piper_tts_interface.cc
|
2025-10-23 16:15:09 +08:00
|
|
|
#config配置
|
|
|
|
|
src/config/config_manager.cc
|
2025-10-24 14:19:33 +08:00
|
|
|
#告警模块
|
|
|
|
|
src/alarm/alarm_service.cc
|
2025-10-24 18:28:33 +08:00
|
|
|
# 推理模块
|
|
|
|
|
src/rknn/video_service.cc
|
2025-11-19 11:12:42 +08:00
|
|
|
src/rknn/rkYolov5s.cc
|
|
|
|
|
src/rknn/rkYolov8.cc
|
2025-10-24 18:28:33 +08:00
|
|
|
src/rknn/preprocess.cc
|
|
|
|
|
src/rknn/postprocess.cc
|
2025-11-06 18:52:55 +08:00
|
|
|
src/videoServiceManager/video_service_manager.cc
|
2025-10-29 11:12:53 +08:00
|
|
|
src/algorithm/IntrusionModule.cc
|
2025-11-19 11:12:42 +08:00
|
|
|
src/algorithm/HumanDetectionModule.cc
|
2026-01-14 17:45:26 +08:00
|
|
|
${BYTETRACK_SRCS}
|
2025-10-13 13:55:15 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
target_include_directories(edge_proxy_lib PUBLIC
|
2025-10-24 18:28:33 +08:00
|
|
|
/usr/include/opencv4
|
2025-10-13 13:55:15 +08:00
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src
|
2025-10-24 18:28:33 +08:00
|
|
|
${GST_INCLUDE_DIRS}
|
2025-11-04 09:55:52 +08:00
|
|
|
/usr/include/rga
|
2026-01-14 17:45:26 +08:00
|
|
|
|
|
|
|
|
${EIGEN3_INCLUDE_DIRS} # Eigen3 头文件
|
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/algorithm/bytetrack/include # ByteTrack 头文件
|
2025-10-11 18:24:56 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
target_link_libraries(edge_proxy_lib PRIVATE
|
|
|
|
|
spdlog::spdlog
|
|
|
|
|
Boost::system
|
|
|
|
|
Boost::thread
|
|
|
|
|
PahoMqttCpp::paho-mqttpp3
|
2025-10-15 14:27:21 +08:00
|
|
|
SQLite::SQLite3
|
2025-10-11 18:24:56 +08:00
|
|
|
pthread
|
2025-10-21 15:34:24 +08:00
|
|
|
# rknn_api
|
2025-10-20 14:18:37 +08:00
|
|
|
rknnrt
|
2025-10-24 18:28:33 +08:00
|
|
|
rockchip_mpp
|
|
|
|
|
rga
|
|
|
|
|
${OpenCV_LIBS}
|
|
|
|
|
${GST_LIBRARIES}
|
|
|
|
|
|
2025-10-11 18:24:56 +08:00
|
|
|
)
|
|
|
|
|
|
2025-10-15 14:27:21 +08:00
|
|
|
target_link_libraries(edge_proxy_lib PUBLIC
|
|
|
|
|
Crow
|
2025-10-22 17:47:10 +08:00
|
|
|
nlohmann_json
|
2025-10-15 14:27:21 +08:00
|
|
|
)
|
2025-10-24 18:28:33 +08:00
|
|
|
|
2025-10-23 16:15:09 +08:00
|
|
|
# ==================================
|
|
|
|
|
# Main Application Target
|
|
|
|
|
# ==================================
|
2025-10-11 18:24:56 +08:00
|
|
|
add_executable(edge_proxy
|
|
|
|
|
src/main.cpp
|
|
|
|
|
)
|
2025-10-24 18:28:33 +08:00
|
|
|
target_link_libraries(edge_proxy PRIVATE
|
2025-10-11 18:24:56 +08:00
|
|
|
edge_proxy_lib
|
|
|
|
|
)
|
2025-10-11 14:06:38 +08:00
|
|
|
|
2025-10-23 16:15:09 +08:00
|
|
|
# =================================================================
|
2025-10-22 17:47:10 +08:00
|
|
|
# 测试目标
|
|
|
|
|
# =================================================================
|
|
|
|
|
# add_executable(test
|
|
|
|
|
# src/test.cc
|
|
|
|
|
# src/systemMonitor/iio_sensor.cc
|
|
|
|
|
|
|
|
|
|
# )
|
|
|
|
|
|
|
|
|
|
# target_link_libraries(test PRIVATE
|
|
|
|
|
# edge_proxy_lib
|
|
|
|
|
# )
|
|
|
|
|
|
2025-10-24 18:28:33 +08:00
|
|
|
# add_executable(rknn
|
|
|
|
|
# src/rknn/main.cc
|
|
|
|
|
# src/rknn/postprocess.cc
|
|
|
|
|
# src/rknn/preprocess.cc
|
|
|
|
|
# src/rknn/rkYolov5s.cc
|
2025-10-24 13:11:33 +08:00
|
|
|
|
2025-10-24 18:28:33 +08:00
|
|
|
# # )
|
2025-10-24 13:11:33 +08:00
|
|
|
|
2025-10-24 18:28:33 +08:00
|
|
|
# target_link_libraries(rknn PRIVATE
|
|
|
|
|
# edge_proxy_lib
|
|
|
|
|
# ${OpenCV_LIBS}
|
|
|
|
|
# rockchip_mpp
|
|
|
|
|
# rga
|
|
|
|
|
# )
|
|
|
|
|
# target_include_directories(rknn PRIVATE
|
|
|
|
|
# "${CMAKE_CURRENT_SOURCE_DIR}/services/intrusion-detection/include"
|
|
|
|
|
# /usr/local/include
|
|
|
|
|
# /usr/include/opencv4 # 编译器会在这里面找 opencv2/core/core.hpp
|
|
|
|
|
# /usr/include/rga # 编译器会在这里面找 rga.h 和 im2d.h
|
|
|
|
|
# /usr/local/include
|
|
|
|
|
|
|
|
|
|
# ${CMAKE_CURRENT_SOURCE_DIR}/src/streamer/include
|
|
|
|
|
# ${GST_INCLUDE_DIRS}
|
|
|
|
|
# )
|