nros C API
Lightweight ROS 2 client for embedded real-time systems
Loading...
Searching...
No Matches
Data Fields
rcl_node_t Struct Reference

#include <nros_generated.h>

Collaboration diagram for rcl_node_t:
Collaboration graph
[legend]

Data Fields

uint8_t _reserved [3]
 
uint32_t domain_id_override
 
const struct rclc_executor_t * executor
 
uint8_t name [64]
 
size_t name_len
 
uint8_t namespace_ [128]
 
size_t namespace_len
 
uint8_t node_id
 
const struct rclc_qos_override_t * qos_overrides
 
size_t qos_overrides_len
 
uint8_t rmw_name [32]
 
size_t rmw_name_len
 
uint8_t sched_context_id
 
enum rclc_node_state_t state
 
const struct rclc_support_t * support
 

Detailed Description

Node structure.

Represents a ROS 2 node with a name and namespace.

Field Documentation

◆ _reserved

uint8_t rcl_node_t::_reserved[3]

Reserved for future use (alignment + ABI stability).

◆ domain_id_override

uint32_t rcl_node_t::domain_id_override

Per-Node domain ID. NROS_DOMAIN_ID_INHERIT (== u32::MAX) means "use the support context's domain_id".

◆ executor

const struct rclc_executor_t* rcl_node_t::executor

Phase 156 / 104.C.8.b — executor pointer for the executor-bound dispatch path. rclc_executor_node_init populates this when the Node is bound; per-entity nros_*_init paths (rclc_publisher_init_default, nros_subscription_init, etc.) branch on rcl_node_t::is_executor_bound — i.e. on this pointer ALONE — to route through Executor::node_session_mut(NodeId) instead of the legacy support-based dispatch. NULL = legacy single-Node path (rclc_node_init_default / rclc_node_init_ex).

◆ name

uint8_t rcl_node_t::name[64]

Node name storage

◆ name_len

size_t rcl_node_t::name_len

Node name length

◆ namespace_

uint8_t rcl_node_t::namespace_[128]

Namespace storage

◆ namespace_len

size_t rcl_node_t::namespace_len

Namespace length

◆ node_id

uint8_t rcl_node_t::node_id

Opaque NodeId slot returned by Executor::node_builder(...).build() when this Node is bound to an Executor. 0 = the PRIMARY slot, which an executor-bound node gets whenever it is the first one built — it is NOT a "this node is legacy" marker (issue 1384; the legacy marker is a NULL executor). Internal use only — readers should treat as opaque.

◆ qos_overrides

const struct rclc_qos_override_t* rcl_node_t::qos_overrides

Pointer to a &'static-lifetime array of rclc_qos_override_t, or null. The caller (a generated entry / a hand-written app) owns the storage for the node's lifetime.

◆ qos_overrides_len

size_t rcl_node_t::qos_overrides_len

Number of entries in qos_overrides. 0 = none.

◆ rmw_name

uint8_t rcl_node_t::rmw_name[32]

RMW backend name (UTF-8, NUL-terminated within rmw_name_len). Empty (rmw_name_len == 0) selects the first-registered backend.

◆ rmw_name_len

size_t rcl_node_t::rmw_name_len

Length of rmw_name in bytes (excluding NUL). 0 = inherit.

◆ sched_context_id

uint8_t rcl_node_t::sched_context_id

SchedContext slot to inherit on every handle created by this Node (Phase 104.C.4). 0 = inherit the executor's default Fifo context.

◆ state

enum rclc_node_state_t rcl_node_t::state

Current state

◆ support

const struct rclc_support_t* rcl_node_t::support

Pointer to parent support context


The documentation for this struct was generated from the following file: