* Add action graph API
Builds on top of the rcl graph API.
A list of action names associated with action clients can be constructed by
looking for subscriber topic names that have the suffix "/_action/feedback".
Likewise, action servers are associated with publisher topic names with the same suffix.
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
* Enable multiple rmw action graph API tests
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
* Use ament_target_dependencies for osrf_testing_tools_cpp
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
* Fix lint errors
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
* Refactor
* Move graph API common implementation to local function
* Refactor tests
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
* Disable graph tests with OpenSplice
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
* Include graph.h in rcl_action.h
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
* Remove duplicate test
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
* Prefix increment operators
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
* Rename 'suffix' -> 'identifier'
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
* Add missing finalize calls and remove redundant branch
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
* Finalize names and types struct on error
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
* Fix bugs in tests
Pass valid names and types struct and update expected error code.
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
* Add zero allocator tests
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
* Fix indentation
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
* Check if action identifiers are the suffix
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
The clock type is instead as an argument to the action server's init function and stored in the impl.
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
Otherwise the preprocessor may gobble up the commas in mistake of extra parameters when it is passed to uuidcmpzero.
cppcheck v1.86 was complaining about this line.
* Implement action server init, fini, and is_valid functions
* Add macros for initializing services and publishers
* Implement rcl_action_server_get_default_options()
* Implement rcl_action_accept_new_goal()
* Add function, rcl_action_server_goal_exists(), for checking if goal is already being tracked by an action server
* Add unit tests
* Implement rcl_action_server_get_goal_handles()
* Implement rcl_action_server_get_options()
* Implement rcl_action_server_get_action_name()
* Implement rcl_action_get_goal_status_array()
* Bugfix: reset pointers and size in type finalize functions
Also let finalize functions be called on already finalized objects
* Implement send/take functions for action server services
* Implement action server publishers for feedback and status
* Implement rcl_action_process_cancel_request()
* Add partial communication tests
* Define UUID_SIZE
* Use type-erased pointer for rcl_action_publish_status()
* Implement rcl_action_clear_expired_goals()
Introduce rcl_clock_t to action server implementation.
* Change internal goal handle array to be an array of pointers.
* Add check for invalid action names
* Do heap allocation of temporary array to satisfy MSVC compiler
* Bugfix: finalize node in test tear downs and reset expected errors
* Update documentation
* Update package.xml
* Pass in rcl_clock_t to action server
Rather than initializing internally.
* Do not finalize goal handles in expire function
Instead, leave it up to the caller to finalize goal handles.
Renamed the function to rcl_action_expire_goals.
* [rcl_action] Add function for checking if goal can be transitioned to CANCELING
Add unit tests for the new function rcl_action_goal_handle_is_cancelable(), as well as rcl_action_goal_handle_is_active().
* use new error handling API from rcutils
Signed-off-by: William Woodall <william@osrfoundation.org>
* use semicolons after macros
Signed-off-by: William Woodall <william@osrfoundation.org>
* use new error handling API from rcutils
Signed-off-by: William Woodall <william@osrfoundation.org>
* minimize vertical whitespace
Signed-off-by: William Woodall <william@osrfoundation.org>
* use semicolons after macros
Signed-off-by: William Woodall <william@osrfoundation.org>
* Fix buggy if-conditions in transition functions.
* Bugfix: incease number of states by one
* Cleanup CMakeLists.txt and package.xml
* Move goal state machine implementation details from header to C file
* Create rcl_action package with proposed headers for:
- Action client
- Action server
- Goal handle
- Goal state machine
- Types
* Add rcl_action.h and Doxyfile
* Add functions for adding action clients and action servers to a wait set
* Add default QoS profile for status topic and document default options for action clients/servers
* Include all headers in a .c file for testing compilation