adapt to action implicit changes (#602)
This commit is contained in:
parent
fe09d937b7
commit
ef2014ac4d
5 changed files with 31 additions and 29 deletions
|
@ -90,7 +90,7 @@ protected:
|
|||
response->stamp = clock.now();
|
||||
response->accepted = (request->order >= 0);
|
||||
if (response->accepted) {
|
||||
goals[request->uuid] = {request, response};
|
||||
goals[request->action_goal_id.uuid] = {request, response};
|
||||
}
|
||||
});
|
||||
ASSERT_TRUE(goal_service != nullptr);
|
||||
|
@ -106,19 +106,19 @@ protected:
|
|||
const ActionGoalResultRequest::SharedPtr request,
|
||||
ActionGoalResultResponse::SharedPtr response)
|
||||
{
|
||||
if (goals.count(request->uuid) == 1) {
|
||||
auto goal_request = goals[request->uuid].first;
|
||||
auto goal_response = goals[request->uuid].second;
|
||||
if (goals.count(request->action_goal_id.uuid) == 1) {
|
||||
auto goal_request = goals[request->action_goal_id.uuid].first;
|
||||
auto goal_response = goals[request->action_goal_id.uuid].second;
|
||||
ActionStatusMessage status_message;
|
||||
rclcpp_action::GoalStatus goal_status;
|
||||
goal_status.goal_info.goal_id.uuid = goal_request->uuid;
|
||||
goal_status.goal_info.goal_id.uuid = goal_request->action_goal_id.uuid;
|
||||
goal_status.goal_info.stamp = goal_response->stamp;
|
||||
goal_status.status = rclcpp_action::GoalStatus::STATUS_EXECUTING;
|
||||
status_message.status_list.push_back(goal_status);
|
||||
status_publisher->publish(status_message);
|
||||
client_executor.spin_once();
|
||||
ActionFeedbackMessage feedback_message;
|
||||
feedback_message.uuid = goal_request->uuid;
|
||||
feedback_message.action_goal_id.uuid = goal_request->action_goal_id.uuid;
|
||||
feedback_message.sequence.push_back(0);
|
||||
feedback_publisher->publish(feedback_message);
|
||||
client_executor.spin_once();
|
||||
|
@ -138,10 +138,10 @@ protected:
|
|||
status_publisher->publish(status_message);
|
||||
client_executor.spin_once();
|
||||
response->sequence = feedback_message.sequence;
|
||||
response->status = rclcpp_action::GoalStatus::STATUS_SUCCEEDED;
|
||||
goals.erase(request->uuid);
|
||||
response->action_status = rclcpp_action::GoalStatus::STATUS_SUCCEEDED;
|
||||
goals.erase(request->action_goal_id.uuid);
|
||||
} else {
|
||||
response->status = rclcpp_action::GoalStatus::STATUS_UNKNOWN;
|
||||
response->action_status = rclcpp_action::GoalStatus::STATUS_UNKNOWN;
|
||||
}
|
||||
});
|
||||
ASSERT_TRUE(result_service != nullptr);
|
||||
|
@ -170,11 +170,11 @@ protected:
|
|||
auto goal_response = it->second.second;
|
||||
const rclcpp::Time goal_stamp = goal_response->stamp;
|
||||
bool cancel_this = (
|
||||
request->goal_info.goal_id.uuid == goal_request->uuid ||
|
||||
request->goal_info.goal_id.uuid == goal_request->action_goal_id.uuid ||
|
||||
cancel_stamp > goal_stamp);
|
||||
if (cancel_all || cancel_this) {
|
||||
rclcpp_action::GoalStatus goal_status;
|
||||
goal_status.goal_info.goal_id.uuid = goal_request->uuid;
|
||||
goal_status.goal_info.goal_id.uuid = goal_request->action_goal_id.uuid;
|
||||
goal_status.goal_info.stamp = goal_response->stamp;
|
||||
goal_status.status = rclcpp_action::GoalStatus::STATUS_CANCELED;
|
||||
status_message.status_list.push_back(goal_status);
|
||||
|
|
|
@ -45,7 +45,7 @@ protected:
|
|||
throw std::runtime_error("send goal service didn't become available");
|
||||
}
|
||||
auto request = std::make_shared<Fibonacci::GoalRequestService::Request>();
|
||||
request->uuid = uuid;
|
||||
request->action_goal_id.uuid = uuid;
|
||||
auto future = client->async_send_request(request);
|
||||
if (rclcpp::executor::FutureReturnCode::SUCCESS !=
|
||||
rclcpp::spin_until_future_complete(node, future))
|
||||
|
@ -122,7 +122,7 @@ TEST_F(TestServer, handle_goal_called)
|
|||
auto request = std::make_shared<Fibonacci::GoalRequestService::Request>();
|
||||
|
||||
const GoalID uuid{{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}};
|
||||
request->uuid = uuid;
|
||||
request->action_goal_id.uuid = uuid;
|
||||
|
||||
auto future = client->async_send_request(request);
|
||||
ASSERT_EQ(
|
||||
|
@ -545,7 +545,7 @@ TEST_F(TestServer, publish_feedback)
|
|||
ASSERT_EQ(1u, received_msgs.size());
|
||||
auto & msg = received_msgs.back();
|
||||
ASSERT_EQ(sent_message->sequence, msg->sequence);
|
||||
ASSERT_EQ(uuid, msg->uuid);
|
||||
ASSERT_EQ(uuid, msg->action_goal_id.uuid);
|
||||
}
|
||||
|
||||
TEST_F(TestServer, get_result)
|
||||
|
@ -587,7 +587,7 @@ TEST_F(TestServer, get_result)
|
|||
throw std::runtime_error("get result service didn't become available");
|
||||
}
|
||||
auto request = std::make_shared<Fibonacci::GoalResultService::Request>();
|
||||
request->uuid = uuid;
|
||||
request->action_goal_id.uuid = uuid;
|
||||
auto future = result_client->async_send_request(request);
|
||||
|
||||
// Send a result
|
||||
|
@ -600,7 +600,7 @@ TEST_F(TestServer, get_result)
|
|||
rclcpp::spin_until_future_complete(node, future));
|
||||
|
||||
auto response = future.get();
|
||||
EXPECT_EQ(action_msgs::msg::GoalStatus::STATUS_SUCCEEDED, response->status);
|
||||
EXPECT_EQ(action_msgs::msg::GoalStatus::STATUS_SUCCEEDED, response->action_status);
|
||||
EXPECT_EQ(result->sequence, response->sequence);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue