dds_topics: Adds multi publication to subscribed dds topics

This commit is contained in:
GuillaumeLaine 2023-10-26 19:47:15 +02:00 committed by Beniamino Pozzan
parent e568b4a1d7
commit 85c75aedd1
3 changed files with 16 additions and 1 deletions

View File

@ -23,6 +23,7 @@ import os
#include <mathlib/mathlib.h>
#include <uORB/Publication.hpp>
#include <uORB/PublicationMulti.hpp>
#include <uORB/uORB.h>
@[for include in type_includes]@
#include <uORB/ucdr/@(include).h>
@ -127,6 +128,10 @@ struct RcvTopicsPubs {
uORB::Publication<@(sub['simple_base_type'])_s> @(sub['topic_simple'])_pub{ORB_ID(@(sub['topic_simple']))};
@[ end for]@
@[ for sub in subscriptions_multi]@
uORB::PublicationMulti<@(sub['simple_base_type'])_s> @(sub['topic_simple'])_pub{ORB_ID(@(sub['topic_simple']))};
@[ end for]@
uint32_t num_payload_received{};
bool init(uxrSession *session, uxrStreamId reliable_out_stream_id, uxrStreamId reliable_in_stream_id, uxrStreamId best_effort_in_stream_id, uxrObjectId participant_id, const char *client_namespace);
@ -140,7 +145,7 @@ static void on_topic_update(uxrSession *session, uxrObjectId object_id, uint16_t
pubs->num_payload_received += length;
switch (object_id.id) {
@[ for idx, sub in enumerate(subscriptions)]@
@[ for idx, sub in enumerate(subscriptions + subscriptions_multi)]@
case @(idx)+ (65535U / 32U) + 1: {
@(sub['simple_base_type'])_s data;

View File

@ -68,6 +68,7 @@ publications:
- topic: /fmu/out/vehicle_trajectory_waypoint_desired
type: px4_msgs::msg::VehicleTrajectoryWaypoint
# Create uORB::Publication
subscriptions:
- topic: /fmu/in/register_ext_component_request
type: px4_msgs::msg::RegisterExtComponentRequest
@ -134,3 +135,7 @@ subscriptions:
- topic: /fmu/in/vehicle_trajectory_waypoint
type: px4_msgs::msg::VehicleTrajectoryWaypoint
# Create uORB::PublicationMulti
subscriptions_multi:

View File

@ -110,6 +110,11 @@ for s in msg_map['subscriptions']:
merged_em_globals['subscriptions'] = msg_map['subscriptions']
for sm in msg_map['subscriptions_multi']:
process_message_type(sm)
merged_em_globals['subscriptions_multi'] = msg_map['subscriptions_multi']
merged_em_globals['type_includes'] = sorted(set(all_type_includes))