QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
WaitStateBase.h
Go to the documentation of this file.
1#pragma once
2
3#include "QGCState.h"
4
5#include <QtCore/QTimer>
6
9class WaitStateBase : public QGCState
10{
11 Q_OBJECT
12 Q_DISABLE_COPY(WaitStateBase)
13
14public:
18 WaitStateBase(const QString& stateName, QState* parent, int timeoutMsecs = 0);
19
22 void restartWait();
23
24signals:
27 void completed();
28
31 void timeout();
32
35 void timedOut();
36
37protected:
39 virtual void onWaitEntered();
40
42 virtual void onWaitExited();
43
45 virtual void onWaitTimeout();
46
49 void waitComplete();
50
53 void waitFailed();
54
56 virtual void connectWaitSignal() = 0;
57
59 virtual void disconnectWaitSignal() = 0;
60
61 int timeoutMsecs() const { return _timeoutMsecs; }
62
63private slots:
64 void _onEntered();
65 void _onExited();
66 void _onTimeout();
67
68private:
69 int _timeoutMsecs = 0;
70 QTimer _timeoutTimer;
71 bool _completed = false;
72};
QString stateName() const
void completed()
int timeoutMsecs() const
virtual void onWaitTimeout()
Called when the timeout expires - default emits timeout(), subclasses can override.
virtual void onWaitEntered()
Called when the state is entered - subclasses should call base implementation.
virtual void connectWaitSignal()=0
Subclasses override to set up their signal connections.
virtual void disconnectWaitSignal()=0
Subclasses override to tear down their signal connections.
virtual void onWaitExited()
Called when the state is exited - subclasses should call base implementation.