Skip to content

Commit 2976181

Browse files
committed
Proper handling of controller conflicts
1 parent d12cbdf commit 2976181

File tree

1 file changed

+13
-9
lines changed

1 file changed

+13
-9
lines changed

ur_robot_driver/src/hardware_interface.cpp

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1004,16 +1004,18 @@ hardware_interface::return_type URPositionHardwareInterface::prepare_command_mod
10041004
if (std::any_of(start_modes_.begin(), start_modes_.end(),
10051005
[this](auto& item) { return (item == PASSTHROUGH_GPIO); }) &&
10061006
(std::any_of(start_modes_.begin(), start_modes_.end(),
1007-
[](auto& item) {
1008-
return (item == hardware_interface::HW_IF_VELOCITY || item == hardware_interface::HW_IF_POSITION);
1007+
[this](auto& item) {
1008+
return (item == hardware_interface::HW_IF_VELOCITY || item == hardware_interface::HW_IF_POSITION ||
1009+
item == FREEDRIVE_MODE_GPIO);
10091010
}) ||
10101011
std::any_of(control_modes.begin(), control_modes.end(), [this](auto& item) {
10111012
return (item == hardware_interface::HW_IF_VELOCITY || item == hardware_interface::HW_IF_POSITION ||
1012-
item == PASSTHROUGH_GPIO);
1013+
item == FREEDRIVE_MODE_GPIO || item == PASSTHROUGH_GPIO);
10131014
}))) {
10141015
ret_val = hardware_interface::return_type::ERROR;
10151016
}
1016-
if (std::any_of(start_modes_.begin(), start_modes_.end(), [this](auto& item) { return (item == FREEDRIVE_MODE_GPIO); }) &&
1017+
if (std::any_of(start_modes_.begin(), start_modes_.end(),
1018+
[this](auto& item) { return (item == FREEDRIVE_MODE_GPIO); }) &&
10171019
(std::any_of(start_modes_.begin(), start_modes_.end(),
10181020
[this](auto& item) {
10191021
return (item == hardware_interface::HW_IF_VELOCITY || item == hardware_interface::HW_IF_POSITION ||
@@ -1027,20 +1029,22 @@ hardware_interface::return_type URPositionHardwareInterface::prepare_command_mod
10271029
}
10281030
if (std::any_of(start_modes_.begin(), start_modes_.end(),
10291031
[](auto& item) { return (item == hardware_interface::HW_IF_POSITION); }) &&
1030-
(std::any_of(
1031-
start_modes_.begin(), start_modes_.end(),
1032-
[this](auto& item) { return (item == hardware_interface::HW_IF_VELOCITY || item == PASSTHROUGH_GPIO); }) ||
1032+
(std::any_of(start_modes_.begin(), start_modes_.end(),
1033+
[this](auto& item) {
1034+
return (item == hardware_interface::HW_IF_VELOCITY || item == FREEDRIVE_MODE_GPIO ||
1035+
item == PASSTHROUGH_GPIO);
1036+
}) ||
10331037
std::any_of(control_modes.begin(), control_modes.end(), [this](auto& item) {
10341038
return (item == hardware_interface::HW_IF_VELOCITY || item == hardware_interface::HW_IF_POSITION ||
1035-
item == PASSTHROUGH_GPIO);
1039+
item == FREEDRIVE_MODE_GPIO || item == PASSTHROUGH_GPIO);
10361040
}))) {
10371041
ret_val = hardware_interface::return_type::ERROR;
10381042
}
10391043
if (std::any_of(start_modes_.begin(), start_modes_.end(),
10401044
[](auto& item) { return (item == hardware_interface::HW_IF_VELOCITY); }) &&
10411045
std::any_of(start_modes_.begin(), start_modes_.end(), [this](auto& item) {
10421046
return (item == hardware_interface::HW_IF_VELOCITY || item == hardware_interface::HW_IF_POSITION ||
1043-
item == PASSTHROUGH_GPIO);
1047+
item == FREEDRIVE_MODE_GPIO || item == PASSTHROUGH_GPIO);
10441048
})) {
10451049
ret_val = hardware_interface::return_type::ERROR;
10461050
}

0 commit comments

Comments
 (0)