Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
BT::DelayNode Class Reference

The delay node will introduce a delay and then tick the child returning the status of the child as it is upon completion The delay is in milliseconds and it is passed using the port "delay_msec". More...

#include <delay_node.h>

Inheritance diagram for BT::DelayNode:
Inheritance graph
[legend]

Public Member Functions

 DelayNode (const std::string &name, const NodeConfiguration &config)
 
 DelayNode (const std::string &name, unsigned milliseconds)
 
void halt () override
 The method used to interrupt the execution of this node. More...
 
 ~DelayNode () override
 
- Public Member Functions inherited from BT::DecoratorNode
TreeNodechild ()
 
const TreeNodechild () const
 
 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 ()
 Same as resetChild() More...
 
void resetChild ()
 
void setChild (TreeNode *child)
 
virtual NodeType type () const override
 
virtual ~DecoratorNode () override=default
 
- Public Member Functions inherited from BT::TreeNode
const NodeConfigurationconfig () const
 
void emitStateChanged ()
 
template<typename T >
Optional< T > getInput (const std::string &key) const
 
template<typename T >
Result getInput (const std::string &key, T &destination) const
 
StringView getRawPortValue (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 setPostTickOverrideFunction (PostTickOverrideCallback callback)
 
void setPreTickOverrideFunction (PreTickOverrideCallback callback)
 
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< StringViewgetRemappedKey (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

bool delay_aborted_
 
bool delay_complete_
 
std::mutex delay_mutex_
 
bool delay_started_
 
unsigned msec_
 
bool read_parameter_from_ports_
 
TimerQueue timer_
 
uint64_t timer_id_
 

Additional Inherited Members

- Public Types inherited from BT::TreeNode
using PostTickOverrideCallback = std::function< Optional< NodeStatus >(TreeNode &, NodeStatus, NodeStatus)>
 
using PreTickOverrideCallback = std::function< Optional< NodeStatus >(TreeNode &, NodeStatus)>
 
typedef std::shared_ptr< TreeNodePtr
 
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 resetStatus ()
 Equivalent to setStatus(NodeStatus::IDLE) More...
 
void setRegistrationID (StringView ID)
 
void setStatus (NodeStatus new_status)
 
void setWakeUpInstance (std::shared_ptr< WakeUpSignal > instance)
 
- Protected Attributes inherited from BT::DecoratorNode
TreeNodechild_node_
 

Detailed Description

The delay node will introduce a delay and then tick the child returning the status of the child as it is upon completion The delay is in milliseconds and it is passed using the port "delay_msec".

During the delay the node changes status to RUNNING

Example:

<Delay delay_msec="5000"> <KeepYourBreath> </Delay>

Definition at line 22 of file delay_node.h.

Constructor & Destructor Documentation

◆ DelayNode() [1/2]

BT::DelayNode::DelayNode ( const std::string &  name,
unsigned  milliseconds 
)

Definition at line 8 of file delay_node.cpp.

◆ DelayNode() [2/2]

BT::DelayNode::DelayNode ( const std::string &  name,
const NodeConfiguration config 
)

Definition at line 18 of file delay_node.cpp.

◆ ~DelayNode()

BT::DelayNode::~DelayNode ( )
inlineoverride

Definition at line 29 of file delay_node.h.

Member Function Documentation

◆ halt()

void BT::DelayNode::halt ( )
inlineoverridevirtual

The method used to interrupt the execution of this node.

Reimplemented from BT::DecoratorNode.

Definition at line 38 of file delay_node.h.

◆ providedPorts()

static PortsList BT::DelayNode::providedPorts ( )
inlinestatic

Definition at line 34 of file delay_node.h.

◆ tick()

NodeStatus BT::DelayNode::tick ( )
overrideprivatevirtual

Method to be implemented by the user.

Implements BT::TreeNode.

Definition at line 26 of file delay_node.cpp.

Member Data Documentation

◆ delay_aborted_

bool BT::DelayNode::delay_aborted_
private

Definition at line 53 of file delay_node.h.

◆ delay_complete_

bool BT::DelayNode::delay_complete_
private

Definition at line 52 of file delay_node.h.

◆ delay_mutex_

std::mutex BT::DelayNode::delay_mutex_
private

Definition at line 56 of file delay_node.h.

◆ delay_started_

bool BT::DelayNode::delay_started_
private

Definition at line 51 of file delay_node.h.

◆ msec_

unsigned BT::DelayNode::msec_
private

Definition at line 54 of file delay_node.h.

◆ read_parameter_from_ports_

bool BT::DelayNode::read_parameter_from_ports_
private

Definition at line 55 of file delay_node.h.

◆ timer_

TimerQueue BT::DelayNode::timer_
private

Definition at line 46 of file delay_node.h.

◆ timer_id_

uint64_t BT::DelayNode::timer_id_
private

Definition at line 47 of file delay_node.h.


The documentation for this class was generated from the following files:


behaviortree_cpp_v3
Author(s): Michele Colledanchise, Davide Faconti
autogenerated on Wed Jun 26 2024 02:51:19