Adds initial intermediate qt6 porting state
This commit is contained in:
11247 files changed
+1891537
No files matched your search
Executable
+94
@@ -0,0 +1,94 @@
|
||||
|
||||
|
||||
|
||||
#include "wls_sfm_message_converter.h"
|
||||
|
||||
#include <QByteArray>
|
||||
#include <QSharedPointer>
|
||||
|
||||
#include <LtsUtilsCore/sfm_bytemessage_converter.h>
|
||||
|
||||
#include "logger.h"
|
||||
|
||||
namespace WirelessLocationSystem
|
||||
{
|
||||
|
||||
namespace SfmMessageConverter
|
||||
{
|
||||
|
||||
|
||||
|
||||
|
||||
static SfmMessage_rx *getSpecificSfmMessage(SfmMessage::MsgId p_id)
|
||||
{
|
||||
switch (p_id)
|
||||
{
|
||||
case SfmMessage::MsgId::SfmRestartNotification:
|
||||
return new SfmMsgSfmRestart_rx;
|
||||
case SfmMessage::MsgId::EquipmentId:
|
||||
return new SfmMsgEquipmentId;
|
||||
case SfmMessage::MsgId::TacticalState:
|
||||
return new SfmMsgTacticalState_rx;
|
||||
case SfmMessage::MsgId::LicenseState:
|
||||
return new SfmMsgLicenseState_rx;
|
||||
case SfmMessage::MsgId::TetraMessage:
|
||||
return new SfmMsgTetra_rx;
|
||||
case SfmMessage::MsgId::Acknowledge:
|
||||
return new Acknowledge_rx;
|
||||
case SfmMessage::MsgId::RequestGpsControl:
|
||||
return new SfmMsgRequestGpsControl_rx;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
QByteArray generateTxMessage(const SfmMessage_tx &message)
|
||||
{
|
||||
|
||||
LtsUtils::SfmMessage msg;
|
||||
|
||||
msg.setId(static_cast<int>(message.getId()) & 0x7FFF);
|
||||
msg.setRtr(static_cast<int>(message.getId()) & 0x8000);
|
||||
msg.setPayload(message.getPayload());
|
||||
|
||||
return LtsUtils::byteStreamFromSfmMessage(msg).toHex();
|
||||
}
|
||||
|
||||
QSharedPointer<SfmMessage_rx> generateRxMessage(const QByteArray &data)
|
||||
{
|
||||
LtsUtils::SfmMessage message;
|
||||
SfmMessage_rx *msg = nullptr;
|
||||
|
||||
try
|
||||
{
|
||||
message = LtsUtils::byteStreamToSfmMessage(QByteArray::fromHex(data));
|
||||
}
|
||||
catch (const LtsUtils::ConversionError &ex)
|
||||
{
|
||||
ERROR_LOG(getLogger("SfmMessageConverter")) << "Error parsing bytestream: " << data << " Exception: " << ex.what();
|
||||
return QSharedPointer<SfmMessage_rx>(msg);
|
||||
}
|
||||
|
||||
|
||||
SfmMessage::MsgId msgId = static_cast<SfmMessage::MsgId>(message.id() | (message.rtr() << 15));
|
||||
msg = getSpecificSfmMessage(msgId);
|
||||
if (!msg)
|
||||
{
|
||||
ERROR_LOG(getLogger("SfmMessageConverter")) << "Error creating SfmMessage for message with id: " << message.id()
|
||||
<< ", rtr: " << message.rtr()
|
||||
<< ", combined: 0x" << QString::number(int(msgId));
|
||||
}
|
||||
else if (!msg->setPayload(message.payload()))
|
||||
{
|
||||
delete msg;
|
||||
msg = nullptr;
|
||||
}
|
||||
|
||||
return QSharedPointer<SfmMessage_rx>(msg);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user