#ifndef STPCLIENT_H #define STPCLIENT_H #include #include #include #include #include #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