Skip to content

Commit 3f55818

Browse files
committed
merge parser functions
1 parent c5e7430 commit 3f55818

File tree

6 files changed

+39
-102
lines changed

6 files changed

+39
-102
lines changed

hardware_interface/include/hardware_interface/actuator_interface.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ class ActuatorInterface : public rclcpp_lifecycle::node_interfaces::LifecycleNod
136136
virtual void import_state_interface_descriptions(const HardwareInfo & hardware_info)
137137
{
138138
auto joint_state_interface_descriptions =
139-
parse_joint_state_interface_descriptions_from_hardware_info(hardware_info);
139+
parse_state_interface_descriptions_from_hardware_info(hardware_info.joints);
140140
for (const auto & description : joint_state_interface_descriptions)
141141
{
142142
joint_state_interfaces_.insert(std::make_pair(description.get_name(), description));
@@ -150,7 +150,7 @@ class ActuatorInterface : public rclcpp_lifecycle::node_interfaces::LifecycleNod
150150
virtual void import_command_interface_descriptions(const HardwareInfo & hardware_info)
151151
{
152152
auto joint_command_interface_descriptions =
153-
parse_joint_command_interface_descriptions_from_hardware_info(hardware_info);
153+
parse_command_interface_descriptions_from_hardware_info(hardware_info.joints);
154154
for (const auto & description : joint_command_interface_descriptions)
155155
{
156156
joint_command_interfaces_.insert(std::make_pair(description.get_name(), description));

hardware_interface/include/hardware_interface/component_parser.hpp

Lines changed: 8 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -33,49 +33,22 @@ HARDWARE_INTERFACE_PUBLIC
3333
std::vector<HardwareInfo> parse_control_resources_from_urdf(const std::string & urdf);
3434

3535
/**
36-
* \param[in] hw_info the hardware description
37-
* \return vector filled with information about robot's SommandInterfaces for the joints
36+
* \param[in] component_info information about a component (gpio, joint, sensor)
37+
* \return vector filled with information about hardware's StateInterfaces for the component
3838
* which are exported
3939
*/
4040
HARDWARE_INTERFACE_PUBLIC
41-
std::vector<InterfaceDescription> parse_joint_state_interface_descriptions_from_hardware_info(
42-
const HardwareInfo & hw_info);
41+
std::vector<InterfaceDescription> parse_state_interface_descriptions_from_hardware_info(
42+
const std::vector<ComponentInfo> & component_info);
4343

4444
/**
45-
* \param[in] hw_info the hardware description
46-
* \return vector filled with information about robot's SommandInterfaces for the sensors
45+
* \param[in] component_info information about a component (gpio, joint, sensor)
46+
* \return vector filled with information about hardware's CommandInterfaces for the component
4747
* which are exported
4848
*/
4949
HARDWARE_INTERFACE_PUBLIC
50-
std::vector<InterfaceDescription> parse_sensor_state_interface_descriptions_from_hardware_info(
51-
const HardwareInfo & hw_info);
52-
53-
/**
54-
* \param[in] hw_info the hardware description
55-
* \return vector filled with information about robot's SommandInterfaces for the gpios
56-
* which are exported
57-
*/
58-
HARDWARE_INTERFACE_PUBLIC
59-
std::vector<InterfaceDescription> parse_gpio_state_interface_descriptions_from_hardware_info(
60-
const HardwareInfo & hw_info);
61-
62-
/**
63-
* \param[in] hw_info the hardware description
64-
* \return vector filled with information about robot's CommandInterfaces for the joints
65-
* which are exported
66-
*/
67-
HARDWARE_INTERFACE_PUBLIC
68-
std::vector<InterfaceDescription> parse_joint_command_interface_descriptions_from_hardware_info(
69-
const HardwareInfo & hw_info);
70-
71-
/**
72-
* \param[in] hw_info the hardware description
73-
* \return vector filled with information about robot's CommandInterfaces for the gpios
74-
* which are exported
75-
*/
76-
HARDWARE_INTERFACE_PUBLIC
77-
std::vector<InterfaceDescription> parse_gpio_command_interface_descriptions_from_hardware_info(
78-
const HardwareInfo & hw_info);
50+
std::vector<InterfaceDescription> parse_command_interface_descriptions_from_hardware_info(
51+
const std::vector<ComponentInfo> & component_info);
7952

8053
} // namespace hardware_interface
8154
#endif // HARDWARE_INTERFACE__COMPONENT_PARSER_HPP_

hardware_interface/include/hardware_interface/sensor_interface.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ class SensorInterface : public rclcpp_lifecycle::node_interfaces::LifecycleNodeI
135135
virtual void import_state_interface_descriptions(const HardwareInfo & hardware_info)
136136
{
137137
auto sensor_state_interface_descriptions =
138-
parse_sensor_state_interface_descriptions_from_hardware_info(hardware_info);
138+
parse_state_interface_descriptions_from_hardware_info(hardware_info.sensors);
139139
for (const auto & description : sensor_state_interface_descriptions)
140140
{
141141
sensor_state_interfaces_.insert(std::make_pair(description.get_name(), description));

hardware_interface/include/hardware_interface/system_interface.hpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -138,19 +138,19 @@ class SystemInterface : public rclcpp_lifecycle::node_interfaces::LifecycleNodeI
138138
void import_state_interface_descriptions(const HardwareInfo & hardware_info)
139139
{
140140
auto joint_state_interface_descriptions =
141-
parse_joint_state_interface_descriptions_from_hardware_info(hardware_info);
141+
parse_state_interface_descriptions_from_hardware_info(hardware_info.joints);
142142
for (const auto & description : joint_state_interface_descriptions)
143143
{
144144
joint_state_interfaces_.insert(std::make_pair(description.get_name(), description));
145145
}
146146
auto sensor_state_interface_descriptions =
147-
parse_sensor_state_interface_descriptions_from_hardware_info(hardware_info);
147+
parse_state_interface_descriptions_from_hardware_info(hardware_info.sensors);
148148
for (const auto & description : sensor_state_interface_descriptions)
149149
{
150150
sensor_state_interfaces_.insert(std::make_pair(description.get_name(), description));
151151
}
152152
auto gpio_state_interface_descriptions =
153-
parse_gpio_state_interface_descriptions_from_hardware_info(hardware_info);
153+
parse_state_interface_descriptions_from_hardware_info(hardware_info.gpios);
154154
for (const auto & description : gpio_state_interface_descriptions)
155155
{
156156
gpio_state_interfaces_.insert(std::make_pair(description.get_name(), description));
@@ -164,13 +164,13 @@ class SystemInterface : public rclcpp_lifecycle::node_interfaces::LifecycleNodeI
164164
void import_command_interface_descriptions(const HardwareInfo & hardware_info)
165165
{
166166
auto joint_command_interface_descriptions =
167-
parse_joint_command_interface_descriptions_from_hardware_info(hardware_info);
167+
parse_command_interface_descriptions_from_hardware_info(hardware_info.joints);
168168
for (const auto & description : joint_command_interface_descriptions)
169169
{
170170
joint_command_interfaces_.insert(std::make_pair(description.get_name(), description));
171171
}
172172
auto gpio_command_interface_descriptions =
173-
parse_gpio_command_interface_descriptions_from_hardware_info(hardware_info);
173+
parse_command_interface_descriptions_from_hardware_info(hardware_info.gpios);
174174
for (const auto & description : gpio_command_interface_descriptions)
175175
{
176176
gpio_command_interfaces_.insert(std::make_pair(description.get_name(), description));

hardware_interface/src/component_parser.cpp

Lines changed: 18 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -905,74 +905,38 @@ std::vector<HardwareInfo> parse_control_resources_from_urdf(const std::string &
905905
return hardware_info;
906906
}
907907

908-
std::vector<InterfaceDescription> parse_joint_state_interface_descriptions_from_hardware_info(
909-
const HardwareInfo & hw_info)
908+
std::vector<InterfaceDescription> parse_state_interface_descriptions_from_hardware_info(
909+
const std::vector<ComponentInfo> & component_info)
910910
{
911-
std::vector<InterfaceDescription> joint_state_interface_descriptions;
912-
joint_state_interface_descriptions.reserve(hw_info.joints.size());
911+
std::vector<InterfaceDescription> component_state_interface_descriptions;
912+
component_state_interface_descriptions.reserve(component_info.size());
913913

914-
for (const auto & joint : hw_info.joints)
914+
for (const auto & component : component_info)
915915
{
916-
for (const auto & state_interface : joint.state_interfaces)
916+
for (const auto & state_interface : component.state_interfaces)
917917
{
918-
joint_state_interface_descriptions.emplace_back(
919-
InterfaceDescription(joint.name, state_interface));
918+
component_state_interface_descriptions.emplace_back(
919+
InterfaceDescription(component.name, state_interface));
920920
}
921921
}
922-
return joint_state_interface_descriptions;
922+
return component_state_interface_descriptions;
923923
}
924924

925-
std::vector<InterfaceDescription> parse_sensor_state_interface_descriptions_from_hardware_info(
926-
const HardwareInfo & hw_info)
927-
{
928-
std::vector<InterfaceDescription> sensor_state_interface_descriptions;
929-
sensor_state_interface_descriptions.reserve(hw_info.sensors.size());
930-
931-
for (const auto & sensor : hw_info.sensors)
932-
{
933-
for (const auto & state_interface : sensor.state_interfaces)
934-
{
935-
sensor_state_interface_descriptions.emplace_back(
936-
InterfaceDescription(sensor.name, state_interface));
937-
}
938-
}
939-
return sensor_state_interface_descriptions;
940-
}
941-
942-
std::vector<InterfaceDescription> parse_gpio_state_interface_descriptions_from_hardware_info(
943-
const HardwareInfo & hw_info)
944-
{
945-
std::vector<InterfaceDescription> gpio_state_interface_descriptions;
946-
gpio_state_interface_descriptions.reserve(hw_info.gpios.size());
947-
948-
for (const auto & gpio : hw_info.gpios)
949-
{
950-
for (const auto & state_interface : gpio.state_interfaces)
951-
{
952-
gpio_state_interface_descriptions.emplace_back(
953-
InterfaceDescription(gpio.name, state_interface));
954-
}
955-
}
956-
return gpio_state_interface_descriptions;
957-
}
958-
959-
std::vector<InterfaceDescription> parse_joint_command_interface_descriptions_from_hardware_info(
960-
const HardwareInfo & hw_info)
925+
std::vector<InterfaceDescription> parse_command_interface_descriptions_from_hardware_info(
926+
const std::vector<ComponentInfo> & component_info)
961927
{
962-
std::vector<InterfaceDescription>
963-
gpio_state_intejoint_command_interface_descriptionsrface_descriptions;
964-
gpio_state_intejoint_command_interface_descriptionsrface_descriptions.reserve(
965-
hw_info.joints.size());
928+
std::vector<InterfaceDescription> component_command_interface_descriptions;
929+
component_command_interface_descriptions.reserve(component_info.size());
966930

967-
for (const auto & joint : hw_info.joints)
931+
for (const auto & component : component_info)
968932
{
969-
for (const auto & command_interface : joint.command_interfaces)
933+
for (const auto & command_interface : component.command_interfaces)
970934
{
971-
gpio_state_intejoint_command_interface_descriptionsrface_descriptions.emplace_back(
972-
InterfaceDescription(joint.name, command_interface));
935+
component_command_interface_descriptions.emplace_back(
936+
InterfaceDescription(component.name, command_interface));
973937
}
974938
}
975-
return gpio_state_intejoint_command_interface_descriptionsrface_descriptions;
939+
return component_command_interface_descriptions;
976940
}
977941

978942
std::vector<InterfaceDescription> parse_gpio_command_interface_descriptions_from_hardware_info(

hardware_interface/test/test_component_parser.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1414,7 +1414,7 @@ TEST_F(TestComponentParser, parse_joint_state_interface_descriptions_from_hardwa
14141414
const auto control_hardware = parse_control_resources_from_urdf(urdf_to_test);
14151415

14161416
const auto joint_state_descriptions =
1417-
parse_joint_state_interface_descriptions_from_hardware_info(control_hardware[0]);
1417+
parse_state_interface_descriptions_from_hardware_info(control_hardware[0].joints);
14181418
EXPECT_EQ(joint_state_descriptions[0].prefix_name, "joint1");
14191419
EXPECT_EQ(joint_state_descriptions[0].get_interface_type(), "position");
14201420
EXPECT_EQ(joint_state_descriptions[0].get_name(), "joint1/position");
@@ -1433,7 +1433,7 @@ TEST_F(TestComponentParser, parse_joint_command_interface_descriptions_from_hard
14331433
const auto control_hardware = parse_control_resources_from_urdf(urdf_to_test);
14341434

14351435
const auto joint_command_descriptions =
1436-
parse_joint_command_interface_descriptions_from_hardware_info(control_hardware[0]);
1436+
parse_command_interface_descriptions_from_hardware_info(control_hardware[0].joints);
14371437
EXPECT_EQ(joint_command_descriptions[0].prefix_name, "joint1");
14381438
EXPECT_EQ(joint_command_descriptions[0].get_interface_type(), "position");
14391439
EXPECT_EQ(joint_command_descriptions[0].get_name(), "joint1/position");
@@ -1455,7 +1455,7 @@ TEST_F(TestComponentParser, parse_sensor_state_interface_descriptions_from_hardw
14551455
const auto control_hardware = parse_control_resources_from_urdf(urdf_to_test);
14561456

14571457
const auto sensor_state_descriptions =
1458-
parse_sensor_state_interface_descriptions_from_hardware_info(control_hardware[0]);
1458+
parse_state_interface_descriptions_from_hardware_info(control_hardware[0].sensors);
14591459
EXPECT_EQ(sensor_state_descriptions[0].prefix_name, "sensor1");
14601460
EXPECT_EQ(sensor_state_descriptions[0].get_interface_type(), "roll");
14611461
EXPECT_EQ(sensor_state_descriptions[0].get_name(), "sensor1/roll");
@@ -1480,7 +1480,7 @@ TEST_F(TestComponentParser, parse_gpio_state_interface_descriptions_from_hardwar
14801480
const auto control_hardware = parse_control_resources_from_urdf(urdf_to_test);
14811481

14821482
const auto gpio_state_descriptions =
1483-
parse_gpio_state_interface_descriptions_from_hardware_info(control_hardware[0]);
1483+
parse_state_interface_descriptions_from_hardware_info(control_hardware[0].gpios);
14841484
EXPECT_EQ(gpio_state_descriptions[0].prefix_name, "flange_analog_IOs");
14851485
EXPECT_EQ(gpio_state_descriptions[0].get_interface_type(), "analog_output1");
14861486
EXPECT_EQ(gpio_state_descriptions[0].get_name(), "flange_analog_IOs/analog_output1");
@@ -1505,7 +1505,7 @@ TEST_F(TestComponentParser, parse_gpio_command_interface_descriptions_from_hardw
15051505
const auto control_hardware = parse_control_resources_from_urdf(urdf_to_test);
15061506

15071507
const auto gpio_state_descriptions =
1508-
parse_gpio_command_interface_descriptions_from_hardware_info(control_hardware[0]);
1508+
parse_command_interface_descriptions_from_hardware_info(control_hardware[0].gpios);
15091509
EXPECT_EQ(gpio_state_descriptions[0].prefix_name, "flange_analog_IOs");
15101510
EXPECT_EQ(gpio_state_descriptions[0].get_interface_type(), "analog_output1");
15111511
EXPECT_EQ(gpio_state_descriptions[0].get_name(), "flange_analog_IOs/analog_output1");

0 commit comments

Comments
 (0)