-
Notifications
You must be signed in to change notification settings - Fork 45
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support selective QoS based events #118
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Signed-off-by: Yadunund <[email protected]>
Signed-off-by: Yadunund <[email protected]>
Signed-off-by: Yadunund <[email protected]>
Signed-off-by: Yadunund <[email protected]>
Signed-off-by: Yadunund <[email protected]>
Signed-off-by: Yadunund <[email protected]>
Signed-off-by: Yadunund <[email protected]>
Signed-off-by: Yadunund <[email protected]>
Signed-off-by: Yadunund <[email protected]>
Signed-off-by: Yadunund <[email protected]>
Signed-off-by: Yadunund <[email protected]>
…ager objects Signed-off-by: Yadunund <[email protected]>
Will merge commit ( and not squash since commits may be helpful when reviewing) this into #103 and update the PR description there with what I wrote here so that there is 1 big PR to review and not 2 since this PR rewrites a lot of the same code. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds several new features and fixes bugs while making some big changes:
GraphCache
for local pub/subs.liveliness::Entity
entriesstruct TopicStats
is removed to simplify nested data structures.rclcpp
but atleast the consequence is now properly handled).RMW_EVENT_REQUESTED_QOS_INCOMPATIBLE
: We support it but this will never be triggered since there are no QoS incompatibilities in zenoh.RMW_EVENT_SUBSCRIPTION_MATCHED
: A match is reported when a sub is added to the graph and there are other pubs with the same topic and type. QoS does not need to be checked for same reasons as above.RMW_EVENT_OFFERED_QOS_INCOMPATIBLE
: Supported but never triggered as stated above.RMW_EVENT_PUBLICATION_MATCHED
: A match is reported when a pub is added to the graph and there are other subs with the same topic and type. QoS does not need to be checked for same reasons as above.TRANSIENT_LOCAL
pub andVOLATILE
sub durabilities. All other combinations areCOMPATIBLE
to reflect zenoh protocol's behavior.zenoh session id
,unique id of the entity within the session
andthe unique id of the node
. If the entity is a node, this id is appended twice to keep the number of segments consistent. This allowszenoh session id
,node id
andentity id
.talker
nodes into the samerclcpp_components::ComponentManger
EventsBase
🎉EventsManager
class. (There are no events defined for services and clients inrmw/events.h
.DataCallbackManager
class. (Publishers do not need to trigger any callbacks).Testing
Matched events
Follow instructions to run
matched_event_detect
fromdemo_nodes_py
: https://github.com/ros2/demos/tree/rolling/demo_nodes_cpp#matched-event-detectNodes with same names from the same zenoh session
Save this text into a python file, source ROS 2, and execute it
In a second terminal run
ros2 node list
. You should be able to see two/my_node
nodes. Without the changes here, this would not be the case as theGraphCache
was only capable of handling a singe node name from the same zenoh session.$ ros2 node list WARNING: Be aware that there are nodes in the graph that share an exact name, which can have unintended side effects. /my_node /my_node
Incompatible QoS
The nodes in
ros2/demos
are not relevant here since Zenoh does not have the same QoS behaviors as DDS and hence the logic in the executables does not apply.Future work