-
Notifications
You must be signed in to change notification settings - Fork 233
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
QoS - API and implementation for Liveliness and Deadline event callbacks #316
Conversation
3e1b0fe
to
e61bc6c
Compare
@emersonknapp Looks like there are merge conflicts |
e61bc6c
to
636a454
Compare
Added new commit to refactor to use the new Subscription+Handle stuff properly |
688e840
to
c69de7d
Compare
@sloretz when you get a chance, would love feedback on this PR |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mostly complete review with mostly nitpick comments
@sloretz thanks for the feeback, I am trying to address these as quickly as possible today because we want to get this through for the API freeze today. The part that will take the most time is using the new Handle type, it is a good change but definitely caught me unprepared.
|
No changes are planned. I would like to add API to the
Yes |
c69de7d
to
6fdb98a
Compare
@sloretz I've updated, tests are passing locally. I will have to do a rebase when https://waffle.io/ros2/ros2/cards/5c9e5639f2c40c0066440aba is merged (because of #305) but it should affect very little of what's here - a few lines. Will I need to do any further restructuring of this? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Comments below are just nitpicks that don't affect API. If you already have green CI or are running CI, mind addressing these in a follow up PR after API freeze?
@sloretz thanks - it seems like it'd be hard to run CI on this change until ros2/rmw#171 (comment) this batch passes and is merged first, since these features depend on those new APIs from Got my fingers crossedon that build. If you need to get some other things under this that are small (saw the comment from the other one), it should be fine - I will be doing the one final rebase for this, and that conflict looks trivial to resolve. |
While wringing my hands over the other ci - addressed the nitpicks |
8fbc17e
to
b17af0e
Compare
b17af0e
to
36fcff9
Compare
@thomas-moulard - please run the following CI job:
|
36fcff9
to
9f845e6
Compare
That's right, it just adds optional kwargs to the create_ functions |
@wjwwood ok to merge now? Looks like the API freeze board has been closed out |
Signed-off-by: Emerson Knapp <eknapp@amazon.com>
Signed-off-by: Emerson Knapp <eknapp@amazon.com>
Signed-off-by: Emerson Knapp <eknapp@amazon.com>
Signed-off-by: Emerson Knapp <eknapp@amazon.com>
Signed-off-by: Emerson Knapp <eknapp@amazon.com>
Signed-off-by: Emerson Knapp <eknapp@amazon.com>
Signed-off-by: Emerson Knapp <eknapp@amazon.com>
Signed-off-by: Emerson Knapp <eknapp@amazon.com>
5317f26
to
fb1a801
Compare
@wjwwood Ok - rebased - built and tested locally on linux, looks good, can you run that again? |
@emersonknapp could you please brief me what did you do on the backend side( |
@suab321321 do you have a specific question about the code? Most of it is just data type conversions between You can see this PR ros2/rclcpp#695 for how this feature was added to |
@emersonknapp thanks for helping me :).If you could tell me about the hiarchey of this implementation from its core to python side user side api,example how |
https://github.com/ros2/rclpy/pull/316/files?file-filters%5B%5D=.c#diff-80dda03110b5be606b823d6b0558b5c2R40 you can see on this line that the source file is included directly, they are only split for readability. |
@emersonknapp why |
file : |
Waitables are used for asynchronous communication. You "wait" for things to happen on it. If you familiarize yourself with the For your second question, please look at https://github.com/ros2/rclpy/blob/master/rclpy/rclpy/handle.py#L103 - |
@emersonknapp I just want to know that in |
Timers, Subscriptions, Guards, Clients, and Services use an old way of asynchronous communication, they all have special lists that they are held in (https://github.com/ros2/rclpy/blob/master/rclpy/rclpy/executors.py#L589) QoS Events use the generic Waitable pattern which can hold many types of objects, not just QoS Events. It is checked right before that special cases loop - (https://github.com/ros2/rclpy/blob/master/rclpy/rclpy/executors.py#L579) - |
Depends on ros2/rmw#171
Depends on ros2/rmw_fastrtps#276
Depends on ros2/rcl#432
rcl
to support that API.Unit tests are still in progress - but the code is working according to manual testing and is ready for review.