Newer
Older
#ifndef OPALLINK_H
#define OPALLINK_H
/**
Connection to OpalRT. This class receives MAVLink packets as if it is a true link, but it
interprets the packets internally, and calls the appropriate api functions.
\author Bryan Godbolt <godbolt@ualberta.ca>
*/
#include <QMutex>
#include "LinkInterface.h"
#include "LinkManager.h"
#include "MG.h"
class OpalLink : public LinkInterface
{
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
Q_OBJECT
/* Connection management */
int getId();
QString getName();
bool isConnected();
/* Connection characteristics */
qint64 getNominalDataRate();
bool isFullDuplex();
int getLinkQuality();
qint64 getTotalUpstream();
qint64 getCurrentUpstream();
qint64 getMaxUpstream();
qint64 getBitsSent();
qint64 getBitsReceived();
virtual bool connect() = 0;
virtual bool disconnect() = 0;
virtual qint64 bytesAvailable() = 0;
public slots:
virtual void writeBytes(const char *bytes, qint64 length) = 0;
virtual void readBytes(char *bytes, qint64 maxLength) = 0;
signals:
void bytesReady(LinkInterface* link);
void bytesReceived(LinkInterface* link, QByteArray data);
void connected();
void disconnected();
void connected(bool connected);
void nameChanged(QString name);
protected:
QString name;
int id;
bool connectState;
quint64 bitsSentTotal;
quint64 bitsSentCurrent;
quint64 bitsSentMax;
quint64 bitsReceivedTotal;
quint64 bitsReceivedCurrent;
quint64 bitsReceivedMax;
quint64 connectionStartTime;
QMutex statisticsMutex;
void setName(QString name);