62 lines
1.5 KiB
C++
62 lines
1.5 KiB
C++
|
|
|
|
#pragma once
|
|
#include <QObject>
|
|
#include <QHostAddress>
|
|
#include <QByteArray>
|
|
|
|
#include <NGLLogger/INGLLogger.h>
|
|
#include <CoPrtCnv/CoPrtCnvRadioTelegram.hpp>
|
|
|
|
class QTcpSocket;
|
|
class QTimer;
|
|
class TetraIF : public QObject
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
TetraIF(const QHostAddress &addr, unsigned short port, unsigned short issi);
|
|
|
|
void start();
|
|
void listenMode(const QStringList &args);
|
|
void randomMode(const QStringList &args);
|
|
void fileMode(const QStringList &args);
|
|
|
|
static void usage();
|
|
protected Q_SLOTS:
|
|
void onConnected();
|
|
void onDisconnected();
|
|
void onReadyRead();
|
|
void onError(QAbstractSocket::SocketError);
|
|
void onSendData();
|
|
protected:
|
|
void doInitialLogin();
|
|
void handleReceivedTelegram(const QByteArray &data);
|
|
void handleRegisterRsp(const uint8_t a_registrationStatus);
|
|
void dumpData(const QByteArray &data);
|
|
|
|
void parseISSIs(const QStringList &issiList);
|
|
void handleDataIndReq(const QByteArray &data);
|
|
void handleLoginTelegram(N_CoPrtCnv::CoPrtCnvRadioTelegram *a_loginTelegram);
|
|
bool sendLoginResponse(const uint32_t a_ISSI);
|
|
QString getIssisAsString() const;
|
|
|
|
void setupTimer();
|
|
|
|
protected:
|
|
QHostAddress m_addr;
|
|
unsigned short m_port;
|
|
unsigned short m_issi;
|
|
QTcpSocket *m_socket;
|
|
int m_count;
|
|
int m_telegramsPerSecond;
|
|
int m_telegramsInCurSecond;
|
|
int m_secondFragment;
|
|
QByteArray m_data;
|
|
QList<unsigned short> m_issiList;
|
|
QTimer *m_timer;
|
|
uint8_t m_SendCounter;
|
|
|
|
QString m_outputDir;
|
|
NGL::INGLLogger &m_logger;
|
|
};
|