Skip to content

Commit a7db21d

Browse files
committed
merge parser functions
1 parent 03353ca commit a7db21d

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
@@ -114,7 +114,7 @@ class ActuatorInterface : public rclcpp_lifecycle::node_interfaces::LifecycleNod
114114
virtual void import_state_interface_descriptions(const HardwareInfo & hardware_info)
115115
{
116116
auto joint_state_interface_descriptions =
117-
parse_joint_state_interface_descriptions_from_hardware_info(hardware_info);
117+
parse_state_interface_descriptions_from_hardware_info(hardware_info.joints);
118118
for (const auto & description : joint_state_interface_descriptions)
119119
{
120120
joint_state_interfaces_.insert(std::make_pair(description.get_name(), description));
@@ -128,7 +128,7 @@ class ActuatorInterface : public rclcpp_lifecycle::node_interfaces::LifecycleNod
128128
virtual void import_command_interface_descriptions(const HardwareInfo & hardware_info)
129129
{
130130
auto joint_command_interface_descriptions =
131-
parse_joint_command_interface_descriptions_from_hardware_info(hardware_info);
131+
parse_command_interface_descriptions_from_hardware_info(hardware_info.joints);
132132
for (const auto & description : joint_command_interface_descriptions)
133133
{
134134
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
@@ -34,49 +34,22 @@ HARDWARE_INTERFACE_PUBLIC
3434
std::vector<HardwareInfo> parse_control_resources_from_urdf(const std::string & urdf);
3535

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

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

8154
} // namespace hardware_interface
8255
#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
@@ -113,7 +113,7 @@ class SensorInterface : public rclcpp_lifecycle::node_interfaces::LifecycleNodeI
113113
virtual void import_state_interface_descriptions(const HardwareInfo & hardware_info)
114114
{
115115
auto sensor_state_interface_descriptions =
116-
parse_sensor_state_interface_descriptions_from_hardware_info(hardware_info);
116+
parse_state_interface_descriptions_from_hardware_info(hardware_info.sensors);
117117
for (const auto & description : sensor_state_interface_descriptions)
118118
{
119119
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
@@ -116,19 +116,19 @@ class SystemInterface : public rclcpp_lifecycle::node_interfaces::LifecycleNodeI
116116
void import_state_interface_descriptions(const HardwareInfo & hardware_info)
117117
{
118118
auto joint_state_interface_descriptions =
119-
parse_joint_state_interface_descriptions_from_hardware_info(hardware_info);
119+
parse_state_interface_descriptions_from_hardware_info(hardware_info.joints);
120120
for (const auto & description : joint_state_interface_descriptions)
121121
{
122122
joint_state_interfaces_.insert(std::make_pair(description.get_name(), description));
123123
}
124124
auto sensor_state_interface_descriptions =
125-
parse_sensor_state_interface_descriptions_from_hardware_info(hardware_info);
125+
parse_state_interface_descriptions_from_hardware_info(hardware_info.sensors);
126126
for (const auto & description : sensor_state_interface_descriptions)
127127
{
128128
sensor_state_interfaces_.insert(std::make_pair(description.get_name(), description));
129129
}
130130
auto gpio_state_interface_descriptions =
131-
parse_gpio_state_interface_descriptions_from_hardware_info(hardware_info);
131+
parse_state_interface_descriptions_from_hardware_info(hardware_info.gpios);
132132
for (const auto & description : gpio_state_interface_descriptions)
133133
{
134134
gpio_state_interfaces_.insert(std::make_pair(description.get_name(), description));
@@ -142,13 +142,13 @@ class SystemInterface : public rclcpp_lifecycle::node_interfaces::LifecycleNodeI
142142
void import_command_interface_descriptions(const HardwareInfo & hardware_info)
143143
{
144144
auto joint_command_interface_descriptions =
145-
parse_joint_command_interface_descriptions_from_hardware_info(hardware_info);
145+
parse_command_interface_descriptions_from_hardware_info(hardware_info.joints);
146146
for (const auto & description : joint_command_interface_descriptions)
147147
{
148148
joint_command_interfaces_.insert(std::make_pair(description.get_name(), description));
149149
}
150150
auto gpio_command_interface_descriptions =
151-
parse_gpio_command_interface_descriptions_from_hardware_info(hardware_info);
151+
parse_command_interface_descriptions_from_hardware_info(hardware_info.gpios);
152152
for (const auto & description : gpio_command_interface_descriptions)
153153
{
154154
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
@@ -614,74 +614,38 @@ std::vector<HardwareInfo> parse_control_resources_from_urdf(const std::string &
614614
return hardware_info;
615615
}
616616

617-
std::vector<InterfaceDescription> parse_joint_state_interface_descriptions_from_hardware_info(
618-
const HardwareInfo & hw_info)
617+
std::vector<InterfaceDescription> parse_state_interface_descriptions_from_hardware_info(
618+
const std::vector<ComponentInfo> & component_info)
619619
{
620-
std::vector<InterfaceDescription> joint_state_interface_descriptions;
621-
joint_state_interface_descriptions.reserve(hw_info.joints.size());
620+
std::vector<InterfaceDescription> component_state_interface_descriptions;
621+
component_state_interface_descriptions.reserve(component_info.size());
622622

623-
for (const auto & joint : hw_info.joints)
623+
for (const auto & component : component_info)
624624
{
625-
for (const auto & state_interface : joint.state_interfaces)
625+
for (const auto & state_interface : component.state_interfaces)
626626
{
627-
joint_state_interface_descriptions.emplace_back(
628-
InterfaceDescription(joint.name, state_interface));
627+
component_state_interface_descriptions.emplace_back(
628+
InterfaceDescription(component.name, state_interface));
629629
}
630630
}
631-
return joint_state_interface_descriptions;
631+
return component_state_interface_descriptions;
632632
}
633633

634-
std::vector<InterfaceDescription> parse_sensor_state_interface_descriptions_from_hardware_info(
635-
const HardwareInfo & hw_info)
636-
{
637-
std::vector<InterfaceDescription> sensor_state_interface_descriptions;
638-
sensor_state_interface_descriptions.reserve(hw_info.sensors.size());
639-
640-
for (const auto & sensor : hw_info.sensors)
641-
{
642-
for (const auto & state_interface : sensor.state_interfaces)
643-
{
644-
sensor_state_interface_descriptions.emplace_back(
645-
InterfaceDescription(sensor.name, state_interface));
646-
}
647-
}
648-
return sensor_state_interface_descriptions;
649-
}
650-
651-
std::vector<InterfaceDescription> parse_gpio_state_interface_descriptions_from_hardware_info(
652-
const HardwareInfo & hw_info)
653-
{
654-
std::vector<InterfaceDescription> gpio_state_interface_descriptions;
655-
gpio_state_interface_descriptions.reserve(hw_info.gpios.size());
656-
657-
for (const auto & gpio : hw_info.gpios)
658-
{
659-
for (const auto & state_interface : gpio.state_interfaces)
660-
{
661-
gpio_state_interface_descriptions.emplace_back(
662-
InterfaceDescription(gpio.name, state_interface));
663-
}
664-
}
665-
return gpio_state_interface_descriptions;
666-
}
667-
668-
std::vector<InterfaceDescription> parse_joint_command_interface_descriptions_from_hardware_info(
669-
const HardwareInfo & hw_info)
634+
std::vector<InterfaceDescription> parse_command_interface_descriptions_from_hardware_info(
635+
const std::vector<ComponentInfo> & component_info)
670636
{
671-
std::vector<InterfaceDescription>
672-
gpio_state_intejoint_command_interface_descriptionsrface_descriptions;
673-
gpio_state_intejoint_command_interface_descriptionsrface_descriptions.reserve(
674-
hw_info.joints.size());
637+
std::vector<InterfaceDescription> component_command_interface_descriptions;
638+
component_command_interface_descriptions.reserve(component_info.size());
675639

676-
for (const auto & joint : hw_info.joints)
640+
for (const auto & component : component_info)
677641
{
678-
for (const auto & command_interface : joint.command_interfaces)
642+
for (const auto & command_interface : component.command_interfaces)
679643
{
680-
gpio_state_intejoint_command_interface_descriptionsrface_descriptions.emplace_back(
681-
InterfaceDescription(joint.name, command_interface));
644+
component_command_interface_descriptions.emplace_back(
645+
InterfaceDescription(component.name, command_interface));
682646
}
683647
}
684-
return gpio_state_intejoint_command_interface_descriptionsrface_descriptions;
648+
return component_command_interface_descriptions;
685649
}
686650

687651
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
@@ -684,7 +684,7 @@ TEST_F(TestComponentParser, parse_joint_state_interface_descriptions_from_hardwa
684684
const auto control_hardware = parse_control_resources_from_urdf(urdf_to_test);
685685

686686
const auto joint_state_descriptions =
687-
parse_joint_state_interface_descriptions_from_hardware_info(control_hardware[0]);
687+
parse_state_interface_descriptions_from_hardware_info(control_hardware[0].joints);
688688
EXPECT_EQ(joint_state_descriptions[0].prefix_name, "joint1");
689689
EXPECT_EQ(joint_state_descriptions[0].get_interface_type(), "position");
690690
EXPECT_EQ(joint_state_descriptions[0].get_name(), "joint1/position");
@@ -703,7 +703,7 @@ TEST_F(TestComponentParser, parse_joint_command_interface_descriptions_from_hard
703703
const auto control_hardware = parse_control_resources_from_urdf(urdf_to_test);
704704

705705
const auto joint_command_descriptions =
706-
parse_joint_command_interface_descriptions_from_hardware_info(control_hardware[0]);
706+
parse_command_interface_descriptions_from_hardware_info(control_hardware[0].joints);
707707
EXPECT_EQ(joint_command_descriptions[0].prefix_name, "joint1");
708708
EXPECT_EQ(joint_command_descriptions[0].get_interface_type(), "position");
709709
EXPECT_EQ(joint_command_descriptions[0].get_name(), "joint1/position");
@@ -725,7 +725,7 @@ TEST_F(TestComponentParser, parse_sensor_state_interface_descriptions_from_hardw
725725
const auto control_hardware = parse_control_resources_from_urdf(urdf_to_test);
726726

727727
const auto sensor_state_descriptions =
728-
parse_sensor_state_interface_descriptions_from_hardware_info(control_hardware[0]);
728+
parse_state_interface_descriptions_from_hardware_info(control_hardware[0].sensors);
729729
EXPECT_EQ(sensor_state_descriptions[0].prefix_name, "sensor1");
730730
EXPECT_EQ(sensor_state_descriptions[0].get_interface_type(), "roll");
731731
EXPECT_EQ(sensor_state_descriptions[0].get_name(), "sensor1/roll");
@@ -750,7 +750,7 @@ TEST_F(TestComponentParser, parse_gpio_state_interface_descriptions_from_hardwar
750750
const auto control_hardware = parse_control_resources_from_urdf(urdf_to_test);
751751

752752
const auto gpio_state_descriptions =
753-
parse_gpio_state_interface_descriptions_from_hardware_info(control_hardware[0]);
753+
parse_state_interface_descriptions_from_hardware_info(control_hardware[0].gpios);
754754
EXPECT_EQ(gpio_state_descriptions[0].prefix_name, "flange_analog_IOs");
755755
EXPECT_EQ(gpio_state_descriptions[0].get_interface_type(), "analog_output1");
756756
EXPECT_EQ(gpio_state_descriptions[0].get_name(), "flange_analog_IOs/analog_output1");
@@ -775,7 +775,7 @@ TEST_F(TestComponentParser, parse_gpio_command_interface_descriptions_from_hardw
775775
const auto control_hardware = parse_control_resources_from_urdf(urdf_to_test);
776776

777777
const auto gpio_state_descriptions =
778-
parse_gpio_command_interface_descriptions_from_hardware_info(control_hardware[0]);
778+
parse_command_interface_descriptions_from_hardware_info(control_hardware[0].gpios);
779779
EXPECT_EQ(gpio_state_descriptions[0].prefix_name, "flange_analog_IOs");
780780
EXPECT_EQ(gpio_state_descriptions[0].get_interface_type(), "analog_output1");
781781
EXPECT_EQ(gpio_state_descriptions[0].get_name(), "flange_analog_IOs/analog_output1");

0 commit comments

Comments
 (0)