QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
ErrorHandlers.h
Go to the documentation of this file.
1#pragma once
2
3#include "FunctionState.h"
4
5#include <QtCore/QTimer>
6
7#include <functional>
8#include <cmath>
9
10class QGCStateMachine;
11class QAbstractState;
12
27namespace ErrorHandlers
28{
29
36 const QString& stateName,
37 QAbstractState* nextState,
38 const QString& message = QString());
39
45 const QString& stateName,
46 const QString& message = QString());
47
53std::function<int(int)> exponentialBackoff(int initialDelayMsecs,
54 double multiplier = 2.0,
55 int maxDelayMsecs = 60000);
56
62std::function<int(int)> linearBackoff(int initialDelayMsecs,
63 int incrementMsecs,
64 int maxDelayMsecs = 60000);
65
69std::function<int(int)> constantDelay(int delayMsecs);
70
77std::function<int(int)> jitteredExponentialBackoff(int initialDelayMsecs,
78 double multiplier = 2.0,
79 int maxDelayMsecs = 60000,
80 double jitterFraction = 0.25);
81
82} // namespace ErrorHandlers
QGroundControl specific state machine with enhanced error handling.
std::function< int(int)> exponentialBackoff(int initialDelayMsecs, double multiplier, int maxDelayMsecs)
std::function< int(int)> jitteredExponentialBackoff(int initialDelayMsecs, double multiplier, int maxDelayMsecs, double jitterFraction)
std::function< int(int)> constantDelay(int delayMsecs)
FunctionState * logAndContinue(QGCStateMachine *machine, const QString &stateName, QAbstractState *nextState, const QString &message)
FunctionState * logAndStop(QGCStateMachine *machine, const QString &stateName, const QString &message)
std::function< int(int)> linearBackoff(int initialDelayMsecs, int incrementMsecs, int maxDelayMsecs)