Comments (1)
Hi @astralien3000, that cool that you're working on a new rmw implementation! I'm sorry that the rmw
interface is not better documented at the moment, but we've had to pick and choose what to spend time on and we wanted to instead focus on the rcl
API which is used to implement new client libraries (in different languages like C++ and Python).
Also, we've been wanting to improve the rmw
API for a while now, but we've not had the time to do it. For example, we think the way we manage allocation in rcl
is better than the original approach used in rmw
and we'd like to update rmw
to use the other style. This and other items have discouraged us from spending time on documenting the functions in great details because we knew they were going to change.
The best I can do is point you to code surrounding the rmw
functions. For example, have a look at rcl_take
which are basically thin wrappers around rmw_take_with_info
at the moment and have decent docs:
rcl_take
(there's also a hosted version, but it is not as up-to-date)
You can also look at how rcl
calls rmw
, for example:
Or how one of our rmw implementations implement it, like:
- https://github.com/ros2/rmw_connext/blob/master/rmw_connext_cpp/src/functions.cpp#L784-L828
- https://github.com/ros2/rmw_fastrtps/blob/master/rmw_fastrtps_cpp/src/functions.cpp#L1183-L1213
For the higher level integration into rclcpp
there's also a lack of design documentation up online. But basically rmw_wait
is used by rclcpp
's Executor
class to know when a subscription has data available, and then the Executor
class will choose whether or not to take data from the ready subscriptions, and if it does it will do so with rmw_take*
via rcl_take
.
For more specific details, just ask directly.
Also, I'm going to close this issue for now. You might want to direct future high level questions to our discourse list:
https://discourse.ros.org/c/ng-ros
I can reopen this if needed.
from rmw.
Related Issues (20)
- rmw_time_t is redundant with rcutils_duration_value_t and doesn't need to be a struct HOT 9
- Implement info structure with timestamps for services HOT 1
- Add support for `on sample lost` event HOT 8
- test_names_and_types failing on Linux HOT 4
- [Draft] ContentFilteredTopic Support HOT 4
- fastrtps communication over other network HOT 1
- Add ability to pass in allocator for some methods HOT 8
- Push notification on publisher/subscription match HOT 3
- Clarify the error codes in serialized_message.h
- Add ability to confirm reader receive all sent messages HOT 18
- Get most compatibility QoS policies given QoS for multiple endpoints HOT 4
- [feature request] Expose functionality to discover, read and send serialized services
- Change `rmw_take_response()` `request_header` param/variable name
- Inconsistent documentation with code HOT 5
- Add documentation on uniqueness of node, topic, and service names HOT 1
- Configure maximum DDS participants in a generic way HOT 3
- prolem: Is there performance test about zero copy between cyclonedds and fastdds? HOT 2
- Connect/Disconnect notification/callback support HOT 44
- Warning about history depth of 0 even while using system default QoS HOT 2
- Where are defined rmw_init & rmw_shutdown ? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rmw.