Files
qt-migration-legatus/qt6-after/qt6-migrated-legatus/Lts/Proxies/DifferentialGPS/tetra_if.h
T

51 lines
1.0 KiB
C++
Executable File

#pragma once
#include <QtNetwork/QHostAddress>
#include "tcpsocket.h"
class QTcpSocket;
class QTimer;
namespace DifferentialGPS
{
class TetraIF : public TcpSocket
{
Q_OBJECT
public:
using TcpSocket::TcpSocket;
void run() override;
public Q_SLOTS:
void onNewDataAvailable();
void onFeedbackTimeout();
bool checkTetraConnecting();
protected:
virtual void startThreadInternal(int threadIndex);
virtual bool onNewDataAvailableInternal() = 0;
private:
void doConnect();
void doInitialLogin();
void handleReceivedTelegram(uint8_t *a_data, quint16 a_dataSize);
void handleRegisterRsp(const uint8_t a_registrationStatus);
void onAddGroupMonitoring();
private Q_SLOTS:
void onConnected() override;
void onDisconnected() override;
void onReadyRead() override;
void onError(QAbstractSocket::SocketError) override;
protected:
int m_srcIssi = 0;
int m_broadcastIssi = 0;
bool m_bTetraOk = true;
quint8 m_counter = 1;
QTimer *m_feedbackTimeout = nullptr;
int m_feedbackTimeout_ms = 0;
};
}