Skip to content

Commit

Permalink
iox-eclipse-iceoryx#1218 Fix waitset in C example
Browse files Browse the repository at this point in the history
  • Loading branch information
elBoberido committed Mar 3, 2022
1 parent 83db754 commit b69e113
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 15 deletions.
19 changes: 10 additions & 9 deletions iceoryx_examples/waitset_in_c/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ and attach the event `SubscriberEvent_DATA_RECEIVED` to the WaitSet with
the `subscriberCallback`, an event id `1U` and a pointer to our user defined
context data `sumOfAllSamples` which is then provided as argument for the callback.
!!! attention
!!! attention
The user has to ensure that the contextData (`sumOfAllSamples`) in
`iox_ws_attach_subscriber_event_with_context_data` lives as long as the
attachment, with its callback, is attached otherwise the callback context
Expand All @@ -115,6 +115,7 @@ context data `sumOfAllSamples` which is then provided as argument for the callba
uint64_t sumOfAllSamples = 0U;
iox_sub_storage_t subscriberStorage[NUMBER_OF_SUBSCRIBERS];
iox_sub_t subscriber[NUMBER_OF_SUBSCRIBERS];
iox_sub_options_t options;
iox_sub_options_init(&options);
Expand All @@ -123,10 +124,10 @@ options.queueCapacity = 256U;
options.nodeName = "iox-c-waitSet-gateway-node";
for (uint64_t i = 0U; i < NUMBER_OF_SUBSCRIBERS; ++i)
{
iox_sub_t subscriber = iox_sub_init(&(subscriberStorage[i]), "Radar", "FrontLeft", "Counter", &options);
subscriber[i] = iox_sub_init(&(subscriberStorage[i]), "Radar", "FrontLeft", "Counter", &options);
iox_ws_attach_subscriber_event_with_context_data(
waitSet, subscriber, SubscriberEvent_DATA_RECEIVED, 1U, subscriberCallback, &sumOfAllSamples);
waitSet, subscriber[i], SubscriberEvent_DATA_RECEIVED, 1U, subscriberCallback, &sumOfAllSamples);
}
```

Expand Down Expand Up @@ -175,8 +176,8 @@ Before we can close the program, we cleanup all resources.
```c
for (uint64_t i = 0U; i < NUMBER_OF_SUBSCRIBERS; ++i)
{
iox_ws_detach_subscriber_event(waitSet, (iox_sub_t) & (subscriberStorage[i]), SubscriberEvent_DATA_RECEIVED);
iox_sub_deinit((iox_sub_t) & (subscriberStorage[i]));
iox_ws_detach_subscriber_event(waitSet, subscriber[i], SubscriberEvent_DATA_RECEIVED);
iox_sub_deinit(subscriber[i]);
}

iox_ws_deinit(waitSet);
Expand Down Expand Up @@ -253,7 +254,7 @@ while (keepRunning)
```
When we iterate through the array we handle the `shutdownTrigger` first.
We check if an event is from the first group by calling
We check if an event is from the first group by calling
`iox_notification_info_get_event_id` and compare the result with `FIRST_GROUP_ID`.
If that is the case we acquire the subscriber handle with
`iox_notification_info_get_subscriber_origin`. This allows us to receive the new
Expand Down Expand Up @@ -299,7 +300,7 @@ The last thing we have to do is to cleanup all the acquired resources.
```c
for (uint64_t i = 0U; i < NUMBER_OF_SUBSCRIBERS; ++i)
{
iox_sub_deinit((iox_sub_t) & (subscriberStorage[i]));
iox_sub_deinit(subscriber[i]);
}

iox_ws_deinit(waitSet);
Expand Down Expand Up @@ -335,7 +336,7 @@ iox_sub_options_init(&options);
options.historyRequest = 1U;
options.queueCapacity = 256U;
options.nodeName = "iox-c-waitset-individual-node1";

subscriber[0] = iox_sub_init(&(subscriberStorage[0]), "Radar", "FrontLeft", "Counter", &options);
options.nodeName = "iox-c-waitset-individual-node2";
subscriber[1] = iox_sub_init(&(subscriberStorage[1]), "Radar", "FrontLeft", "Counter", &options);
Expand Down Expand Up @@ -393,7 +394,7 @@ We conclude the example as always, by cleaning up the resources.
```c
for (uint64_t i = 0U; i < NUMBER_OF_SUBSCRIBERS; ++i)
{
iox_sub_deinit((iox_sub_t) & (subscriberStorage[i]));
iox_sub_deinit(subscriber[i]);
}
iox_ws_deinit(waitSet);
Expand Down
9 changes: 5 additions & 4 deletions iceoryx_examples/waitset_in_c/ice_c_waitset_gateway.c
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@ int main()

// array where the subscriber are stored
iox_sub_storage_t subscriberStorage[NUMBER_OF_SUBSCRIBERS];
iox_sub_t subscriber[NUMBER_OF_SUBSCRIBERS];

// create subscriber and subscribe them to our service
iox_sub_options_t options;
Expand All @@ -100,10 +101,10 @@ int main()
options.nodeName = "iox-c-waitSet-gateway-node";
for (uint64_t i = 0U; i < NUMBER_OF_SUBSCRIBERS; ++i)
{
iox_sub_t subscriber = iox_sub_init(&(subscriberStorage[i]), "Radar", "FrontLeft", "Counter", &options);
subscriber[i] = iox_sub_init(&(subscriberStorage[i]), "Radar", "FrontLeft", "Counter", &options);

iox_ws_attach_subscriber_event_with_context_data(
waitSet, subscriber, SubscriberEvent_DATA_RECEIVED, 1U, subscriberCallback, &sumOfAllSamples);
waitSet, subscriber[i], SubscriberEvent_DATA_RECEIVED, 1U, subscriberCallback, &sumOfAllSamples);
}


Expand Down Expand Up @@ -144,8 +145,8 @@ int main()
{
// not mandatory since iox_sub_deinit will detach the subscriber automatically
// only added to present the full API
iox_ws_detach_subscriber_event(waitSet, (iox_sub_t) & (subscriberStorage[i]), SubscriberEvent_DATA_RECEIVED);
iox_sub_deinit((iox_sub_t) & (subscriberStorage[i]));
iox_ws_detach_subscriber_event(waitSet, subscriber[i], SubscriberEvent_DATA_RECEIVED);
iox_sub_deinit(subscriber[i]);
}

iox_ws_deinit(waitSet);
Expand Down
2 changes: 1 addition & 1 deletion iceoryx_examples/waitset_in_c/ice_c_waitset_grouping.c
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ int main()
// cleanup all resources
for (uint64_t i = 0U; i < NUMBER_OF_SUBSCRIBERS; ++i)
{
iox_sub_deinit((iox_sub_t) & (subscriberStorage[i]));
iox_sub_deinit(subscriber[i]);
}

iox_ws_deinit(waitSet);
Expand Down
2 changes: 1 addition & 1 deletion iceoryx_examples/waitset_in_c/ice_c_waitset_individual.c
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ int main()
// cleanup all resources
for (uint64_t i = 0U; i < NUMBER_OF_SUBSCRIBERS; ++i)
{
iox_sub_deinit((iox_sub_t) & (subscriberStorage[i]));
iox_sub_deinit(subscriber[i]);
}

iox_ws_deinit(waitSet);
Expand Down

0 comments on commit b69e113

Please sign in to comment.