SMACC2
Loading...
Searching...
No Matches
smacc2
src
smacc2
client_behaviors
cb_wait_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
21
#include <
smacc2/client_behaviors/cb_wait_node.hpp
>
22
23
namespace
smacc2
24
{
25
namespace
client_behaviors
26
{
27
CbWaitNode::CbWaitNode
(std::string
nodeName
) : nodeName_(
nodeName
), rate_(5) {}
28
29
void
CbWaitNode::onEntry
()
30
{
31
bool
found
=
false
;
32
while
(!this->
isShutdownRequested
() && !found)
33
{
34
std::stringstream
ss
;
35
auto
nodenames
=
getNode
()->get_node_names();
36
37
for
(
auto
n
:
nodenames
)
38
{
39
ss
<<
" - "
<<
n
<< std::endl;
40
41
if
(
n
==
nodeName_
)
found
=
true
;
42
}
43
44
auto
totalstr
=
ss
.str();
45
RCLCPP_INFO_STREAM
(
46
getLogger
(),
"["
<<
getName
() <<
"] on entry, listing nodes ("
<<
nodenames
.size() <<
")"
47
<< std::endl
48
<<
totalstr
);
49
50
rate_
.sleep();
51
}
52
53
if
(
found
)
54
{
55
this->
postSuccessEvent
();
56
}
57
else
58
{
59
this->
postFailureEvent
();
60
}
61
}
62
63
}
// namespace client_behaviors
64
}
// namespace smacc2
cb_wait_node.hpp
smacc2::ISmaccClientBehavior::getName
std::string getName() const
Definition
smacc_client_behavior_base.cpp:36
smacc2::ISmaccClientBehavior::getLogger
virtual rclcpp::Logger getLogger() const
Definition
smacc_client_behavior_base.cpp:43
smacc2::ISmaccClientBehavior::getNode
virtual rclcpp::Node::SharedPtr getNode() const
Definition
smacc_client_behavior_base.cpp:38
smacc2::SmaccAsyncClientBehavior::postSuccessEvent
void postSuccessEvent()
Definition
smacc_client_async_behavior.cpp:153
smacc2::SmaccAsyncClientBehavior::isShutdownRequested
bool isShutdownRequested()
onEntry is executed in a new thread. However the current state cannot be left until the onEntry threa...
Definition
smacc_client_async_behavior.cpp:165
smacc2::SmaccAsyncClientBehavior::postFailureEvent
void postFailureEvent()
Definition
smacc_client_async_behavior.cpp:155
smacc2::client_behaviors::CbWaitNode::onEntry
void onEntry() override
Definition
cb_wait_node.cpp:29
smacc2::client_behaviors::CbWaitNode::nodeName_
std::string nodeName_
Definition
cb_wait_node.hpp:41
smacc2::client_behaviors::CbWaitNode::CbWaitNode
CbWaitNode(std::string nodeName)
Definition
cb_wait_node.cpp:27
smacc2::client_behaviors::CbWaitNode::rate_
rclcpp::Rate rate_
Definition
cb_wait_node.hpp:43
smacc2
Definition
callback_counter_semaphore.hpp:30
smacc2::default_events::EvTopicMessage
Definition
smacc_default_events.hpp:155
Generated by
1.9.8