44
55namespace rclcpp {
66// We use initializer lists in order to promote safety in uninitialzied state
7- ParameterDescription (std::string name, std::uint8 type, std::string description, std::string additional_constraints, bool read_only. bool dynamic_typing) : m_name{name}, parameter_descriptor.type{type}, m_description{description}, m_additional_constraints{additional_constraints}, read_only{read_only}, dyanmic_typing{m_dyanmic_typing}
7+ ParameterDescription:: ParameterDescription (std::string name, std::uint8 type, std::string description, std::string additional_constraints, bool read_only. bool dynamic_typing) : m_name{name}, parameter_descriptor.type{type}, m_description{description}, m_additional_constraints{additional_constraints}, read_only{read_only}, dyanmic_typing{m_dyanmic_typing}
88{}
99
10+ ParameterDescription::ParameterDescription (){}
1011
11- // ParameterDescription - FloatingPointDescription
12+ // ParameterDescription - ParameterDescription
1213// First the build methods to connect to the base class in the builder
13- ParameterDescription FloatingPointDescription ::build () const
14+ ParameterDescription ParameterDescription ::build () const
1415{
1516 return ParameterDescription (m_name, parameter_descriptor.type , m_description, m_additional_constraints, m_read_only, m_dynamic_typing)
1617}
1718
1819// Builder methods which set up the original class
1920// They all follow the same format of initing the value given within the base class, then returning this current class
20- FloatingPointDescription& FloatingPointDescription ::SetName (std::string name)
21+ ParameterDescription& ParameterDescription ::SetName (const std::string& name)
2122{
2223 m_name = name;
2324 return *this ;
2425}
2526
26- FloatingPointDescription& FloatingPointDescription ::SetType (std::uint8_t type)
27+ ParameterDescription& ParameterDescription ::SetType (std::uint8_t type)
2728{
2829 parameter_descriptor.type = type;
2930 return *this ;
3031}
3132
32- FloatingPointDescription& FloatingPointDescription::SetDescription ( std::string description)
33+ ParameterDescription& ParameterDescription::SetDescriptionText ( const std::string& description)
3334{
3435 m_description = description;
3536 return *this ;
3637}
3738
38- FloatingPointDescription& FloatingPointDescription ::SetAdditionalConstraints (std::string constraints)
39+ ParameterDescription& ParameterDescription ::SetAdditionalConstraints (const std::string& constraints)
3940{
4041 m_additional_constraints = constraints;
4142 return *this ;
4243}
4344
44- FloatingPointDescription& FloatingPointDescription ::SetReadOnly (bool read_only)
45+ ParameterDescription& ParameterDescription ::SetReadOnly (bool read_only)
4546{
4647 m_read_only = read_only;
4748 return *this ;
4849}
4950
50- FloatingPointDescription& FloatingPointDescription ::SetDynamicTyping (bool dynamic_typing)
51+ ParameterDescription& ParameterDescription ::SetDynamicTyping (bool dynamic_typing)
5152{
5253 m_dynamic_typing = dynamic_typing;
5354 return *this ;
5455}
5556
5657// These are the extension for this class that don't have access in the main class so we'll initialize here
57- FloatingPointDescription& FloatingPointDescription ::SetMin (float min)
58+ ParameterDescription& ParameterDescription ::SetMin (float min)
5859{
59- m_min = min;
60+ m_min_float = min;
6061 return *this ;
6162}
6263
63- FloatingPointDescription& FloatingPointDescription ::SetMax (float max)
64+ ParameterDescription& ParameterDescription ::SetMax (float max)
6465{
65- m_max = max;
66+ m_max_float = max;
6667 return *this ;
6768}
6869
69- FloatingPointDescription& FloatingPointDescription ::SetStep (float step)
70+ ParameterDescription& ParameterDescription ::SetStep (float step)
7071{
71- m_step = step;
72+ m_step_float = step;
73+ return *this ;
74+ }
75+
76+ ParameterDescription& ParameterDescription::SetMin (int min)
77+ {
78+ m_min_int = min;
79+ return *this ;
80+ }
81+
82+ ParameterDescription& ParameterDescription::SetMax (int max)
83+ {
84+ m_max_int = max;
85+ return *this ;
86+ }
87+
88+ ParameterDescription& ParameterDescription::SetStep (int step)
89+ {
90+ m_step_int = step;
7291 return *this ;
7392}
7493
7594// Here is the Specific range function for this parameter description
76- FloatingPointDescription& FloatingPointDescription::SetFloatingPointDescripion (float min, float max, float step)
95+ ParameterDescription& ParameterDescription::SetFloatingPointDescriptionRange (float min, float max, float step)
7796{
7897 parameter_descriptor.floating_point_range .resize (1 );
7998 parameter_descriptor.floating_point_range .at (0 ).from_value = min;
@@ -82,4 +101,13 @@ FloatingPointDescription& FloatingPointDescription::SetFloatingPointDescripion(f
82101 return *this ;
83102}
84103
104+ ParameterDescription& ParameterDescription::SetIntegerDescriptionRange (int min, int max, int step)
105+ {
106+ parameter_descriptor.integer_range .resize (1 );
107+ parameter_descriptor.integer_range .at (0 ).from_value = min;
108+ parameter_descriptor.integer_range .at (0 ).to_value = max;
109+ parameter_descriptor.integer_range .at (0 ).step = step;
110+ return *this ;
111+ }
112+
85113} // rclcpp namespace
0 commit comments