mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-06-04 05:05:19 +08:00
move RTPS to dedicated px4fmu-v{3,4,4pro,5}, posix, sdflight builds (#8113)
This commit is contained in:
+1
-1
@@ -35,7 +35,7 @@
|
|||||||
path = src/drivers/gps/devices
|
path = src/drivers/gps/devices
|
||||||
url = https://github.com/PX4/GpsDrivers.git
|
url = https://github.com/PX4/GpsDrivers.git
|
||||||
[submodule "src/lib/micro-CDR"]
|
[submodule "src/lib/micro-CDR"]
|
||||||
path = src/lib/micro-CDR
|
path = src/modules/micrortps_bridge/micro-CDR
|
||||||
url = https://github.com/eProsima/micro-CDR.git
|
url = https://github.com/eProsima/micro-CDR.git
|
||||||
[submodule "platforms/nuttx/NuttX/nuttx"]
|
[submodule "platforms/nuttx/NuttX/nuttx"]
|
||||||
path = platforms/nuttx/NuttX/nuttx
|
path = platforms/nuttx/NuttX/nuttx
|
||||||
|
|||||||
@@ -355,22 +355,6 @@ include_directories(${include_dirs})
|
|||||||
link_directories(${link_dirs})
|
link_directories(${link_dirs})
|
||||||
add_definitions(${definitions})
|
add_definitions(${definitions})
|
||||||
|
|
||||||
#=============================================================================
|
|
||||||
# RTPS and micro-cdr
|
|
||||||
#
|
|
||||||
|
|
||||||
find_program(FASTRTPSGEN fastrtpsgen PATHS $ENV{FASTRTPSGEN_DIR})
|
|
||||||
if (FASTRTPSGEN AND (config_rtps_send_topics OR config_rtps_receive_topics))
|
|
||||||
option(GENERATE_RTPS_BRIDGE "enable RTPS and microCDR" ON)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (GENERATE_RTPS_BRIDGE)
|
|
||||||
# add micro-CDR
|
|
||||||
message(STATUS "RTPS bridge enabled, send: ${config_rtps_send_topics} receive: ${config_rtps_receive_topics}")
|
|
||||||
px4_add_git_submodule(TARGET git_micro_cdr PATH src/lib/micro-CDR)
|
|
||||||
add_subdirectory(src/lib/micro-CDR EXCLUDE_FROM_ALL)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
# message, and airframe generation
|
# message, and airframe generation
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -159,21 +159,25 @@ all_nuttx_targets: $(NUTTX_CONFIG_TARGETS)
|
|||||||
posix: posix_sitl_default
|
posix: posix_sitl_default
|
||||||
broadcast: posix_sitl_broadcast
|
broadcast: posix_sitl_broadcast
|
||||||
|
|
||||||
|
# All targets with just dependencies but no recipe must either be marked as phony (or have the special @: as recipe).
|
||||||
|
.PHONY: all posix broadcast all_nuttx_targets
|
||||||
|
|
||||||
# Multi- config targets.
|
# Multi- config targets.
|
||||||
eagle_default: posix_eagle_default qurt_eagle_default
|
eagle_default: posix_eagle_default qurt_eagle_default
|
||||||
|
eagle_rtps: posix_eagle_rtps qurt_eagle_default
|
||||||
eagle_legacy_default: posix_eagle_legacy qurt_eagle_legacy
|
eagle_legacy_default: posix_eagle_legacy qurt_eagle_legacy
|
||||||
excelsior_default: posix_excelsior_default qurt_excelsior_default
|
excelsior_default: posix_excelsior_default qurt_excelsior_default
|
||||||
|
excelsior_rtps: posix_excelsior_rtps qurt_excelsior_default
|
||||||
excelsior_legacy_default: posix_excelsior_legacy qurt_excelsior_legacy
|
excelsior_legacy_default: posix_excelsior_legacy qurt_excelsior_legacy
|
||||||
|
|
||||||
|
.PHONY: eagle_default eagle_rtps eagle_legacy_default
|
||||||
# All targets with just dependencies but no recipe must either be marked as phony (or have the special @: as recipe).
|
.PHONY: excelsior_default excelsior_rtps excelsior_legacy_default
|
||||||
.PHONY: all posix broadcast eagle_default eagle_legacy_default excelsior_legacy_default excelsior_default all_nuttx_targets
|
|
||||||
|
|
||||||
# Other targets
|
# Other targets
|
||||||
# --------------------------------------------------------------------
|
# --------------------------------------------------------------------
|
||||||
|
|
||||||
.PHONY: qgc_firmware px4fmu_firmware misc_qgc_extra_firmware alt_firmware
|
.PHONY: qgc_firmware px4fmu_firmware misc_qgc_extra_firmware alt_firmware
|
||||||
.PHONY: sizes check quick_check
|
.PHONY: sizes check quick_check check_rtps
|
||||||
|
|
||||||
# QGroundControl flashable NuttX firmware
|
# QGroundControl flashable NuttX firmware
|
||||||
qgc_firmware: px4fmu_firmware misc_qgc_extra_firmware sizes
|
qgc_firmware: px4fmu_firmware misc_qgc_extra_firmware sizes
|
||||||
@@ -209,6 +213,14 @@ alt_firmware: \
|
|||||||
check_s2740vc-v1_default \
|
check_s2740vc-v1_default \
|
||||||
sizes
|
sizes
|
||||||
|
|
||||||
|
# builds with RTPS
|
||||||
|
check_rtps: \
|
||||||
|
check_px4fmu-v3_rtps \
|
||||||
|
check_px4fmu-v4_rtps \
|
||||||
|
check_px4fmu-v4pro_rtps \
|
||||||
|
check_posix_sitl_rtps \
|
||||||
|
sizes
|
||||||
|
|
||||||
sizes:
|
sizes:
|
||||||
@-find build -name *.elf -type f | xargs size 2> /dev/null || :
|
@-find build -name *.elf -type f | xargs size 2> /dev/null || :
|
||||||
|
|
||||||
|
|||||||
@@ -14,9 +14,8 @@ exec find src \
|
|||||||
-path src/lib/DriverFramework -prune -o \
|
-path src/lib/DriverFramework -prune -o \
|
||||||
-path src/lib/ecl -prune -o \
|
-path src/lib/ecl -prune -o \
|
||||||
-path src/lib/matrix -prune -o \
|
-path src/lib/matrix -prune -o \
|
||||||
-path src/lib/micro-CDR -prune -o \
|
|
||||||
-path src/modules/commander -prune -o \
|
-path src/modules/commander -prune -o \
|
||||||
-path src/modules/micrortps_bridge/micrortps_agent -prune -o \
|
-path src/modules/micrortps_bridge/micro-CDR -prune -o \
|
||||||
-path src/modules/sdlog2 -prune -o \
|
-path src/modules/sdlog2 -prune -o \
|
||||||
-path src/modules/systemlib/uthash -prune -o \
|
-path src/modules/systemlib/uthash -prune -o \
|
||||||
-path src/modules/uavcan/libuavcan -prune -o \
|
-path src/modules/uavcan/libuavcan -prune -o \
|
||||||
|
|||||||
@@ -41,7 +41,6 @@ include(common/px4_base)
|
|||||||
# utility functions
|
# utility functions
|
||||||
#
|
#
|
||||||
# * px4_add_git_submodule
|
# * px4_add_git_submodule
|
||||||
# * px4_create_git_hash_header
|
|
||||||
#
|
#
|
||||||
|
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
@@ -71,13 +70,13 @@ function(px4_add_git_submodule)
|
|||||||
|
|
||||||
string(REPLACE "/" "_" NAME ${PATH})
|
string(REPLACE "/" "_" NAME ${PATH})
|
||||||
|
|
||||||
add_custom_command(OUTPUT ${PX4_BINARY_DIR}/git_init_${NAME}.stamp
|
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/git_init_${NAME}.stamp
|
||||||
COMMAND bash ${PX4_SOURCE_DIR}/Tools/check_submodules.sh ${PATH}
|
COMMAND bash ${PX4_SOURCE_DIR}/Tools/check_submodules.sh ${PATH}
|
||||||
COMMAND cmake -E touch ${PX4_BINARY_DIR}/git_init_${NAME}.stamp
|
COMMAND cmake -E touch ${CMAKE_CURRENT_BINARY_DIR}/git_init_${NAME}.stamp
|
||||||
DEPENDS ${PX4_SOURCE_DIR}/.gitmodules ${PATH}/.git
|
DEPENDS ${PX4_SOURCE_DIR}/.gitmodules ${PATH}/.git
|
||||||
WORKING_DIRECTORY ${PX4_SOURCE_DIR}
|
|
||||||
COMMENT "git submodule ${PATH}"
|
COMMENT "git submodule ${PATH}"
|
||||||
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
)
|
)
|
||||||
|
|
||||||
add_custom_target(${TARGET} DEPENDS ${PX4_BINARY_DIR}/git_init_${NAME}.stamp)
|
add_custom_target(${TARGET} DEPENDS git_init_${NAME}.stamp)
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|||||||
@@ -134,9 +134,6 @@ set(config_module_list
|
|||||||
modules/uORB
|
modules/uORB
|
||||||
modules/dataman
|
modules/dataman
|
||||||
|
|
||||||
# micro RTPS
|
|
||||||
modules/micrortps_bridge/micrortps_client
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Libraries
|
# Libraries
|
||||||
#
|
#
|
||||||
@@ -198,11 +195,3 @@ set(config_module_list
|
|||||||
# EKF
|
# EKF
|
||||||
#examples/ekf_att_pos_estimator
|
#examples/ekf_att_pos_estimator
|
||||||
)
|
)
|
||||||
|
|
||||||
set(config_rtps_send_topics
|
|
||||||
sensor_combined
|
|
||||||
)
|
|
||||||
|
|
||||||
set(config_rtps_receive_topics
|
|
||||||
sensor_baro
|
|
||||||
)
|
|
||||||
|
|||||||
@@ -143,10 +143,6 @@ set(config_module_list
|
|||||||
modules/uORB
|
modules/uORB
|
||||||
modules/dataman
|
modules/dataman
|
||||||
|
|
||||||
# micro RTPS
|
|
||||||
modules/micrortps_bridge/micrortps_client
|
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Libraries
|
# Libraries
|
||||||
#
|
#
|
||||||
@@ -215,12 +211,3 @@ set(config_module_list
|
|||||||
# EKF
|
# EKF
|
||||||
examples/ekf_att_pos_estimator
|
examples/ekf_att_pos_estimator
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
set(config_rtps_send_topics
|
|
||||||
sensor_combined
|
|
||||||
)
|
|
||||||
|
|
||||||
set(config_rtps_receive_topics
|
|
||||||
sensor_baro
|
|
||||||
)
|
|
||||||
|
|||||||
@@ -138,9 +138,6 @@ set(config_module_list
|
|||||||
modules/systemlib/mixer
|
modules/systemlib/mixer
|
||||||
modules/uORB
|
modules/uORB
|
||||||
|
|
||||||
# micro RTPS
|
|
||||||
modules/micrortps_bridge/micrortps_client
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Libraries
|
# Libraries
|
||||||
#
|
#
|
||||||
@@ -208,11 +205,3 @@ set(config_module_list
|
|||||||
# EKF
|
# EKF
|
||||||
examples/ekf_att_pos_estimator
|
examples/ekf_att_pos_estimator
|
||||||
)
|
)
|
||||||
|
|
||||||
set(config_rtps_send_topics
|
|
||||||
sensor_combined
|
|
||||||
)
|
|
||||||
|
|
||||||
set(config_rtps_receive_topics
|
|
||||||
sensor_baro
|
|
||||||
)
|
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
include(configs/nuttx_px4fmu-v3_default)
|
||||||
|
|
||||||
|
list(APPEND config_module_list
|
||||||
|
modules/micrortps_bridge
|
||||||
|
)
|
||||||
@@ -139,9 +139,6 @@ set(config_module_list
|
|||||||
modules/uORB
|
modules/uORB
|
||||||
modules/dataman
|
modules/dataman
|
||||||
|
|
||||||
# micro RTPS
|
|
||||||
modules/micrortps_bridge/micrortps_client
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Libraries
|
# Libraries
|
||||||
#
|
#
|
||||||
@@ -210,11 +207,3 @@ set(config_module_list
|
|||||||
# EKF
|
# EKF
|
||||||
examples/ekf_att_pos_estimator
|
examples/ekf_att_pos_estimator
|
||||||
)
|
)
|
||||||
|
|
||||||
set(config_rtps_send_topics
|
|
||||||
sensor_combined
|
|
||||||
)
|
|
||||||
|
|
||||||
set(config_rtps_receive_topics
|
|
||||||
sensor_baro
|
|
||||||
)
|
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
include(configs/nuttx_px4fmu-v4_default)
|
||||||
|
|
||||||
|
list(APPEND config_module_list
|
||||||
|
modules/micrortps_bridge
|
||||||
|
)
|
||||||
@@ -139,9 +139,6 @@ set(config_module_list
|
|||||||
modules/systemlib/mixer
|
modules/systemlib/mixer
|
||||||
modules/uORB
|
modules/uORB
|
||||||
|
|
||||||
# micro RTPS
|
|
||||||
modules/micrortps_bridge/micrortps_client
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Libraries
|
# Libraries
|
||||||
#
|
#
|
||||||
@@ -209,11 +206,3 @@ set(config_module_list
|
|||||||
# EKF
|
# EKF
|
||||||
#examples/ekf_att_pos_estimator
|
#examples/ekf_att_pos_estimator
|
||||||
)
|
)
|
||||||
|
|
||||||
set(config_rtps_send_topics
|
|
||||||
sensor_combined
|
|
||||||
)
|
|
||||||
|
|
||||||
set(config_rtps_receive_topics
|
|
||||||
sensor_baro
|
|
||||||
)
|
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
include(configs/nuttx_px4fmu-v4pro_default)
|
||||||
|
|
||||||
|
list(APPEND config_module_list
|
||||||
|
modules/micrortps_bridge
|
||||||
|
)
|
||||||
@@ -139,9 +139,6 @@ set(config_module_list
|
|||||||
modules/systemlib/mixer
|
modules/systemlib/mixer
|
||||||
modules/uORB
|
modules/uORB
|
||||||
|
|
||||||
# micro RTPS
|
|
||||||
modules/micrortps_bridge/micrortps_client
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Libraries
|
# Libraries
|
||||||
#
|
#
|
||||||
@@ -210,11 +207,3 @@ set(config_module_list
|
|||||||
# EKF
|
# EKF
|
||||||
#examples/ekf_att_pos_estimator
|
#examples/ekf_att_pos_estimator
|
||||||
)
|
)
|
||||||
|
|
||||||
set(config_rtps_send_topics
|
|
||||||
sensor_combined
|
|
||||||
)
|
|
||||||
|
|
||||||
set(config_rtps_receive_topics
|
|
||||||
sensor_baro
|
|
||||||
)
|
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
include(configs/nuttx_px4fmu-v4_default)
|
||||||
|
|
||||||
|
list(APPEND config_module_list
|
||||||
|
modules/micrortps_bridge
|
||||||
|
)
|
||||||
@@ -66,9 +66,6 @@ set(config_module_list
|
|||||||
modules/commander
|
modules/commander
|
||||||
modules/navigator
|
modules/navigator
|
||||||
|
|
||||||
# micro RTPS
|
|
||||||
modules/micrortps_bridge/micrortps_client
|
|
||||||
|
|
||||||
lib/controllib
|
lib/controllib
|
||||||
lib/mathlib
|
lib/mathlib
|
||||||
lib/mathlib/math/filter
|
lib/mathlib/math/filter
|
||||||
@@ -87,11 +84,3 @@ set(config_module_list
|
|||||||
platforms/posix/px4_layer
|
platforms/posix/px4_layer
|
||||||
platforms/posix/work_queue
|
platforms/posix/work_queue
|
||||||
)
|
)
|
||||||
|
|
||||||
set(config_rtps_send_topics
|
|
||||||
sensor_baro
|
|
||||||
)
|
|
||||||
|
|
||||||
set(config_rtps_receive_topics
|
|
||||||
sensor_combined
|
|
||||||
)
|
|
||||||
|
|||||||
@@ -58,9 +58,6 @@ set(config_module_list
|
|||||||
modules/commander
|
modules/commander
|
||||||
modules/navigator
|
modules/navigator
|
||||||
|
|
||||||
# micro RTPS
|
|
||||||
modules/micrortps_bridge/micrortps_client
|
|
||||||
|
|
||||||
lib/controllib
|
lib/controllib
|
||||||
lib/mathlib
|
lib/mathlib
|
||||||
lib/mathlib/math/filter
|
lib/mathlib/math/filter
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
include(configs/posix_sdflight_default)
|
||||||
|
|
||||||
|
list(APPEND config_module_list
|
||||||
|
modules/micrortps_bridge
|
||||||
|
)
|
||||||
@@ -114,9 +114,6 @@ set(config_module_list
|
|||||||
modules/systemlib/mixer
|
modules/systemlib/mixer
|
||||||
modules/uORB
|
modules/uORB
|
||||||
|
|
||||||
# micro RTPS
|
|
||||||
modules/micrortps_bridge/micrortps_client
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Libraries
|
# Libraries
|
||||||
#
|
#
|
||||||
@@ -189,39 +186,18 @@ set(config_module_list
|
|||||||
|
|
||||||
# EKF
|
# EKF
|
||||||
examples/ekf_att_pos_estimator
|
examples/ekf_att_pos_estimator
|
||||||
|
|
||||||
# micro-RTPS
|
|
||||||
)
|
)
|
||||||
|
|
||||||
set(config_rtps_send_topics
|
|
||||||
sensor_baro
|
|
||||||
)
|
|
||||||
|
|
||||||
set(config_rtps_receive_topics
|
|
||||||
sensor_combined
|
|
||||||
)
|
|
||||||
|
|
||||||
# Default config_sitl_rcS_dir (posix_sitl_default), this is overwritten later
|
# Default config_sitl_rcS_dir (posix_sitl_default), this is overwritten later
|
||||||
# for the config posix_sitl_efk2 and set again, explicitly, for posix_sitl_lpe,
|
# for the config posix_sitl_efk2 and set again, explicitly, for posix_sitl_lpe,
|
||||||
# which are based on posix_sitl_default.
|
# which are based on posix_sitl_default.
|
||||||
set(config_sitl_rcS_dir
|
set(config_sitl_rcS_dir posix-configs/SITL/init/ekf2 CACHE INTERNAL "init script dir for sitl")
|
||||||
posix-configs/SITL/init/ekf2
|
|
||||||
CACHE INTERNAL "init script dir for sitl"
|
|
||||||
)
|
|
||||||
|
|
||||||
set(config_sitl_viewer
|
set(config_sitl_viewer jmavsim CACHE STRING "viewer for sitl")
|
||||||
jmavsim
|
set_property(CACHE config_sitl_viewer PROPERTY STRINGS "jmavsim;none")
|
||||||
CACHE STRING "viewer for sitl"
|
|
||||||
)
|
|
||||||
set_property(CACHE config_sitl_viewer
|
|
||||||
PROPERTY STRINGS "jmavsim;none")
|
|
||||||
|
|
||||||
set(config_sitl_debugger
|
set(config_sitl_debugger disable CACHE STRING "debugger for sitl")
|
||||||
disable
|
set_property(CACHE config_sitl_debugger PROPERTY STRINGS "disable;gdb;lldb")
|
||||||
CACHE STRING "debugger for sitl"
|
|
||||||
)
|
|
||||||
set_property(CACHE config_sitl_debugger
|
|
||||||
PROPERTY STRINGS "disable;gdb;lldb")
|
|
||||||
|
|
||||||
# If the environment variable 'replay' is defined, we are building with replay
|
# If the environment variable 'replay' is defined, we are building with replay
|
||||||
# support. In this case, we enable the orb publisher rules.
|
# support. In this case, we enable the orb publisher rules.
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
include(configs/posix_sitl_default)
|
||||||
|
|
||||||
|
list(APPEND config_module_list
|
||||||
|
modules/micrortps_bridge
|
||||||
|
)
|
||||||
@@ -177,76 +177,3 @@ add_custom_command(OUTPUT ${uorb_sources}
|
|||||||
|
|
||||||
px4_add_library(uorb_msgs ${uorb_sources})
|
px4_add_library(uorb_msgs ${uorb_sources})
|
||||||
add_dependencies(uorb_msgs uorb_headers)
|
add_dependencies(uorb_msgs uorb_headers)
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# micro-cdr serialization
|
|
||||||
###############################################################################
|
|
||||||
# if RTPS is enabled generate serialization code for each uORB message
|
|
||||||
if (GENERATE_RTPS_BRIDGE)
|
|
||||||
|
|
||||||
set(msg_out_path_microcdr ${PX4_BINARY_DIR}/uORB_microcdr/topics)
|
|
||||||
set(msg_source_out_path_microcdr ${CMAKE_CURRENT_BINARY_DIR}/topics_microcdr_sources)
|
|
||||||
|
|
||||||
set(uorb_headers_microcdr)
|
|
||||||
set(uorb_sources_microcdr)
|
|
||||||
|
|
||||||
# send topic files
|
|
||||||
set(send_topic_files)
|
|
||||||
foreach(topic ${config_rtps_send_topics})
|
|
||||||
list(APPEND send_topic_files ${PX4_SOURCE_DIR}/msg/${topic}.msg)
|
|
||||||
list(APPEND uorb_headers_microcdr ${msg_out_path_microcdr}/${topic}.h)
|
|
||||||
list(APPEND uorb_sources_microcdr ${msg_source_out_path_microcdr}/${topic}.cpp)
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
# receive topic files
|
|
||||||
set(receive_topic_files)
|
|
||||||
foreach(topic ${config_rtps_receive_topics})
|
|
||||||
list(APPEND receive_topic_files ${PX4_SOURCE_DIR}/msg/${topic}.msg)
|
|
||||||
list(APPEND uorb_headers_microcdr ${msg_out_path_microcdr}/${topic}.h)
|
|
||||||
list(APPEND uorb_sources_microcdr ${msg_source_out_path_microcdr}/${topic}.cpp)
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
list(REMOVE_DUPLICATES uorb_headers_microcdr)
|
|
||||||
list(REMOVE_DUPLICATES uorb_sources_microcdr)
|
|
||||||
|
|
||||||
# Generate uORB serialization headers
|
|
||||||
add_custom_command(OUTPUT ${uorb_headers_microcdr}
|
|
||||||
COMMAND ${PYTHON_EXECUTABLE} tools/px_generate_uorb_topic_files.py
|
|
||||||
--headers
|
|
||||||
-f ${send_topic_files} ${receive_topic_files}
|
|
||||||
-i ${CMAKE_CURRENT_SOURCE_DIR}
|
|
||||||
-o ${msg_out_path_microcdr}
|
|
||||||
-e templates/uorb_microcdr
|
|
||||||
-t ${CMAKE_CURRENT_BINARY_DIR}/tmp/headers_microcdr
|
|
||||||
-q
|
|
||||||
DEPENDS ${msg_files}
|
|
||||||
COMMENT "Generating uORB microcdr topic headers"
|
|
||||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
|
||||||
VERBATIM
|
|
||||||
)
|
|
||||||
add_custom_target(uorb_headers_microcdr DEPENDS ${uorb_headers_microcdr})
|
|
||||||
|
|
||||||
# Generate uORB serialization sources
|
|
||||||
add_custom_command(OUTPUT ${uorb_sources_microcdr}
|
|
||||||
COMMAND ${PYTHON_EXECUTABLE} tools/px_generate_uorb_topic_files.py
|
|
||||||
--sources
|
|
||||||
-f ${send_topic_files} ${receive_topic_files}
|
|
||||||
-i ${CMAKE_CURRENT_SOURCE_DIR}
|
|
||||||
-o ${msg_source_out_path_microcdr}
|
|
||||||
-e templates/uorb_microcdr
|
|
||||||
-t ${CMAKE_CURRENT_BINARY_DIR}/tmp/sources_microcdr
|
|
||||||
-q
|
|
||||||
DEPENDS ${msg_files}
|
|
||||||
COMMENT "Generating uORB microcdr topic sources"
|
|
||||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
|
||||||
VERBATIM
|
|
||||||
)
|
|
||||||
px4_add_library(uorb_msgs_microcdr ${uorb_sources_microcdr})
|
|
||||||
add_dependencies(uorb_msgs_microcdr uorb_headers_microcdr uorb_headers)
|
|
||||||
|
|
||||||
# microCDR
|
|
||||||
target_include_directories(uorb_msgs_microcdr
|
|
||||||
PRIVATE ${PX4_SOURCE_DIR}/src/lib/micro-CDR/include
|
|
||||||
PRIVATE ${PX4_BINARY_DIR}/src/lib/micro-CDR/include/microcdr
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|||||||
@@ -0,0 +1,134 @@
|
|||||||
|
############################################################################
|
||||||
|
#
|
||||||
|
# Copyright (c) 2017 PX4 Development Team. All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions
|
||||||
|
# are met:
|
||||||
|
#
|
||||||
|
# 1. Redistributions of source code must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
# 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer in
|
||||||
|
# the documentation and/or other materials provided with the
|
||||||
|
# distribution.
|
||||||
|
# 3. Neither the name PX4 nor the names of its contributors may be
|
||||||
|
# used to endorse or promote products derived from this software
|
||||||
|
# without specific prior written permission.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||||
|
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||||
|
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||||
|
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||||
|
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||||
|
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||||
|
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||||
|
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
# POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
#
|
||||||
|
############################################################################
|
||||||
|
|
||||||
|
#=============================================================================
|
||||||
|
# RTPS and micro-cdr
|
||||||
|
#
|
||||||
|
|
||||||
|
find_program(FASTRTPSGEN fastrtpsgen PATHS $ENV{FASTRTPSGEN_DIR})
|
||||||
|
if(NOT FASTRTPSGEN)
|
||||||
|
message(FATAL_ERROR "Unable to find fastrtpsgen")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(config_rtps_send_topics
|
||||||
|
sensor_combined
|
||||||
|
)
|
||||||
|
|
||||||
|
set(config_rtps_receive_topics
|
||||||
|
sensor_baro
|
||||||
|
)
|
||||||
|
|
||||||
|
if (FASTRTPSGEN AND (config_rtps_send_topics OR config_rtps_receive_topics))
|
||||||
|
option(GENERATE_RTPS_BRIDGE "enable RTPS and microCDR" ON)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (GENERATE_RTPS_BRIDGE)
|
||||||
|
|
||||||
|
add_subdirectory(micrortps_client)
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# micro-cdr serialization
|
||||||
|
###############################################################################
|
||||||
|
include(common/px4_git)
|
||||||
|
px4_add_git_submodule(TARGET git_micro_cdr PATH micro-CDR)
|
||||||
|
add_subdirectory(micro-CDR)
|
||||||
|
|
||||||
|
set(msg_out_path_microcdr ${PX4_BINARY_DIR}/uORB_microcdr/topics)
|
||||||
|
set(msg_source_out_path_microcdr ${CMAKE_CURRENT_BINARY_DIR}/topics_microcdr_sources)
|
||||||
|
|
||||||
|
set(uorb_headers_microcdr)
|
||||||
|
set(uorb_sources_microcdr)
|
||||||
|
|
||||||
|
# send topic files
|
||||||
|
set(send_topic_files)
|
||||||
|
foreach(topic ${config_rtps_send_topics})
|
||||||
|
list(APPEND send_topic_files ${PX4_SOURCE_DIR}/msg/${topic}.msg)
|
||||||
|
list(APPEND uorb_headers_microcdr ${msg_out_path_microcdr}/${topic}.h)
|
||||||
|
list(APPEND uorb_sources_microcdr ${msg_source_out_path_microcdr}/${topic}.cpp)
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
# receive topic files
|
||||||
|
set(receive_topic_files)
|
||||||
|
foreach(topic ${config_rtps_receive_topics})
|
||||||
|
list(APPEND receive_topic_files ${PX4_SOURCE_DIR}/msg/${topic}.msg)
|
||||||
|
list(APPEND uorb_headers_microcdr ${msg_out_path_microcdr}/${topic}.h)
|
||||||
|
list(APPEND uorb_sources_microcdr ${msg_source_out_path_microcdr}/${topic}.cpp)
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
list(REMOVE_DUPLICATES uorb_headers_microcdr)
|
||||||
|
list(REMOVE_DUPLICATES uorb_sources_microcdr)
|
||||||
|
|
||||||
|
# Generate uORB serialization headers
|
||||||
|
add_custom_command(OUTPUT ${uorb_headers_microcdr}
|
||||||
|
COMMAND ${PYTHON_EXECUTABLE} tools/px_generate_uorb_topic_files.py
|
||||||
|
--headers
|
||||||
|
-f ${send_topic_files} ${receive_topic_files}
|
||||||
|
-i .
|
||||||
|
-o ${msg_out_path_microcdr}
|
||||||
|
-e templates/uorb_microcdr
|
||||||
|
-t ${CMAKE_CURRENT_BINARY_DIR}/tmp/headers_microcdr
|
||||||
|
-q
|
||||||
|
DEPENDS ${msg_files}
|
||||||
|
COMMENT "Generating uORB microcdr topic headers"
|
||||||
|
WORKING_DIRECTORY ${PX4_SOURCE_DIR}/msg/
|
||||||
|
VERBATIM
|
||||||
|
)
|
||||||
|
add_custom_target(uorb_headers_microcdr DEPENDS ${uorb_headers_microcdr})
|
||||||
|
|
||||||
|
# Generate uORB serialization sources
|
||||||
|
add_custom_command(OUTPUT ${uorb_sources_microcdr}
|
||||||
|
COMMAND ${PYTHON_EXECUTABLE} tools/px_generate_uorb_topic_files.py
|
||||||
|
--sources
|
||||||
|
-f ${send_topic_files} ${receive_topic_files}
|
||||||
|
-i .
|
||||||
|
-o ${msg_source_out_path_microcdr}
|
||||||
|
-e templates/uorb_microcdr
|
||||||
|
-t ${CMAKE_CURRENT_BINARY_DIR}/tmp/sources_microcdr
|
||||||
|
-q
|
||||||
|
DEPENDS ${msg_files}
|
||||||
|
COMMENT "Generating uORB microcdr topic sources"
|
||||||
|
WORKING_DIRECTORY ${PX4_SOURCE_DIR}/msg/
|
||||||
|
VERBATIM
|
||||||
|
)
|
||||||
|
px4_add_library(uorb_msgs_microcdr ${uorb_sources_microcdr})
|
||||||
|
add_dependencies(uorb_msgs_microcdr uorb_headers_microcdr uorb_headers git_micro_cdr lib__micro-CDR)
|
||||||
|
|
||||||
|
target_link_libraries(uorb_msgs_microcdr PRIVATE lib__micro-CDR)
|
||||||
|
|
||||||
|
# microCDR
|
||||||
|
target_include_directories(uorb_msgs_microcdr
|
||||||
|
PUBLIC
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/micro-CDR/include
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/micro-CDR/include/microcdr
|
||||||
|
)
|
||||||
|
endif()
|
||||||
@@ -31,86 +31,75 @@
|
|||||||
#
|
#
|
||||||
############################################################################
|
############################################################################
|
||||||
|
|
||||||
if(GENERATE_RTPS_BRIDGE)
|
set(msg_out_path ${CMAKE_CURRENT_BINARY_DIR})
|
||||||
|
|
||||||
find_program(FASTRTPSGEN fastrtpsgen PATHS $ENV{FASTRTPSGEN_DIR})
|
if (NOT "${config_rtps_send_topics}" STREQUAL "" OR NOT "${config_rtps_receive_topics}" STREQUAL "")
|
||||||
if(NOT FASTRTPSGEN)
|
|
||||||
message(STATUS "WARNING: Unable to find fastrtpsgen. Building PX4 without RTPS bridge support")
|
|
||||||
|
|
||||||
return()
|
set(send_topic_files)
|
||||||
|
foreach(topic ${config_rtps_send_topics})
|
||||||
|
list(APPEND send_topic_files ${PX4_SOURCE_DIR}/msg/${topic}.msg)
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
set(receive_topic_files)
|
||||||
|
foreach(topic ${config_rtps_receive_topics})
|
||||||
|
list(APPEND receive_topic_files ${PX4_SOURCE_DIR}/msg/${topic}.msg)
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
foreach(topic ${config_rtps_send_topics})
|
||||||
|
list(APPEND topic_bridge_files_out ${msg_out_path}/micrortps_agent/${topic}_Publisher.cpp)
|
||||||
|
list(APPEND topic_bridge_files_out ${msg_out_path}/micrortps_agent/${topic}_Publisher.h)
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
foreach(topic ${config_rtps_receive_topics})
|
||||||
|
list(APPEND topic_bridge_files_out ${msg_out_path}/micrortps_agent/${topic}_Subscriber.cpp)
|
||||||
|
list(APPEND topic_bridge_files_out ${msg_out_path}/micrortps_agent/${topic}_Subscriber.h)
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
set(send_topic_files_opt)
|
||||||
|
if (NOT "${send_topic_files}" STREQUAL "")
|
||||||
|
set(send_topic_opt "--send")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Do not delete everything in the current dir
|
set(receive_topic_files_opt)
|
||||||
set(msg_out_path ${CMAKE_CURRENT_BINARY_DIR})
|
if (NOT "${receive_topic_files}" STREQUAL "")
|
||||||
|
set(receive_topic_opt "--receive")
|
||||||
|
endif()
|
||||||
|
|
||||||
if (NOT "${config_rtps_send_topics}" STREQUAL "" OR NOT "${config_rtps_receive_topics}" STREQUAL "")
|
list(APPEND topic_bridge_files_out
|
||||||
|
${msg_out_path}/micrortps_client/microRTPS_client.cpp
|
||||||
|
${msg_out_path}/micrortps_client/microRTPS_transport.cpp
|
||||||
|
${msg_out_path}/micrortps_client/microRTPS_transport.h
|
||||||
|
)
|
||||||
|
|
||||||
set(send_topic_files)
|
add_custom_command(OUTPUT ${topic_bridge_files_out}
|
||||||
foreach(topic ${config_rtps_send_topics})
|
COMMAND ${PYTHON_EXECUTABLE} ${PX4_SOURCE_DIR}/msg/tools/generate_microRTPS_bridge.py
|
||||||
list(APPEND send_topic_files ${PX4_SOURCE_DIR}/msg/${topic}.msg)
|
--fastrtpsgen-dir $ENV{FASTRTPSGEN_DIR}
|
||||||
endforeach()
|
${send_topic_opt} ${send_topic_files}
|
||||||
|
${receive_topic_opt} ${receive_topic_files}
|
||||||
|
--topic-msg-dir ${PX4_SOURCE_DIR}/msg
|
||||||
|
--agent-outdir ${CMAKE_CURRENT_BINARY_DIR}/micrortps_agent
|
||||||
|
--client-outdir ${CMAKE_CURRENT_BINARY_DIR}/micrortps_client
|
||||||
|
>micrortps_bridge.log 2>&1 || cat micrortps_bridge.log # quiet successful build output
|
||||||
|
DEPENDS ${send_topic_files} ${receive_topic_files}
|
||||||
|
COMMENT "Generating RTPS topic bridge"
|
||||||
|
)
|
||||||
|
add_custom_target(topic_bridge_files DEPENDS ${topic_bridge_files_out})
|
||||||
|
|
||||||
set(receive_topic_files)
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
foreach(topic ${config_rtps_receive_topics})
|
include_directories(${CMAKE_CURRENT_BINARY_DIR}/micrortps_client)
|
||||||
list(APPEND receive_topic_files ${PX4_SOURCE_DIR}/msg/${topic}.msg)
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
foreach(topic ${config_rtps_send_topics})
|
px4_add_module(
|
||||||
list(APPEND topic_bridge_files_out ${msg_out_path}/micrortps_agent/${topic}_Publisher.cpp)
|
MODULE modules__micrortps_bridge__micrortps_client
|
||||||
list(APPEND topic_bridge_files_out ${msg_out_path}/micrortps_agent/${topic}_Publisher.h)
|
MAIN micrortps_client
|
||||||
endforeach()
|
STACK_MAIN 4096
|
||||||
|
SRCS
|
||||||
foreach(topic ${config_rtps_receive_topics})
|
microRTPS_client_main.cpp
|
||||||
list(APPEND topic_bridge_files_out ${msg_out_path}/micrortps_agent/${topic}_Subscriber.cpp)
|
|
||||||
list(APPEND topic_bridge_files_out ${msg_out_path}/micrortps_agent/${topic}_Subscriber.h)
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
set(send_topic_files_opt)
|
|
||||||
if (NOT "${send_topic_files}" STREQUAL "")
|
|
||||||
set(send_topic_opt "--send")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(receive_topic_files_opt)
|
|
||||||
if (NOT "${receive_topic_files}" STREQUAL "")
|
|
||||||
set(receive_topic_opt "--receive")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
list(APPEND topic_bridge_files_out
|
|
||||||
${msg_out_path}/micrortps_client/microRTPS_client.cpp
|
${msg_out_path}/micrortps_client/microRTPS_client.cpp
|
||||||
${msg_out_path}/micrortps_client/microRTPS_transport.cpp
|
${msg_out_path}/micrortps_client/microRTPS_transport.cpp
|
||||||
${msg_out_path}/micrortps_client/microRTPS_transport.h
|
DEPENDS
|
||||||
)
|
platforms__common
|
||||||
|
topic_bridge_files
|
||||||
add_custom_command(OUTPUT ${topic_bridge_files_out}
|
uorb_headers_microcdr
|
||||||
COMMAND ${PYTHON_EXECUTABLE} ${PX4_SOURCE_DIR}/msg/tools/generate_microRTPS_bridge.py
|
)
|
||||||
--fastrtpsgen-dir $ENV{FASTRTPSGEN_DIR}
|
target_link_libraries(modules__micrortps_bridge__micrortps_client PRIVATE uorb_msgs_microcdr)
|
||||||
${send_topic_opt} ${send_topic_files}
|
|
||||||
${receive_topic_opt} ${receive_topic_files}
|
|
||||||
--topic-msg-dir ${PX4_SOURCE_DIR}/msg
|
|
||||||
--agent-outdir ${CMAKE_CURRENT_BINARY_DIR}/micrortps_agent
|
|
||||||
--client-outdir ${CMAKE_CURRENT_BINARY_DIR}/micrortps_client
|
|
||||||
>micrortps_bridge.log 2>&1 || cat micrortps_bridge.log # quiet successful build output
|
|
||||||
DEPENDS ${send_topic_files} ${receive_topic_files}
|
|
||||||
COMMENT "Generating RTPS topic bridge"
|
|
||||||
)
|
|
||||||
add_custom_target(topic_bridge_files DEPENDS ${topic_bridge_files_out})
|
|
||||||
|
|
||||||
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
|
|
||||||
include_directories(${CMAKE_CURRENT_BINARY_DIR}/micrortps_client)
|
|
||||||
|
|
||||||
px4_add_module(
|
|
||||||
MODULE modules__micrortps_bridge__micrortps_client
|
|
||||||
MAIN micrortps_client
|
|
||||||
STACK_MAIN 4096
|
|
||||||
SRCS
|
|
||||||
microRTPS_client_main.cpp
|
|
||||||
${msg_out_path}/micrortps_client/microRTPS_client.cpp
|
|
||||||
${msg_out_path}/micrortps_client/microRTPS_transport.cpp
|
|
||||||
DEPENDS
|
|
||||||
platforms__common
|
|
||||||
topic_bridge_files
|
|
||||||
uorb_headers_microcdr
|
|
||||||
)
|
|
||||||
target_link_libraries(modules__micrortps_bridge__micrortps_client PRIVATE lib__micro-CDR)
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
Reference in New Issue
Block a user