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)
|
|
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
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
|
|
|
|
)
|
|
|
|
|
|
|
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-13 13:55:15 +08:00
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
target_include_directories(edge_proxy_lib PUBLIC
|
|
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src
|
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-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-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-11 14:06:38 +08:00
|
|
|
|
|
2025-10-11 18:24:56 +08:00
|
|
|
|
target_link_libraries(edge_proxy PRIVATE
|
|
|
|
|
|
edge_proxy_lib
|
|
|
|
|
|
)
|
2025-10-11 14:06:38 +08:00
|
|
|
|
|
2025-10-14 11:18:01 +08:00
|
|
|
|
|
2025-10-21 13:56:09 +08:00
|
|
|
|
add_executable(edge_streamer
|
2025-10-22 15:31:10 +08:00
|
|
|
|
src/streamer/main_streamer.cpp
|
2025-10-21 13:56:09 +08:00
|
|
|
|
)
|
2025-10-20 17:45:43 +08:00
|
|
|
|
|
2025-10-21 13:56:09 +08:00
|
|
|
|
# 链接新服务所需的所有库
|
|
|
|
|
|
target_link_libraries(edge_streamer PRIVATE
|
|
|
|
|
|
${GST_LIBRARIES}
|
|
|
|
|
|
pthread
|
|
|
|
|
|
)
|
2025-10-20 17:45:43 +08:00
|
|
|
|
|
2025-10-21 13:56:09 +08:00
|
|
|
|
target_include_directories(edge_streamer PRIVATE
|
|
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/streamer/include
|
|
|
|
|
|
${GST_INCLUDE_DIRS}
|
|
|
|
|
|
)
|
2025-10-22 17:47:10 +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 13:11:33 +08:00
|
|
|
|
add_executable(rknn
|
|
|
|
|
|
src/rknn/main.cc
|
|
|
|
|
|
src/rknn/postprocess.cc
|
|
|
|
|
|
src/rknn/preprocess.cc
|
|
|
|
|
|
src/rknn/rkYolov5s.cc
|
|
|
|
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
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"
|
|
|
|
|
|
# RKNN SDK 的头文件
|
|
|
|
|
|
/usr/local/include
|
|
|
|
|
|
# OpenCV 头文件路径 (根据你的 find 命令输出)
|
|
|
|
|
|
/usr/include/opencv4 # 编译器会在这里面找 opencv2/core/core.hpp
|
|
|
|
|
|
# RGA 和 im2d 的头文件路径 (根据你的 find 命令输出)
|
|
|
|
|
|
/usr/include/rga # 编译器会在这里面找 rga.h 和 im2d.h
|
|
|
|
|
|
# Paho MQTT 头文件(通常在 /usr/local/include)
|
|
|
|
|
|
/usr/local/include
|
|
|
|
|
|
|
|
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/streamer/include
|
|
|
|
|
|
${GST_INCLUDE_DIRS}
|
|
|
|
|
|
)
|