|
rcl_action
master
C API providing common functionality for ROS actions.
|
#include "rcl_action/visibility_control.h"#include "action_msgs/msg/goal_info.h"#include "action_msgs/msg/goal_status.h"#include "action_msgs/msg/goal_status_array.h"#include "action_msgs/srv/cancel_goal.h"#include "rcl/allocator.h"#include "rcl/macros.h"#include "rcl/types.h"#include "rosidl_generator_c/action_type_support_struct.h"

Go to the source code of this file.
Classes | |
| struct | rcl_action_goal_status_array_t |
| struct | rcl_action_cancel_response_t |
Macros | |
| #define | RCL_RET_ACTION_NAME_INVALID 2000 |
| Action name does not pass validation return code. More... | |
| #define | RCL_RET_ACTION_GOAL_ACCEPTED 2100 |
| Action goal accepted return code. More... | |
| #define | RCL_RET_ACTION_GOAL_REJECTED 2101 |
| Action goal rejected return code. More... | |
| #define | RCL_RET_ACTION_CLIENT_INVALID 2102 |
| Action client is invalid return code. More... | |
| #define | RCL_RET_ACTION_CLIENT_TAKE_FAILED 2103 |
| Action client failed to take response return code. More... | |
| #define | RCL_RET_ACTION_SERVER_INVALID 2200 |
| Action server is invalid return code. More... | |
| #define | RCL_RET_ACTION_SERVER_TAKE_FAILED 2201 |
| Action server failed to take request return code. More... | |
| #define | RCL_RET_ACTION_GOAL_HANDLE_INVALID 2300 |
| Action goal handle invalid return code. More... | |
| #define | RCL_RET_ACTION_GOAL_EVENT_INVALID 2301 |
| Action invalid event return code. More... | |
| #define | UUID_SIZE 16 |
| #define | uuidcmp(uuid0, uuid1) (0 == memcmp(uuid0, uuid1, UUID_SIZE)) |
| #define | zerouuid (uint8_t[UUID_SIZE]) {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} |
| #define | uuidcmpzero(uuid) uuidcmp(uuid, (zerouuid)) |
| #define | GOAL_STATE_UNKNOWN action_msgs__msg__GoalStatus__STATUS_UNKNOWN |
| #define | GOAL_STATE_ACCEPTED action_msgs__msg__GoalStatus__STATUS_ACCEPTED |
| #define | GOAL_STATE_EXECUTING action_msgs__msg__GoalStatus__STATUS_EXECUTING |
| #define | GOAL_STATE_CANCELING action_msgs__msg__GoalStatus__STATUS_CANCELING |
| #define | GOAL_STATE_SUCCEEDED action_msgs__msg__GoalStatus__STATUS_SUCCEEDED |
| #define | GOAL_STATE_CANCELED action_msgs__msg__GoalStatus__STATUS_CANCELED |
| #define | GOAL_STATE_ABORTED action_msgs__msg__GoalStatus__STATUS_ABORTED |
| #define | GOAL_STATE_NUM_STATES 7 |
Typedefs | |
| typedef struct rcl_action_server_t | rcl_action_server_t |
| typedef action_msgs__msg__GoalInfo | rcl_action_goal_info_t |
| typedef action_msgs__msg__GoalStatus | rcl_action_goal_status_t |
| typedef struct rcl_action_goal_status_array_t | rcl_action_goal_status_array_t |
| typedef action_msgs__srv__CancelGoal_Request | rcl_action_cancel_request_t |
| typedef struct rcl_action_cancel_response_t | rcl_action_cancel_response_t |
| typedef int8_t | rcl_action_goal_state_t |
| Goal states. More... | |
| typedef enum rcl_action_goal_event_t | rcl_action_goal_event_t |
| Goal state transition events. More... | |
Enumerations | |
| enum | rcl_action_goal_event_t { GOAL_EVENT_EXECUTE = 0, GOAL_EVENT_CANCEL, GOAL_EVENT_SET_SUCCEEDED, GOAL_EVENT_SET_ABORTED, GOAL_EVENT_SET_CANCELED, GOAL_EVENT_NUM_EVENTS } |
| Goal state transition events. More... | |
| #define RCL_RET_ACTION_NAME_INVALID 2000 |
Action name does not pass validation return code.
| #define RCL_RET_ACTION_GOAL_ACCEPTED 2100 |
Action goal accepted return code.
| #define RCL_RET_ACTION_GOAL_REJECTED 2101 |
Action goal rejected return code.
| #define RCL_RET_ACTION_CLIENT_INVALID 2102 |
Action client is invalid return code.
| #define RCL_RET_ACTION_CLIENT_TAKE_FAILED 2103 |
Action client failed to take response return code.
| #define RCL_RET_ACTION_SERVER_INVALID 2200 |
Action server is invalid return code.
| #define RCL_RET_ACTION_SERVER_TAKE_FAILED 2201 |
Action server failed to take request return code.
| #define RCL_RET_ACTION_GOAL_HANDLE_INVALID 2300 |
Action goal handle invalid return code.
| #define RCL_RET_ACTION_GOAL_EVENT_INVALID 2301 |
Action invalid event return code.
| #define UUID_SIZE 16 |
| #define uuidcmp | ( | uuid0, | |
| uuid1 | |||
| ) | (0 == memcmp(uuid0, uuid1, UUID_SIZE)) |
| #define zerouuid (uint8_t[UUID_SIZE]) {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} |
| #define GOAL_STATE_UNKNOWN action_msgs__msg__GoalStatus__STATUS_UNKNOWN |
| #define GOAL_STATE_ACCEPTED action_msgs__msg__GoalStatus__STATUS_ACCEPTED |
| #define GOAL_STATE_EXECUTING action_msgs__msg__GoalStatus__STATUS_EXECUTING |
| #define GOAL_STATE_CANCELING action_msgs__msg__GoalStatus__STATUS_CANCELING |
| #define GOAL_STATE_SUCCEEDED action_msgs__msg__GoalStatus__STATUS_SUCCEEDED |
| #define GOAL_STATE_CANCELED action_msgs__msg__GoalStatus__STATUS_CANCELED |
| #define GOAL_STATE_ABORTED action_msgs__msg__GoalStatus__STATUS_ABORTED |
| #define GOAL_STATE_NUM_STATES 7 |
| typedef struct rcl_action_server_t rcl_action_server_t |
| typedef action_msgs__msg__GoalInfo rcl_action_goal_info_t |
| typedef action_msgs__msg__GoalStatus rcl_action_goal_status_t |
| typedef struct rcl_action_goal_status_array_t rcl_action_goal_status_array_t |
| typedef action_msgs__srv__CancelGoal_Request rcl_action_cancel_request_t |
| typedef struct rcl_action_cancel_response_t rcl_action_cancel_response_t |
| typedef int8_t rcl_action_goal_state_t |
Goal states.
| typedef enum rcl_action_goal_event_t rcl_action_goal_event_t |
Goal state transition events.
| RCL_ACTION_PUBLIC rcl_action_goal_info_t rcl_action_get_zero_initialized_goal_info | ( | void | ) |
Return a rcl_action_goal_info_t with members set to NULL.
Should be called to get a null rcl_action_goal_info_t before passing to rcl_action_goal_info_init().
| RCL_ACTION_PUBLIC rcl_action_goal_status_array_t rcl_action_get_zero_initialized_goal_status_array | ( | void | ) |
Return a rcl_action_goal_status_array_t with members set to NULL.
Should be called to get a null rcl_action_goal_status_array_t before passing to rcl_action_server_get_goal_status_array().
| RCL_ACTION_PUBLIC rcl_action_cancel_request_t rcl_action_get_zero_initialized_cancel_request | ( | void | ) |
Return a rcl_action_cancel_request_t with members set to NULL.
Should be called to get a null rcl_action_cancel_request_t before passing to
rcl_action_cancel_request_init().
| RCL_ACTION_PUBLIC rcl_action_cancel_response_t rcl_action_get_zero_initialized_cancel_response | ( | void | ) |
Return a rcl_action_cancel_response_t with members set to NULL.
Should be called to get a null rcl_action_cancel_response_t before passing to rcl_action_cancel_response_init().
| RCL_ACTION_PUBLIC rcl_ret_t rcl_action_goal_status_array_init | ( | rcl_action_goal_status_array_t * | status_array, |
| const size_t | num_status, | ||
| const rcl_allocator_t | allocator | ||
| ) |
Initialize a rcl_action_goal_status_array_t.
After calling this function on a rcl_action_goal_status_array_t, it can be populated and used to get and send status array messages with an action server using rcl_action_get_goal_status_array() and rcl_action_publish_status() respectively.
Example usage:
| Attribute | Adherence |
|---|---|
| Allocates Memory | Yes |
| Thread-Safe | No |
| Uses Atomics | No |
| Lock-Free | Yes |
| [out] | status_array | a preallocated, zero-initialized, goal status array message to be initialized. |
| [in] | num_status | the number of status messages to allocate space for. Must be greater than zero |
| [in] | allocator | a valid allocator |
RCL_RET_OK if cancel response was initialized successfully, or RCL_RET_INVALID_ARGUMENT if any arguments are invalid, or RCL_RET_ALREADY_INIT if the status array has already been initialized, or RCL_RET_BAD_ALLOC if allocating memory failed, or RCL_RET_ERROR if an unspecified error occurs. | RCL_ACTION_PUBLIC rcl_ret_t rcl_action_goal_status_array_fini | ( | rcl_action_goal_status_array_t * | status_array | ) |
Finalize a rcl_action_goal_status_array_t.
After calling, the goal status array message will no longer be valid.
| Attribute | Adherence |
|---|---|
| Allocates Memory | Yes |
| Thread-Safe | No |
| Uses Atomics | No |
| Lock-Free | Yes |
| [in,out] | status_array | the goal status array message to be deinitialized |
RCL_RET_OK if the goal status array was deinitialized successfully, or RCL_RET_INVALID_ARGUMENT if any arguments are invalid, or RCL_RET_ERROR if an unspecified error occurs. | RCL_ACTION_PUBLIC rcl_ret_t rcl_action_cancel_response_init | ( | rcl_action_cancel_response_t * | cancel_response, |
| const size_t | num_goals_canceling, | ||
| const rcl_allocator_t | allocator | ||
| ) |
Initialize a rcl_action_cancel_response_t.
After calling this function on a rcl_action_cancel_response_t, it can be populated and used to process cancel requests with an action server using rcl_action_process_cancel_request().
Example usage:
| Attribute | Adherence |
|---|---|
| Allocates Memory | Yes |
| Thread-Safe | No |
| Uses Atomics | No |
| Lock-Free | Yes |
| [out] | cancel_response | a preallocated, zero-initialized, cancel response message to be initialized. |
| [in] | num_goals_canceling | the number of goals that are canceling to add to the response Must be greater than zero |
| [in] | allocator | a valid allocator |
RCL_RET_OK if cancel response was initialized successfully, or RCL_RET_INVALID_ARGUMENT if any arguments are invalid, or RCL_RET_ALREADY_INIT if the cancel response has already been initialized, or RCL_RET_BAD_ALLOC if allocating memory failed, or RCL_RET_ERROR if an unspecified error occurs. | RCL_ACTION_PUBLIC rcl_ret_t rcl_action_cancel_response_fini | ( | rcl_action_cancel_response_t * | cancel_response | ) |
Finalize a rcl_action_cancel_response_t.
After calling, the cancel response message will no longer be valid.
| Attribute | Adherence |
|---|---|
| Allocates Memory | Yes |
| Thread-Safe | No |
| Uses Atomics | No |
| Lock-Free | Yes |
| [in,out] | cancel_response | the cancel response message to be deinitialized |
RCL_RET_OK if the cancel response was deinitialized successfully, or RCL_RET_INVALID_ARGUMENT if any arguments are invalid, or RCL_RET_ERROR if an unspecified error occurs.
1.8.13