@@ -57,18 +57,18 @@ ChainableControllerInterface::export_state_interfaces()
5757 // check if the names of the controller state interfaces begin with the controller's name
5858 for (const auto & interface : state_interfaces)
5959 {
60- if (interface.get_prefix_name () != get_node ()->get_name ())
60+ if (interface.get_prefix_name (). find ( get_node ()->get_name ()) != 0 )
6161 {
6262 std::string error_msg =
6363 " The prefix of the interface '" + interface.get_prefix_name () +
64- " ' does not equal the controller's name '" + get_node ()->get_name () +
64+ " ' should begin with the controller's name '" + get_node ()->get_name () +
6565 " '. This is mandatory for state interfaces. No state interface will be exported. Please "
6666 " correct and recompile the controller with name '" +
6767 get_node ()->get_name () + " ' and try again." ;
6868 throw std::runtime_error (error_msg);
6969 }
7070 auto state_interface = std::make_shared<hardware_interface::StateInterface>(interface);
71- const auto interface_name = state_interface->get_interface_name ();
71+ const auto interface_name = state_interface->get_name ();
7272 auto [it, succ] = exported_state_interfaces_.insert ({interface_name, state_interface});
7373 // either we have name duplicate which we want to avoid under all circumstances since interfaces
7474 // need to be uniquely identify able or something else really went wrong. In any case abort and
@@ -137,19 +137,20 @@ ChainableControllerInterface::export_reference_interfaces()
137137 const auto ref_interface_size = reference_interfaces.size ();
138138 for (auto & interface : reference_interfaces)
139139 {
140- if (interface.get_prefix_name () != get_node ()->get_name ())
140+ if (interface.get_prefix_name (). find ( get_node ()->get_name ()) != 0 )
141141 {
142- std::string error_msg = " The name of the interface " + interface.get_name () +
143- " does not begin with the controller's name. This is mandatory for "
144- " reference interfaces. Please "
145- " correct and recompile the controller with name " +
146- get_node ()->get_name () + " and try again." ;
142+ std::string error_msg = " The prefix of the interface '" + interface.get_prefix_name () +
143+ " ' should begin with the controller's name '" +
144+ get_node ()->get_name () +
145+ " '. This is mandatory for reference interfaces. Please correct and "
146+ " recompile the controller with name '" +
147+ get_node ()->get_name () + " ' and try again." ;
147148 throw std::runtime_error (error_msg);
148149 }
149150
150151 hardware_interface::CommandInterface::SharedPtr reference_interface =
151152 std::make_shared<hardware_interface::CommandInterface>(std::move (interface));
152- const auto interface_name = reference_interface->get_interface_name ();
153+ const auto interface_name = reference_interface->get_name ();
153154 // check the exported interface name is unique
154155 auto [it, succ] = exported_reference_interfaces_.insert ({interface_name, reference_interface});
155156 // either we have name duplicate which we want to avoid under all circumstances since interfaces
0 commit comments