Adds immediate migration results in progress

This commit is contained in:
torsten committed 2026-08-19 11:18:24 +02:00
1 parent 8453e104c5
commit 3bb6e89496
2102 files changed
+17482 -15071

No files matched your search

@@ -19,8 +19,7 @@
#include <PrtCnv/PrtCnvRadioThread.hpp>
#include <PrtCnv/PrtCnvThreadStarter.hpp>
TetraIF::TetraIF(const QHostAddress &addr, unsigned short port, unsigned short issi)
: QObject()
TetraIF::TetraIF(const QHostAddress &addr, unsigned short port, unsigned short issi) : QObject()
, m_addr(addr)
, m_port(port)
, m_issi(issi)
@@ -31,9 +30,8 @@ TetraIF::TetraIF(const QHostAddress &addr, unsigned short port, unsigned short i
, m_secondFragment(0)
, m_timer(nullptr)
, m_SendCounter(0)
)
{
),
m_logger(NGL::NGLLoggerBootstrap::getLogger()) {
connect(m_socket, &QTcpSocket::connected, this, &TetraIF::onConnected);
connect(m_socket, &QTcpSocket::disconnected, this, &TetraIF::onDisconnected);
connect(m_socket, &QTcpSocket::readyRead, this, &TetraIF::onReadyRead);
@@ -58,7 +56,7 @@ void TetraIF::listenMode(const QStringList &args)
m_outputDir = args[0];
if (!QDir().mkpath(m_outputDir))
{
ERROR_LOG() << "Error creating directory "
ERROR_LOG(m_logger) << "Error creating directory "
<< m_outputDir;
usage();
}
@@ -70,26 +68,26 @@ void TetraIF::randomMode(const QStringList &args)
{
if (args.count() < 3)
{
ERROR_LOG() << "Invalid argument count";
ERROR_LOG(m_logger) << "Invalid argument count";
usage();
}
bool bOk;
int dataSize = args[0].toInt(&bOk);
if (!bOk || dataSize > 256 || dataSize < 0)
{
ERROR_LOG() << "Invalid data size " << args[0];
ERROR_LOG(m_logger) << "Invalid data size " << args[0];
usage();
}
m_count = args[1].toInt(&bOk);
if (!bOk || m_count == 0 || m_count < -1)
{
ERROR_LOG() << "Invalid count " << args[1];
ERROR_LOG(m_logger) << "Invalid count " << args[1];
usage();
}
m_telegramsPerSecond = args[2].toInt(&bOk);
if (!bOk || m_telegramsPerSecond < 1)
{
ERROR_LOG() << "Invalid telegrams/second " << args[2];
ERROR_LOG(m_logger) << "Invalid telegrams/second " << args[2];
usage();
}
m_data.reserve(dataSize);
@@ -98,7 +96,7 @@ void TetraIF::randomMode(const QStringList &args)
parseISSIs(args.mid(3));
INFO_LOG() << "Sending " << m_data.size()
INFO_LOG(m_logger) << "Sending " << m_data.size()
<< " bytes, " << m_telegramsPerSecond
<< " telegrams/second for " << m_count
<< " time(s) to issi(s) " << getIssisAsString();
@@ -110,31 +108,31 @@ void TetraIF::fileMode(const QStringList &args)
{
if (args.count() < 3)
{
ERROR_LOG() << "Invalid argument count";
ERROR_LOG(m_logger) << "Invalid argument count";
usage();
}
QFile f(args[0]);
if (!f.exists() || f.size() > 256)
{
ERROR_LOG() << "Invalid file: " << args[0];
ERROR_LOG(m_logger) << "Invalid file: " << args[0];
usage();
}
bool bOk;
m_count = args[1].toInt(&bOk);
if (!bOk || m_count == 0 || m_count < -1)
{
ERROR_LOG() << "Invalid count " << args[1];
ERROR_LOG(m_logger) << "Invalid count " << args[1];
usage();
}
m_telegramsPerSecond = args[2].toInt(&bOk);
if (!bOk || m_telegramsPerSecond < 1)
{
ERROR_LOG() << "Invalid telegrams/second " << args[2];
ERROR_LOG(m_logger) << "Invalid telegrams/second " << args[2];
usage();
}
if (!f.open(QIODevice::ReadOnly))
{
ERROR_LOG() << "Error opening file "
ERROR_LOG(m_logger) << "Error opening file "
<< f.fileName()
<< " for reading - error: "
<< f.errorString();
@@ -143,7 +141,7 @@ void TetraIF::fileMode(const QStringList &args)
parseISSIs(args.mid(3));
INFO_LOG() << "Sending " << m_data.size()
INFO_LOG(m_logger) << "Sending " << m_data.size()
<< " bytes, " << m_telegramsPerSecond
<< " telegrams/second for " << m_count
<< " time(s) to issi(s) " << getIssisAsString();
@@ -164,13 +162,13 @@ void TetraIF::usage()
void TetraIF::onConnected()
{
INFO_LOG() << "Connected to " << m_socket->peerName() << ":" << m_socket->peerPort();
INFO_LOG(m_logger) << "Connected to " << m_socket->peerName() << ":" << m_socket->peerPort();
doInitialLogin();
}
void TetraIF::onDisconnected()
{
INFO_LOG() << "Disconnected - exiting application";
INFO_LOG(m_logger) << "Disconnected - exiting application";
QCoreApplication::quit();
}
@@ -178,7 +176,7 @@ void TetraIF::onReadyRead()
{
do
{
DEBUG_LOG() << "Got " << m_socket->bytesAvailable() << " bytes from socket";
DEBUG_LOG(m_logger) << "Got " << m_socket->bytesAvailable() << " bytes from socket";
N_CoPrtCnv::CoPrtCnvRadioTelegram::PrtCnvRadioGwHeader header;
if (m_socket->bytesAvailable() < int(sizeof(header)))
@@ -187,14 +185,14 @@ void TetraIF::onReadyRead()
m_socket->peek(reinterpret_cast<char *>(&header), sizeof(header));
if (N_CoPrtCnv::CoPrtCnvRadioTelegram::MAGIC_NUMBER != header.m_MagicNumber)
{
ERROR_LOG() << "Incorrect magic number (0x"
ERROR_LOG(m_logger) << "Incorrect magic number (0x"
<< QString::number(header.m_MagicNumber, 16)
<< " - aborting";
exit(2);
}
if (!N_CoPrtCnv::CoPrtCnvRadioTelegram::isTelegramLengthOk(header.m_Length))
{
ERROR_LOG() << "Radio-Telegram length to big: "
ERROR_LOG(m_logger) << "Radio-Telegram length to big: "
<< header.m_Length
<< ", but I proceed with this telegram.";
}
@@ -202,7 +200,7 @@ void TetraIF::onReadyRead()
const quint16 dataSize = header.m_Length + sizeof(header);
if (m_socket->bytesAvailable() < dataSize)
{
INFO_LOG() << "not enough bytes available - waiting for more data";
INFO_LOG(m_logger) << "not enough bytes available - waiting for more data";
return;
}
QByteArray buf(dataSize, Qt::Uninitialized);
@@ -215,7 +213,7 @@ void TetraIF::onReadyRead()
void TetraIF::onError(QAbstractSocket::SocketError err)
{
ERROR_LOG() << "Socket error "
ERROR_LOG(m_logger) << "Socket error "
<< err
<< " ("
<< m_socket->errorString()
@@ -259,7 +257,7 @@ void TetraIF::handleReceivedTelegram(const QByteArray &data)
default:
return;
}
INFO_LOG() << "PDU Type: " << type;
INFO_LOG(m_logger) << "PDU Type: " << type;
dumpData(data);
}
@@ -269,7 +267,7 @@ void TetraIF::handleRegisterRsp(const uint8_t a_registrationStatus)
switch (a_registrationStatus)
{
case N_CoPrtCnv::CoPrtCnvRadioTelegram::e_IssiSuccessfulRegistered:
INFO_LOG() << "Valid register response from Tetra ";
INFO_LOG(m_logger) << "Valid register response from Tetra ";
if (m_timer)
m_timer->start();
return;
@@ -293,7 +291,7 @@ void TetraIF::handleRegisterRsp(const uint8_t a_registrationStatus)
break;
}
ERROR_LOG() << logText;
ERROR_LOG(m_logger) << logText;
exit(2);
}
@@ -308,7 +306,7 @@ void TetraIF::dumpData(const QByteArray &data)
QFile f(m_outputDir + timeStr + QLatin1String(".dat"));
if (!f.open(QIODevice::WriteOnly))
{
ERROR_LOG() << "Error opening file "
ERROR_LOG(m_logger) << "Error opening file "
<< f.fileName()
<< " for writing - error: "
<< f.errorString();
@@ -319,7 +317,7 @@ void TetraIF::dumpData(const QByteArray &data)
if (data.size() > 27)
{
N_CoPrtCnv::CoPrtCnvRadioTelegram tele(data);
INFO_LOG() << "Got telegram from "
INFO_LOG(m_logger) << "Got telegram from "
<< tele.getSrcISSI()
<< " with size "
<< data.size()
@@ -329,7 +327,7 @@ void TetraIF::dumpData(const QByteArray &data)
QFile f(m_outputDir + QStringLiteral("payload-%1-%2.dat").arg(QString::number(tele.getSrcISSI()), timeStr));
if (!f.open(QIODevice::WriteOnly))
{
ERROR_LOG() << "Error opening file "
ERROR_LOG(m_logger) << "Error opening file "
<< f.fileName()
<< " for writing - error: "
<< f.errorString();
@@ -367,14 +365,14 @@ void TetraIF::onSendData()
tele.setSrcISSI(m_issi);
tele.setDestISSI(dest_issi);
tele.setZaehler(s_counter++);
DEBUG_LOG() << "Sending " << tele.getSize() << " bytes to Tetra (ISSI: " << dest_issi << ")";
DEBUG_LOG(m_logger) << "Sending " << tele.getSize() << " bytes to Tetra (ISSI: " << dest_issi << ")";
m_socket->write(tele.data());
}
if (m_count > 0)
{
if (--m_count <= 0)
{
INFO_LOG() << "Finsihed";
INFO_LOG(m_logger) << "Finsihed";
m_socket->disconnectFromHost();
}
}
@@ -397,7 +395,7 @@ void TetraIF::parseISSIs(const QStringList &issiList)
unsigned short issi = issiStr.toUShort(&bOk);
if (!bOk)
{
ERROR_LOG() << "Not a valid issi number: " << issiStr;
ERROR_LOG(m_logger) << "Not a valid issi number: " << issiStr;
usage();
}
m_issiList += issi;
@@ -428,7 +426,7 @@ void TetraIF::handleDataIndReq(const QByteArray &data)
handleLoginTelegram(radioTelegram);
break;
default:
ERROR_LOG() << "Unknown payload-status!: " << radioTelegram->getFragmentStatus();
ERROR_LOG(m_logger) << "Unknown payload-status!: " << radioTelegram->getFragmentStatus();
break;
}
@@ -445,10 +443,10 @@ void TetraIF::handleLoginTelegram(N_CoPrtCnv::CoPrtCnvRadioTelegram *a_loginTele
{
bool sent = sendLoginResponse(issi);
if (sent)
INFO_LOG() << "Login: New TPU with Id=" << identity << " and ISSI=" << issi << " logged in";
INFO_LOG(m_logger) << "Login: New TPU with Id=" << identity << " and ISSI=" << issi << " logged in";
else
INFO_LOG() << "Login: New TPU with Id=" << identity << " and ISSI=" << issi << " is NOT logged in";
INFO_LOG(m_logger) << "Login: New TPU with Id=" << identity << " and ISSI=" << issi << " is NOT logged in";
}
}
@@ -464,7 +462,7 @@ bool TetraIF::sendLoginResponse(const uint32_t a_ISSI)
gef_telegramm_id_et telId = a_telegram->isNormalTelegram() ? a_telegram->getTelID() : GEF_BESTAETIGUNG;
INFO_LOG() << "Send telegram to radio: telId=" << telId << " wcounter=" << a_telegram->zaehler() << " size= 28";
INFO_LOG(m_logger) << "Send telegram to radio: telId=" << telId << " wcounter=" << a_telegram->zaehler() << " size= 28";