SMACC2
Loading...
Searching...
No Matches
smacc2_client_library
cl_lifecycle_node
src
cl_lifecycle_node
cl_lifecycle_node.cpp
Go to the documentation of this file.
1
// Copyright 2021 RobosoftAI Inc.
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
// http://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14
15
/*****************************************************************************************************************
16
*
17
* Authors: Pablo Inigo Blasco, Brett Aldrich
18
*
19
******************************************************************************************************************/
20
#include <
cl_lifecycle_node/cl_lifecycle_node.hpp
>
21
#include <
cl_lifecycle_node/components/cp_lifecycle_event_monitor.hpp
>
22
#include <string>
23
24
namespace
cl_lifecycle_node
25
{
26
ClLifecycleNode::ClLifecycleNode
(std::string node_name)
27
: nodeName_(node_name), eventMonitor_(nullptr)
28
{
29
}
30
31
ClLifecycleNode::~ClLifecycleNode
() {}
32
33
void
ClLifecycleNode::onInitialize
()
34
{
35
// Create service clients
36
client_get_state_
= this->
getNode
()->create_client<lifecycle_msgs::srv::GetState>(
37
this->
nodeName_
+
node_get_state_topic
);
38
client_change_state_
= this->
getNode
()->create_client<lifecycle_msgs::srv::ChangeState>(
39
this->
nodeName_
+
node_change_state_topic
);
40
}
41
42
void
ClLifecycleNode::changeState
(uint8_t state)
43
{
44
auto
request = std::make_shared<lifecycle_msgs::srv::ChangeState::Request>();
45
request->transition.id = state;
46
auto
future =
client_change_state_
->async_send_request(request);
47
future.wait();
48
}
49
50
void
ClLifecycleNode::activate
()
51
{
52
changeState
(lifecycle_msgs::msg::Transition::TRANSITION_ACTIVATE);
53
}
54
55
void
ClLifecycleNode::deactivate
()
56
{
57
changeState
(lifecycle_msgs::msg::Transition::TRANSITION_DEACTIVATE);
58
}
59
60
void
ClLifecycleNode::configure
()
61
{
62
changeState
(lifecycle_msgs::msg::Transition::TRANSITION_CONFIGURE);
63
}
64
65
void
ClLifecycleNode::cleanup
()
66
{
67
changeState
(lifecycle_msgs::msg::Transition::TRANSITION_CLEANUP);
68
}
69
70
void
ClLifecycleNode::shutdown
()
71
{
72
changeState
(lifecycle_msgs::msg::Transition::TRANSITION_UNCONFIGURED_SHUTDOWN);
73
}
74
75
}
// namespace cl_lifecycle_node
cl_lifecycle_node.hpp
cl_lifecycle_node::ClLifecycleNode::client_change_state_
rclcpp::Client< lifecycle_msgs::srv::ChangeState >::SharedPtr client_change_state_
Definition
cl_lifecycle_node.hpp:245
cl_lifecycle_node::ClLifecycleNode::~ClLifecycleNode
virtual ~ClLifecycleNode()
Definition
cl_lifecycle_node.cpp:31
cl_lifecycle_node::ClLifecycleNode::nodeName_
std::string nodeName_
Definition
cl_lifecycle_node.hpp:247
cl_lifecycle_node::ClLifecycleNode::deactivate
void deactivate()
Definition
cl_lifecycle_node.cpp:55
cl_lifecycle_node::ClLifecycleNode::shutdown
void shutdown()
Definition
cl_lifecycle_node.cpp:70
cl_lifecycle_node::ClLifecycleNode::onInitialize
void onInitialize() override
Definition
cl_lifecycle_node.cpp:33
cl_lifecycle_node::ClLifecycleNode::client_get_state_
rclcpp::Client< lifecycle_msgs::srv::GetState >::SharedPtr client_get_state_
Definition
cl_lifecycle_node.hpp:244
cl_lifecycle_node::ClLifecycleNode::node_get_state_topic
const std::string node_get_state_topic
Definition
cl_lifecycle_node.hpp:251
cl_lifecycle_node::ClLifecycleNode::activate
void activate()
Definition
cl_lifecycle_node.cpp:50
cl_lifecycle_node::ClLifecycleNode::configure
void configure()
Definition
cl_lifecycle_node.cpp:60
cl_lifecycle_node::ClLifecycleNode::node_change_state_topic
const std::string node_change_state_topic
Definition
cl_lifecycle_node.hpp:252
cl_lifecycle_node::ClLifecycleNode::changeState
void changeState(uint8_t state)
Definition
cl_lifecycle_node.cpp:42
cl_lifecycle_node::ClLifecycleNode::cleanup
void cleanup()
Definition
cl_lifecycle_node.cpp:65
cl_lifecycle_node::ClLifecycleNode::ClLifecycleNode
ClLifecycleNode(std::string nodeName)
Definition
cl_lifecycle_node.cpp:26
smacc2::ISmaccClient::getNode
rclcpp::Node::SharedPtr getNode()
Definition
client.cpp:60
cp_lifecycle_event_monitor.hpp
cl_lifecycle_node
Definition
cl_lifecycle_node.hpp:31
Generated by
1.12.0