To make configuration more reusable and consistent, I would like to discuss the following suggestions:
Sections
Divide the config file into three main sections (+ others)
- interface section
- launch section
- process section
Interface section: This section covers the public interfaces common to nodes, modules, (and system).
Lists the external interfaces, whether they are implemented by nodes or modules. It consists of the following fields:
- topic-subscriptions (replaces node.input, module.external_interfaces.input)
- topic-publishers (replaces node.output, module.external_interfaces.output)
- service-servers (replaces node.input, module.external_interfaces.input)
- service-clients (replaces node.output, module.external_interfaces.output)
- parameter-values (replaces node.parameters, module.external_interfaces.parameters)
- parameter-files (replaces node.parameter-files)
- design-arguments (replaces system.modes, system.variables)
Launch section:
- instances (replaces node.launch, module.instances, system.components)
- executable (<node>)
- plugin (<composable_node>)
- module (<include>)
- command (<command>)
- connections
To make configuration more reusable and consistent, I would like to discuss the following suggestions:
Sections
Divide the config file into three main sections (+ others)
Interface section: This section covers the public interfaces common to nodes, modules, (and system).
Lists the external interfaces, whether they are implemented by nodes or modules. It consists of the following fields:
Launch section: