|
QGroundControl
Ground Control Station for MAVLink Drones
|
#include <FallbackChainState.h>
Inheritance diagram for FallbackChainState:
Collaboration diagram for FallbackChainState:Classes | |
| struct | StrategyEntry |
Public Types | |
| using | Strategy = std::function< bool()> |
| Strategy action - returns true on success. | |
Public Types inherited from QGCAbstractState | |
| using | EntryCallback = std::function< void()> |
| using | ExitCallback = std::function< void()> |
| using | EventHandler = std::function< bool(QEvent *)> |
Signals | |
| void | tryingStrategy (const QString &name, int index, int total) |
| Emitted when trying a strategy. | |
| void | strategyFailed (const QString &name) |
| Emitted when a strategy fails and moving to next. | |
| void | strategySucceeded (const QString &name) |
| Emitted when a strategy succeeds. | |
Signals inherited from QGCAbstractState | |
| void | advance () |
| void | error () |
Public Member Functions | |
| FallbackChainState (const QString &stateName, QState *parent) | |
| void | addStrategy (const QString &name, Strategy action) |
| QString | successfulStrategy () const |
| Get the name of the strategy that succeeded. | |
| int | currentStrategyIndex () const |
| Get the current strategy index being tried. | |
| int | strategyCount () const |
| Get the total number of strategies. | |
Public Member Functions inherited from QGCState | |
| QGCState (const QString &stateName, QState *parentState) | |
| template<typename PointerToMemberFunction > | |
| QSignalTransition * | addThisTransition (PointerToMemberFunction signal, QAbstractState *target) |
| Simpler version of QState::addTransition which assumes the sender is this. | |
| void | setLocalErrorState (QAbstractState *errorState) |
| QAbstractState * | localErrorState () const |
| Get the per-state error state (nullptr if using global) | |
| void | setProperty (QObject *object, const char *name, const QVariant &value) |
| void | setEnabled (QObject *object, bool enabled) |
| Convenience overload for setting enabled state on widgets/controls. | |
| void | setVisible (QObject *object, bool visible) |
| Convenience overload for setting visible state on widgets/controls. | |
Public Member Functions inherited from QGCAbstractState | |
| QGCAbstractState (const QString &stateName, QState *parent) | |
| QGCStateMachine * | machine () const |
| Vehicle * | vehicle () const |
| QString | stateName () const |
| class StateContext * | context () const |
| void | setOnEntry (EntryCallback callback) |
| Set a callback to be invoked when the state is entered. | |
| void | setOnExit (ExitCallback callback) |
| Set a callback to be invoked when the state is exited. | |
| void | setCallbacks (EntryCallback onEntry, ExitCallback onExit=nullptr) |
| Set both entry and exit callbacks. | |
| void | setEventHandler (EventHandler handler) |
| Set a custom event handler for this state. | |
Protected Member Functions | |
| void | onEnter () override |
| Override to perform actions on state entry. | |
Protected Member Functions inherited from QGCAbstractState | |
| virtual void | onLeave () |
| Override to perform actions on state exit. | |
| void | onEntry (QEvent *event) override |
| void | onExit (QEvent *event) override |
| bool | event (QEvent *event) override |
A state that tries multiple strategies in order until one succeeds.
Strategies are executed in the order they were added. If a strategy succeeds, the state emits advance(). If all strategies fail, error() is emitted.
Example usage:
Definition at line 22 of file FallbackChainState.h.
| using FallbackChainState::Strategy = std::function<bool()> |
Strategy action - returns true on success.
Definition at line 29 of file FallbackChainState.h.
| FallbackChainState::FallbackChainState | ( | const QString & | stateName, |
| QState * | parent | ||
| ) |
Definition at line 4 of file FallbackChainState.cc.
| void FallbackChainState::addStrategy | ( | const QString & | name, |
| Strategy | action | ||
| ) |
Add a strategy to the chain
| name | Strategy name for logging |
| action | Strategy action (returns true on success) |
Definition at line 9 of file FallbackChainState.cc.
|
inline |
Get the current strategy index being tried.
Definition at line 47 of file FallbackChainState.h.
|
overrideprotectedvirtual |
Override to perform actions on state entry.
Reimplemented from QGCAbstractState.
Definition at line 14 of file FallbackChainState.cc.
|
inline |
Get the total number of strategies.
Definition at line 50 of file FallbackChainState.h.
|
signal |
Emitted when a strategy fails and moving to next.
|
signal |
Emitted when a strategy succeeds.
|
inline |
Get the name of the strategy that succeeded.
Definition at line 44 of file FallbackChainState.h.
|
signal |
Emitted when trying a strategy.