forked from Archive/PX4-Autopilot
RTPS and micro-CDR build system cleanup (#8084)
This commit is contained in:
parent
bb9f8c3b44
commit
651df03f76
|
@ -199,7 +199,6 @@ px4_add_git_submodule(TARGET git_mavlink PATH "mavlink/include/mavlink/v1.0")
|
|||
px4_add_git_submodule(TARGET git_mavlink2 PATH "mavlink/include/mavlink/v2.0")
|
||||
px4_add_git_submodule(TARGET git_nuttx PATH "platforms/nuttx/NuttX/nuttx")
|
||||
px4_add_git_submodule(TARGET git_uavcan PATH "src/modules/uavcan/libuavcan")
|
||||
px4_add_git_submodule(TARGET git_micro_cdr PATH "src/lib/micro-CDR")
|
||||
|
||||
#=============================================================================
|
||||
|
||||
|
@ -356,6 +355,22 @@ include_directories(${include_dirs})
|
|||
link_directories(${link_dirs})
|
||||
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
|
||||
#
|
||||
|
|
|
@ -545,7 +545,9 @@ endfunction()
|
|||
#
|
||||
function(px4_add_library target)
|
||||
add_library(${target} ${ARGN})
|
||||
add_dependencies(${target} prebuild_targets)
|
||||
px4_add_optimization_flags_for_target(${target})
|
||||
|
||||
# Pass variable to the parent px4_add_module.
|
||||
set(_no_optimization_for_target ${_no_optimization_for_target} PARENT_SCOPE)
|
||||
|
||||
|
|
|
@ -129,7 +129,6 @@ set(config_module_list
|
|||
lib/version
|
||||
lib/DriverFramework/framework
|
||||
platforms/nuttx
|
||||
lib/micro-CDR
|
||||
|
||||
# had to add for cmake, not sure why wasn't in original config
|
||||
platforms/common
|
||||
|
|
|
@ -89,7 +89,6 @@ set(config_module_list
|
|||
lib/DriverFramework/framework
|
||||
lib/rc
|
||||
platforms/nuttx
|
||||
lib/micro-CDR
|
||||
platforms/common
|
||||
platforms/nuttx/px4_layer
|
||||
)
|
||||
|
|
|
@ -149,7 +149,6 @@ set(config_module_list
|
|||
lib/version
|
||||
lib/DriverFramework/framework
|
||||
platforms/nuttx
|
||||
lib/micro-CDR
|
||||
|
||||
# had to add for cmake, not sure why wasn't in original config
|
||||
platforms/common
|
||||
|
|
|
@ -96,7 +96,6 @@ set(config_module_list
|
|||
lib/version
|
||||
lib/DriverFramework/framework
|
||||
platforms/nuttx
|
||||
lib/micro-CDR
|
||||
|
||||
# had to add for cmake, not sure why wasn't in original config
|
||||
platforms/common
|
||||
|
|
|
@ -66,7 +66,6 @@ set(config_module_list
|
|||
#
|
||||
# Library modules
|
||||
#
|
||||
lib/micro-CDR
|
||||
lib/version
|
||||
modules/systemlib
|
||||
modules/systemlib/param
|
||||
|
|
|
@ -157,7 +157,6 @@ set(config_module_list
|
|||
lib/version
|
||||
lib/DriverFramework/framework
|
||||
platforms/nuttx
|
||||
lib/micro-CDR
|
||||
|
||||
# had to add for cmake, not sure why wasn't in original config
|
||||
platforms/common
|
||||
|
|
|
@ -166,7 +166,6 @@ set(config_module_list
|
|||
lib/tailsitter_recovery
|
||||
lib/version
|
||||
lib/DriverFramework/framework
|
||||
lib/micro-CDR
|
||||
|
||||
#
|
||||
# Platform
|
||||
|
|
|
@ -135,7 +135,6 @@ set(config_module_list
|
|||
# had to add for cmake, not sure why wasn't in original config
|
||||
platforms/common
|
||||
platforms/nuttx/px4_layer
|
||||
lib/micro-CDR
|
||||
|
||||
#
|
||||
# OBC challenge
|
||||
|
|
|
@ -46,7 +46,6 @@ set(config_module_list
|
|||
lib/version
|
||||
lib/DriverFramework/framework
|
||||
platforms/nuttx
|
||||
lib/micro-CDR
|
||||
|
||||
# had to add for cmake, not sure why wasn't in original config
|
||||
platforms/common
|
||||
|
|
|
@ -58,7 +58,6 @@ set(config_module_list
|
|||
#
|
||||
# Library modules
|
||||
#
|
||||
lib/micro-CDR
|
||||
lib/version
|
||||
modules/systemlib
|
||||
modules/systemlib/param
|
||||
|
|
|
@ -67,7 +67,6 @@ set(config_module_list
|
|||
#
|
||||
# Library modules
|
||||
#
|
||||
lib/micro-CDR
|
||||
lib/version
|
||||
modules/systemlib
|
||||
modules/systemlib/param
|
||||
|
|
|
@ -149,7 +149,6 @@ set(config_module_list
|
|||
lib/version
|
||||
lib/DriverFramework/framework
|
||||
platforms/nuttx
|
||||
lib/micro-CDR
|
||||
|
||||
# had to add for cmake, not sure why wasn't in original config
|
||||
platforms/common
|
||||
|
|
|
@ -145,7 +145,6 @@ set(config_module_list
|
|||
lib/version
|
||||
lib/DriverFramework/framework
|
||||
platforms/nuttx
|
||||
lib/micro-CDR
|
||||
|
||||
# had to add for cmake, not sure why wasn't in original config
|
||||
platforms/common
|
||||
|
|
|
@ -159,7 +159,6 @@ set(config_module_list
|
|||
lib/tailsitter_recovery
|
||||
lib/terrain_estimation
|
||||
lib/version
|
||||
lib/micro-CDR
|
||||
|
||||
#
|
||||
# Platform
|
||||
|
|
|
@ -161,7 +161,6 @@ set(config_module_list
|
|||
lib/tailsitter_recovery
|
||||
lib/version
|
||||
lib/DriverFramework/framework
|
||||
lib/micro-CDR
|
||||
|
||||
#
|
||||
# Platform
|
||||
|
|
|
@ -160,7 +160,6 @@ set(config_module_list
|
|||
lib/tailsitter_recovery
|
||||
lib/terrain_estimation
|
||||
lib/version
|
||||
lib/micro-CDR
|
||||
|
||||
#
|
||||
# Platform
|
||||
|
|
|
@ -161,7 +161,6 @@ set(config_module_list
|
|||
lib/tailsitter_recovery
|
||||
lib/terrain_estimation
|
||||
lib/version
|
||||
lib/micro-CDR
|
||||
|
||||
#
|
||||
# Platform
|
||||
|
|
|
@ -10,5 +10,4 @@ set(config_module_list
|
|||
modules/systemlib/mixer
|
||||
platforms/common
|
||||
|
||||
lib/micro-CDR
|
||||
)
|
||||
|
|
|
@ -137,7 +137,6 @@ set(config_module_list
|
|||
lib/version
|
||||
lib/DriverFramework/framework
|
||||
platforms/nuttx
|
||||
lib/micro-CDR
|
||||
|
||||
# had to add for cmake, not sure why wasn't in original config
|
||||
platforms/common
|
||||
|
|
|
@ -60,7 +60,6 @@ set(config_module_list
|
|||
modules/systemlib/param
|
||||
modules/systemlib
|
||||
lib/version
|
||||
lib/micro-CDR
|
||||
|
||||
#
|
||||
# Libraries
|
||||
|
|
|
@ -104,7 +104,6 @@ set(config_module_list
|
|||
lib/version
|
||||
lib/DriverFramework/framework
|
||||
platforms/nuttx
|
||||
lib/micro-CDR
|
||||
|
||||
# had to add for cmake, not sure why wasn't in original config
|
||||
platforms/common
|
||||
|
|
|
@ -87,7 +87,6 @@ set(config_module_list
|
|||
lib/tailsitter_recovery
|
||||
lib/version
|
||||
lib/DriverFramework/framework
|
||||
lib/micro-CDR
|
||||
|
||||
#
|
||||
# POSIX
|
||||
|
|
|
@ -48,7 +48,6 @@ set(config_module_list
|
|||
lib/conversion
|
||||
lib/version
|
||||
lib/DriverFramework/framework
|
||||
lib/micro-CDR
|
||||
|
||||
platforms/common
|
||||
platforms/posix/px4_layer
|
||||
|
|
|
@ -19,7 +19,6 @@ set(config_module_list
|
|||
modules/uORB
|
||||
|
||||
lib/DriverFramework/framework
|
||||
lib/micro-CDR
|
||||
|
||||
platforms/posix/px4_layer
|
||||
platforms/posix/work_queue
|
||||
|
|
|
@ -94,7 +94,6 @@ set(config_module_list
|
|||
lib/DriverFramework/framework
|
||||
lib/rc
|
||||
lib/led
|
||||
lib/micro-CDR
|
||||
|
||||
#
|
||||
# POSIX
|
||||
|
|
|
@ -93,7 +93,6 @@ set(config_module_list
|
|||
lib/DriverFramework/framework
|
||||
lib/rc
|
||||
lib/led
|
||||
lib/micro-CDR
|
||||
|
||||
#
|
||||
# POSIX
|
||||
|
|
|
@ -108,7 +108,6 @@ set(config_module_list
|
|||
lib/tailsitter_recovery
|
||||
lib/version
|
||||
lib/DriverFramework/framework
|
||||
lib/micro-CDR
|
||||
|
||||
#
|
||||
# POSIX
|
||||
|
|
|
@ -82,7 +82,6 @@ set(config_module_list
|
|||
lib/tailsitter_recovery
|
||||
lib/version
|
||||
lib/DriverFramework/framework
|
||||
lib/micro-CDR
|
||||
|
||||
platforms/common
|
||||
platforms/posix/px4_layer
|
||||
|
|
|
@ -74,7 +74,6 @@ set(config_module_list
|
|||
lib/tailsitter_recovery
|
||||
lib/version
|
||||
lib/DriverFramework/framework
|
||||
lib/micro-CDR
|
||||
|
||||
platforms/common
|
||||
platforms/posix/px4_layer
|
||||
|
|
|
@ -191,7 +191,6 @@ set(config_module_list
|
|||
examples/ekf_att_pos_estimator
|
||||
|
||||
# micro-RTPS
|
||||
lib/micro-CDR
|
||||
)
|
||||
|
||||
set(config_rtps_send_topics
|
||||
|
|
|
@ -34,11 +34,6 @@ set(config_module_list
|
|||
modules/systemlib/param
|
||||
modules/systemlib
|
||||
modules/uORB
|
||||
|
||||
#
|
||||
# Libraries
|
||||
#
|
||||
lib/micro-CDR
|
||||
|
||||
#
|
||||
# QuRT port
|
||||
|
|
|
@ -73,7 +73,6 @@ set(config_module_list
|
|||
lib/controllib
|
||||
lib/version
|
||||
lib/DriverFramework/framework
|
||||
lib/micro-CDR
|
||||
|
||||
#
|
||||
# QuRT port
|
||||
|
|
|
@ -45,7 +45,6 @@ set(config_module_list
|
|||
lib/conversion
|
||||
lib/version
|
||||
lib/DriverFramework/framework
|
||||
lib/micro-CDR
|
||||
|
||||
#
|
||||
# QuRT port
|
||||
|
|
|
@ -43,7 +43,6 @@ set(config_module_list
|
|||
lib/mathlib/math/filter
|
||||
lib/conversion
|
||||
lib/DriverFramework/framework
|
||||
lib/micro-CDR
|
||||
|
||||
#
|
||||
# QuRT port
|
||||
|
|
|
@ -79,7 +79,6 @@ set(config_module_list
|
|||
lib/tailsitter_recovery
|
||||
lib/version
|
||||
lib/DriverFramework/framework
|
||||
lib/micro-CDR
|
||||
|
||||
#
|
||||
# QuRT port
|
||||
|
|
|
@ -94,7 +94,6 @@ set(config_module_list
|
|||
lib/rc
|
||||
lib/version
|
||||
lib/DriverFramework/framework
|
||||
lib/micro-CDR
|
||||
|
||||
#
|
||||
# QuRT port
|
||||
|
|
|
@ -94,7 +94,6 @@ set(config_module_list
|
|||
lib/rc
|
||||
lib/version
|
||||
lib/DriverFramework/framework
|
||||
lib/micro-CDR
|
||||
|
||||
#
|
||||
# QuRT port
|
||||
|
|
|
@ -236,7 +236,7 @@ function(px4_os_prebuild_targets)
|
|||
REQUIRED OUT BOARD
|
||||
ARGN ${ARGN})
|
||||
|
||||
add_custom_target(${OUT} DEPENDS nuttx_context)
|
||||
add_custom_target(${OUT} DEPENDS nuttx_context uorb_headers)
|
||||
|
||||
# parse nuttx config options for cmake
|
||||
file(STRINGS ${PX4_SOURCE_DIR}/nuttx-configs/${BOARD}/nsh/defconfig ConfigContents)
|
||||
|
|
|
@ -330,5 +330,6 @@ function(px4_os_prebuild_targets)
|
|||
ONE_VALUE OUT BOARD THREADS
|
||||
REQUIRED OUT BOARD
|
||||
ARGN ${ARGN})
|
||||
add_custom_target(${OUT})
|
||||
|
||||
add_custom_target(${OUT} DEPENDS uorb_headers)
|
||||
endfunction()
|
||||
|
|
|
@ -80,6 +80,7 @@ function(px4_qurt_generate_builtin_commands)
|
|||
MULTI_VALUE MODULE_LIST
|
||||
REQUIRED MODULE_LIST OUT
|
||||
ARGN ${ARGN})
|
||||
|
||||
set(builtin_apps_string)
|
||||
set(builtin_apps_decl_string)
|
||||
set(command_count 0)
|
||||
|
@ -235,7 +236,8 @@ function(px4_os_prebuild_targets)
|
|||
ONE_VALUE OUT BOARD THREADS
|
||||
REQUIRED OUT BOARD
|
||||
ARGN ${ARGN})
|
||||
add_custom_target(${OUT} DEPENDS git_driverframework)
|
||||
|
||||
add_custom_target(${OUT} DEPENDS git_driverframework uorb_headers)
|
||||
|
||||
endfunction()
|
||||
|
||||
|
|
|
@ -127,20 +127,17 @@ set(msg_files
|
|||
wind_estimate.msg
|
||||
)
|
||||
|
||||
px4_add_git_submodule(TARGET git_gencpp PATH "Tools/gencpp")
|
||||
px4_add_git_submodule(TARGET git_genmsg PATH "Tools/genmsg")
|
||||
px4_add_git_submodule(TARGET git_gencpp PATH tools/gencpp)
|
||||
px4_add_git_submodule(TARGET git_genmsg PATH tools/genmsg)
|
||||
|
||||
# headers
|
||||
set(msg_out_path ${PX4_BINARY_DIR}/uORB/topics)
|
||||
set(msg_source_out_path ${CMAKE_CURRENT_BINARY_DIR}/topics_sources)
|
||||
#set(msg_source_files_out ${CMAKE_CURRENT_BINARY_DIR}/uORBTopics.cpp)
|
||||
|
||||
set(msg_list)
|
||||
set(uorb_headers)
|
||||
set(uorb_sources ${msg_source_out_path}/uORBTopics.cpp)
|
||||
foreach(msg_file ${msg_files})
|
||||
get_filename_component(msg ${msg_file} NAME_WE)
|
||||
list(APPEND msg_list ${msg})
|
||||
list(APPEND uorb_headers ${msg_out_path}/${msg}.h)
|
||||
list(APPEND uorb_sources ${msg_source_out_path}/${msg}.cpp)
|
||||
endforeach()
|
||||
|
@ -178,12 +175,78 @@ add_custom_command(OUTPUT ${uorb_sources}
|
|||
VERBATIM
|
||||
)
|
||||
|
||||
add_library(uorb_msgs STATIC EXCLUDE_FROM_ALL ${uorb_sources})
|
||||
add_dependencies(uorb_msgs uorb_headers prebuild_targets)
|
||||
px4_add_library(uorb_msgs ${uorb_sources})
|
||||
add_dependencies(uorb_msgs uorb_headers)
|
||||
|
||||
# microCDR now part of uORB
|
||||
target_include_directories(uorb_msgs
|
||||
PRIVATE ${PX4_SOURCE_DIR}/src/lib/micro-CDR/include
|
||||
PRIVATE ${PX4_BINARY_DIR}/src/lib/micro-CDR/include/microcdr
|
||||
###############################################################################
|
||||
# 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
|
||||
)
|
||||
target_link_libraries(uorb_msgs PRIVATE lib__micro-CDR)
|
||||
endif()
|
||||
|
|
|
@ -64,9 +64,6 @@ struct_size, padding_end_size = add_padding_bytes(sorted_fields, search_path)
|
|||
topic_fields = ["uint64_t timestamp"]+["%s %s" % (convert_type(field.type), field.name) for field in sorted_fields]
|
||||
}@
|
||||
|
||||
#include <px4_config.h>
|
||||
#include <drivers/drv_orb_dev.h>
|
||||
#include <microcdr/microCdr.h>
|
||||
#include <uORB/topics/@(topic_name).h>
|
||||
|
||||
@# join all msg files in one line e.g: "float[3] position;float[3] velocity;bool armed"
|
||||
|
@ -76,99 +73,3 @@ constexpr char __orb_@(topic_name)_fields[] = "@( ";".join(topic_fields) );";
|
|||
@[for multi_topic in topics]@
|
||||
ORB_DEFINE(@multi_topic, struct @uorb_struct, @(struct_size-padding_end_size), __orb_@(topic_name)_fields);
|
||||
@[end for]
|
||||
|
||||
@#################################################
|
||||
@# Searching for serialize function per each field
|
||||
@#################################################
|
||||
@{
|
||||
|
||||
def print_info(field):
|
||||
print("type: ", field.type, "name: ", field.name, "base_type: ", \
|
||||
field.base_type, "field.is_array:", ('0', '1')[field.is_array], " array_len: ", field.array_len, \
|
||||
"is_builtin:", ('0', '1')[field.is_builtin], "is_header:", ('0', '1')[field.is_header])
|
||||
|
||||
def print_level_info(fields):
|
||||
for field in fields:
|
||||
print_info(field)
|
||||
if (not field.is_builtin):
|
||||
print("\n")
|
||||
children_fields = get_children_fields(field.base_type, search_path)
|
||||
print_level_info(children_fields)
|
||||
print("\n")
|
||||
|
||||
def walk_through_parsed_fields():
|
||||
print_level_info(spec.parsed_fields())
|
||||
|
||||
def get_serialization_type_name(type_name):
|
||||
if type_name in type_serialize_map:
|
||||
return type_serialize_map[type_name]
|
||||
else:
|
||||
raise Exception("Type {0} not supported, add to type_serialize_map!".format(type_name))
|
||||
|
||||
def add_serialize_functions(fields, scope_name):
|
||||
for field in fields:
|
||||
if (not field.is_header):
|
||||
if (field.is_builtin):
|
||||
if (not field.is_array):
|
||||
print("\tserialize"+str(get_serialization_type_name(field.type))+"(input->"+scope_name+str(field.name)+", microCDRWriter);")
|
||||
else:
|
||||
print("\tserialize"+str(get_serialization_type_name(field.base_type))+"Array(input->"+scope_name+str(field.name)+", "+str(field.array_len)+", microCDRWriter);")
|
||||
else:
|
||||
name = field.name
|
||||
children_fields = get_children_fields(field.base_type, search_path)
|
||||
if (scope_name): name = scope_name + name
|
||||
if (not field.is_array):
|
||||
add_serialize_functions(children_fields, name + '.')
|
||||
else:
|
||||
for i in range(field.array_len):
|
||||
add_serialize_functions(children_fields, name + ('[%d].' %i))
|
||||
|
||||
def add_deserialize_functions(fields, scope_name):
|
||||
for field in fields:
|
||||
if (not field.is_header):
|
||||
if (field.is_builtin):
|
||||
if (not field.is_array):
|
||||
print("\tdeserialize"+str(get_serialization_type_name(field.type))+"(&output->"+scope_name+str(field.name)+", microCDRReader);")
|
||||
else:
|
||||
for i in range(field.array_len):
|
||||
print("\tdeserialize"+str(get_serialization_type_name(field.base_type))+"(&output->"+scope_name+str(field.name)+ str('[%d]' %i) +", microCDRReader);")
|
||||
else:
|
||||
name = field.name
|
||||
children_fields = get_children_fields(field.base_type, search_path)
|
||||
if (scope_name): name = scope_name + name
|
||||
if (not field.is_array):
|
||||
add_deserialize_functions(children_fields, name + '.')
|
||||
else:
|
||||
for i in range(field.array_len):
|
||||
add_deserialize_functions(children_fields, name + ('[%d].' %i))
|
||||
|
||||
def add_code_to_serialize():
|
||||
# sort fields (using a stable sort) as in the declaration of the type
|
||||
sorted_fields = sorted(spec.parsed_fields(), key=sizeof_field_type, reverse=True)
|
||||
add_serialize_functions(sorted_fields, "")
|
||||
|
||||
def add_code_to_deserialize():
|
||||
# sort fields (using a stable sort) as in the declaration of the type
|
||||
sorted_fields = sorted(spec.parsed_fields(), key=sizeof_field_type, reverse=True)
|
||||
add_deserialize_functions(sorted_fields, "")
|
||||
}@
|
||||
|
||||
void serialize_@(topic_name)(const struct @(uorb_struct) *input, char *output, uint32_t *length, struct microCDR *microCDRWriter)
|
||||
{
|
||||
if (nullptr == input || nullptr == output || nullptr == length || nullptr == microCDRWriter) return;
|
||||
|
||||
resetStaticMicroCDRForSerialize(microCDRWriter);
|
||||
|
||||
@add_code_to_serialize()
|
||||
|
||||
(*length) = microCDRWriter->m_microBuffer->m_serializedBuffer;
|
||||
}
|
||||
|
||||
void deserialize_@(topic_name)(struct @(uorb_struct) *output, char *input, struct microCDR *microCDRReader)
|
||||
{
|
||||
if (nullptr == output || nullptr == input || nullptr == microCDRReader) return;
|
||||
|
||||
resetStaticMicroCDRForDeserialize(microCDRReader);
|
||||
|
||||
@add_code_to_deserialize()
|
||||
}
|
|
@ -65,12 +65,6 @@ topic_name = spec.short_name
|
|||
@##############################
|
||||
@# Generic Includes
|
||||
@##############################
|
||||
#include <stdint.h>
|
||||
#ifdef __cplusplus
|
||||
#include <cstring>
|
||||
#else
|
||||
#include <string.h>
|
||||
#endif
|
||||
|
||||
#include <uORB/uORB.h>
|
||||
|
||||
|
@ -108,8 +102,6 @@ def print_parsed_fields():
|
|||
print_field_def(field)
|
||||
}@
|
||||
|
||||
struct microCDR;
|
||||
|
||||
#ifdef __cplusplus
|
||||
@#class @(uorb_struct) {
|
||||
struct __EXPORT @(uorb_struct) {
|
||||
|
@ -137,10 +129,6 @@ for constant in spec.constants:
|
|||
#endif
|
||||
};
|
||||
|
||||
|
||||
void serialize_@(topic_name)(const struct @(uorb_struct) *input, char *output, uint32_t *length, struct microCDR *microCDRWriter);
|
||||
void deserialize_@(topic_name)(struct @(uorb_struct) *output, char *input, struct microCDR *microCDRReader);
|
||||
|
||||
/* register this as object request broker structure */
|
||||
@[for multi_topic in topics]@
|
||||
ORB_DECLARE(@multi_topic);
|
||||
|
|
|
@ -67,6 +67,7 @@ recv_topics = [s.short_name for idx, s in enumerate(spec) if scope[idx] == MsgSc
|
|||
|
||||
@[for topic in list(set(topic_names))]@
|
||||
#include <uORB/topics/@(topic).h>
|
||||
#include <uORB_microcdr/topics/@(topic).h>
|
||||
@[end for]@
|
||||
|
||||
void* send(void *data);
|
|
@ -0,0 +1,166 @@
|
|||
@###############################################
|
||||
@#
|
||||
@# PX4 ROS compatible message source code
|
||||
@# generation for C++
|
||||
@#
|
||||
@# EmPy template for generating <msg>.h files
|
||||
@# Based on the original template for ROS
|
||||
@#
|
||||
@###############################################
|
||||
@# Start of Template
|
||||
@#
|
||||
@# Context:
|
||||
@# - file_name_in (String) Source file
|
||||
@# - spec (msggen.MsgSpec) Parsed specification of the .msg file
|
||||
@# - md5sum (String) MD5Sum of the .msg specification
|
||||
@# - search_path (dict) search paths for genmsg
|
||||
@# - topics (List of String) multi-topic names
|
||||
@###############################################
|
||||
/****************************************************************************
|
||||
*
|
||||
* Copyright (C) 2013-2016 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.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
/* Auto-generated by genmsg_cpp from file @file_name_in */
|
||||
|
||||
@{
|
||||
import genmsg.msgs
|
||||
import gencpp
|
||||
from px_generate_uorb_topic_helper import * # this is in Tools/
|
||||
|
||||
uorb_struct = '%s_s'%spec.short_name
|
||||
topic_name = spec.short_name
|
||||
|
||||
sorted_fields = sorted(spec.parsed_fields(), key=sizeof_field_type, reverse=True)
|
||||
struct_size, padding_end_size = add_padding_bytes(sorted_fields, search_path)
|
||||
topic_fields = ["uint64_t timestamp"]+["%s %s" % (convert_type(field.type), field.name) for field in sorted_fields]
|
||||
}@
|
||||
|
||||
#include <px4_config.h>
|
||||
#include <microcdr/microCdr.h>
|
||||
#include <uORB/topics/@(topic_name).h>
|
||||
#include <uORB_microcdr/topics/@(topic_name).h>
|
||||
|
||||
@#################################################
|
||||
@# Searching for serialize function per each field
|
||||
@#################################################
|
||||
@{
|
||||
|
||||
def print_info(field):
|
||||
print("type: ", field.type, "name: ", field.name, "base_type: ", \
|
||||
field.base_type, "field.is_array:", ('0', '1')[field.is_array], " array_len: ", field.array_len, \
|
||||
"is_builtin:", ('0', '1')[field.is_builtin], "is_header:", ('0', '1')[field.is_header])
|
||||
|
||||
def print_level_info(fields):
|
||||
for field in fields:
|
||||
print_info(field)
|
||||
if (not field.is_builtin):
|
||||
print("\n")
|
||||
children_fields = get_children_fields(field.base_type, search_path)
|
||||
print_level_info(children_fields)
|
||||
print("\n")
|
||||
|
||||
def walk_through_parsed_fields():
|
||||
print_level_info(spec.parsed_fields())
|
||||
|
||||
def get_serialization_type_name(type_name):
|
||||
if type_name in type_serialize_map:
|
||||
return type_serialize_map[type_name]
|
||||
else:
|
||||
raise Exception("Type {0} not supported, add to type_serialize_map!".format(type_name))
|
||||
|
||||
def add_serialize_functions(fields, scope_name):
|
||||
for field in fields:
|
||||
if (not field.is_header):
|
||||
if (field.is_builtin):
|
||||
if (not field.is_array):
|
||||
print("\tserialize"+str(get_serialization_type_name(field.type))+"(input->"+scope_name+str(field.name)+", microCDRWriter);")
|
||||
else:
|
||||
print("\tserialize"+str(get_serialization_type_name(field.base_type))+"Array(input->"+scope_name+str(field.name)+", "+str(field.array_len)+", microCDRWriter);")
|
||||
else:
|
||||
name = field.name
|
||||
children_fields = get_children_fields(field.base_type, search_path)
|
||||
if (scope_name): name = scope_name + name
|
||||
if (not field.is_array):
|
||||
add_serialize_functions(children_fields, name + '.')
|
||||
else:
|
||||
for i in range(field.array_len):
|
||||
add_serialize_functions(children_fields, name + ('[%d].' %i))
|
||||
|
||||
def add_deserialize_functions(fields, scope_name):
|
||||
for field in fields:
|
||||
if (not field.is_header):
|
||||
if (field.is_builtin):
|
||||
if (not field.is_array):
|
||||
print("\tdeserialize"+str(get_serialization_type_name(field.type))+"(&output->"+scope_name+str(field.name)+", microCDRReader);")
|
||||
else:
|
||||
for i in range(field.array_len):
|
||||
print("\tdeserialize"+str(get_serialization_type_name(field.base_type))+"(&output->"+scope_name+str(field.name)+ str('[%d]' %i) +", microCDRReader);")
|
||||
else:
|
||||
name = field.name
|
||||
children_fields = get_children_fields(field.base_type, search_path)
|
||||
if (scope_name): name = scope_name + name
|
||||
if (not field.is_array):
|
||||
add_deserialize_functions(children_fields, name + '.')
|
||||
else:
|
||||
for i in range(field.array_len):
|
||||
add_deserialize_functions(children_fields, name + ('[%d].' %i))
|
||||
|
||||
def add_code_to_serialize():
|
||||
# sort fields (using a stable sort) as in the declaration of the type
|
||||
sorted_fields = sorted(spec.parsed_fields(), key=sizeof_field_type, reverse=True)
|
||||
add_serialize_functions(sorted_fields, "")
|
||||
|
||||
def add_code_to_deserialize():
|
||||
# sort fields (using a stable sort) as in the declaration of the type
|
||||
sorted_fields = sorted(spec.parsed_fields(), key=sizeof_field_type, reverse=True)
|
||||
add_deserialize_functions(sorted_fields, "")
|
||||
}@
|
||||
|
||||
void serialize_@(topic_name)(const struct @(uorb_struct) *input, char *output, uint32_t *length, struct microCDR *microCDRWriter)
|
||||
{
|
||||
if (nullptr == input || nullptr == output || nullptr == length || nullptr == microCDRWriter) return;
|
||||
|
||||
resetStaticMicroCDRForSerialize(microCDRWriter);
|
||||
|
||||
@add_code_to_serialize()
|
||||
|
||||
(*length) = microCDRWriter->m_microBuffer->m_serializedBuffer;
|
||||
}
|
||||
|
||||
void deserialize_@(topic_name)(struct @(uorb_struct) *output, char *input, struct microCDR *microCDRReader)
|
||||
{
|
||||
if (nullptr == output || nullptr == input || nullptr == microCDRReader) return;
|
||||
|
||||
resetStaticMicroCDRForDeserialize(microCDRReader);
|
||||
|
||||
@add_code_to_deserialize()
|
||||
}
|
|
@ -0,0 +1,75 @@
|
|||
@###############################################
|
||||
@#
|
||||
@# PX4 ROS compatible message source code
|
||||
@# generation for C++
|
||||
@#
|
||||
@# EmPy template for generating <msg>.h files
|
||||
@# Based on the original template for ROS
|
||||
@#
|
||||
@###############################################
|
||||
@# Start of Template
|
||||
@#
|
||||
@# Context:
|
||||
@# - file_name_in (String) Source file
|
||||
@# - spec (msggen.MsgSpec) Parsed specification of the .msg file
|
||||
@# - md5sum (String) MD5Sum of the .msg specification
|
||||
@# - search_path (dict) search paths for genmsg
|
||||
@# - topics (List of String) multi-topic names
|
||||
@###############################################
|
||||
/****************************************************************************
|
||||
*
|
||||
* Copyright (C) 2013-2016 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.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
/* Auto-generated by genmsg_cpp from file @file_name_in */
|
||||
|
||||
@{
|
||||
import genmsg.msgs
|
||||
import gencpp
|
||||
from px_generate_uorb_topic_helper import * # this is in Tools/
|
||||
|
||||
uorb_struct = '%s_s'%spec.short_name
|
||||
topic_name = spec.short_name
|
||||
}@
|
||||
|
||||
#pragma once
|
||||
|
||||
@##############################
|
||||
@# Generic Includes
|
||||
@##############################
|
||||
#include <uORB/topics/@(topic_name).h>
|
||||
#include <uORB_microcdr/topics/@(topic_name).h>
|
||||
|
||||
struct microCDR;
|
||||
|
||||
|
||||
void serialize_@(topic_name)(const struct @(uorb_struct) *input, char *output, uint32_t *length, struct microCDR *microCDRWriter);
|
||||
void deserialize_@(topic_name)(struct @(uorb_struct) *output, char *input, struct microCDR *microCDRReader);
|
|
@ -0,0 +1,46 @@
|
|||
@###############################################
|
||||
@#
|
||||
@# EmPy template for generating uORBTopics.cpp file
|
||||
@# for logging purposes
|
||||
@#
|
||||
@###############################################
|
||||
@# Start of Template
|
||||
@#
|
||||
@# Context:
|
||||
@# - msgs (List) list of all msg files
|
||||
@# - multi_topics (List) list of all multi-topic names
|
||||
@###############################################
|
||||
/****************************************************************************
|
||||
*
|
||||
* Copyright (C) 2013-2015 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.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#include <uORB/uORB.h>
|
|
@ -126,7 +126,7 @@ if del_tree:
|
|||
if agent and os.path.isdir(agent_out_dir + "/idl"):
|
||||
shutil.rmtree(agent_out_dir + "/idl")
|
||||
|
||||
uorb_templates_dir = msg_folder + "/templates/uorb"
|
||||
uorb_templates_dir = msg_folder + "/templates/uorb_microcdr"
|
||||
urtps_templates_dir = msg_folder + "/templates/urtps"
|
||||
|
||||
uRTPS_CLIENT_TEMPL_FILE = 'microRTPS_client.cpp.template'
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#include <string.h>
|
||||
#include <drivers/device/i2c.h>
|
||||
#include <drivers/drv_airspeed.h>
|
||||
#include <drivers/drv_hrt.h>
|
||||
|
|
|
@ -93,6 +93,8 @@
|
|||
*
|
||||
*/
|
||||
|
||||
#include <strings.h>
|
||||
|
||||
#include <px4_config.h>
|
||||
|
||||
#include <sys/types.h>
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
#include <fcntl.h>
|
||||
#include <sys/stat.h>
|
||||
#include <errno.h>
|
||||
#include <cstring>
|
||||
|
||||
#include "mavlink_ftp.h"
|
||||
#include "mavlink_main.h"
|
||||
|
|
|
@ -31,19 +31,12 @@
|
|||
#
|
||||
############################################################################
|
||||
|
||||
if(NOT GENERATE_RTPS_BRIDGE MATCHES "off")
|
||||
if(GENERATE_RTPS_BRIDGE)
|
||||
|
||||
find_program(FASTRTPSGEN fastrtpsgen PATHS $ENV{FASTRTPSGEN_DIR})
|
||||
if(NOT FASTRTPSGEN)
|
||||
message(STATUS "WARNING: Unable to find fastrtpsgen. Building PX4 without RTPS bridge support")
|
||||
px4_add_module(
|
||||
MODULE modules__micrortps_bridge__micrortps_client
|
||||
MAIN micrortps_client
|
||||
SRCS
|
||||
microRTPS_client_dummy.cpp
|
||||
DEPENDS
|
||||
platforms__common
|
||||
)
|
||||
|
||||
return()
|
||||
endif()
|
||||
|
||||
|
@ -63,13 +56,13 @@ if(NOT GENERATE_RTPS_BRIDGE MATCHES "off")
|
|||
endforeach()
|
||||
|
||||
foreach(topic ${config_rtps_send_topics})
|
||||
list(APPEND topic_bridge_files_out ${msg_out_path}/${topic}_Publisher.cpp)
|
||||
list(APPEND topic_bridge_files_out ${msg_out_path}/${topic}_Publisher.h)
|
||||
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}/${topic}_Subscriber.cpp)
|
||||
list(APPEND topic_bridge_files_out ${msg_out_path}/${topic}_Subscriber.h)
|
||||
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)
|
||||
|
@ -96,9 +89,9 @@ if(NOT GENERATE_RTPS_BRIDGE MATCHES "off")
|
|||
--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"
|
||||
VERBATIM
|
||||
)
|
||||
add_custom_target(topic_bridge_files DEPENDS ${topic_bridge_files_out})
|
||||
|
||||
|
@ -110,13 +103,13 @@ if(NOT GENERATE_RTPS_BRIDGE MATCHES "off")
|
|||
MAIN micrortps_client
|
||||
STACK_MAIN 4096
|
||||
SRCS
|
||||
${CMAKE_CURRENT_BINARY_DIR}/micrortps_client/microRTPS_transport.cpp
|
||||
${CMAKE_CURRENT_BINARY_DIR}/micrortps_client/microRTPS_client.cpp
|
||||
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
|
||||
uorb_headers_microcdr
|
||||
)
|
||||
target_link_libraries(modules__micrortps_bridge__micrortps_client PRIVATE lib__micro-CDR)
|
||||
endif()
|
||||
|
|
|
@ -61,6 +61,7 @@
|
|||
#include <systemlib/err.h>
|
||||
#include <drivers/drv_hrt.h>
|
||||
#include <math.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <uORB/uORB.h>
|
||||
#include <uORB/topics/vehicle_status.h>
|
||||
|
|
|
@ -48,5 +48,4 @@ px4_add_module(
|
|||
uORBUtils.cpp
|
||||
DEPENDS
|
||||
platforms__common
|
||||
)
|
||||
target_link_libraries(modules__uORB uorb_msgs)
|
||||
)
|
|
@ -1,4 +1,5 @@
|
|||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <px4_log.h>
|
||||
#ifdef __PX4_POSIX
|
||||
#include <execinfo.h>
|
||||
|
|
Loading…
Reference in New Issue