* Addes SerializedMessage and helper class for serialization to rcl_serialized_message
@Karsten1987 Thank you for your support
Signed-off-by: Joshua Hampp <j.hampp@denso-adas.de>
* Updateds subscription traits for SerializedMessage
@Karsten1987 Thank you for your support
Signed-off-by: Joshua Hampp <j.hampp@denso-adas.de>
* Addes tests SerializedMessage and subscription traits
@Karsten1987 Thank you for your support
Signed-off-by: Joshua Hampp <j.hampp@denso-adas.de>
* Update rclcpp/include/rclcpp/serialization.hpp
Co-Authored-By: Karsten Knese <Karsten1987@users.noreply.github.com>
* Update rclcpp/test/test_serialized_message.cpp
Co-Authored-By: Karsten Knese <Karsten1987@users.noreply.github.com>
* fix windows compilation
Signed-off-by: Karsten Knese <karsten@openrobotics.org>
* cosmetic touchups
Signed-off-by: Karsten Knese <karsten@openrobotics.org>
Co-authored-by: Joshua Hampp <j.hampp@denso-adas.de>
Co-authored-by: Karsten Knese <Karsten1987@users.noreply.github.com>
Co-authored-by: Karsten Knese <karsten@openrobotics.org>
* add rclcpp::GuardCondition wrapping rcl_guard_condition_t
Signed-off-by: William Woodall <william@osrfoundation.org>
* WIP second wait set refactor, just guard conditions so far
Signed-off-by: William Woodall <william@osrfoundation.org>
* fix typo
Signed-off-by: William Woodall <william@osrfoundation.org>
* removing a question/todo, I think this is fine as is
Signed-off-by: William Woodall <william@osrfoundation.org>
* added subscriptions and waitable to wait sets
Signed-off-by: William Woodall <william@osrfoundation.org>
* improve usability with subscriptions and wait sets
Signed-off-by: William Woodall <william@osrfoundation.org>
* adding take to subscription so it can be used without the executor
Signed-off-by: William Woodall <william@osrfoundation.org>
* add rclcpp::MessageInfo to replace use of rmw_message_info_t
Signed-off-by: William Woodall <william@osrfoundation.org>
* refactor Subscription and Executor so they can be used separately
Signed-off-by: William Woodall <william@osrfoundation.org>
* style and cpplint
Signed-off-by: William Woodall <william@osrfoundation.org>
* fixup take_serialized() and add tests for it
Signed-off-by: William Woodall <william@osrfoundation.org>
* add support for client and service to wait set
Signed-off-by: William Woodall <william@osrfoundation.org>
* fix typo
Signed-off-by: William Woodall <william@osrfoundation.org>
* fix typo
Signed-off-by: William Woodall <william@osrfoundation.org>
* fix review comment
Signed-off-by: William Woodall <william@osrfoundation.org>
* add thread-safe wait set policy
Signed-off-by: William Woodall <william@osrfoundation.org>
* add check for use with multiple wait set
Signed-off-by: William Woodall <william@osrfoundation.org>
* fixup visibility macro usage
Signed-off-by: William Woodall <william@osrfoundation.org>
* remove vestigial test case
Signed-off-by: William Woodall <william@osrfoundation.org>
* move visibility macro fixes
Signed-off-by: William Woodall <william@osrfoundation.org>
* remove vestigial TODO
Signed-off-by: William Woodall <william@osrfoundation.org>
* Add InvalidParameterTypeException
Used to wrap the ParameterTypeException coming from ParameterValue::get() for improving the error message.
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
* Describe new exception
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
* Update tests
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
* Added static single threaded executor functionality
Signed-off-by: Ishu Goel <ishu.goel@nobleo.nl>
executor enhanced to run clients and waitable
Signed-off-by: Ishu Goel <ishu.goel@nobleo.nl>
tested executor
Signed-off-by: Ishu Goel <ishu.goel@nobleo.nl>
added semi-dynamic feature to the executor
Signed-off-by: Ishu Goel <ishu.goel@nobleo.nl>
Jenkins error fixes
Signed-off-by: Ishu Goel <ishu.goel@nobleo.nl>
Added static single threaded executor functionality
Signed-off-by: Ishu Goel <ishu.goel@nobleo.nl>
* Added semi-dynamic feature and made changes based on review comments
Signed-off-by: Ishu Goel <ishu.goel@nobleo.nl>
* re-added accidentally deleted code in node.hpp, fixed static_single_threaded_executor.cpp w.r.t. intra-process change since last commit
Signed-off-by: MartinCornelis2 <martin.cornelis@nobleo.nl>
* Remove not needed comparison
wait_set_.size_of_* is always different than '0'
if we are inside the for loop
Signed-off-by: Mauro <mpasserino@irobot.com>
* If new entity added to a node: re-collect entities
Now we check ONLY node guard_conditions_
Some possible guard conditions to be triggered HERE are:
1. Ctrl+C guard condition
2. Executor interrupt_guard_condition_
3. Node guard_conditions_
4. Waitables guard conditions
5. ..more
The previous approach was only checking if NOT (1 & 2),
so if a Waitable was triggered, it would re-collect all
entities, even if no new node entity was added. This was the case
of the intra process manager, who relies on waitables.
Every time a subscriber got a message, all the entities
were collected.
Signed-off-by: Mauro <mpasserino@irobot.com>
* Implement static executor entities collector
Signed-off-by: Mauro <mpasserino@irobot.com>
* fixup and style
Signed-off-by: William Woodall <william@osrfoundation.org>
* mark new classes as final, with non-virtual destructors
Signed-off-by: William Woodall <william@osrfoundation.org>
* adding copyright to static executor files
Signed-off-by: Ishu Goel <ishu.goel@nobleo.nl>
* fixup
Signed-off-by: William Woodall <william@osrfoundation.org>
* cpplint fixes
Signed-off-by: William Woodall <william@osrfoundation.org>
Co-authored-by: Ishu Goel <ishu.goel@nobleo.nl>
Co-authored-by: MartinCornelis2 <martin.cornelis@nobleo.nl>
Co-authored-by: Mauro <mpasserino@irobot.com>
* Add equality operators for QoS profile
Signed-off-by: Emerson Knapp <emerson.b.knapp@gmail.com>
* Use == operator for rmw_time_t as well
Signed-off-by: Emerson Knapp <emerson.b.knapp@gmail.com>
* Add visibility macros for the new functions
Signed-off-by: Emerson Knapp <emerson.b.knapp@gmail.com>
* Add tests for every member of the profile
Signed-off-by: Emerson Knapp <emerson.b.knapp@gmail.com>
* Remove dangling space
Signed-off-by: Emerson Knapp <emerson.b.knapp@gmail.com>
Some headers were being included even though they are not required and other headers were being included transitively.
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
It was complaining about an unknown macro RCLCPP_SMART_PTR_DEFINITIONS.
Passing rclcpp include directories to cppcheck resolves the errors
reported in rclcpp_action and rclcpp_lifecycle.
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
This fixes a cppcheck error that was detected when including the rclcpp headers in rclcpp_action and rclcpp_lifecycle.
It is not clear to me why cppcheck does not report the unitialized member when testing rclcpp directly.
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
* Switch to using new rcutils_strerror.
Also increase timeouts for test_logging, which should reduce flakes on Windows.
Signed-off-by: Chris Lalancette <clalancette@openrobotics.org>
Capturing a cached reference allows a clock object that is not a local
(e.g. the one returned by Node::get_clock()) to be passed to the throttle
logging macro.
Signed-off-by: Matt Schickler <mschickler@gmail.com>
Co-Authored-By: Ivan Santiago Paunovic <ivanpauno@ekumenlabs.com>