The ActionNode is the goto option for, but it is actually much easier to use correctly. More...
#include <action_node.h>
Public Member Functions | |
void | halt () overridefinal |
virtual void | onHalted ()=0 |
virtual NodeStatus | onRunning ()=0 |
method invoked by a RUNNING action. More... | |
virtual NodeStatus | onStart ()=0 |
StatefulActionNode (const std::string &name, const NodeConfiguration &config) | |
NodeStatus | tick () overridefinal |
Method to be implemented by the user. More... | |
Public Member Functions inherited from BT::ActionNodeBase | |
ActionNodeBase (const std::string &name, const NodeConfiguration &config) | |
virtual NodeType | type () const overridefinal |
~ActionNodeBase () override=default | |
Public Member Functions inherited from BT::LeafNode | |
LeafNode (const std::string &name, const NodeConfiguration &config) | |
virtual | ~LeafNode () override=default |
Public Member Functions inherited from BT::TreeNode | |
const NodeConfiguration & | config () const |
virtual BT::NodeStatus | executeTick () |
The method that should be used to invoke tick() and setStatus();. More... | |
template<typename T > | |
Result | getInput (const std::string &key, T &destination) const |
template<typename T > | |
Optional< T > | getInput (const std::string &key) 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) |
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 |
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 |
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) |
Protected Member Functions inherited from BT::TreeNode | |
void | modifyPortsRemapping (const PortsRemapping &new_remapping) |
void | setRegistrationID (StringView ID) |
void | setStatus (NodeStatus new_status) |
The ActionNode is the goto option for, but it is actually much easier to use correctly.
It is particularly useful when your code contains a request-reply pattern, i.e. when the actions sends an asychronous request, then checks periodically if the reply has been received and, eventually, analyze the reply to determine if the result is SUCCESS or FAILURE.
-) an action that was in IDLE state will call onStart()
-) A RUNNING action will call onRunning()
-) if halted, method onHalted() is invoked
Definition at line 155 of file action_node.h.
|
inline |
Definition at line 158 of file action_node.h.
|
finaloverridevirtual |
The method used to interrupt the execution of a RUNNING node. Only Async nodes that may return RUNNING should implement it.
Implements BT::TreeNode.
Definition at line 159 of file action_node.cpp.
|
pure virtual |
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.
|
pure virtual |
method invoked by a RUNNING action.
|
pure virtual |
method to be called at the beginning. If it returns RUNNING, this becomes an asychronous node.
|
finaloverridevirtual |
Method to be implemented by the user.
Implements BT::TreeNode.
Definition at line 132 of file action_node.cpp.