Skip to content

Commit d0de1c6

Browse files
authored
Merge pull request #22 from fbrand-new/fix/blackboard_service
fix: blackboard data type is now generated correctly
2 parents de85a20 + 1a43364 commit d0de1c6

File tree

2 files changed

+23
-21
lines changed

2 files changed

+23
-21
lines changed

template_skill/include/TemplateSkill.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ class $className$
6767
rclcpp::Subscription<$eventData.interfaceName$::msg::$eventData.messageNameSnakeCase$>::SharedPtr m_subscription_$eventData.functionName$;/*END_TOPIC_SUBSCRIPTION_H*/
6868
/*SERVICE_CLIENTS_LIST*//*SERVICE_CLIENT*/
6969
std::shared_ptr<rclcpp::Node> $eventData.nodeName$;
70-
std::shared_ptr<rclcpp::Client<$eventData.interfaceName$::srv::$eventData.functionName$>> $eventData.clientName$;/*END_SERVICE_CLIENT*/
70+
std::shared_ptr<rclcpp::Client<$eventData.interfaceName$::srv::$eventData.serviceTypeName$>> $eventData.clientName$;/*END_SERVICE_CLIENT*/
7171
/*ACTION_LIST_H*//*ACTION_H*/
7272
std::shared_ptr<rclcpp::Node> m_node_action;
7373
std::mutex m_actionMutex;

template_skill/src/TemplateSkill.cpp

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -97,30 +97,32 @@ bool $className$::start(int argc, char*argv[])
9797
/*END_TOPIC_SUBSCRIPTION*/
9898
/*SEND_EVENT_LIST*//*SEND_EVENT_SRV*/
9999
$eventData.nodeName$ = rclcpp::Node::make_shared(m_name + "SkillNode$eventData.functionName$");
100-
$eventData.clientName$ = $eventData.nodeName$->create_client<$eventData.interfaceName$::srv::$eventData.functionName$>($eventData.serverName$);
100+
$eventData.clientName$ = $eventData.nodeName$->create_client<$eventData.interfaceName$::srv::$eventData.serviceTypeName$>($eventData.serverName$);
101101
$eventData.clientName$->configure_introspection($eventData.nodeName$->get_clock(), rclcpp::SystemDefaultsQoS(), RCL_SERVICE_INTROSPECTION_CONTENTS);
102102

103-
bool wait_succeded{true};
104-
int retries = 0;
105-
while (!$eventData.clientName$->wait_for_service(std::chrono::seconds(1))) {
106-
if (!rclcpp::ok()) {
107-
RCLCPP_ERROR(rclcpp::get_logger("rclcpp"), "Interrupted while waiting for the service '$eventData.functionName$'. Exiting.");
108-
wait_succeded = false;
109-
break;
110-
}
111-
retries++;
112-
if(retries == SERVICE_TIMEOUT) {
113-
RCLCPP_ERROR(rclcpp::get_logger("rclcpp"), "Timed out while waiting for the service '$eventData.functionName$'.");
114-
wait_succeded = false;
115-
break;
116-
}
117-
}
118-
if (!wait_succeded) {
119-
RCLCPP_ERROR(rclcpp::get_logger("rclcpp"), "Service '$eventData.componentName$/$eventData.functionName$' not available.");
120-
std::exit(1);
103+
{
104+
bool wait_succeded{true};
105+
int retries = 0;
106+
while (!$eventData.clientName$->wait_for_service(std::chrono::seconds(1))) {
107+
if (!rclcpp::ok()) {
108+
RCLCPP_ERROR(rclcpp::get_logger("rclcpp"), "Interrupted while waiting for the service '$eventData.functionName$'. Exiting.");
109+
wait_succeded = false;
110+
break;
111+
}
112+
retries++;
113+
if(retries == SERVICE_TIMEOUT) {
114+
RCLCPP_ERROR(rclcpp::get_logger("rclcpp"), "Timed out while waiting for the service '$eventData.functionName$'.");
115+
wait_succeded = false;
116+
break;
117+
}
118+
}
119+
if (!wait_succeded) {
120+
RCLCPP_ERROR(rclcpp::get_logger("rclcpp"), "Service '$eventData.componentName$/$eventData.functionName$' not available.");
121+
std::exit(1);
122+
}
121123
}
122124
m_stateMachine.connectToEvent("$eventData.event$", [this]([[maybe_unused]]const QScxmlEvent & event){
123-
auto request = std::make_shared<$eventData.interfaceName$::srv::$eventData.functionName$::Request>();
125+
auto request = std::make_shared<$eventData.interfaceName$::srv::$eventData.serviceTypeName$::Request>();
124126
auto eventParams = event.data().toMap();
125127
/*PARAM_LIST*//*PARAM*/
126128
request->$IT->FIRST$ = convert<decltype(request->$IT->FIRST$)>(eventParams["$IT->FIRST$"].toString().toStdString());/*END_PARAM*/

0 commit comments

Comments
 (0)