Skip to content

Commit d771acf

Browse files
pablogs9Your Name
authored andcommitted
Updates
1 parent 92091c5 commit d771acf

6 files changed

Lines changed: 48 additions & 23 deletions

File tree

rmw_microxrcedds_c/src/rmw_init.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -268,9 +268,9 @@ rmw_init(const rmw_init_options_t * options, rmw_context_t * context)
268268
context_impl->connection_params.agent_port);
269269
#elif defined(MICRO_XRCEDDS_UDP) && defined(UCLIENT_BROKERLESS_ENABLE)
270270

271-
context_impl->udp_platform.comm = brokerless_comm_stub;
271+
context_impl->transport.comm = brokerless_comm_stub;
272272

273-
printf("UDP mode Brokerless P2P\n");
273+
printf("UDP mode => Brokerless P2P\n");
274274
#elif defined(MICRO_XRCEDDS_CUSTOM_SERIAL)
275275
int pseudo_fd = 0;
276276
if (strlen(options->impl->connection_params.serial_device) > 0) {

rmw_microxrcedds_c/src/rmw_microxrcedds_topic.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ rmw_ret_t destroy_topic(rmw_uxrce_topic_t * topic)
109109

110110
uint16_t delete_topic = uxr_buffer_delete_entity(
111111
&topic->owner_node->context->session,
112-
*custom_node->context->entity_creation_output,
112+
*topic->owner_node->context->entity_creation_output,
113113
topic->topic_id);
114114

115115
uint16_t requests[] = {delete_topic};

rmw_microxrcedds_c/src/rmw_node.c

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ rmw_node_t * create_node(
8585
participant_req =
8686
uxr_buffer_create_participant_xml(
8787
&node_info->context->session,
88-
*custom_node->context->entity_creation_output,
88+
*node_info->context->entity_creation_output,
8989
node_info->participant_id,
9090
(uint16_t)domain_id,
9191
rmw_uxrce_xml_buffer,
@@ -104,10 +104,16 @@ rmw_node_t * create_node(
104104
rmw_uxrce_profile_name,
105105
UXR_REPLACE);
106106
#endif
107+
107108
uint8_t status[1];
108109
uint16_t requests[] = {participant_req};
109110

110-
if (!uxr_run_session_until_all_status(&node_info->context->session, 1000, requests, status, 1)) {
111+
if (UXR_BEST_EFFORT_STREAM == node_info->context->entity_creation_output->type)
112+
{
113+
uxr_flash_output_streams(&node_info->context->session);
114+
}
115+
else if(!uxr_run_session_until_all_status(&node_info->context->session, 1000, requests, status, 1))
116+
{
111117
rmw_uxrce_fini_node_memory(node_handle);
112118
RMW_SET_ERROR_MSG("Issues creating micro XRCE-DDS entities");
113119
return NULL;
@@ -212,9 +218,11 @@ rmw_ret_t rmw_destroy_node(rmw_node_t * node)
212218
uint8_t status[1];
213219
uint16_t requests[] = {participant_req};
214220

215-
if (!uxr_run_session_until_all_status(
216-
&custom_node->context->session, 1000, requests, status,
217-
1))
221+
if (UXR_BEST_EFFORT_STREAM == custom_node->context->entity_creation_output->type)
222+
{
223+
uxr_flash_output_streams(&custom_node->context->session);
224+
}
225+
else if(!uxr_run_session_until_all_status(&custom_node->context->session, 1000, requests, status,1))
218226
{
219227
ret = RMW_RET_ERROR;
220228
}

rmw_microxrcedds_c/src/rmw_publisher.c

Lines changed: 28 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -209,9 +209,14 @@ rmw_create_publisher(
209209

210210
uint16_t requests[] = {publisher_req, datawriter_req};
211211
uint8_t status[sizeof(requests) / 2];
212-
if (!uxr_run_session_until_all_status(
213-
&custom_publisher->owner_node->context->session, 1000, requests,
214-
status, sizeof(status)))
212+
213+
if (UXR_BEST_EFFORT_STREAM == custom_node->context->entity_creation_output->type)
214+
{
215+
uxr_flash_output_streams(&custom_node->context->session);
216+
}
217+
else if(!uxr_run_session_until_all_status(
218+
&custom_publisher->owner_node->context->session, 1000, requests,
219+
status, sizeof(status)))
215220
{
216221
RMW_SET_ERROR_MSG("Issues creating micro XRCE-DDS entities");
217222
put_memory(&publisher_memory, &custom_publisher->mem);
@@ -317,25 +322,37 @@ rmw_destroy_publisher(
317322

318323
uint16_t delete_writer = uxr_buffer_delete_entity(
319324
&custom_publisher->owner_node->context->session,
320-
*custom_node->context->entity_creation_output,
325+
*custom_publisher->owner_node->context->entity_creation_output,
321326
custom_publisher->datawriter_id);
322327
uint16_t delete_publisher = uxr_buffer_delete_entity(
323328
&custom_publisher->owner_node->context->session,
324-
*custom_node->context->entity_creation_output,
329+
*custom_publisher->owner_node->context->entity_creation_output,
325330
custom_publisher->publisher_id);
326331

327332
uint16_t requests[] = {delete_writer, delete_publisher};
328333
uint8_t status[sizeof(requests) / 2];
329-
if (!uxr_run_session_until_all_status(
330-
&custom_publisher->owner_node->context->session, 1000, requests, status,
331-
sizeof(status)))
334+
335+
if (UXR_BEST_EFFORT_STREAM == custom_publisher->owner_node->context->entity_creation_output->type)
332336
{
333-
RMW_SET_ERROR_MSG("unable to remove publisher from the server");
334-
result_ret = RMW_RET_ERROR;
335-
} else {
337+
uxr_flash_output_streams(&custom_publisher->owner_node->context->session);
336338
rmw_uxrce_fini_publisher_memory(publisher);
337339
result_ret = RMW_RET_OK;
338340
}
341+
else
342+
{
343+
if (!uxr_run_session_until_all_status(
344+
&custom_publisher->owner_node->context->session, 1000, requests, status,
345+
sizeof(status)))
346+
{
347+
RMW_SET_ERROR_MSG("unable to remove publisher from the server");
348+
result_ret = RMW_RET_ERROR;
349+
}
350+
else
351+
{
352+
rmw_uxrce_fini_publisher_memory(publisher);
353+
result_ret = RMW_RET_OK;
354+
}
355+
}
339356
}
340357

341358
return result_ret;

rmw_microxrcedds_c/src/rmw_subscription.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -301,12 +301,12 @@ rmw_destroy_subscription(rmw_node_t * node, rmw_subscription_t * subscription)
301301
uint16_t delete_datareader =
302302
uxr_buffer_delete_entity(
303303
&custom_subscription->owner_node->context->session,
304-
*custom_node->context->entity_creation_output,
304+
*custom_subscription->owner_node->context->entity_creation_output,
305305
custom_subscription->datareader_id);
306306
uint16_t delete_subscriber =
307307
uxr_buffer_delete_entity(
308308
&custom_subscription->owner_node->context->session,
309-
*custom_node->context->entity_creation_output,
309+
*custom_subscription->owner_node->context->entity_creation_output,
310310
custom_subscription->subscriber_id);
311311

312312
uint16_t requests[] = {delete_datareader, delete_subscriber};

rmw_microxrcedds_c/src/utils.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -378,7 +378,7 @@ bool is_uxrce_rmw_identifier_valid(const char * id)
378378
bool build_requester_profile(const char * service_name, char profile_name[], size_t buffer_size)
379379
{
380380
const char * const format = "%s___requester";
381-
topic_name++;
381+
service_name++;
382382
bool ret = false;
383383
int written = snprintf(profile_name, buffer_size, format, service_name);
384384
ret = (written > 0) && (written < (int)buffer_size);
@@ -388,7 +388,7 @@ bool build_requester_profile(const char * service_name, char profile_name[], siz
388388
bool build_replier_profile(const char * service_name, char profile_name[], size_t buffer_size)
389389
{
390390
const char * const format = "%s___replier";
391-
topic_name++;
391+
service_name++;
392392
bool ret = false;
393393
int written = snprintf(profile_name, buffer_size, format, service_name);
394394
ret = (written > 0) && (written < (int)buffer_size);

0 commit comments

Comments
 (0)