name “NAME” # Optionally declare the version number # version “0.1”

# If new data types need to be defined, they have to be put in a separate C++ # header, and this header will be loaded here import_types_from “NAMETypes.hpp” # Finally, it is pretty common that headers are directly loaded from an external # library. In this case, the library must be first used (the name is the # library's pkg-config name) and then the header can be used. Following Rock # conventions, a common use-case would be: # # using_library “NAME” # import_types_from “NAME/CustomType.hpp”

# If this project uses data types that are defined in other oroGen projects, # these projects should be imported there as well. import_types_from “std” # import_types_from “base”

# Declare a new task context (i.e., a component) # # The corresponding C++ class can be edited in tasks/Task.hpp and # tasks/Task.cpp, and will be put in the NAME namespace. task_context “Task” do

# This is the default from now on, and should not be removed. Rock will
# transition to a setup where all components use a configuration step.
needs_configuration

# A configuration property (here, a std::string). Its value can be retrieved
# in the C++ code with # _config_value.get() and _config_value.set(new_value).
property "config_value", "/std/string"

# An input port, i.e. an object from which the component gets data from
# other components' outputs
#
# Data can be retrieved using _input.read(value), which returns true if data
# was available, and false otherwise. _input.connected() returns if this
# input is connected to an output or not.
input_port "input", "/std/string"

# An output port, i.e. an object to which the component pushes data so that
# it is transmitted to other components' inputs
#
# Data can be written using _output.write(value). _output.connected() returns
# if this output is connected to an input or not.
output_port "output", "int"

# If you want that component's updateHook() to be executed when the "input"
# port gets data, uncomment this and comment the 'periodic' line
# port_driven "input"
# By default, the task will be periodic with a period of 0.1
periodic 0.1

end