Skip to main content

Module declared

Module declared 

Source
Expand description

phase-446 W6 – the parameters a node’s contract DECLARES, checked when the code declares one.

The launch contract states each node’s parameters by name and type, and the build sizes the parameter store from that statement (phase-446 W4). A store sized from a declaration is only right while the code declares what the contract says, so a declaration the contract does not make – an unknown name, or a known name with another type – refuses the boot instead of taking a slot nobody counted.

The table is 'static data an entry bakes from the SystemModel (nros_orchestration_ir::declared_params); this module only looks names up in it. A node with no row has no params: in its contract and is NOT checked, which is the behaviour before the contract could say anything.

The C++ ComponentNode does the same lookup in rclcpp/detail/declared_params.hpp, over a header rendered from the same model by the same function.

Structs§

DeclaredParamMismatch
A declaration the contract does not make.
DeclaredParams
The declared parameters of every node in an image whose contract has params:.

Functions§

is_exempt
Names no contract has to declare: use_sim_time and start_type_description_service, which rclcpp declares on every node, and qos_overrides.*, which is derived from the contract itself. These are the names play_launch exempts when it holds a launch file to the same contract, so the launch check and this one agree about what a node may carry.
ros_type
The ParameterType for an rcl_interfaces/msg/ParameterType code.
type_name
The contract’s spelling of a type, for a diagnostic.