/** * Write XDR telegrams to a directory * $Id$ * $HeadURL$ * $Author$ * Created by Christian Ehrlicher, SLSE, 2016-04-14 */ #include "convert_to_json_file.h" #include #include #include #include #include namespace TetraRadio { ConvertToJsonFile::ConvertToJsonFile(const QString &txDir) : SendToTab() , m_bRetvalOnError(false) , m_txDir(txDir + QLatin1Char('/')) , m_logger(NGL::NGLLoggerBootstrap::getNGLRootLogger().getNGLLogger("TAB.Plugin.ConvertToJsonFile")) { resetSendCounter(); } TrainingAreaBase::SendToTab::HandleState ConvertToJsonFile::canHandleTelegram(int equipmentNumber, int telegramId) const { Q_UNUSED(equipmentNumber) Q_UNUSED(telegramId) return HandleState::Debug; } void ConvertToJsonFile::resetSendCounter() {} bool ConvertToJsonFile::txData(const TrainingAreaBase::TetraIcd::Acknowledge &data) { return sendToTx(&data); } bool ConvertToJsonFile::txData(const TrainingAreaBase::TetraIcd::DemandBite &data) { return sendToTx(&data); } bool ConvertToJsonFile::txData(const TrainingAreaBase::TetraIcd::Init &data) { return sendToTx(&data); } bool ConvertToJsonFile::txData(const TrainingAreaBase::TetraIcd::SetVulnerabilityModel &data) { return sendToTx(&data); } bool ConvertToJsonFile::txData(const TrainingAreaBase::TetraIcd::DemandEquipmentConfigurationReport &data) { return sendToTx(&data); } bool ConvertToJsonFile::txData(const TrainingAreaBase::TetraIcd::DemandVulnerabilityStateChange &data) { return sendToTx(&data); } bool ConvertToJsonFile::txData(const TrainingAreaBase::TetraIcd::LanguageSelection &data) { return sendToTx(&data); } bool ConvertToJsonFile::txData(const TrainingAreaBase::TetraIcd::EquipmentMessage &data) { return sendToTx(&data); } bool ConvertToJsonFile::txData(const TrainingAreaBase::TetraIcd::EquipmentMessageOC &data) { return sendToTx(&data); } bool ConvertToJsonFile::txData(const TrainingAreaBase::TetraIcd::CreateSingleExplosion &data) { return sendToTx(&data); } bool ConvertToJsonFile::txData(const TrainingAreaBase::TetraIcd::CreateAreaExplosion &data) { return sendToTx(&data); } bool ConvertToJsonFile::txData(const TrainingAreaBase::TetraIcd::CreateMineArea &data) { return sendToTx(&data); } bool ConvertToJsonFile::txData(const TrainingAreaBase::TetraIcd::MineAreaSingleMineState &data) { return sendToTx(&data); } bool ConvertToJsonFile::txData(const TrainingAreaBase::TetraIcd::CreateNContamination &data) { return sendToTx(&data); } bool ConvertToJsonFile::txData(const TrainingAreaBase::TetraIcd::CreateCContamination &data) { return sendToTx(&data); } bool ConvertToJsonFile::txData(const TrainingAreaBase::TetraIcd::DeactivateEffectSimulation &data) { return sendToTx(&data); } bool ConvertToJsonFile::txData(const TrainingAreaBase::TetraIcd::ModifyAreaEffectSimulationName &data) { return sendToTx(&data); } bool ConvertToJsonFile::txData(const TrainingAreaBase::TetraIcd::PauseEffectSimulation &data) { return sendToTx(&data); } bool ConvertToJsonFile::txData(const TrainingAreaBase::TetraIcd::ResumeEffectSimulation &data) { return sendToTx(&data); } bool ConvertToJsonFile::txData(const TrainingAreaBase::TetraIcd::MineTriggered &data) { return sendToTx(&data); } bool ConvertToJsonFile::txData(const TrainingAreaBase::TetraIcd::DusMineReactivation &data) { return sendToTx(&data); } bool ConvertToJsonFile::txData(const TrainingAreaBase::TetraIcd::CreateFunctionalArea &data) { return sendToTx(&data); } bool ConvertToJsonFile::txData(const TrainingAreaBase::TetraIcd::CreateDusSingleMine &data) { return sendToTx(&data); } bool ConvertToJsonFile::txData(const TrainingAreaBase::TetraIcd::ExerciseEnvironmentData &data) { return sendToTx(&data); } bool ConvertToJsonFile::txData(const TrainingAreaBase::TetraIcd::ExerciseStateData &data) { return sendToTx(&data); } bool ConvertToJsonFile::txData(const TrainingAreaBase::TetraIcd::ParticipantSwVersionsRequest &data) { return sendToTx(&data); } bool ConvertToJsonFile::txData(const TrainingAreaBase::TetraIcd::OpaquePayloadDataOut &data) { return sendToTx(&data); } bool ConvertToJsonFile::txData(const TrainingAreaBase::TetraIcd::TechnicalArea &data) { return sendToTx(&data); } bool ConvertToJsonFile::txData(const TrainingAreaBase::TetraIcd::CesHitInformation &data) { return sendToTx(&data); } bool ConvertToJsonFile::txData(const TrainingAreaBase::TetraIcd::CesHitRequest &data) { return sendToTx(&data); } bool ConvertToJsonFile::txData(const TrainingAreaBase::TetraIcd::ParticipantMode &data) { return sendToTx(&data); } bool ConvertToJsonFile::txData(const TrainingAreaBase::TetraIcd::DemandParticipantMode &data) { return sendToTx(&data); } bool ConvertToJsonFile::txData(const TrainingAreaBase::TetraIcd::ParticipantConfiguration &data) { return sendToTx(&data); } bool ConvertToJsonFile::txData(const TrainingAreaBase::TetraIcd::DemandParticipantConfiguration &data) { return sendToTx(&data); } bool ConvertToJsonFile::txData(const TrainingAreaBase::TetraIcd::ExerciseEquipmentAssignmentComplete &data) { return sendToTx(&data); } bool ConvertToJsonFile::txData(const TrainingAreaBase::TetraIcd::Sanitation &data) { return sendToTx(&data); } bool ConvertToJsonFile::txData(const TrainingAreaBase::TetraIcd::SelectiveReammunition &data) { return sendToTx(&data); } bool ConvertToJsonFile::txData(const TrainingAreaBase::TetraIcd::SetDevicePowerRequest &data) { return sendToTx(&data); } bool ConvertToJsonFile::txData(const TrainingAreaBase::TetraIcd::OcCommand &data) { return sendToTx(&data); } bool ConvertToJsonFile::txData(const TrainingAreaBase::TetraIcd::UAVPerformMission &data) { return sendToTx(&data); } bool ConvertToJsonFile::txData(const TrainingAreaBase::TetraIcd::UAVChangeState &data) { return sendToTx(&data); } bool ConvertToJsonFile::txData(const TrainingAreaBase::TetraIcd::ExFireReadiness &data) { Q_UNUSED(data) return false; } bool ConvertToJsonFile::txData(const TrainingAreaBase::TetraIcd::ExFiredReport &data) { Q_UNUSED(data) return false; } bool ConvertToJsonFile::txData(const TrainingAreaBase::TetraIcd::ExConfirmationReport &data) { Q_UNUSED(data) return false; } template bool ConvertToJsonFile::sendToTx(const T *data) { const QString fileName = m_txDir + QString::number(QDateTime::currentMSecsSinceEpoch()); QFile f(fileName); if (!f.open(QIODevice::WriteOnly)) return m_bRetvalOnError; QJsonObject obj; obj[QStringLiteral("data")] = data->toJson(); obj[QStringLiteral("type")] = TrainingAreaBase::TetraIcd::Constraints::type(); obj[QStringLiteral("typeId")] = data->id(); const QByteArray ba = QJsonDocument(obj).toJson(QJsonDocument::Compact); f.write(ba); f.close(); return true; } } // namespace TetraRadio