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

#include <nros_generated.h>

Data Fields

uint32_t _reserved
uint32_t abi_version
void(* close )(void *user_data)
rcl_ret_t(* open )(void *user_data, const void *params)
int32_t(* read )(void *user_data, uint8_t *buf, size_t len, uint32_t timeout_ms)
void * user_data
rcl_ret_t(* write )(void *user_data, const uint8_t *buf, size_t len)

Detailed Description

Phase 115.C — C-side mirror of nros_rmw::custom_transport::NrosTransportOps. Same #[repr(C)] layout — single ABI, no parallel definitions.

Field semantics:

  • abi_version: must be [NROS_TRANSPORT_OPS_ABI_VERSION_V1] (Phase 115.A.2).
  • _reserved: padding for future minor-version detection. Set to 0.
  • user_data: opaque caller context, threaded back into every callback as the first argument. Lifetime: must outlive the transport's active period (i.e. until close returns).
  • open: open the underlying medium. params is opaque per-transport metadata supplied by the caller (e.g. UART baud rate). May be NULL. Returns 0 on success, negative rcl_ret_t on failure.
  • close: tear the transport down. Complement of open.
  • write: send len bytes from buf. Returns 0 on success, negative rcl_ret_t on failure.
  • read: receive up to len bytes within timeout_ms. Returns the non-negative byte count on success, negative rcl_ret_t on error / timeout.

Field Documentation

◆ _reserved

uint32_t nros_transport_ops_t::_reserved

◆ abi_version

uint32_t nros_transport_ops_t::abi_version

◆ close

void(* nros_transport_ops_t::close) (void *user_data)

◆ open

rcl_ret_t(* nros_transport_ops_t::open) (void *user_data, const void *params)

◆ read

int32_t(* nros_transport_ops_t::read) (void *user_data, uint8_t *buf, size_t len, uint32_t timeout_ms)

◆ user_data

void* nros_transport_ops_t::user_data

◆ write

rcl_ret_t(* nros_transport_ops_t::write) (void *user_data, const uint8_t *buf, size_t len)

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