2025-12-17 13:32:05 +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}")
|
|
|
|
|
find_package(PahoMqttCpp REQUIRED)
|
|
|
|
|
find_package(SQLite3 REQUIRED)
|
|
|
|
|
|
|
|
|
|
find_package(PkgConfig REQUIRED)
|
|
|
|
|
pkg_check_modules(GST REQUIRED gstreamer-1.0 gstreamer-app-1.0)
|
|
|
|
|
find_package(OpenCV REQUIRED)
|
|
|
|
|
|
|
|
|
|
add_subdirectory(src/vendor/crow)
|
|
|
|
|
|
|
|
|
|
add_library(nlohmann_json INTERFACE)
|
2025-12-17 14:59:31 +08:00
|
|
|
target_include_directories(nlohmann_json INTERFACE
|
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/vendor
|
2025-12-17 13:32:05 +08:00
|
|
|
|
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/../libs # 如果你的 libs 目录有项目自定义头文件
|
|
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
2025-12-17 14:59:31 +08:00
|
|
|
add_library(vehicle_road_lib STATIC
|
2025-12-17 13:32:05 +08:00
|
|
|
# TCP通讯层
|
|
|
|
|
src/network/tcp_server.cc
|
|
|
|
|
# --- 设备管理模块 ---
|
|
|
|
|
src/deviceManager/device_manager.cc
|
|
|
|
|
# 小工具
|
|
|
|
|
src/utils/mqtt_topic_matcher.cpp
|
|
|
|
|
# --- MQTT 核心模块 ---
|
|
|
|
|
src/mqtt/mqtt_client.cpp
|
|
|
|
|
src/mqtt/mqtt_router.cpp
|
2025-12-17 14:59:31 +08:00
|
|
|
src/mqtt/handler/data_handler.cpp
|
|
|
|
|
src/mqtt/handler/command_handler.cpp
|
2025-12-17 13:32:05 +08:00
|
|
|
# --- 协议层 ---
|
|
|
|
|
src/protocol/protocol.cc
|
|
|
|
|
src/protocol/private_protocol_adapter.cc
|
|
|
|
|
src/protocol/protocol_factory.cc
|
|
|
|
|
# 系统监视
|
|
|
|
|
src/systemMonitor/system_monitor.cc
|
|
|
|
|
#modbus
|
2025-12-17 14:59:31 +08:00
|
|
|
src/modbus/modbus_rtu_client.cc
|
2025-12-17 13:32:05 +08:00
|
|
|
src/modbus/modbus_rtu_bus_service.cc
|
|
|
|
|
src/modbus/generic_modbus_parser.cc
|
|
|
|
|
# --- Modbus Master ---
|
|
|
|
|
src/protocol/modbus/modbus_protocol.cc
|
|
|
|
|
src/modbus/modbus_master_poller.cc
|
|
|
|
|
# 数据缓存/断点续传
|
|
|
|
|
src/dataCache/data_cache.cc
|
|
|
|
|
src/dataCache/cache_uploader.cc
|
|
|
|
|
#web
|
|
|
|
|
src/web/web_server.cc
|
|
|
|
|
#SQL
|
|
|
|
|
src/dataStorage/data_storage.cc
|
|
|
|
|
#config配置
|
|
|
|
|
src/config/config_manager.cc
|
|
|
|
|
#告警模块
|
|
|
|
|
src/alarm/alarm_service.cc
|
|
|
|
|
)
|
|
|
|
|
|
2025-12-17 14:59:31 +08:00
|
|
|
target_include_directories(vehicle_road_lib PUBLIC
|
|
|
|
|
/usr/include/opencv4
|
2025-12-17 13:32:05 +08:00
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src
|
|
|
|
|
${GST_INCLUDE_DIRS}
|
2025-12-17 14:59:31 +08:00
|
|
|
/usr/include/rga
|
2025-12-17 13:32:05 +08:00
|
|
|
)
|
|
|
|
|
|
2025-12-17 14:59:31 +08:00
|
|
|
target_link_libraries(vehicle_road_lib PRIVATE
|
2025-12-17 13:32:05 +08:00
|
|
|
spdlog::spdlog
|
|
|
|
|
Boost::system
|
|
|
|
|
Boost::thread
|
|
|
|
|
PahoMqttCpp::paho-mqttpp3
|
|
|
|
|
SQLite::SQLite3
|
|
|
|
|
pthread
|
2025-12-17 14:59:31 +08:00
|
|
|
# rknn_api
|
|
|
|
|
rknnrt
|
2025-12-17 13:32:05 +08:00
|
|
|
rockchip_mpp
|
|
|
|
|
rga
|
|
|
|
|
${OpenCV_LIBS}
|
|
|
|
|
${GST_LIBRARIES}
|
2025-12-17 14:59:31 +08:00
|
|
|
|
2025-12-17 13:32:05 +08:00
|
|
|
)
|
|
|
|
|
|
2025-12-17 14:59:31 +08:00
|
|
|
target_link_libraries(vehicle_road_lib PUBLIC
|
2025-12-17 13:32:05 +08:00
|
|
|
Crow
|
|
|
|
|
nlohmann_json
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
# ==================================
|
2025-12-17 14:59:31 +08:00
|
|
|
# Main Application Target
|
|
|
|
|
# ==================================
|
|
|
|
|
add_executable(vehicle_road_counter
|
2025-12-17 13:32:05 +08:00
|
|
|
src/main.cpp
|
|
|
|
|
)
|
2025-12-17 15:27:37 +08:00
|
|
|
target_link_libraries(vehicle_road_counter PRIVATE
|
2025-12-17 14:59:31 +08:00
|
|
|
vehicle_road_lib
|
2025-12-17 13:32:05 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
# =================================================================
|
2025-12-17 14:59:31 +08:00
|
|
|
# 测试目标
|
2025-12-17 13:32:05 +08:00
|
|
|
# =================================================================
|
|
|
|
|
# add_executable(test
|
|
|
|
|
# src/test.cc
|
|
|
|
|
# src/systemMonitor/iio_sensor.cc
|
|
|
|
|
|
|
|
|
|
# )
|
|
|
|
|
|
|
|
|
|
# target_link_libraries(test PRIVATE
|
|
|
|
|
# edge_proxy_lib
|
|
|
|
|
# )
|
|
|
|
|
|
|
|
|
|
# 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"
|
|
|
|
|
# /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}
|
2025-12-17 14:59:31 +08:00
|
|
|
# )
|