56 lines
1.2 KiB
C
56 lines
1.2 KiB
C
|
#ifndef STPCLIENT_H
|
||
|
#define STPCLIENT_H
|
||
|
|
||
|
#include <QUdpSocket>
|
||
|
#include <QNetworkDatagram>
|
||
|
#include <QObject>
|
||
|
#include <QTimer>
|
||
|
#include <QTime>
|
||
|
|
||
|
#include "stpdefine.h"
|
||
|
|
||
|
class stpClient : public QObject
|
||
|
{
|
||
|
Q_OBJECT
|
||
|
|
||
|
|
||
|
public:
|
||
|
explicit stpClient(QHostAddress address, int port = DEFAULT_DEST_PORT, QObject *parent = nullptr);
|
||
|
~stpClient();
|
||
|
|
||
|
void connectToHost();
|
||
|
void disconnectFromHost();
|
||
|
|
||
|
void setAddress(QHostAddress address) { _address = address; }
|
||
|
|
||
|
stpClient_ns::stpState getState() { return _state; }
|
||
|
|
||
|
void sendData(QByteArray * buff);
|
||
|
|
||
|
static QByteArray packIdRequest();
|
||
|
static QByteArray packIdSnRequest(uint16_t sn);
|
||
|
|
||
|
signals:
|
||
|
void STP_newDataPacketReceived(QByteArray data);
|
||
|
void STP_connected();
|
||
|
void STP_disconnected();
|
||
|
|
||
|
private:
|
||
|
QByteArray _pack(stpProtocol_ns::packetType packetType, QByteArray * data = nullptr);
|
||
|
void _processData(QNetworkDatagram data);
|
||
|
//void _resetConnection();
|
||
|
|
||
|
stpClient_ns::stpState _state;
|
||
|
stpClient_ns::pingState _pingState;
|
||
|
QUdpSocket * _socket;
|
||
|
QHostAddress _address;
|
||
|
int _port;
|
||
|
QTimer * _pingTimer;
|
||
|
int _pingTimeoutCount;
|
||
|
QTimer * _reconnectionTimer;
|
||
|
//bool _isReadingDatagramms;
|
||
|
|
||
|
};
|
||
|
|
||
|
#endif // STPCLIENT_H
|