The RetryNode is used to execute a child several times if it fails. More...
#include <retry_node.h>
Public Member Functions | |
virtual void | halt () override |
The method used to interrupt the execution of this node. More... | |
RetryNode (const std::string &name, int NTries) | |
RetryNode (const std::string &name, const NodeConfiguration &config) | |
virtual | ~RetryNode () override=default |
Public Member Functions inherited from BT::DecoratorNode | |
const TreeNode * | child () const |
TreeNode * | child () |
DecoratorNode (const std::string &name, const NodeConfiguration &config) | |
NodeStatus | executeTick () override |
The method that should be used to invoke tick() and setStatus();. More... | |
void | haltChild () |
Halt() the child node. More... | |
void | setChild (TreeNode *child) |
virtual NodeType | type () const override |
virtual | ~DecoratorNode () override=default |
Public Member Functions inherited from BT::TreeNode | |
const NodeConfiguration & | config () const |
template<typename T > | |
Result | getInput (const std::string &key, T &destination) const |
template<typename T > | |
Optional< T > | getInput (const std::string &key) const |
bool | isHalted () const |
const std::string & | name () const |
Name of the instance, not the type. More... | |
const std::string & | registrationName () const |
registrationName is the ID used by BehaviorTreeFactory to create an instance. More... | |
template<typename T > | |
Result | setOutput (const std::string &key, const T &value) |
void | setStatus (NodeStatus new_status) |
NodeStatus | status () const |
StatusChangeSubscriber | subscribeToStatusChange (StatusChangeCallback callback) |
subscribeToStatusChange is used to attach a callback to a status change. When StatusChangeSubscriber goes out of scope (it is a shared_ptr) the callback is unsubscribed automatically. More... | |
TreeNode (std::string name, NodeConfiguration config) | |
TreeNode main constructor. More... | |
uint16_t | UID () const |
BT::NodeStatus | waitValidStatus () |
virtual | ~TreeNode ()=default |
Static Public Member Functions | |
static PortsList | providedPorts () |
Static Public Member Functions inherited from BT::TreeNode | |
static Optional< StringView > | getRemappedKey (StringView port_name, StringView remapping_value) |
static bool | isBlackboardPointer (StringView str) |
static StringView | stripBlackboardPointer (StringView str) |
Private Member Functions | |
virtual BT::NodeStatus | tick () override |
Method to be implemented by the user. More... | |
Private Attributes | |
int | max_attempts_ |
bool | read_parameter_from_ports_ |
int | try_index_ |
Static Private Attributes | |
static constexpr const char * | NUM_ATTEMPTS = "num_attempts" |
Additional Inherited Members | |
Public Types inherited from BT::TreeNode | |
typedef std::shared_ptr< TreeNode > | Ptr |
using | StatusChangeCallback = StatusChangeSignal::CallableFunction |
using | StatusChangeSignal = Signal< TimePoint, const TreeNode &, NodeStatus, NodeStatus > |
using | StatusChangeSubscriber = StatusChangeSignal::Subscriber |
Protected Member Functions inherited from BT::TreeNode | |
void | modifyPortsRemapping (const PortsRemapping &new_remapping) |
void | setRegistrationID (StringView ID) |
Protected Attributes inherited from BT::DecoratorNode | |
TreeNode * | child_node_ |
The RetryNode is used to execute a child several times if it fails.
If the child returns SUCCESS, the loop is stopped and this node returns SUCCESS.
If the child returns FAILURE, this node will try again up to N times (N is read from port "num_attempts").
Example:
<RetryUntilSuccesful num_attempts="3"> <OpenDoor> </RetryUntilSuccesful>
Definition at line 36 of file retry_node.h.
BT::RetryNode::RetryNode | ( | const std::string & | name, |
int | NTries | ||
) |
Definition at line 20 of file retry_node.cpp.
BT::RetryNode::RetryNode | ( | const std::string & | name, |
const NodeConfiguration & | config | ||
) |
Definition at line 29 of file retry_node.cpp.
|
overridevirtualdefault |
|
overridevirtual |
The method used to interrupt the execution of this node.
Reimplemented from BT::DecoratorNode.
Definition at line 37 of file retry_node.cpp.
|
inlinestatic |
Definition at line 46 of file retry_node.h.
|
overrideprivatevirtual |
Method to be implemented by the user.
Implements BT::TreeNode.
Definition at line 43 of file retry_node.cpp.
|
private |
Definition at line 56 of file retry_node.h.
|
staticprivate |
Definition at line 60 of file retry_node.h.
|
private |
Definition at line 59 of file retry_node.h.
|
private |
Definition at line 57 of file retry_node.h.