|
nros C API
Lightweight ROS 2 client for embedded real-time systems
|
#include <nros_generated.h>
Data Fields | |
| bool | data_available |
| void * | entity |
One registered handle, as a trigger predicate sees it.
This is the array element rclc_executor_trigger_t walks — rclc's rclc_executor_handle_t narrowed to the two things a trigger may legitimately read. It deliberately does NOT take rclc's name (RFC-0089: an upstream name may be adopted only if the contract is the same), so a ported custom trigger that reaches for handles[i].subscription fails to COMPILE rather than reading a field that is not there.
phase-417 stage 3: the array exists so rclc_executor_trigger_one can compare its obj against the ENTITY POINTER, which is upstream's contract. The previous shape passed only a const bool * readiness array, which carried no entity identity at all — see rclc_executor_trigger_one.
| bool rclc_executor_trigger_handle_t::data_available |
Whether this handle has data to process in the cycle being decided.
| void* rclc_executor_trigger_handle_t::entity |
The entity this handle was registered from: the rcl_subscription_t *, rcl_timer_t *, rcl_service_t *, rcl_client_t *, rcl_guard_condition_t *, rcl_action_server_t * or rcl_action_client_t * that was passed to the matching nros_executor_add_* / rclc_executor_add_* call.
NULL for a handle whose registering entity is not a C object (nothing in the current surface), which a trigger must treat as "matches nothing".