- Migrated all 104 CMakeLists.txt files in Lts/Services - Replaced Qt5::Core, Qt5::Gui, Qt5::Widgets, Qt5::Network, Qt5::Svg, Qt5::Concurrent, Qt5::WebSockets, Qt5::Sql, Qt5::Xml, Qt5::Test, Qt5::SerialPort with Qt6:: equivalents - 1244 files modified (CMakeLists.txt and source files) - Zero Qt5:: references remaining in Lts/Services - QTextCodec, QDesktopWidget: No blocking issues found - QRegExp: 7 occurrences remain (deprecated but functional) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
90 lines
2.7 KiB
C++
Executable File
90 lines
2.7 KiB
C++
Executable File
/**
|
|
* @RDE_HEADER@
|
|
* MeteoDataManagement - Static Meteo Data Edit Dialog
|
|
* $Id$
|
|
* $HeadURL$
|
|
* $Author$
|
|
* Created by hjl, SLSE, 2016-10-17
|
|
*/
|
|
|
|
#include "esm_convert_from_tab.h"
|
|
#include <LtsUtilsCore/qbytearray_byteaccess.h>
|
|
|
|
|
|
namespace EffectShowManagement
|
|
{
|
|
namespace ConvertFromTab
|
|
{
|
|
//=============================================================================
|
|
RxTelegram_e isTelegram(const TrainingAreaBase::FireSmokeMarkerData &data)
|
|
{
|
|
Q_ASSERT(data.payload().size() > 0);
|
|
switch (data.payload().at(0))
|
|
{
|
|
case 120: return RxTelegram_e::OrderConfirmation;
|
|
case 121: return RxTelegram_e::VehicleStatus;
|
|
}
|
|
return (RxTelegram_e::unknown);
|
|
}
|
|
//=============================================================================
|
|
OrderConfirmation_t getOrderConfirmation(const TrainingAreaBase::FireSmokeMarkerData &data)
|
|
{
|
|
Q_ASSERT(data.payload().size() >= 5);
|
|
const QByteArray tele(QByteArray::fromRawData(
|
|
reinterpret_cast<const char *>(&data.payload().at(0)),
|
|
data.payload().size()));
|
|
OrderConfirmation_t res;
|
|
|
|
size_t k = 1;
|
|
quint8 byte;
|
|
|
|
LtsUtils::get1Byte(tele, k, byte);
|
|
res.orderType = OrderType_e(byte);
|
|
LtsUtils::get2Byte(tele, k, res.orderId);
|
|
LtsUtils::get1Byte(tele, k, byte);
|
|
res.confirmation = EffectShowManagement::OrderConfirmation_e::inner_enum(byte);
|
|
|
|
QByteArray qbArr;
|
|
int ie = data.payload().size() - 5;
|
|
for (int i = 0; i < ie; ++i)
|
|
qbArr.append(data.payload().at(5 + i)); // rationale (text)
|
|
|
|
res.answerText = QString::fromUtf8(qbArr);
|
|
|
|
return res;
|
|
}
|
|
//=============================================================================
|
|
VehicleStatus_t getVehicleStatus(const TrainingAreaBase::FireSmokeMarkerData &data)
|
|
{
|
|
Q_ASSERT(data.payload().size() == 5);
|
|
const QByteArray tele(QByteArray::fromRawData(
|
|
reinterpret_cast<const char *>(&data.payload().at(0)),
|
|
data.payload().size()));
|
|
VehicleStatus_t res;
|
|
|
|
res.equipmentNumber = data.equipmentNumber();
|
|
res.timestamp = data.sampleTime();
|
|
|
|
size_t k = 1;
|
|
quint8 byte;
|
|
|
|
LtsUtils::get1Byte(tele, k, byte);
|
|
res.operational = byte != 0;
|
|
LtsUtils::get1Byte(tele, k, res.ammunitionMagazine);
|
|
LtsUtils::get1Byte(tele, k, res.ammunitionAvailable);
|
|
LtsUtils::get1Byte(tele, k, byte);
|
|
|
|
res.inclinationSensorFail = ((byte & 0x80) != 0);
|
|
res.navigationFail = ((byte & 0x40) != 0);
|
|
res.airSpeedMeterFail = ((byte & 0x20) != 0);
|
|
res.controlComputerFail = ((byte & 0x10) != 0);
|
|
res.magazineFail = ((byte & 0x08) != 0);
|
|
res.feature = (byte & 0x06) >> 1;
|
|
|
|
return res;
|
|
}
|
|
|
|
} // namespace ConvertFromTab
|
|
|
|
} // namespace EffectShowManagement
|