test_sdk/hw/ADCCluster/stpclient.h

56 lines
1.2 KiB
C
Raw Permalink Normal View History

#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