Initial commit
This commit is contained in:
commit
b7d90b9afe
16245 files changed
+3396666
No files matched your search
@@ -0,0 +1,89 @@
|
||||
/**
|
||||
* @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
|
||||
Reference in new issue
Block a user