添加新的Monitor类,用于订阅并打印SportModeState和Odometry消息数据 移除custom_robot.cpp中冗余的日志信息 更新CMakeLists.txt以包含新的监控模块
65 lines
1.5 KiB
CMake
65 lines
1.5 KiB
CMake
cmake_minimum_required(VERSION 3.16)
|
|
project(main)
|
|
|
|
# Set C++ standard
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
# Find required packages
|
|
find_package(PkgConfig REQUIRED)
|
|
find_package(Threads REQUIRED)
|
|
|
|
# Try to find PahoMqttC, fallback to manual linking if not found
|
|
find_package(PahoMqttC QUIET)
|
|
if(NOT PahoMqttC_FOUND)
|
|
message(STATUS "PahoMqttC package not found, using manual library linking")
|
|
find_library(PAHO_MQTT_C_LIBRARY NAMES paho-mqtt3c REQUIRED)
|
|
find_path(PAHO_MQTT_C_INCLUDE_DIR NAMES MQTTClient.h REQUIRED)
|
|
endif()
|
|
|
|
find_package(unitree_sdk2 REQUIRED)
|
|
|
|
# Include directories
|
|
include_directories(
|
|
include
|
|
${CMAKE_CURRENT_SOURCE_DIR}/include
|
|
${CMAKE_CURRENT_SOURCE_DIR}/include/nlohmann
|
|
$<$<NOT:$<BOOL:${PahoMqttC_FOUND}>>:${PAHO_MQTT_C_INCLUDE_DIR}>
|
|
)
|
|
|
|
# Source files
|
|
set(SOURCES
|
|
src/main.cpp
|
|
src/controller.cpp
|
|
src/custom_robot.cpp
|
|
src/config.cpp
|
|
src/logger.cpp
|
|
src/mqtt.cpp
|
|
src/navigation.cpp
|
|
src/low_controller.cpp
|
|
src/recharge.cpp
|
|
src/monitor.cpp
|
|
)
|
|
|
|
add_executable(main ${SOURCES})
|
|
|
|
# Link libraries
|
|
target_link_libraries(main
|
|
PRIVATE
|
|
unitree_sdk2
|
|
Threads::Threads
|
|
$<$<BOOL:${PahoMqttC_FOUND}>:PahoMqttC::PahoMqttC>
|
|
$<$<NOT:$<BOOL:${PahoMqttC_FOUND}>>:${PAHO_MQTT_C_LIBRARY}>
|
|
)
|
|
|
|
# Set output directory
|
|
set_target_properties(main PROPERTIES
|
|
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}
|
|
)
|
|
|
|
# Install target
|
|
install(TARGETS main
|
|
RUNTIME DESTINATION bin
|
|
)
|
|
|