nros C API
Lightweight ROS 2 client for embedded real-time systems
Loading...
Searching...
No Matches
Typedefs | Functions | Variables
parameter.h File Reference

Parameter server API. More...

#include "nros/types.h"
Include dependency graph for parameter.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Typedefs

typedef nros_parameter_callback_t nros_param_callback_t
 
typedef enum nros_parameter_server_state_t nros_param_server_state_t
 

Functions

 NROS_DEPRECATED_MSG ("nros_param_declare_bool() is deprecated; use nros_parameter_declare_bool()") static inline nros_ret_t nros_param_declare_bool(struct nros_parameter_server_t *server
 
 NROS_DEPRECATED_MSG ("nros_param_declare_bool_array() is deprecated; use nros_parameter_declare_bool_array()") static inline nros_ret_t nros_param_declare_bool_array(struct nros_parameter_server_t *server
 
 NROS_DEPRECATED_MSG ("nros_param_declare_byte_array() is deprecated; use nros_parameter_declare_byte_array()") static inline nros_ret_t nros_param_declare_byte_array(struct nros_parameter_server_t *server
 
 NROS_DEPRECATED_MSG ("nros_param_declare_double() is deprecated; use nros_parameter_declare_double()") static inline nros_ret_t nros_param_declare_double(struct nros_parameter_server_t *server
 
 NROS_DEPRECATED_MSG ("nros_param_declare_double_array() is deprecated; use nros_parameter_declare_double_array()") static inline nros_ret_t nros_param_declare_double_array(struct nros_parameter_server_t *server
 
 NROS_DEPRECATED_MSG ("nros_param_declare_integer() is deprecated; use nros_parameter_declare_integer()") static inline nros_ret_t nros_param_declare_integer(struct nros_parameter_server_t *server
 
 NROS_DEPRECATED_MSG ("nros_param_declare_integer_array() is deprecated; use nros_parameter_declare_integer_array()") static inline nros_ret_t nros_param_declare_integer_array(struct nros_parameter_server_t *server
 
 NROS_DEPRECATED_MSG ("nros_param_declare_string() is deprecated; use nros_parameter_declare_string()") static inline nros_ret_t nros_param_declare_string(struct nros_parameter_server_t *server
 
 NROS_DEPRECATED_MSG ("nros_param_declare_string_array() is deprecated; use nros_parameter_declare_string_array()") static inline nros_ret_t nros_param_declare_string_array(struct nros_parameter_server_t *server
 
 NROS_DEPRECATED_MSG ("nros_param_get_bool() is deprecated; use nros_parameter_get_bool()") static inline nros_ret_t nros_param_get_bool(const struct nros_parameter_server_t *server
 
 NROS_DEPRECATED_MSG ("nros_param_get_bool_array() is deprecated; use nros_parameter_get_bool_array()") static inline nros_ret_t nros_param_get_bool_array(const struct nros_parameter_server_t *server
 
 NROS_DEPRECATED_MSG ("nros_param_get_byte_array() is deprecated; use nros_parameter_get_byte_array()") static inline nros_ret_t nros_param_get_byte_array(const struct nros_parameter_server_t *server
 
 NROS_DEPRECATED_MSG ("nros_param_get_double() is deprecated; use nros_parameter_get_double()") static inline nros_ret_t nros_param_get_double(const struct nros_parameter_server_t *server
 
 NROS_DEPRECATED_MSG ("nros_param_get_double_array() is deprecated; use nros_parameter_get_double_array()") static inline nros_ret_t nros_param_get_double_array(const struct nros_parameter_server_t *server
 
 NROS_DEPRECATED_MSG ("nros_param_get_integer() is deprecated; use nros_parameter_get_integer()") static inline nros_ret_t nros_param_get_integer(const struct nros_parameter_server_t *server
 
 NROS_DEPRECATED_MSG ("nros_param_get_integer_array() is deprecated; use nros_parameter_get_integer_array()") static inline nros_ret_t nros_param_get_integer_array(const struct nros_parameter_server_t *server
 
 NROS_DEPRECATED_MSG ("nros_param_get_string() is deprecated; use nros_parameter_get_string()") static inline nros_ret_t nros_param_get_string(const struct nros_parameter_server_t *server
 
 NROS_DEPRECATED_MSG ("nros_param_get_string_array() is deprecated; use nros_parameter_get_string_array()") static inline nros_ret_t nros_param_get_string_array(const struct nros_parameter_server_t *server
 
 NROS_DEPRECATED_MSG ("nros_param_get_type() is deprecated; use nros_parameter_get_type()") static inline enum nros_parameter_type_t nros_param_get_type(const struct nros_parameter_server_t *server
 
 NROS_DEPRECATED_MSG ("nros_param_has() is deprecated; use nros_parameter_has()") static inline bool nros_param_has(const struct nros_parameter_server_t *server
 
 NROS_DEPRECATED_MSG ("nros_param_server_fini() is deprecated; use nros_parameter_server_fini()") static inline nros_ret_t nros_param_server_fini(struct nros_parameter_server_t *server)
 
 NROS_DEPRECATED_MSG ("nros_param_server_get_count() is deprecated; use nros_parameter_server_get_count()") static inline size_t nros_param_server_get_count(const struct nros_parameter_server_t *server)
 
 NROS_DEPRECATED_MSG ("nros_param_server_get_zero_initialized() is deprecated; use " "nros_parameter_server_get_zero_initialized()") static inline struct nros_parameter_server_t nros_param_server_get_zero_initialized(void)
 
 NROS_DEPRECATED_MSG ("nros_param_server_init() is deprecated; use nros_parameter_server_init()") static inline nros_ret_t nros_param_server_init(struct nros_parameter_server_t *server
 
 NROS_DEPRECATED_MSG ("nros_param_server_set_callback() is deprecated; use nros_parameter_server_set_callback()") static inline nros_ret_t nros_param_server_set_callback(struct nros_parameter_server_t *server
 
 NROS_DEPRECATED_MSG ("nros_param_set_bool() is deprecated; use nros_parameter_set_bool()") static inline nros_ret_t nros_param_set_bool(struct nros_parameter_server_t *server
 
 NROS_DEPRECATED_MSG ("nros_param_set_bool_array() is deprecated; use nros_parameter_set_bool_array()") static inline nros_ret_t nros_param_set_bool_array(struct nros_parameter_server_t *server
 
 NROS_DEPRECATED_MSG ("nros_param_set_byte_array() is deprecated; use nros_parameter_set_byte_array()") static inline nros_ret_t nros_param_set_byte_array(struct nros_parameter_server_t *server
 
 NROS_DEPRECATED_MSG ("nros_param_set_double() is deprecated; use nros_parameter_set_double()") static inline nros_ret_t nros_param_set_double(struct nros_parameter_server_t *server
 
 NROS_DEPRECATED_MSG ("nros_param_set_double_array() is deprecated; use nros_parameter_set_double_array()") static inline nros_ret_t nros_param_set_double_array(struct nros_parameter_server_t *server
 
 NROS_DEPRECATED_MSG ("nros_param_set_integer() is deprecated; use nros_parameter_set_integer()") static inline nros_ret_t nros_param_set_integer(struct nros_parameter_server_t *server
 
 NROS_DEPRECATED_MSG ("nros_param_set_integer_array() is deprecated; use nros_parameter_set_integer_array()") static inline nros_ret_t nros_param_set_integer_array(struct nros_parameter_server_t *server
 
 NROS_DEPRECATED_MSG ("nros_param_set_string() is deprecated; use nros_parameter_set_string()") static inline nros_ret_t nros_param_set_string(struct nros_parameter_server_t *server
 
 NROS_DEPRECATED_MSG ("nros_param_set_string_array() is deprecated; use nros_parameter_set_string_array()") static inline nros_ret_t nros_param_set_string_array(struct nros_parameter_server_t *server
 
nros_ret_t nros_executor_declare_param_bool (struct nros_executor_t *executor, const char *name, bool value)
 Declare a boolean parameter on the executor's server.
 
nros_ret_t nros_executor_declare_param_double (struct nros_executor_t *executor, const char *name, double value)
 Declare a double parameter on the executor's server.
 
nros_ret_t nros_executor_declare_param_integer (struct nros_executor_t *executor, const char *name, int64_t value)
 Declare an integer parameter on the executor's server.
 
nros_ret_t nros_executor_declare_param_string (struct nros_executor_t *executor, const char *name, const char *value)
 Declare a string parameter on the executor's server.
 
nros_ret_t nros_executor_get_param_bool (struct nros_executor_t *executor, const char *name, bool *out_value)
 Get a boolean parameter from the executor's server.
 
nros_ret_t nros_executor_get_param_double (struct nros_executor_t *executor, const char *name, double *out_value)
 Get a double parameter from the executor's server.
 
nros_ret_t nros_executor_get_param_integer (struct nros_executor_t *executor, const char *name, int64_t *out_value)
 Get an integer parameter from the executor's server.
 
nros_ret_t nros_executor_get_param_string (struct nros_executor_t *executor, const char *name, char *out_value, size_t max_len)
 Get a string parameter into a caller-provided null-terminated buffer.
 
bool nros_executor_has_param (struct nros_executor_t *executor, const char *name)
 Check if a parameter exists on the executor's server.
 
nros_ret_t nros_executor_register_parameter_services (struct nros_executor_t *executor)
 Register the 6 ROS 2 parameter services on the executor's node.
 
nros_ret_t nros_executor_set_param_bool (struct nros_executor_t *executor, const char *name, bool value)
 Set a boolean parameter on the executor's server.
 
nros_ret_t nros_executor_set_param_double (struct nros_executor_t *executor, const char *name, double value)
 Set a double parameter on the executor's server.
 
nros_ret_t nros_executor_set_param_integer (struct nros_executor_t *executor, const char *name, int64_t value)
 Set an integer parameter on the executor's server.
 
nros_ret_t nros_executor_set_param_string (struct nros_executor_t *executor, const char *name, const char *value)
 Set a string parameter on the executor's server.
 
nros_ret_t nros_parameter_declare_bool (struct nros_parameter_server_t *server, const char *name, bool default_value)
 Declare a boolean parameter.
 
nros_ret_t nros_parameter_declare_bool_array (struct nros_parameter_server_t *server, const char *name, const bool *data, size_t len)
 Declare a boolean array parameter (bool[]).
 
nros_ret_t nros_parameter_declare_byte_array (struct nros_parameter_server_t *server, const char *name, const uint8_t *data, size_t len)
 Declare a byte array parameter (uint8_t[]).
 
nros_ret_t nros_parameter_declare_double (struct nros_parameter_server_t *server, const char *name, double default_value)
 Declare a double parameter.
 
nros_ret_t nros_parameter_declare_double_array (struct nros_parameter_server_t *server, const char *name, const double *data, size_t len)
 Declare a double array parameter (double[]).
 
nros_ret_t nros_parameter_declare_integer (struct nros_parameter_server_t *server, const char *name, int64_t default_value)
 Declare an integer parameter.
 
nros_ret_t nros_parameter_declare_integer_array (struct nros_parameter_server_t *server, const char *name, const int64_t *data, size_t len)
 Declare an integer array parameter (int64_t[]).
 
nros_ret_t nros_parameter_declare_string (struct nros_parameter_server_t *server, const char *name, const char *default_value)
 Declare a string parameter.
 
nros_ret_t nros_parameter_declare_string_array (struct nros_parameter_server_t *server, const char *name, const char *const *data, size_t len)
 Declare a string array parameter (array of const char*).
 
nros_ret_t nros_parameter_get_bool (const struct nros_parameter_server_t *server, const char *name, bool *value)
 Get a boolean parameter value.
 
nros_ret_t nros_parameter_get_double (const struct nros_parameter_server_t *server, const char *name, double *value)
 Get a double parameter value.
 
nros_ret_t nros_parameter_get_integer (const struct nros_parameter_server_t *server, const char *name, int64_t *value)
 Get an integer parameter value.
 
nros_ret_t nros_parameter_get_string (const struct nros_parameter_server_t *server, const char *name, char *value, size_t max_len)
 Get a string parameter value.
 
enum nros_parameter_type_t nros_parameter_get_type (const struct nros_parameter_server_t *server, const char *name)
 Get the type of a parameter.
 
bool nros_parameter_has (const struct nros_parameter_server_t *server, const char *name)
 Check if a parameter exists.
 
nros_ret_t nros_parameter_server_fini (struct nros_parameter_server_t *server)
 Finalise a parameter server.
 
size_t nros_parameter_server_get_count (const struct nros_parameter_server_t *server)
 Get the number of declared parameters.
 
struct nros_parameter_server_t nros_parameter_server_get_zero_initialized (void)
 Get a zero-initialized parameter server.
 
nros_ret_t nros_parameter_server_init (struct nros_parameter_server_t *server, struct nros_parameter_t *storage, size_t capacity)
 Initialise a parameter server with user-provided storage.
 
nros_ret_t nros_parameter_server_set_callback (struct nros_parameter_server_t *server, nros_parameter_callback_t callback, void *context)
 Set a parameter change callback.
 
nros_ret_t nros_parameter_set_bool (struct nros_parameter_server_t *server, const char *name, bool value)
 Set a boolean parameter value.
 
nros_ret_t nros_parameter_set_bool_array (struct nros_parameter_server_t *server, const char *name, const bool *data, size_t len)
 Set a boolean array parameter (replaces stored pointer + length).
 
nros_ret_t nros_parameter_set_byte_array (struct nros_parameter_server_t *server, const char *name, const uint8_t *data, size_t len)
 Set a byte array parameter (replaces stored pointer + length).
 
nros_ret_t nros_parameter_set_double (struct nros_parameter_server_t *server, const char *name, double value)
 Set a double parameter value.
 
nros_ret_t nros_parameter_set_double_array (struct nros_parameter_server_t *server, const char *name, const double *data, size_t len)
 Set a double array parameter (replaces stored pointer + length).
 
nros_ret_t nros_parameter_set_integer (struct nros_parameter_server_t *server, const char *name, int64_t value)
 Set an integer parameter value.
 
nros_ret_t nros_parameter_set_integer_array (struct nros_parameter_server_t *server, const char *name, const int64_t *data, size_t len)
 Set an integer array parameter (replaces stored pointer + length).
 
nros_ret_t nros_parameter_set_string (struct nros_parameter_server_t *server, const char *name, const char *value)
 Set a string parameter value.
 
nros_ret_t nros_parameter_set_string_array (struct nros_parameter_server_t *server, const char *name, const char *const *data, size_t len)
 Set a string array parameter (replaces stored pointer + length).
 
Array parameter pointer identity (issue 0340)

The array declare / set calls above take BORROWED storage: the server records the caller's data pointer verbatim and never copies the elements, which is why the caller must keep that memory valid for the parameter's lifetime. The get calls below return that same pointer, unchanged — not a copy, not an interior pointer, not server-owned storage.

That identity is LOAD-BEARING, not incidental. nros/parameter.hpp's ParameterServer allocates array blocks out of a header-side pool with an out-of-band capacity word written immediately in front of each block, and recovers the capacity on set by reading back from the returned pointer. If this side ever starts copying arrays, returning an interior pointer, or handing back storage it owns, that read lands on unrelated memory.

The C++ side now verifies the returned pointer lies inside its own pool before trusting it, so a violation surfaces as NROS_RET_INVALID_ARGUMENT rather than an out-of-bounds read — but the guarantee is still part of this ABI. Changing it requires changing parameter.hpp in the same commit.

The proper fix is to carry the capacity in server-owned state (a field on nros_parameter_array_t, or a nros_parameter_get_*_array_capacity() accessor). That is a breaking change to a hand-mirrored FFI struct and a public C ABI, so it is deferred rather than done silently.

nros_ret_t nros_parameter_get_bool_array (const struct nros_parameter_server_t *server, const char *name, const bool **data, size_t *len)
 Get a boolean array parameter (returns stored pointer + length).
 
nros_ret_t nros_parameter_get_byte_array (const struct nros_parameter_server_t *server, const char *name, const uint8_t **data, size_t *len)
 Get a byte array parameter (returns stored pointer + length).
 
nros_ret_t nros_parameter_get_double_array (const struct nros_parameter_server_t *server, const char *name, const double **data, size_t *len)
 Get a double array parameter (returns stored pointer + length).
 
nros_ret_t nros_parameter_get_integer_array (const struct nros_parameter_server_t *server, const char *name, const int64_t **data, size_t *len)
 Get an integer array parameter (returns stored pointer + length).
 
nros_ret_t nros_parameter_get_string_array (const struct nros_parameter_server_t *server, const char *name, const char *const **data, size_t *len)
 Get a string array parameter (returns stored pointer + length).
 

Variables

nros_parameter_callback_t callback
 
struct nros_parameter_t size_t capacity
 
nros_parameter_callback_t void * context
 
const char const uint8_t * data
 
const char bool default_value
 
const char const uint8_t size_t len
 
const char char size_t max_len
 
const char * name
 
struct nros_parameter_tstorage
 
const char bool * value
 

Detailed Description

Parameter server API.

Declare, get, and set typed parameters on a local parameter server.

Typedef Documentation

◆ nros_param_callback_t

◆ nros_param_server_state_t

Function Documentation

◆ NROS_DEPRECATED_MSG() [1/34]

NROS_DEPRECATED_MSG ( "nros_param_declare_bool() is deprecated; use nros_parameter_declare_bool()"  )

◆ NROS_DEPRECATED_MSG() [2/34]

NROS_DEPRECATED_MSG ( "nros_param_declare_bool_array() is deprecated; use nros_parameter_declare_bool_array()"  )

◆ NROS_DEPRECATED_MSG() [3/34]

NROS_DEPRECATED_MSG ( "nros_param_declare_byte_array() is deprecated; use nros_parameter_declare_byte_array()"  )

◆ NROS_DEPRECATED_MSG() [4/34]

NROS_DEPRECATED_MSG ( "nros_param_declare_double() is deprecated; use nros_parameter_declare_double()"  )

◆ NROS_DEPRECATED_MSG() [5/34]

NROS_DEPRECATED_MSG ( "nros_param_declare_double_array() is deprecated; use nros_parameter_declare_double_array()"  )

◆ NROS_DEPRECATED_MSG() [6/34]

NROS_DEPRECATED_MSG ( "nros_param_declare_integer() is deprecated; use nros_parameter_declare_integer()"  )

◆ NROS_DEPRECATED_MSG() [7/34]

NROS_DEPRECATED_MSG ( "nros_param_declare_integer_array() is deprecated; use nros_parameter_declare_integer_array()"  )

◆ NROS_DEPRECATED_MSG() [8/34]

NROS_DEPRECATED_MSG ( "nros_param_declare_string() is deprecated; use nros_parameter_declare_string()"  )

◆ NROS_DEPRECATED_MSG() [9/34]

NROS_DEPRECATED_MSG ( "nros_param_declare_string_array() is deprecated; use nros_parameter_declare_string_array()"  )

◆ NROS_DEPRECATED_MSG() [10/34]

NROS_DEPRECATED_MSG ( "nros_param_get_bool() is deprecated; use nros_parameter_get_bool()"  ) const

◆ NROS_DEPRECATED_MSG() [11/34]

NROS_DEPRECATED_MSG ( "nros_param_get_bool_array() is deprecated; use nros_parameter_get_bool_array()"  ) const

◆ NROS_DEPRECATED_MSG() [12/34]

NROS_DEPRECATED_MSG ( "nros_param_get_byte_array() is deprecated; use nros_parameter_get_byte_array()"  ) const

◆ NROS_DEPRECATED_MSG() [13/34]

NROS_DEPRECATED_MSG ( "nros_param_get_double() is deprecated; use nros_parameter_get_double()"  ) const

◆ NROS_DEPRECATED_MSG() [14/34]

NROS_DEPRECATED_MSG ( "nros_param_get_double_array() is deprecated; use nros_parameter_get_double_array()"  ) const

◆ NROS_DEPRECATED_MSG() [15/34]

NROS_DEPRECATED_MSG ( "nros_param_get_integer() is deprecated; use nros_parameter_get_integer()"  ) const

◆ NROS_DEPRECATED_MSG() [16/34]

NROS_DEPRECATED_MSG ( "nros_param_get_integer_array() is deprecated; use nros_parameter_get_integer_array()"  ) const

◆ NROS_DEPRECATED_MSG() [17/34]

NROS_DEPRECATED_MSG ( "nros_param_get_string() is deprecated; use nros_parameter_get_string()"  ) const

◆ NROS_DEPRECATED_MSG() [18/34]

NROS_DEPRECATED_MSG ( "nros_param_get_string_array() is deprecated; use nros_parameter_get_string_array()"  ) const

◆ NROS_DEPRECATED_MSG() [19/34]

NROS_DEPRECATED_MSG ( "nros_param_get_type() is deprecated; use nros_parameter_get_type()"  ) const

◆ NROS_DEPRECATED_MSG() [20/34]

NROS_DEPRECATED_MSG ( "nros_param_has() is deprecated; use nros_parameter_has()"  ) const

◆ NROS_DEPRECATED_MSG() [21/34]

NROS_DEPRECATED_MSG ( "nros_param_server_fini() is deprecated; use nros_parameter_server_fini()"  )

◆ NROS_DEPRECATED_MSG() [22/34]

NROS_DEPRECATED_MSG ( "nros_param_server_get_count() is deprecated; use nros_parameter_server_get_count()"  ) const

◆ NROS_DEPRECATED_MSG() [23/34]

NROS_DEPRECATED_MSG ( "nros_param_server_get_zero_initialized() is deprecated; use " "nros_parameter_server_get_zero_initialized()"  )

◆ NROS_DEPRECATED_MSG() [24/34]

NROS_DEPRECATED_MSG ( "nros_param_server_init() is deprecated; use nros_parameter_server_init()"  )

◆ NROS_DEPRECATED_MSG() [25/34]

NROS_DEPRECATED_MSG ( "nros_param_server_set_callback() is deprecated; use nros_parameter_server_set_callback()"  )

◆ NROS_DEPRECATED_MSG() [26/34]

NROS_DEPRECATED_MSG ( "nros_param_set_bool() is deprecated; use nros_parameter_set_bool()"  )

◆ NROS_DEPRECATED_MSG() [27/34]

NROS_DEPRECATED_MSG ( "nros_param_set_bool_array() is deprecated; use nros_parameter_set_bool_array()"  )

◆ NROS_DEPRECATED_MSG() [28/34]

NROS_DEPRECATED_MSG ( "nros_param_set_byte_array() is deprecated; use nros_parameter_set_byte_array()"  )

◆ NROS_DEPRECATED_MSG() [29/34]

NROS_DEPRECATED_MSG ( "nros_param_set_double() is deprecated; use nros_parameter_set_double()"  )

◆ NROS_DEPRECATED_MSG() [30/34]

NROS_DEPRECATED_MSG ( "nros_param_set_double_array() is deprecated; use nros_parameter_set_double_array()"  )

◆ NROS_DEPRECATED_MSG() [31/34]

NROS_DEPRECATED_MSG ( "nros_param_set_integer() is deprecated; use nros_parameter_set_integer()"  )

◆ NROS_DEPRECATED_MSG() [32/34]

NROS_DEPRECATED_MSG ( "nros_param_set_integer_array() is deprecated; use nros_parameter_set_integer_array()"  )

◆ NROS_DEPRECATED_MSG() [33/34]

NROS_DEPRECATED_MSG ( "nros_param_set_string() is deprecated; use nros_parameter_set_string()"  )

◆ NROS_DEPRECATED_MSG() [34/34]

NROS_DEPRECATED_MSG ( "nros_param_set_string_array() is deprecated; use nros_parameter_set_string_array()"  )

◆ nros_executor_declare_param_bool()

nros_ret_t nros_executor_declare_param_bool ( struct nros_executor_t executor,
const char *  name,
bool  value 
)

Declare a boolean parameter on the executor's server.

◆ nros_executor_declare_param_double()

nros_ret_t nros_executor_declare_param_double ( struct nros_executor_t executor,
const char *  name,
double  value 
)

Declare a double parameter on the executor's server.

◆ nros_executor_declare_param_integer()

nros_ret_t nros_executor_declare_param_integer ( struct nros_executor_t executor,
const char *  name,
int64_t  value 
)

Declare an integer parameter on the executor's server.

◆ nros_executor_declare_param_string()

nros_ret_t nros_executor_declare_param_string ( struct nros_executor_t executor,
const char *  name,
const char *  value 
)

Declare a string parameter on the executor's server.

◆ nros_executor_get_param_bool()

nros_ret_t nros_executor_get_param_bool ( struct nros_executor_t executor,
const char *  name,
bool *  out_value 
)

Get a boolean parameter from the executor's server.

◆ nros_executor_get_param_double()

nros_ret_t nros_executor_get_param_double ( struct nros_executor_t executor,
const char *  name,
double *  out_value 
)

Get a double parameter from the executor's server.

◆ nros_executor_get_param_integer()

nros_ret_t nros_executor_get_param_integer ( struct nros_executor_t executor,
const char *  name,
int64_t *  out_value 
)

Get an integer parameter from the executor's server.

◆ nros_executor_get_param_string()

nros_ret_t nros_executor_get_param_string ( struct nros_executor_t executor,
const char *  name,
char *  out_value,
size_t  max_len 
)

Get a string parameter into a caller-provided null-terminated buffer.

◆ nros_executor_has_param()

bool nros_executor_has_param ( struct nros_executor_t executor,
const char *  name 
)

Check if a parameter exists on the executor's server.

◆ nros_executor_register_parameter_services()

nros_ret_t nros_executor_register_parameter_services ( struct nros_executor_t executor)

Register the 6 ROS 2 parameter services on the executor's node.

Creates service servers for:

  • ~/get_parameters
  • ~/set_parameters
  • ~/set_parameters_atomically
  • ~/list_parameters
  • ~/describe_parameters
  • ~/get_parameter_types

After this call, parameters declared via nros_executor_declare_param_*() are visible to ros2 param tooling.

◆ nros_executor_set_param_bool()

nros_ret_t nros_executor_set_param_bool ( struct nros_executor_t executor,
const char *  name,
bool  value 
)

Set a boolean parameter on the executor's server.

◆ nros_executor_set_param_double()

nros_ret_t nros_executor_set_param_double ( struct nros_executor_t executor,
const char *  name,
double  value 
)

Set a double parameter on the executor's server.

◆ nros_executor_set_param_integer()

nros_ret_t nros_executor_set_param_integer ( struct nros_executor_t executor,
const char *  name,
int64_t  value 
)

Set an integer parameter on the executor's server.

◆ nros_executor_set_param_string()

nros_ret_t nros_executor_set_param_string ( struct nros_executor_t executor,
const char *  name,
const char *  value 
)

Set a string parameter on the executor's server.

◆ nros_parameter_declare_bool()

nros_ret_t nros_parameter_declare_bool ( struct nros_parameter_server_t server,
const char *  name,
bool  default_value 
)

Declare a boolean parameter.

Parameters
serverPointer to an initialized parameter server.
nameParameter name (null-terminated).
default_valueDefault boolean value.
Return values
NROS_RET_OKon success.

◆ nros_parameter_declare_bool_array()

nros_ret_t nros_parameter_declare_bool_array ( struct nros_parameter_server_t server,
const char *  name,
const bool *  data,
size_t  len 
)

Declare a boolean array parameter (bool[]).

◆ nros_parameter_declare_byte_array()

nros_ret_t nros_parameter_declare_byte_array ( struct nros_parameter_server_t server,
const char *  name,
const uint8_t *  data,
size_t  len 
)

Declare a byte array parameter (uint8_t[]).

◆ nros_parameter_declare_double()

nros_ret_t nros_parameter_declare_double ( struct nros_parameter_server_t server,
const char *  name,
double  default_value 
)

Declare a double parameter.

Parameters
serverPointer to an initialized parameter server.
nameParameter name (null-terminated).
default_valueDefault double value.
Return values
NROS_RET_OKon success.

◆ nros_parameter_declare_double_array()

nros_ret_t nros_parameter_declare_double_array ( struct nros_parameter_server_t server,
const char *  name,
const double *  data,
size_t  len 
)

Declare a double array parameter (double[]).

◆ nros_parameter_declare_integer()

nros_ret_t nros_parameter_declare_integer ( struct nros_parameter_server_t server,
const char *  name,
int64_t  default_value 
)

Declare an integer parameter.

Parameters
serverPointer to an initialized parameter server.
nameParameter name (null-terminated).
default_valueDefault integer value.
Return values
NROS_RET_OKon success.

◆ nros_parameter_declare_integer_array()

nros_ret_t nros_parameter_declare_integer_array ( struct nros_parameter_server_t server,
const char *  name,
const int64_t *  data,
size_t  len 
)

Declare an integer array parameter (int64_t[]).

◆ nros_parameter_declare_string()

nros_ret_t nros_parameter_declare_string ( struct nros_parameter_server_t server,
const char *  name,
const char *  default_value 
)

Declare a string parameter.

Parameters
serverPointer to an initialized parameter server.
nameParameter name (null-terminated).
default_valueDefault string value (null-terminated).
Return values
NROS_RET_OKon success.

◆ nros_parameter_declare_string_array()

nros_ret_t nros_parameter_declare_string_array ( struct nros_parameter_server_t server,
const char *  name,
const char *const *  data,
size_t  len 
)

Declare a string array parameter (array of const char*).

◆ nros_parameter_get_bool()

nros_ret_t nros_parameter_get_bool ( const struct nros_parameter_server_t server,
const char *  name,
bool *  value 
)

Get a boolean parameter value.

Parameters
serverPointer to an initialized parameter server.
nameParameter name.
valueOutput: parameter value.
Return values
NROS_RET_OKon success.
NROS_RET_NOT_FOUNDif the parameter does not exist.

◆ nros_parameter_get_bool_array()

nros_ret_t nros_parameter_get_bool_array ( const struct nros_parameter_server_t server,
const char *  name,
const bool **  data,
size_t *  len 
)

Get a boolean array parameter (returns stored pointer + length).

◆ nros_parameter_get_byte_array()

nros_ret_t nros_parameter_get_byte_array ( const struct nros_parameter_server_t server,
const char *  name,
const uint8_t **  data,
size_t *  len 
)

Get a byte array parameter (returns stored pointer + length).

◆ nros_parameter_get_double()

nros_ret_t nros_parameter_get_double ( const struct nros_parameter_server_t server,
const char *  name,
double *  value 
)

Get a double parameter value.

Parameters
serverPointer to an initialized parameter server.
nameParameter name.
valueOutput: parameter value.
Return values
NROS_RET_OKon success.
NROS_RET_NOT_FOUNDif the parameter does not exist.

◆ nros_parameter_get_double_array()

nros_ret_t nros_parameter_get_double_array ( const struct nros_parameter_server_t server,
const char *  name,
const double **  data,
size_t *  len 
)

Get a double array parameter (returns stored pointer + length).

◆ nros_parameter_get_integer()

nros_ret_t nros_parameter_get_integer ( const struct nros_parameter_server_t server,
const char *  name,
int64_t *  value 
)

Get an integer parameter value.

Parameters
serverPointer to an initialized parameter server.
nameParameter name.
valueOutput: parameter value.
Return values
NROS_RET_OKon success.
NROS_RET_NOT_FOUNDif the parameter does not exist.

◆ nros_parameter_get_integer_array()

nros_ret_t nros_parameter_get_integer_array ( const struct nros_parameter_server_t server,
const char *  name,
const int64_t **  data,
size_t *  len 
)

Get an integer array parameter (returns stored pointer + length).

◆ nros_parameter_get_string()

nros_ret_t nros_parameter_get_string ( const struct nros_parameter_server_t server,
const char *  name,
char *  value,
size_t  max_len 
)

Get a string parameter value.

Parameters
serverPointer to an initialized parameter server.
nameParameter name.
valueOutput buffer for the string.
max_lenMaximum length of the output buffer.
Return values
NROS_RET_OKon success.
NROS_RET_NOT_FOUNDif the parameter does not exist.

◆ nros_parameter_get_string_array()

nros_ret_t nros_parameter_get_string_array ( const struct nros_parameter_server_t server,
const char *  name,
const char *const **  data,
size_t *  len 
)

Get a string array parameter (returns stored pointer + length).

◆ nros_parameter_get_type()

enum nros_parameter_type_t nros_parameter_get_type ( const struct nros_parameter_server_t server,
const char *  name 
)

Get the type of a parameter.

Parameters
serverPointer to an initialized parameter server.
nameParameter name.
Returns
Parameter type, or NROS_PARAMETER_NOT_SET if not found.

◆ nros_parameter_has()

bool nros_parameter_has ( const struct nros_parameter_server_t server,
const char *  name 
)

Check if a parameter exists.

Parameters
serverPointer to an initialized parameter server.
nameParameter name.
Returns
true if the parameter exists, false otherwise.

◆ nros_parameter_server_fini()

nros_ret_t nros_parameter_server_fini ( struct nros_parameter_server_t server)

Finalise a parameter server.

Parameters
serverPointer to an initialized parameter server.
Return values
NROS_RET_OKon success.

◆ nros_parameter_server_get_count()

size_t nros_parameter_server_get_count ( const struct nros_parameter_server_t server)

Get the number of declared parameters.

Parameters
serverPointer to an initialized parameter server.
Returns
Number of parameters.

◆ nros_parameter_server_get_zero_initialized()

struct nros_parameter_server_t nros_parameter_server_get_zero_initialized ( void  )

Get a zero-initialized parameter server.

Returns
Zero-initialized nros_parameter_server_t.

◆ nros_parameter_server_init()

nros_ret_t nros_parameter_server_init ( struct nros_parameter_server_t server,
struct nros_parameter_t storage,
size_t  capacity 
)

Initialise a parameter server with user-provided storage.

Parameters
serverPointer to a zero-initialized parameter server.
storagePointer to a user-provided parameter array.
capacityMaximum number of parameters the array can hold.
Return values
NROS_RET_OKon success.

◆ nros_parameter_server_set_callback()

nros_ret_t nros_parameter_server_set_callback ( struct nros_parameter_server_t server,
nros_parameter_callback_t  callback,
void *  context 
)

Set a parameter change callback.

Parameters
serverPointer to an initialized parameter server.
callbackCallback function, or NULL to clear.
contextUser context.
Return values
NROS_RET_OKon success.

◆ nros_parameter_set_bool()

nros_ret_t nros_parameter_set_bool ( struct nros_parameter_server_t server,
const char *  name,
bool  value 
)

Set a boolean parameter value.

Parameters
serverPointer to an initialized parameter server.
nameParameter name.
valueNew boolean value.
Return values
NROS_RET_OKon success.
NROS_RET_NOT_FOUNDif the parameter does not exist.

◆ nros_parameter_set_bool_array()

nros_ret_t nros_parameter_set_bool_array ( struct nros_parameter_server_t server,
const char *  name,
const bool *  data,
size_t  len 
)

Set a boolean array parameter (replaces stored pointer + length).

◆ nros_parameter_set_byte_array()

nros_ret_t nros_parameter_set_byte_array ( struct nros_parameter_server_t server,
const char *  name,
const uint8_t *  data,
size_t  len 
)

Set a byte array parameter (replaces stored pointer + length).

◆ nros_parameter_set_double()

nros_ret_t nros_parameter_set_double ( struct nros_parameter_server_t server,
const char *  name,
double  value 
)

Set a double parameter value.

Parameters
serverPointer to an initialized parameter server.
nameParameter name.
valueNew double value.
Return values
NROS_RET_OKon success.
NROS_RET_NOT_FOUNDif the parameter does not exist.

◆ nros_parameter_set_double_array()

nros_ret_t nros_parameter_set_double_array ( struct nros_parameter_server_t server,
const char *  name,
const double *  data,
size_t  len 
)

Set a double array parameter (replaces stored pointer + length).

◆ nros_parameter_set_integer()

nros_ret_t nros_parameter_set_integer ( struct nros_parameter_server_t server,
const char *  name,
int64_t  value 
)

Set an integer parameter value.

Parameters
serverPointer to an initialized parameter server.
nameParameter name.
valueNew integer value.
Return values
NROS_RET_OKon success.
NROS_RET_NOT_FOUNDif the parameter does not exist.

◆ nros_parameter_set_integer_array()

nros_ret_t nros_parameter_set_integer_array ( struct nros_parameter_server_t server,
const char *  name,
const int64_t *  data,
size_t  len 
)

Set an integer array parameter (replaces stored pointer + length).

◆ nros_parameter_set_string()

nros_ret_t nros_parameter_set_string ( struct nros_parameter_server_t server,
const char *  name,
const char *  value 
)

Set a string parameter value.

Parameters
serverPointer to an initialized parameter server.
nameParameter name.
valueNew string value (null-terminated).
Return values
NROS_RET_OKon success.
NROS_RET_NOT_FOUNDif the parameter does not exist.

◆ nros_parameter_set_string_array()

nros_ret_t nros_parameter_set_string_array ( struct nros_parameter_server_t server,
const char *  name,
const char *const *  data,
size_t  len 
)

Set a string array parameter (replaces stored pointer + length).

Variable Documentation

◆ callback

◆ capacity

struct nros_parameter_t size_t capacity
Initial value:
{
nros_ret_t nros_parameter_server_init(struct nros_parameter_server_t *server, struct nros_parameter_t *storage, size_t capacity)
Initialise a parameter server with user-provided storage.
struct nros_parameter_t size_t capacity
Definition parameter.h:511
struct nros_parameter_t * storage
Definition parameter.h:511

◆ context

Initial value:
{
nros_ret_t nros_parameter_server_set_callback(struct nros_parameter_server_t *server, nros_parameter_callback_t callback, void *context)
Set a parameter change callback.
nros_parameter_callback_t callback
Definition parameter.h:518
nros_parameter_callback_t void * context
Definition parameter.h:519

◆ data

const char const char* const* data

◆ default_value

const char const char * default_value
Initial value:
{
nros_ret_t nros_parameter_declare_bool(struct nros_parameter_server_t *server, const char *name, bool default_value)
Declare a boolean parameter.
const char bool default_value
Definition parameter.h:525
const char * name
Definition parameter.h:525

◆ len

const char const char* const size_t len
Initial value:
{
const char const uint8_t size_t len
Definition parameter.h:602
const char const uint8_t * data
Definition parameter.h:601
nros_ret_t nros_parameter_declare_byte_array(struct nros_parameter_server_t *server, const char *name, const uint8_t *data, size_t len)
Declare a byte array parameter (uint8_t[]).

◆ max_len

const char char size_t max_len
Initial value:
{
const char char size_t max_len
Definition parameter.h:570
nros_ret_t nros_parameter_get_string(const struct nros_parameter_server_t *server, const char *name, char *value, size_t max_len)
Get a string parameter value.
const char bool * value
Definition parameter.h:552

◆ name

const char * name
Initial value:
{
return nros_parameter_has(server, name)
bool nros_parameter_has(const struct nros_parameter_server_t *server, const char *name)
Check if a parameter exists.

◆ storage

struct nros_parameter_t* storage

◆ value

const char const char * value
Initial value:
{
nros_ret_t nros_parameter_get_bool(const struct nros_parameter_server_t *server, const char *name, bool *value)
Get a boolean parameter value.