BehaviorTree
Core Library to create and execute Behavior Trees
Loading...
Searching...
No Matches
BT::SleepNode Class Reference

Sleep for a certain amount of time. Consider also using the decorator <Delay> More...

#include <sleep_node.h>

Inheritance diagram for BT::SleepNode:
Collaboration diagram for BT::SleepNode:

Public Member Functions

 SleepNode (const std::string &name, const NodeConfig &config)
 
 SleepNode (const SleepNode &)=delete
 
SleepNodeoperator= (const SleepNode &)=delete
 
 SleepNode (SleepNode &&)=delete
 
SleepNodeoperator= (SleepNode &&)=delete
 
NodeStatus onStart () override
 
NodeStatus onRunning () override
 method invoked when the action is already in the RUNNING state.
 
void onHalted () override
 
- Public Member Functions inherited from BT::StatefulActionNode
 StatefulActionNode (const std::string &name, const NodeConfig &config)
 
virtual NodeStatus onStart ()=0
 
virtual NodeStatus onRunning ()=0
 method invoked when the action is already in the RUNNING state.
 
virtual void onHalted ()=0
 
bool isHaltRequested () const
 
- Public Member Functions inherited from BT::ActionNodeBase
 ActionNodeBase (const std::string &name, const NodeConfig &config)
 
 ActionNodeBase (const ActionNodeBase &)=delete
 
ActionNodeBaseoperator= (const ActionNodeBase &)=delete
 
 ActionNodeBase (ActionNodeBase &&)=delete
 
ActionNodeBaseoperator= (ActionNodeBase &&)=delete
 
virtual NodeType type () const override final
 
- Public Member Functions inherited from BT::LeafNode
 LeafNode (const std::string &name, const NodeConfig &config)
 
 LeafNode (const LeafNode &)=delete
 
LeafNodeoperator= (const LeafNode &)=delete
 
 LeafNode (LeafNode &&)=delete
 
LeafNodeoperator= (LeafNode &&)=delete
 
- Public Member Functions inherited from BT::TreeNode
 TreeNode (std::string name, NodeConfig config)
 TreeNode main constructor.
 
 TreeNode (const TreeNode &other)=delete
 
TreeNodeoperator= (const TreeNode &other)=delete
 
 TreeNode (TreeNode &&other) noexcept
 
TreeNodeoperator= (TreeNode &&other) noexcept
 
virtual BT::NodeStatus executeTick ()
 The method that should be used to invoke tick() and setStatus();.
 
void haltNode ()
 
bool isHalted () const
 
NodeStatus status () const
 
const std::string & name () const
 Name of the instance, not the type.
 
BT::NodeStatus waitValidStatus ()
 
virtual NodeType type () const =0
 
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.
 
void setPreTickFunction (PreTickCallback callback)
 
void setPostTickFunction (PostTickCallback callback)
 
void setTickMonitorCallback (TickMonitorCallback callback)
 
uint16_t UID () const
 
const std::string & fullPath () const
 
const std::string & registrationName () const
 registrationName is the ID used by BehaviorTreeFactory to create an instance.
 
const NodeConfigconfig () const
 
template<typename T >
Result getInput (const std::string &key, T &destination) const
 
template<typename T >
Expected< TimestampgetInputStamped (const std::string &key, T &destination) const
 getInputStamped is similar to getInput(dey, destination), but it returns also the Timestamp object, that can be used to check if a value was updated and when.
 
template<typename T >
Expected< T > getInput (const std::string &key) const
 
template<typename T >
Expected< StampedValue< T > > getInputStamped (const std::string &key) const
 
template<typename T >
Result setOutput (const std::string &key, const T &value)
 setOutput modifies the content of an Output port
 
AnyPtrLocked getLockedPortContent (const std::string &key)
 getLockedPortContent should be used when:
 
StringView getRawPortValue (const std::string &key) const
 
void emitWakeUpSignal ()
 Notify that the tree should be ticked again()
 
bool requiresWakeUp () const
 

Static Public Member Functions

static PortsList providedPorts ()
 
- Static Public Member Functions inherited from BT::TreeNode
static bool isBlackboardPointer (StringView str, StringView *stripped_pointer=nullptr)
 Check a string and return true if it matches the pattern: {...}.
 
static StringView stripBlackboardPointer (StringView str)
 
static Expected< StringView > getRemappedKey (StringView port_name, StringView remapped_port)
 
template<class DerivedT , typename... ExtraArgs>
static std::unique_ptr< TreeNodeInstantiate (const std::string &name, const NodeConfig &config, ExtraArgs... args)
 

Additional Inherited Members

- Public Types inherited from BT::TreeNode
typedef std::shared_ptr< TreeNodePtr
 
using StatusChangeSignal = Signal< TimePoint, const TreeNode &, NodeStatus, NodeStatus >
 
using StatusChangeSubscriber = StatusChangeSignal::Subscriber
 
using StatusChangeCallback = StatusChangeSignal::CallableFunction
 
using PreTickCallback = std::function< NodeStatus(TreeNode &)>
 
using PostTickCallback = std::function< NodeStatus(TreeNode &, NodeStatus)>
 
using TickMonitorCallback = std::function< void(TreeNode &, NodeStatus, std::chrono::microseconds)>
 
- Protected Types inherited from BT::TreeNode
using PreScripts = std::array< ScriptFunction, size_t(PreCond::COUNT_)>
 
using PostScripts = std::array< ScriptFunction, size_t(PostCond::COUNT_)>
 
- Protected Member Functions inherited from BT::StatefulActionNode
NodeStatus tick () override final
 Method to be implemented by the user.
 
void halt () override final
 
- Protected Member Functions inherited from BT::TreeNode
NodeConfigconfig ()
 
virtual BT::NodeStatus tick ()=0
 Method to be implemented by the user.
 
void resetStatus ()
 Set the status to IDLE.
 
void setRegistrationID (StringView ID)
 
void setWakeUpInstance (std::shared_ptr< WakeUpSignal > instance)
 
void modifyPortsRemapping (const PortsRemapping &new_remapping)
 
void setStatus (NodeStatus new_status)
 setStatus changes the status of the node. it will throw if you try to change the status to IDLE, because your parent node should do that, not the user!
 
PreScripts & preConditionsScripts ()
 
PostScripts & postConditionsScripts ()
 
template<typename T >
parseString (const std::string &str) const
 

Detailed Description

Sleep for a certain amount of time. Consider also using the decorator <Delay>

<Sleep msec="5000">

Member Function Documentation

◆ onHalted()

void BT::SleepNode::onHalted ( )
overridevirtual

when the method halt() is called and the action is RUNNING, this method is invoked. This is a convenient place todo a cleanup, if needed.

Implements BT::StatefulActionNode.

◆ onRunning()

NodeStatus BT::SleepNode::onRunning ( )
overridevirtual

method invoked when the action is already in the RUNNING state.

Implements BT::StatefulActionNode.

◆ onStart()

NodeStatus BT::SleepNode::onStart ( )
overridevirtual

Method called once, when transitioning from the state IDLE. If it returns RUNNING, this becomes an asynchronous node.

Implements BT::StatefulActionNode.


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