Skip to content

Commit 373b182

Browse files
committed
merge parser functions
1 parent 8ea003b commit 373b182

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
@@ -722,74 +722,38 @@ std::vector<HardwareInfo> parse_control_resources_from_urdf(const std::string &
722722
return hardware_info;
723723
}
724724

725-
std::vector<InterfaceDescription> parse_joint_state_interface_descriptions_from_hardware_info(
726-
const HardwareInfo & hw_info)
725+
std::vector<InterfaceDescription> parse_state_interface_descriptions_from_hardware_info(
726+
const std::vector<ComponentInfo> & component_info)
727727
{
728-
std::vector<InterfaceDescription> joint_state_interface_descriptions;
729-
joint_state_interface_descriptions.reserve(hw_info.joints.size());
728+
std::vector<InterfaceDescription> component_state_interface_descriptions;
729+
component_state_interface_descriptions.reserve(component_info.size());
730730

731-
for (const auto & joint : hw_info.joints)
731+
for (const auto & component : component_info)
732732
{
733-
for (const auto & state_interface : joint.state_interfaces)
733+
for (const auto & state_interface : component.state_interfaces)
734734
{
735-
joint_state_interface_descriptions.emplace_back(
736-
InterfaceDescription(joint.name, state_interface));
735+
component_state_interface_descriptions.emplace_back(
736+
InterfaceDescription(component.name, state_interface));
737737
}
738738
}
739-
return joint_state_interface_descriptions;
739+
return component_state_interface_descriptions;
740740
}
741741

742-
std::vector<InterfaceDescription> parse_sensor_state_interface_descriptions_from_hardware_info(
743-
const HardwareInfo & hw_info)
744-
{
745-
std::vector<InterfaceDescription> sensor_state_interface_descriptions;
746-
sensor_state_interface_descriptions.reserve(hw_info.sensors.size());
747-
748-
for (const auto & sensor : hw_info.sensors)
749-
{
750-
for (const auto & state_interface : sensor.state_interfaces)
751-
{
752-
sensor_state_interface_descriptions.emplace_back(
753-
InterfaceDescription(sensor.name, state_interface));
754-
}
755-
}
756-
return sensor_state_interface_descriptions;
757-
}
758-
759-
std::vector<InterfaceDescription> parse_gpio_state_interface_descriptions_from_hardware_info(
760-
const HardwareInfo & hw_info)
761-
{
762-
std::vector<InterfaceDescription> gpio_state_interface_descriptions;
763-
gpio_state_interface_descriptions.reserve(hw_info.gpios.size());
764-
765-
for (const auto & gpio : hw_info.gpios)
766-
{
767-
for (const auto & state_interface : gpio.state_interfaces)
768-
{
769-
gpio_state_interface_descriptions.emplace_back(
770-
InterfaceDescription(gpio.name, state_interface));
771-
}
772-
}
773-
return gpio_state_interface_descriptions;
774-
}
775-
776-
std::vector<InterfaceDescription> parse_joint_command_interface_descriptions_from_hardware_info(
777-
const HardwareInfo & hw_info)
742+
std::vector<InterfaceDescription> parse_command_interface_descriptions_from_hardware_info(
743+
const std::vector<ComponentInfo> & component_info)
778744
{
779-
std::vector<InterfaceDescription>
780-
gpio_state_intejoint_command_interface_descriptionsrface_descriptions;
781-
gpio_state_intejoint_command_interface_descriptionsrface_descriptions.reserve(
782-
hw_info.joints.size());
745+
std::vector<InterfaceDescription> component_command_interface_descriptions;
746+
component_command_interface_descriptions.reserve(component_info.size());
783747

784-
for (const auto & joint : hw_info.joints)
748+
for (const auto & component : component_info)
785749
{
786-
for (const auto & command_interface : joint.command_interfaces)
750+
for (const auto & command_interface : component.command_interfaces)
787751
{
788-
gpio_state_intejoint_command_interface_descriptionsrface_descriptions.emplace_back(
789-
InterfaceDescription(joint.name, command_interface));
752+
component_command_interface_descriptions.emplace_back(
753+
InterfaceDescription(component.name, command_interface));
790754
}
791755
}
792-
return gpio_state_intejoint_command_interface_descriptionsrface_descriptions;
756+
return component_command_interface_descriptions;
793757
}
794758

795759
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
@@ -810,7 +810,7 @@ TEST_F(TestComponentParser, parse_joint_state_interface_descriptions_from_hardwa
810810
const auto control_hardware = parse_control_resources_from_urdf(urdf_to_test);
811811

812812
const auto joint_state_descriptions =
813-
parse_joint_state_interface_descriptions_from_hardware_info(control_hardware[0]);
813+
parse_state_interface_descriptions_from_hardware_info(control_hardware[0].joints);
814814
EXPECT_EQ(joint_state_descriptions[0].prefix_name, "joint1");
815815
EXPECT_EQ(joint_state_descriptions[0].get_interface_type(), "position");
816816
EXPECT_EQ(joint_state_descriptions[0].get_name(), "joint1/position");
@@ -829,7 +829,7 @@ TEST_F(TestComponentParser, parse_joint_command_interface_descriptions_from_hard
829829
const auto control_hardware = parse_control_resources_from_urdf(urdf_to_test);
830830

831831
const auto joint_command_descriptions =
832-
parse_joint_command_interface_descriptions_from_hardware_info(control_hardware[0]);
832+
parse_command_interface_descriptions_from_hardware_info(control_hardware[0].joints);
833833
EXPECT_EQ(joint_command_descriptions[0].prefix_name, "joint1");
834834
EXPECT_EQ(joint_command_descriptions[0].get_interface_type(), "position");
835835
EXPECT_EQ(joint_command_descriptions[0].get_name(), "joint1/position");
@@ -851,7 +851,7 @@ TEST_F(TestComponentParser, parse_sensor_state_interface_descriptions_from_hardw
851851
const auto control_hardware = parse_control_resources_from_urdf(urdf_to_test);
852852

853853
const auto sensor_state_descriptions =
854-
parse_sensor_state_interface_descriptions_from_hardware_info(control_hardware[0]);
854+
parse_state_interface_descriptions_from_hardware_info(control_hardware[0].sensors);
855855
EXPECT_EQ(sensor_state_descriptions[0].prefix_name, "sensor1");
856856
EXPECT_EQ(sensor_state_descriptions[0].get_interface_type(), "roll");
857857
EXPECT_EQ(sensor_state_descriptions[0].get_name(), "sensor1/roll");
@@ -876,7 +876,7 @@ TEST_F(TestComponentParser, parse_gpio_state_interface_descriptions_from_hardwar
876876
const auto control_hardware = parse_control_resources_from_urdf(urdf_to_test);
877877

878878
const auto gpio_state_descriptions =
879-
parse_gpio_state_interface_descriptions_from_hardware_info(control_hardware[0]);
879+
parse_state_interface_descriptions_from_hardware_info(control_hardware[0].gpios);
880880
EXPECT_EQ(gpio_state_descriptions[0].prefix_name, "flange_analog_IOs");
881881
EXPECT_EQ(gpio_state_descriptions[0].get_interface_type(), "analog_output1");
882882
EXPECT_EQ(gpio_state_descriptions[0].get_name(), "flange_analog_IOs/analog_output1");
@@ -901,7 +901,7 @@ TEST_F(TestComponentParser, parse_gpio_command_interface_descriptions_from_hardw
901901
const auto control_hardware = parse_control_resources_from_urdf(urdf_to_test);
902902

903903
const auto gpio_state_descriptions =
904-
parse_gpio_command_interface_descriptions_from_hardware_info(control_hardware[0]);
904+
parse_command_interface_descriptions_from_hardware_info(control_hardware[0].gpios);
905905
EXPECT_EQ(gpio_state_descriptions[0].prefix_name, "flange_analog_IOs");
906906
EXPECT_EQ(gpio_state_descriptions[0].get_interface_type(), "analog_output1");
907907
EXPECT_EQ(gpio_state_descriptions[0].get_name(), "flange_analog_IOs/analog_output1");

0 commit comments

Comments
 (0)