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
11class WaitStateBase : public QGCState
12{
13 Q_OBJECT
14 Q_DISABLE_COPY(WaitStateBase)
15
16public:
20 WaitStateBase(const QString& stateName, QState* parent, int timeoutMsecs = 0);
21
24 void restartWait();
25
26signals:
29 void completed();
30
33 void timeout();
34
37 void timedOut();
38
39protected:
41 virtual void onWaitEntered();
42
44 virtual void onWaitExited();
45
47 virtual void onWaitTimeout();
48
51 void waitComplete();
52
55 void waitFailed();
56
58 virtual void connectWaitSignal() = 0;
59
61 virtual void disconnectWaitSignal() = 0;
62
63 int timeoutMsecs() const { return _timeoutMsecs; }
64
65private slots:
66 void _onEntered();
67 void _onExited();
68 void _onTimeout();
69
70private:
71 int _timeoutMsecs = 0;
72 QTimer _timeoutTimer;
73 bool _completed = false;
74};
QString stateName() const
Full-featured base class for QGroundControl state machine states.
Definition QGCState.h:23
Base class for states that wait for something with optional timeout.
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.