diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a2584ce1..fa2f09fa 100755 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -22,7 +22,7 @@ variables: BUILD_IMAGE: 'asset-repository.sf.defence-elec.de/docker-rme/livesim/guez' CHECKOUT_IMAGE: 'asset-repository.sf.defence-elec.de/docker-local/docker/docker:git' ARTIFACTORY: 'http://asset-repository.sf.defence-elec.de:80/artifactory' - ARTIFACTORY_PATH: 'generic-rme/livesim/guez/master' + ARTIFACTORY_PATH: 'generic-rme/livesim/guez/dlbo' RUNNER_TAG: '' stages: @@ -77,7 +77,7 @@ build: variables: BUILD_VERSION: $VERSION VERSION_DATE: $CI_COMMIT_TIMESTAMP - PROJECT_BASE_DIR: /builds/projects-domain-live/guez/legatus + PROJECT_BASE_DIR: /builds/projects-domain-live/guez/dlbo/legatus EMERGE_VERBOSE: 1 # Verbosity level 0:warning 1:info 2:debug script: - export BUILD_NUMBER=$(date +%Y%m%d%H) diff --git a/Lts/Common/CMakeLists.txt b/Lts/Common/CMakeLists.txt index d9f00c8e..51874006 100755 --- a/Lts/Common/CMakeLists.txt +++ b/Lts/Common/CMakeLists.txt @@ -6,30 +6,28 @@ ADD_SUBDIRECTORY(CodeGen) ADD_SUBDIRECTORY(httq) -#ADD_SUBDIRECTORY(LtsBotan) -ADD_SUBDIRECTORY(LtsCommandLineParser) -ADD_SUBDIRECTORY(LtsCoordTrans) -ADD_SUBDIRECTORY(LtsCoordinate) -ADD_SUBDIRECTORY(LtsElevation) -ADD_SUBDIRECTORY(LtsLicence) -ADD_SUBDIRECTORY(LtsPluginManager) -ADD_SUBDIRECTORY(LtsSession) -ADD_SUBDIRECTORY(LtsUtils) -ADD_SUBDIRECTORY(LtsWidgets) ADD_SUBDIRECTORY(LtsAppDescriptor) ADD_SUBDIRECTORY(LtsAppManager) -ADD_SUBDIRECTORY(LtsMultiMonitor) +ADD_SUBDIRECTORY(LtsCommandLineParser) +ADD_SUBDIRECTORY(LtsCoordinate) +ADD_SUBDIRECTORY(LtsCoordTrans) +ADD_SUBDIRECTORY(LtsElevation) +ADD_SUBDIRECTORY(LtsLicence) ADD_SUBDIRECTORY(LtsLogin) +ADD_SUBDIRECTORY(LtsMultiMonitor) ADD_SUBDIRECTORY(LtsNotification) -ADD_SUBDIRECTORY(LtsTimeline) +ADD_SUBDIRECTORY(LtsPluginManager) ADD_SUBDIRECTORY(LtsPrinting) -ADD_SUBDIRECTORY(LtsSerialPortQuerry) -ADD_SUBDIRECTORY(LtsScriptTimeline) -ADD_SUBDIRECTORY(LtsWebSocket) ADD_SUBDIRECTORY(LtsProjectionWorkstation) +ADD_SUBDIRECTORY(LtsRestClient) +ADD_SUBDIRECTORY(LtsScriptTimeline) +ADD_SUBDIRECTORY(LtsSerialPortQuerry) +ADD_SUBDIRECTORY(LtsSession) +ADD_SUBDIRECTORY(LtsTimeline) +ADD_SUBDIRECTORY(LtsUtils) ADD_SUBDIRECTORY(LtsVirtualKeyboard) +ADD_SUBDIRECTORY(LtsWebSocket) +ADD_SUBDIRECTORY(LtsWidgets) ADD_SUBDIRECTORY(PluginInterfaces) ADD_SUBDIRECTORY(ProjectConfig) -ADD_SUBDIRECTORY(TopicEditorBase) # TODO: rename / move ? -#ADD_SUBDIRECTORY(LtsEventTimeline) -#ADD_SUBDIRECTORY(LtsTranslator) +ADD_SUBDIRECTORY(TopicEditorBase) diff --git a/Lts/Common/CodeGen/svc_translation.cpp.grantlee b/Lts/Common/CodeGen/svc_translation.cpp.grantlee index 3b7fdc2b..ebf6bea7 100755 --- a/Lts/Common/CodeGen/svc_translation.cpp.grantlee +++ b/Lts/Common/CodeGen/svc_translation.cpp.grantlee @@ -22,7 +22,7 @@ QString toString({{ idl_enum.name }} state) { switch(state.underlying()) {{% for idl_member in idl_enum.member %} - case {{ idl_enum.name }}::{{ idl_member.key }}: return QCoreApplication::translate("{{ idl_enum.name }}", "{{ idl_member.key }}"); + case {{ idl_enum.name }}_def::{{ idl_member.key }}: return QCoreApplication::translate("{{ idl_enum.name }}", "{{ idl_member.key }}"); {% endfor %} default: break; } diff --git a/Lts/Common/LtsAppDescriptor/lts_app_descriptor.h b/Lts/Common/LtsAppDescriptor/lts_app_descriptor.h index 5b2464c9..6c677bd7 100755 --- a/Lts/Common/LtsAppDescriptor/lts_app_descriptor.h +++ b/Lts/Common/LtsAppDescriptor/lts_app_descriptor.h @@ -61,6 +61,7 @@ struct PluginInfo UNKNOWN, DATA, GUI, + GUI_ELEMENT, }; enum class Flag diff --git a/Lts/Common/LtsPluginManager/lts_plugin_loader.cpp b/Lts/Common/LtsPluginManager/lts_plugin_loader.cpp index 210503ea..8dfe3e00 100755 --- a/Lts/Common/LtsPluginManager/lts_plugin_loader.cpp +++ b/Lts/Common/LtsPluginManager/lts_plugin_loader.cpp @@ -258,7 +258,8 @@ bool LtsPluginLoader::loadPlugins(PluginType requestedPluginType, QStringLiteral("topic_type"), QStringLiteral("project"), QStringLiteral("style"), - QStringLiteral("special")}); // #warning TODO: recordreplay is a data plugin ? + QStringLiteral("special"), + QStringLiteral("gui_element")}); // #warning TODO: recordreplay is a data plugin ? QDirIterator pluginDir(libPath, nameFilter, QDir::Files); while (pluginDir.hasNext()) @@ -335,6 +336,9 @@ bool LtsPluginLoader::loadPlugins(PluginType requestedPluginType, case 5: // special pluginType = PluginType::SPECIAL; break; + case 6: // gui_element + pluginType = PluginType::GUI_ELEMENT; + break; default: break; } diff --git a/Lts/Common/LtsPluginManager/lts_plugin_loader.h b/Lts/Common/LtsPluginManager/lts_plugin_loader.h index 4c7f6898..a5e96f82 100755 --- a/Lts/Common/LtsPluginManager/lts_plugin_loader.h +++ b/Lts/Common/LtsPluginManager/lts_plugin_loader.h @@ -49,6 +49,8 @@ enum class PluginType PROJECT, STYLE, SPECIAL, // TODO: rm + GUI_ELEMENT, + }; diff --git a/Lts/Common/LtsRestClient/CMakeLists.txt b/Lts/Common/LtsRestClient/CMakeLists.txt new file mode 100644 index 00000000..c7834baf --- /dev/null +++ b/Lts/Common/LtsRestClient/CMakeLists.txt @@ -0,0 +1,27 @@ +# +# Lightweight REST Client Framework +# $Id$ +# $HeadURL$ +# $Author$ +# Created by Hannes Fritsche, ESZS, 2026-08-21 + +# +# --- Library LtsRestClient -------------------------------------------------------------------------------- +# +SET(LtsRestClient_SRCS + lts_rest_client.cpp + lts_rest_client.h +) + +NGL_ADD_LIBRARY2(ALL LtsRestClient SHARED ${LtsRestClient_SRCS}) + +NGL_TARGET_INCLUDE_DIRECTORIES(LtsRestClient + PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR}/../ +) + +NGL_TARGET_LINK_LIBRARIES(LtsRestClient + PUBLIC + Qt5::Core + Qt5::Network +) diff --git a/Lts/Common/LtsRestClient/lts_rest_client.cpp b/Lts/Common/LtsRestClient/lts_rest_client.cpp new file mode 100644 index 00000000..ca95d69f --- /dev/null +++ b/Lts/Common/LtsRestClient/lts_rest_client.cpp @@ -0,0 +1,172 @@ +/** + * Lightweight REST Client Framework + * $Id$ + * $HeadURL$ + * $Author$ + * Created by Hannes Fritsche, ESZS, 2026-08-21 + */ + +#include "lts_rest_client.h" +#include +#include +#include +#include +#include + +namespace LtsCommon +{ + +LtsRestClient::LtsRestClient(const QString &baseUrl, QObject *parent) + : QObject(parent) + , m_baseUrl(baseUrl) + , m_manager(new QNetworkAccessManager(this)) +{ +} + +void LtsRestClient::ping(PingSuccessCallback onSuccess, ErrorCallback onError, int timeoutMs) +{ + const QNetworkRequest request((QUrl(m_baseUrl))); + QNetworkReply *reply = m_manager->head(request); + + if (!reply) + { + if (onError) + onError(QStringLiteral("Failed to initiate ping.")); + + return; + } + + // 1. Setup the timer (parented to reply for auto-cleanup) + QTimer *timeoutTimer = new QTimer(reply); + timeoutTimer->setSingleShot(true); + + // 2. Connect the timeout signal to abort the request + connect(timeoutTimer, &QTimer::timeout, this, [reply]() + { + if (reply && reply->isRunning()) + reply->abort(); // Triggers finished() with OperationCanceledError + }); + + // 3. Connect the finished signal to handle the response + connect(reply, + &QNetworkReply::finished, + this, + [reply, timeoutTimer, onSuccess, onError]() + { + timeoutTimer->stop(); + reply->deleteLater(); + + if (reply->error() != QNetworkReply::NoError) + { + if (onError) + { + if (reply->error() == QNetworkReply::OperationCanceledError) + onError(QStringLiteral("Ping timed out.")); + else + onError(reply->errorString()); + } + + return; + } + + const int statusCode = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); + + if (onSuccess) + onSuccess(statusCode); + }); + + // 4. Start the timer only after all connections are successfully established + timeoutTimer->start(timeoutMs); +} + +void LtsRestClient::get(const QString &endpoint, SuccessCallback onSuccess, ErrorCallback onError) +{ + sendRequest(QStringLiteral("GET"), endpoint, QByteArray(), onSuccess, onError); +} + +void LtsRestClient::post(const QString &endpoint, const QJsonDocument &json, SuccessCallback onSuccess, ErrorCallback onError) +{ + sendRequest(QStringLiteral("POST"), endpoint, json.toJson(), onSuccess, onError); +} + +void LtsRestClient::put(const QString &endpoint, const QJsonDocument &json, SuccessCallback onSuccess, ErrorCallback onError) +{ + sendRequest(QStringLiteral("PUT"), endpoint, json.toJson(), onSuccess, onError); +} + +void LtsRestClient::del(const QString &endpoint, SuccessCallback onSuccess, ErrorCallback onError) +{ + sendRequest(QStringLiteral("DELETE"), endpoint, QByteArray(), onSuccess, onError); +} + +void LtsRestClient::sendRequest(const QString &method, const QString &endpoint, const QByteArray &data, SuccessCallback onSuccess, ErrorCallback onError) +{ + QUrl url(m_baseUrl); + url.setPath(url.path() + endpoint); + + QNetworkRequest request(url); + request.setHeader(QNetworkRequest::ContentTypeHeader, QStringLiteral("application/json")); + + QNetworkReply *reply = nullptr; + + if (method == QStringLiteral("GET")) + reply = m_manager->get(request); + else if (method == QStringLiteral("POST")) + reply = m_manager->post(request, data); + else if (method == QStringLiteral("PUT")) + reply = m_manager->put(request, data); + else if (method == QStringLiteral("DELETE")) + reply = m_manager->deleteResource(request); + + if (!reply) + { + if (onError) + onError(QStringLiteral("Failed to initiate request.")); + + return; + } + + connect(reply, + &QNetworkReply::finished, + this, + [reply, onSuccess, onError]() + { + reply->deleteLater(); + + // Handle network errors + if (reply->error() != QNetworkReply::NoError) + { + if (onError) + onError(reply->errorString()); + + return; + } + + // Handle HTTP errors + const int statusCode = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); + if (statusCode >= 400) + { + if (onError) + onError(QStringLiteral("HTTP Error %1").arg(statusCode)); + + return; + } + + // Parse JSON safely + QJsonParseError parseError; + const QJsonDocument doc = QJsonDocument::fromJson(reply->readAll(), &parseError); + + if (parseError.error != QJsonParseError::NoError) + { + if (onError) + onError(QStringLiteral("JSON Parse Error: ") + parseError.errorString()); + + return; + } + + if (onSuccess) + onSuccess(doc); + }); +} + +} // namespace LtsCommon diff --git a/Lts/Common/LtsRestClient/lts_rest_client.h b/Lts/Common/LtsRestClient/lts_rest_client.h new file mode 100644 index 00000000..9b838b22 --- /dev/null +++ b/Lts/Common/LtsRestClient/lts_rest_client.h @@ -0,0 +1,51 @@ +/** + * Lightweight REST Client Framework + * $Id$ + * $HeadURL$ + * $Author$ + * Created by Hannes Fritsche, ESZS, 2026-08-21 + */ + +// Short documentation on how to use it can be found at https://confluence-classified.rh-int.de/spaces/LEG/pages/207915647/HOWTO+LtsRestClient + +#pragma once + +#include +#include +#include +#include +#include + +class QNetworkAccessManager; + +namespace LtsCommon +{ + +class LTSRESTCLIENT_EXPORT LtsRestClient : public QObject +{ + Q_OBJECT + + public: + explicit LtsRestClient(const QString &baseUrl, QObject *parent = nullptr); + + // type aliases + using PingSuccessCallback = std::function; + using SuccessCallback = std::function; + using ErrorCallback = std::function; + + // HTTP Header Ping to m_baseUrl to check server availability + void ping(PingSuccessCallback onSuccess, ErrorCallback onError = nullptr, int timeoutMs = 3000); + + // HTTP Methods + void get(const QString &endpoint, SuccessCallback onSuccess, ErrorCallback onError = nullptr); + void post(const QString &endpoint, const QJsonDocument &json, SuccessCallback onSuccess, ErrorCallback onError = nullptr); + void put(const QString &endpoint, const QJsonDocument &json, SuccessCallback onSuccess, ErrorCallback onError = nullptr); + void del(const QString &endpoint, SuccessCallback onSuccess, ErrorCallback onError = nullptr); + + private: + void sendRequest(const QString &method, const QString &endpoint, const QByteArray &data, SuccessCallback onSuccess, ErrorCallback onError); + + QString m_baseUrl; + QNetworkAccessManager *m_manager; +}; // class RestClient +} // namespace LtsCommon diff --git a/Lts/Common/LtsSession/lts_session_data_dds.h b/Lts/Common/LtsSession/lts_session_data_dds.h index 6ce3d5dd..b799a849 100755 --- a/Lts/Common/LtsSession/lts_session_data_dds.h +++ b/Lts/Common/LtsSession/lts_session_data_dds.h @@ -14,7 +14,7 @@ #include #include #include -#include +#include //#include #include #include diff --git a/Lts/Common/LtsSession/lts_session_lock_handler.h b/Lts/Common/LtsSession/lts_session_lock_handler.h index a2e1146b..85bfd565 100755 --- a/Lts/Common/LtsSession/lts_session_lock_handler.h +++ b/Lts/Common/LtsSession/lts_session_lock_handler.h @@ -2,7 +2,7 @@ #include #include -#include +#include #include #include diff --git a/Lts/Common/LtsUtils/LtsUtilsGui/LtsUtilsGuiDds/request_helper.h b/Lts/Common/LtsUtils/LtsUtilsGui/LtsUtilsGuiDds/request_helper.h index 8ecb26f3..719fda9d 100755 --- a/Lts/Common/LtsUtils/LtsUtilsGui/LtsUtilsGuiDds/request_helper.h +++ b/Lts/Common/LtsUtils/LtsUtilsGui/LtsUtilsGuiDds/request_helper.h @@ -15,8 +15,8 @@ #define LTSUTILSGUIDDS_INTERNAL_EXPORT LTSUTILSDDS_EXPORT #endif -#include -#include // Core::FunctionReply (base reply) +#include +#include // Core::FunctionReply (base reply) #include #include diff --git a/Lts/Common/LtsWidgets/CMakeLists.txt b/Lts/Common/LtsWidgets/CMakeLists.txt index 47b50f47..b899cdce 100755 --- a/Lts/Common/LtsWidgets/CMakeLists.txt +++ b/Lts/Common/LtsWidgets/CMakeLists.txt @@ -108,6 +108,8 @@ SET(ltswidgets_SRCS lts_text_editor2.h lts_text_editor2.cpp + + LtsImageCropper/lts_image_cropper.cpp ) @@ -148,6 +150,7 @@ NGL_WRAP_UI(ltswidgets_SRCS NGL_ADD_BIG_RESOURCES(ltswidgets_SRCS resources/lts_resources.qrc) NGL_ADD_LIBRARY(WS TOOLSWS TOOLSSV LtsWidgets SHARED ${ltswidgets_SRCS}) + NGL_TARGET_INCLUDE_DIRECTORIES(LtsWidgets PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../ diff --git a/Lts/DDS/Core/pacemaker.h b/Lts/DDS/Core/pacemaker.h index 5a209d0e..1de2806e 100755 --- a/Lts/DDS/Core/pacemaker.h +++ b/Lts/DDS/Core/pacemaker.h @@ -10,7 +10,7 @@ #include #include -#include +#include #include "core_export.h" namespace DDSConnector diff --git a/Lts/DDS/FTC/generic_ftc.h b/Lts/DDS/FTC/generic_ftc.h index f4528b6c..99f15c15 100755 --- a/Lts/DDS/FTC/generic_ftc.h +++ b/Lts/DDS/FTC/generic_ftc.h @@ -8,7 +8,7 @@ #pragma once -#include +#include #include diff --git a/Lts/DDS/FTC/generic_ftc_impl.h b/Lts/DDS/FTC/generic_ftc_impl.h index 049caf1f..9e1627e6 100755 --- a/Lts/DDS/FTC/generic_ftc_impl.h +++ b/Lts/DDS/FTC/generic_ftc_impl.h @@ -11,7 +11,7 @@ #include "abstract_requester.h" #include "generic_ftc_threading.h" -#include +#include #include #include #include diff --git a/Lts/DDS/FTS/generic_fts_impl.h b/Lts/DDS/FTS/generic_fts_impl.h index ab717f9f..77547207 100755 --- a/Lts/DDS/FTS/generic_fts_impl.h +++ b/Lts/DDS/FTS/generic_fts_impl.h @@ -7,7 +7,7 @@ */ #pragma once -#include +#include #include "generic_fts_internal.h" #include "connext.h" diff --git a/Lts/Plugins/AreaEffectSimulation/Gui/Explosion/aes_explosions_edit_adler.cpp b/Lts/Plugins/AreaEffectSimulation/Gui/Explosion/aes_explosions_edit_adler.cpp index 81209475..fd94fca0 100755 --- a/Lts/Plugins/AreaEffectSimulation/Gui/Explosion/aes_explosions_edit_adler.cpp +++ b/Lts/Plugins/AreaEffectSimulation/Gui/Explosion/aes_explosions_edit_adler.cpp @@ -470,6 +470,8 @@ void ExplosionsEditAdler::onEffectClusterChanged(const EffectCluster &ecData, Da m_ui->pbStateChange->setEnabled(false); m_ui->gbEffectMarkingInTa->setEnabled(false); } + + __unchange__(); } QPointF ExplosionsEditAdler::centerOfFiringUnitGeo(int particpantUnitId) diff --git a/Lts/Plugins/AreaEffectSimulation/Gui/Explosion/aes_explosions_edit_adler_standalone.cpp b/Lts/Plugins/AreaEffectSimulation/Gui/Explosion/aes_explosions_edit_adler_standalone.cpp index ac585d1b..6a5e3b0f 100755 --- a/Lts/Plugins/AreaEffectSimulation/Gui/Explosion/aes_explosions_edit_adler_standalone.cpp +++ b/Lts/Plugins/AreaEffectSimulation/Gui/Explosion/aes_explosions_edit_adler_standalone.cpp @@ -283,6 +283,15 @@ ExplosionsEditAdlerStandAlone::ExplosionsEditAdlerStandAlone(const QString &menu if (enableRocket) m_gearClassFilter += ProjectDataManagement::GearClass::Rocket; m_uiRequirements->addRequirement({m_ui->lblPosition, [this]() { return (!m_coord.isNull()); }}); + m_uiRequirements->addRequirement({m_ui->lblPosition_2, [this]() { + // Im Fall (Zielgeometrie == Linear) ist positionEdit_2 enabled. Ansonsten disabled. + // Daher: Wenn enabled, muss auch ein Wert enthalten sein. + // Andernfalls wird in apply() die cornerBottomLeft aufgrund fehlerhafter Werte berechnet. + // Die dabei resultierenden Werte haben bereits mal zu einem Absturz gefuehrt. + // LS-693 [Stand-Alone] Koordinatenberechnung Linear... + return (!m_ui->positionEdit_2->isEnabled()) || // Ok, wenn disabled + (!m_ui->positionEdit_2->coordinate().isNull()); } // oder coordinate not null + }); m_uiRequirements->addRequirement({m_ui->lblRadiusBreite, [this]() { return (m_ui->sbDimensionX_BreiteRadius->value() >= s_minWidth); }}); m_uiRequirements->addRequirement({m_ui->lblDimensionY_Tiefe, [this]() { return (m_ui->sbDimensionY_Tiefe->value() >= s_minHeight); }}); // m_uiRequirements->addRequirement({m_ui->lblName, [this]() { return (!m_ui->leElement->text().isEmpty()); }}); @@ -1669,6 +1678,13 @@ void ExplosionsEditAdlerStandAlone::onEffectClusterChanged(const EffectCluster & if (m_aesItem.effectStateId() == AreaEffectSimulation::AesEffectState::EsCreated || m_aesItem.effectStateId() == AreaEffectSimulation::AesEffectState::EsPrepared) enableUiElements(!unchangeable()); + else if (m_aesItem.effectStateId() == AreaEffectSimulation::AesEffectState::EsExpired || + m_aesItem.effectStateId() == AreaEffectSimulation::AesEffectState::EsFired || + m_aesItem.effectStateId() == AreaEffectSimulation::AesEffectState::EsActivated) + { + if (hasUnsavedChanges()) + __unchange__(); + } if(!unchangeable()) setFireBtnState(); @@ -2107,12 +2123,8 @@ bool ExplosionsEditAdlerStandAlone::apply() if (m_ui->dteEffectStart->isChecked() && m_ui->dteEffectStart->isVisible()) { - const FiringType::type firingType = static_cast(m_ui->cbFiringType->currentData().toInt()); - if (firingType != FiringType::FireWithIndicationTTF) - { - // we use the effect start as usual - request.effectStart().set(m_ui->dteEffectStart->msecsSinceEpoch()); - } + // we use the effect start as usual + request.effectStart().set(m_ui->dteEffectStart->msecsSinceEpoch()); } if (m_ui->sbDurationSec->isVisible()) request.effectDuration(m_ui->sbDurationSec->value() * 1000); @@ -2293,13 +2305,16 @@ bool ExplosionsEditAdlerStandAlone::apply() const QString properties = QString::fromUtf8(QJsonDocument(propertiesObj).toJson()); DEBUG_LOG(m_logger) << "properties: " << properties; request.properties(properties.toStdString()); - DEBUG_LOG(m_logger) << "request abschicken"; + // Rocket-Spezifika: const QVariant currentData = m_ui->cbGearClass->currentData(); const ProjectDataManagement::GearClass::type currentGearClass = static_cast(currentData.toInt()); - if (currentGearClass == ProjectDataManagement::GearClass::Rocket) + { RocketUtility::addRocketPropertiesToRequest(request, m_ppmDtc); + } + + DEBUG_LOG(m_logger) << "request abschicken, request = '" << request << "'"; m_requestHelper->addRequest([this, request]() { return m_ftc->effectClusterModifyRequest(request, this); }); diff --git a/Lts/Plugins/AreaEffectSimulation/Gui/Explosion/aes_rocket_utility.cpp b/Lts/Plugins/AreaEffectSimulation/Gui/Explosion/aes_rocket_utility.cpp index aeda7631..dbb8843b 100755 --- a/Lts/Plugins/AreaEffectSimulation/Gui/Explosion/aes_rocket_utility.cpp +++ b/Lts/Plugins/AreaEffectSimulation/Gui/Explosion/aes_rocket_utility.cpp @@ -179,6 +179,7 @@ void addRocketPropertiesForLinearGeometry(EffectClusterModifyRequest &request, c const double flightTimeStep = currentEffector.flightTime() / static_cast(trajectoryWithoutTime.size()); double currentFlightTime = 0.0; + currentEffector.trajectoryRelative().clear(); // LS_711_akkumulierende_flugkurven_bei_rakete const LtsCoordTrans::UtmCoordinate utmStartPos = LtsCoordTrans::UtmCoordinate::fromGeographic(participantPosition.pos().lon(), participantPosition.pos().lat()); for (const Core::GeoPosition &pos : trajectoryWithoutTime) { @@ -240,6 +241,7 @@ void addRocketPropertiesForPointGeometry(EffectClusterModifyRequest &request, co const double flightTimeStep = currentEffector.flightTime() / static_cast(trajectoryWithoutTime.size()); double currentFlightTime = 0.0; + currentEffector.trajectoryRelative().clear(); // LS_711_akkumulierende_flugkurven_bei_rakete const LtsCoordTrans::UtmCoordinate utmStartPos = LtsCoordTrans::UtmCoordinate::fromGeographic(participantPosition.pos().lon(), participantPosition.pos().lat()); for (const Core::GeoPosition &pos : trajectoryWithoutTime) { @@ -250,7 +252,7 @@ void addRocketPropertiesForPointGeometry(EffectClusterModifyRequest &request, co currentFlightTime += flightTimeStep; } - } + } // for (EffectorData ¤tEffector : request.effectors()) } } // namespace RocketUtility diff --git a/Lts/Plugins/FileManagement/Gui/Explorer/HQReports/flm_hq_report_converter.cpp b/Lts/Plugins/FileManagement/Gui/Explorer/HQReports/flm_hq_report_converter.cpp index 1a47f385..48eb8fd7 100755 --- a/Lts/Plugins/FileManagement/Gui/Explorer/HQReports/flm_hq_report_converter.cpp +++ b/Lts/Plugins/FileManagement/Gui/Explorer/HQReports/flm_hq_report_converter.cpp @@ -1,8 +1,8 @@ #include "flm_hq_report_converter.h" +#include #include #include -#include #include #include @@ -11,20 +11,20 @@ #include -#include #include #include +#include -#include #include +#include namespace FileManagement { -FlmHqReportConverter::FlmHqReportConverter() : m_logger(getLogger("HQReportConverter")) +FlmHqReportConverter::FlmHqReportConverter() + : m_logger(getLogger("HQReportConverter")) { - connect(this, &FlmHqReportConverter::allRequestsFinished, - this, &FlmHqReportConverter::onRequestsFinished); + connect(this, &FlmHqReportConverter::allRequestsFinished, this, &FlmHqReportConverter::onRequestsFinished); } bool FlmHqReportConverter::init(LtsSession::LtsSession *session, int currentPartyId) @@ -82,11 +82,20 @@ bool FlmHqReportConverter::init(LtsSession::LtsSession *session, int currentPart return true; } -void FlmHqReportConverter::addHqToPlanIds(const QMap> &hqToPlanIds) +void FlmHqReportConverter::addHqToPlanIds(const QMap> &hqToPlanIds) { for (auto it = hqToPlanIds.constBegin(); it != hqToPlanIds.constEnd(); ++it) { - m_hqToPlanIds[it.key()].append(it.value()); + int planFileId = it.key(); + const QSet &hqMessageIds = it.value(); + + for (int id : hqMessageIds) + { + if (id == planFileId) // Eventueller Eintrag in Map wegen QTreeView verhindern + continue; + + m_hqToPlanIds[planFileId].append(id); + } } } @@ -94,15 +103,17 @@ void FlmHqReportConverter::processCollectedHqs() { for (auto it = m_hqToPlanIds.constBegin(); it != m_hqToPlanIds.constEnd(); ++it) { - m_pendingRequests += it.value().size(); + int planId = it.key(); + for (int id : it.value()) + m_pendingRequests++; } for (auto it = m_hqToPlanIds.constBegin(); it != m_hqToPlanIds.constEnd(); ++it) { int planId = it.key(); - const QList &reportIds = it.value(); - // Request file content for each HqReport - for (int id : reportIds) + const QList &hqMessageIds = it.value(); + + for (int id : hqMessageIds) { DEBUG_LOG(m_logger) << "Request File with ID: " << id << " from plan with ID: " << planId; FileManagement::GetFileContentDataRequest request(id); @@ -110,46 +121,21 @@ void FlmHqReportConverter::processCollectedHqs() } } } - -void FlmHqReportConverter::createGeometryFromReport(const HqReportData &data) -{ - m_symbolFactory.build(data.art, data, m_geometryModel); -} +void FlmHqReportConverter::createGeometryFromReport(const HqReportData &data) { m_symbolFactory.build(data.art, data, m_geometryModel); } void FlmHqReportConverter::checkIfAllFinished() { - if (m_pendingRequests <= 0) emit allRequestsFinished(); + if (m_pendingRequests <= 0) + emit allRequestsFinished(); } -void FlmHqReportConverter::onGetFileContentDataReply( - const FileManagement::GetFileContentDataReply &reply) +void FlmHqReportConverter::onGetFileContentDataReply(const FileManagement::GetFileContentDataReply &reply) { m_pendingRequests--; - if (reply.errorString().size() > 0) - { - ERROR_LOG(m_logger) << "Got onGetFileContentDataReply error: " << reply.errorString(); - return; - } - - int id = static_cast(reply.id()); + const int id = static_cast(reply.id()); int planId = -1; - DEBUG_LOG(m_logger) << "Reply File with ID: " << id << " from plan with ID: " << planId; - - INFO_LOG(m_logger) << "Got reply with id " << id << " and errorString " << reply.errorString(); - - QByteArray fileContent = QByteArray(reinterpret_cast(reply.content().data()), reply.content().size()); - - FlmHqReportJsonParser m_parser = FlmHqReportJsonParser(); - - HqReportData data = m_parser.parse(fileContent); - data.contentFileId = id; - - DEBUG_LOG(m_logger) << "Party: " << m_partyId << " has Color: "<< QColor::fromRgb(QRgb(m_ppmDtc->party(m_partyId).color())).value(); - - data.partyColor = QColor::fromRgb(QRgb(m_ppmDtc->party(m_partyId).color())); - for (auto it = m_hqToPlanIds.constBegin(); it != m_hqToPlanIds.constEnd(); ++it) { if (it.value().contains(id)) @@ -159,7 +145,24 @@ void FlmHqReportConverter::onGetFileContentDataReply( } } - m_convertedHqToPlanIds[planId].append(data); + DEBUG_LOG(m_logger) << "Reply File with ID: " << id << " from plan with ID: " << planId; + INFO_LOG(m_logger) << "Got reply with id " << id; + + QByteArray fileContent = QByteArray::fromRawData(reinterpret_cast(reply.content().data()), reply.content().size()); + + DEBUG_LOG(m_logger) << "fileContent: " << fileContent; + + FileManagement::FileContent flc = m_flmDtc->fileContent(reply.id()); + + DEBUG_LOG(m_logger) << "FlmHqReportConverter::onGetFileContentDataReply FILECONTENTNAME: " << flc.name(); + + HqReportData data = m_parser.parse(fileContent); + data.contentFileId = id; + data.name = QString::fromStdString(flc.name()); + + data.partyColor = QColor::fromRgb(m_ppmDtc->party(m_partyId).color()); + + m_convertedHqToPlanIds[planId].append(std::move(data)); DEBUG_LOG(m_logger) << "Content size: " << reply.content().size(); @@ -171,10 +174,7 @@ void FlmHqReportConverter::onFileContentModifyReply(const Core::FunctionReplyObj DEBUG_LOG(m_logger) << "Got FileContentModify Reply: " << reply.translated(); if (reply.error()) - { - ERROR_LOG(m_logger) << "Error while insert HX Message: " << reply.translated() - << ", error: " << reply.error(); - } + ERROR_LOG(m_logger) << "Error while insert HX Message: " << reply.translated() << ", error: " << reply.error(); } void FlmHqReportConverter::onFileContentRemoveReply(const Core::FunctionReplyObject &reply) @@ -182,49 +182,83 @@ void FlmHqReportConverter::onFileContentRemoveReply(const Core::FunctionReplyObj DEBUG_LOG(m_logger) << "Got FileContentRemove Reply: " << reply.translated(); if (reply.error()) - { - ERROR_LOG(m_logger) << "Error while insert HX Message: " << reply.translated() - << ", error: " << reply.error(); - } + ERROR_LOG(m_logger) << "Error while insert HX Message: " << reply.translated() << ", error: " << reply.error(); } void FlmHqReportConverter::onRequestsFinished() { - DEBUG_LOG(m_logger) << "ALL REQUESTS FINISHED"; + DEBUG_LOG(m_logger) << "ALL REQUESTS FINISHED -> STARTING CONTENT FETCH"; for (auto it = m_convertedHqToPlanIds.constBegin(); it != m_convertedHqToPlanIds.constEnd(); ++it) { int planId = it.key(); - const QList &reportDatas = it.value(); + QList reportDatas = it.value(); + const FileManagement::FileContent flc = m_flmDtc->fileContent(planId); + FileManagement::GetFileContentDataRequest req; + req.fileContentId(planId); - for (auto &reportData : reportDatas) - { - DEBUG_LOG(m_logger) << "createGeometryFromReport :" << reportData.art; - createGeometryFromReport(reportData); - } + m_flmFtc->getFileContentDataRequest(req, + [this, planId, reportDatas = std::move(reportDatas), flc = std::move(flc)](const FileManagement::GetFileContentDataReply &reply) + { + const auto &fetchedFlc = reply; + if (fetchedFlc.content().size() > 0) + { + QByteArray existingContent + = QByteArray::fromRawData(reinterpret_cast(fetchedFlc.content().data()), fetchedFlc.content().size()); - const FileManagement::FileContent &flc = m_flmDtc->fileContent(planId); + if (!m_geometryModel->fromByteArray(existingContent)) + WARNING_LOG(m_logger) << "Could not load existing geometry content for planId" << planId; + } - FileManagement::FileContentModifyRequest data; + QJsonArray jsonNameArray; + QJsonDocument existingDocs = QJsonDocument::fromJson(QByteArray::fromRawData(flc.properties().data(), flc.properties().size())); - DEBUG_LOG(m_logger) << "FILE CONTENT: " << flc.name() << " " << flc.folderId(); + if (existingDocs.isArray()) + jsonNameArray = existingDocs.array(); - data.id(flc.id()); - data.name(flc.name()); - data.isTemplate(false); - data.isHidden(false); - data.folderId(flc.folderId()); - data.fileStatus(FileManagement::FileStatus::Valid); - data.fileCategory(FileManagement::FileCategory::Exercise); - data.fileType(FileManagement::FileType::TacticalPlan); - data.operatorId(LtsSessionData::LtsSessionData::getInstance()->getOperatorId()); - data.lastModified(QDateTime::currentMSecsSinceEpoch()); - data.content(LtsUtils::convert>(m_geometryModel->toByteArray())); - data.exerciseId(m_session->exerciseId()); + for (const auto &reportData : reportDatas) + { - m_flmFtc->fileContentModifyRequest(data, this); - - m_geometryModel->clearModel(); + bool alreadyExists = false; + for (const QJsonValue &value : jsonNameArray) + { + if (value.toString() == reportData.name) + { + alreadyExists = true; + break; + } + } + + if (!alreadyExists) + { + createGeometryFromReport(reportData); + jsonNameArray.append(reportData.name); + } + } + + QJsonDocument jsonDoc(jsonNameArray); + QString combinedNames = QString::fromUtf8(jsonDoc.toJson(QJsonDocument::Compact)); + + FileManagement::FileContentModifyRequest data; + + DEBUG_LOG(m_logger) << "FILE CONTENT: " << flc.name() << " " << flc.folderId(); + + data.id(flc.id()); + data.name(flc.name()); + data.isTemplate(false); + data.isHidden(false); + data.folderId(flc.folderId()); + data.fileStatus(FileManagement::FileStatus::Valid); + data.fileCategory(FileManagement::FileCategory::Exercise); + data.fileType(FileManagement::FileType::TacticalPlan); + data.operatorId(LtsSessionData::LtsSessionData::getInstance()->getOperatorId()); + data.lastModified(QDateTime::currentMSecsSinceEpoch()); + data.content(LtsUtils::convert>(m_geometryModel->toByteArray())); + data.exerciseId(m_session->exerciseId()); + data.properties(combinedNames.toStdString()); + m_flmFtc->fileContentModifyRequest(data, this); + m_geometryModel->clearModel(); + }); } } -} // namespace FileManagement +} // namespace FileManagement diff --git a/Lts/Plugins/FileManagement/Gui/Explorer/HQReports/flm_hq_report_converter.h b/Lts/Plugins/FileManagement/Gui/Explorer/HQReports/flm_hq_report_converter.h index 28ea8225..8ef54213 100755 --- a/Lts/Plugins/FileManagement/Gui/Explorer/HQReports/flm_hq_report_converter.h +++ b/Lts/Plugins/FileManagement/Gui/Explorer/HQReports/flm_hq_report_converter.h @@ -16,15 +16,16 @@ namespace Interface { class Dtc; class Ftc; -} // namespace Interface +} // namespace Interface -class FlmHqReportConverter : public QObject, - public Interface::Ftc::GetFileContentDataReplyHandler, - public Interface::Ftc::FileContentModifyReplyHandler, - public Interface::Ftc::FileContentRemoveReplyHandler +class FlmHqReportConverter + : public QObject + , public Interface::Ftc::GetFileContentDataReplyHandler + , public Interface::Ftc::FileContentModifyReplyHandler + , public Interface::Ftc::FileContentRemoveReplyHandler { Q_OBJECT -public: + public: FlmHqReportConverter(); ~FlmHqReportConverter() = default; @@ -33,7 +34,7 @@ public: * @brief add hqToPlanIds to m_hqToPlanIds * @param const QMap> &hqToPlanIds -> > */ - void addHqToPlanIds(const QMap> &hqToPlanIds); + void addHqToPlanIds(const QMap> &hqToPlanIds); /** * @brief Iterate and send GetFileContentDataRequest to get File Information HQ */ @@ -44,27 +45,27 @@ public: */ void createGeometryFromReport(const HqReportData &data); -private: + private: void checkIfAllFinished(); -protected: + protected: void onGetFileContentDataReply(const FileManagement::GetFileContentDataReply &reply) override; void onFileContentModifyReply(const Core::FunctionReplyObject &reply) override; void onFileContentRemoveReply(const Core::FunctionReplyObject &reply) override; -public slots: + public slots: void onRequestsFinished(); -signals: + signals: /** * @brief checks if all getFileContentDataRequests are finished */ void allRequestsFinished(); -private: + private: LOGGER_T m_logger; LtsSession::LtsSession *m_session{nullptr}; std::shared_ptr m_flmDtc; std::shared_ptr m_flmFtc; - std::shared_ptr m_ppmDtc; + std::shared_ptr m_ppmDtc; SituationMap::GeometryModel *m_geometryModel{nullptr}; QList m_planNodes; @@ -72,9 +73,9 @@ private: int m_partyId; int m_pendingRequests{0}; - - QMap> m_hqToPlanIds; /// Map> - QMap m_hqToPlanIdsLookup; /// Map for Lookup - QMap> m_convertedHqToPlanIds; /// Map> -}; // class FlmHqReportConverter -} // namespace FileManagement + FlmHqReportJsonParser m_parser; + QMap> m_hqToPlanIds; /// Map> + QMap m_hqToPlanIdsLookup; /// Map for Lookup + QMap> m_convertedHqToPlanIds; /// Map> +}; // class FlmHqReportConverter +} // namespace FileManagement diff --git a/Lts/Plugins/FileManagement/Gui/Explorer/HQReports/flm_hq_report_edit.cpp b/Lts/Plugins/FileManagement/Gui/Explorer/HQReports/flm_hq_report_edit.cpp index 3981d417..eed5ceb6 100755 --- a/Lts/Plugins/FileManagement/Gui/Explorer/HQReports/flm_hq_report_edit.cpp +++ b/Lts/Plugins/FileManagement/Gui/Explorer/HQReports/flm_hq_report_edit.cpp @@ -136,7 +136,7 @@ bool HQReportEdit::init(LtsSession::LtsSession *session, int partyId) m_ui->listViewPlan->setDragDropMode(QAbstractItemView::DropOnly); m_ui->listViewPlan->setDefaultDropAction(Qt::CopyAction); m_ui->listViewPlan->setDropIndicatorShown(true); - + m_ui->listViewPlan->setHeaderHidden(true); // configure listViewMessage m_ui->listViewMessage->setDragDropMode(QAbstractItemView::DragOnly); m_ui->listViewMessage->setDefaultDropAction(Qt::CopyAction); @@ -151,31 +151,6 @@ bool HQReportEdit::init(LtsSession::LtsSession *session, int partyId) return false; } - // init models - qDeleteAll(m_hqModels); - m_hqModels.clear(); - - qDeleteAll(m_planModels); - m_planModels.clear(); - - for (int index = 0; index < m_ui->cboParties->count(); ++index) - { - const int partyId = m_ui->cboParties->itemData(index).toInt(); - createModels(partyId); - } - - // configure listViewPlan - m_ui->listViewPlan->setDragDropMode(QAbstractItemView::DropOnly); - m_ui->listViewPlan->setDefaultDropAction(Qt::MoveAction); - m_ui->listViewPlan->setDropIndicatorShown(true); - - // configure listViewMessage - m_ui->listViewMessage->setDragDropMode(QAbstractItemView::DragOnly); - m_ui->listViewMessage->setDefaultDropAction(Qt::MoveAction); - m_ui->listViewMessage->setDropIndicatorShown(true); - - onPartyChanged(); - connect(m_ui->cboParties, qOverload(&QComboBox::currentIndexChanged), this, &HQReportEdit::onPartyChanged); int partyIndex = m_ui->cboParties->findData(partyId); // in case of notification: onPartyChanged() is called when index changes @@ -190,11 +165,16 @@ void HQReportEdit::createModels(const int partyId) if (partyFolderId == 0) { WARNING_LOG(m_logger) << "No partyFolderId found for partyId " << partyId; + delete m_planModels.take(partyId); + delete m_hqModels.take(partyId); return; } const int hqReportFolderId = m_flmDtc->findFolder(partyFolderId, QStringLiteral("Messages")); + delete m_planModels.take(partyId); + delete m_hqModels.take(partyId); + auto *planModel = new FlmHQReportModel(m_ui->listViewPlan); if (!planModel->init(m_session, partyFolderId, FileType::inner_enum::TacticalPlan)) { @@ -220,17 +200,15 @@ void HQReportEdit::createModels(const int partyId) bool HQReportEdit::apply() { - QMap> allHqToPlanIds; + QMap> allHqToPlanIds; for (auto it = m_planModels.begin(); it != m_planModels.end(); ++it) { - QMap> hqToPlanIds = it.value()->getHQToPlan(); // + QMap> hqToPlanIds = it.value()->getChangedPlans(); // - for (auto planId : hqToPlanIds.keys()) + for (auto it = hqToPlanIds.constBegin(); it != hqToPlanIds.constEnd(); ++it) { - allHqToPlanIds[planId].append(hqToPlanIds[planId]); - - it.value()->clearMovedData(); + allHqToPlanIds[it.key()] += it.value(); } } @@ -254,14 +232,10 @@ void HQReportEdit::retranslate() { translate(m_ui, tr("HQ Report")); } void HQReportEdit::onPartyChanged(int index) { Q_UNUSED(index); - const int currentPartyId = m_ui->cboParties->currentData().toInt(); + DEBUG_LOG(m_logger) << "onPartyChanged " << currentPartyId; - if (!m_planModels.contains(currentPartyId) || !m_hqModels.contains(currentPartyId)) - { - INFO_LOG(m_logger) << "Models for party" << currentPartyId << "not found. Attempting to create..."; - createModels(currentPartyId); - } + createModels(currentPartyId); QAbstractItemModel *hqModel = m_hqModels.value(currentPartyId, nullptr); QAbstractItemModel *planModel = m_planModels.value(currentPartyId, nullptr); diff --git a/Lts/Plugins/FileManagement/Gui/Explorer/HQReports/flm_hq_report_edit.ui b/Lts/Plugins/FileManagement/Gui/Explorer/HQReports/flm_hq_report_edit.ui index e3031bf1..8994f963 100755 --- a/Lts/Plugins/FileManagement/Gui/Explorer/HQReports/flm_hq_report_edit.ui +++ b/Lts/Plugins/FileManagement/Gui/Explorer/HQReports/flm_hq_report_edit.ui @@ -15,7 +15,7 @@ - + diff --git a/Lts/Plugins/FileManagement/Gui/Explorer/HQReports/flm_hq_report_model.cpp b/Lts/Plugins/FileManagement/Gui/Explorer/HQReports/flm_hq_report_model.cpp index a82f1b76..3f5ea4de 100755 --- a/Lts/Plugins/FileManagement/Gui/Explorer/HQReports/flm_hq_report_model.cpp +++ b/Lts/Plugins/FileManagement/Gui/Explorer/HQReports/flm_hq_report_model.cpp @@ -1,14 +1,15 @@ #include "flm_hq_report_model.h" +#include +#include #include #include - namespace FileManagement { FlmHQReportModel::FlmHQReportModel(QObject *parent) - : QAbstractListModel(parent) - , m_logger(getLogger("HQReportModel")) -{ + : QAbstractItemModel(parent) + , m_logger(getLogger("HQReportModel")) +{ } bool FlmHQReportModel::init(LtsSession::LtsSession *session, int contentFolderId, const FileType &fileType) @@ -32,7 +33,7 @@ bool FlmHQReportModel::init(LtsSession::LtsSession *session, int contentFolderId m_flmDtc->enableFileContent(); m_flmDtc->waitForHistoricalDataFileContent(3000); - m_flmDtc->fileContents([this](const FileContent &content){onFileContentChanged(content, DataModification::eAdded);}); + m_flmDtc->fileContents([this](const FileContent &content) { onFileContentChanged(content, DataModification::eAdded); }); connect(m_flmDtc.get(), &Interface::Dtc::fileContentChanged, this, &FlmHQReportModel::onFileContentChanged); @@ -41,25 +42,74 @@ bool FlmHQReportModel::init(LtsSession::LtsSession *session, int contentFolderId int FlmHQReportModel::rowCount(const QModelIndex &parent) const { - if (parent.isValid()) + if (!parent.isValid()) + return m_data.count(); + + if (parent.internalId() != 0) return 0; - return m_data.count(); + + if (parent.row() >= 0 && parent.row() < m_data.size()) + { + const HQData &data = m_data.at(parent.row()); + auto it = m_movedData.constFind(data.id); + if (it != m_movedData.constEnd()) + return it.value().count(); + } + return 0; +} + +QModelIndex FlmHQReportModel::parent(const QModelIndex &index) const +{ + + if (!index.isValid()) + return QModelIndex(); + + quintptr internalId = index.internalId(); + + if (internalId == 0) + return QModelIndex(); + + int parentRow = static_cast(internalId) - 1; + + return createIndex(parentRow, 0, quintptr(0)); } QVariant FlmHQReportModel::data(const QModelIndex &index, int role) const { if (!index.isValid()) - return QVariant(); + return {}; if (role == Qt::DisplayRole) - return createText(index.row()); + { + quintptr internalId = index.internalId(); - return QVariant(); + if (internalId == 0) + { + if (index.row() >= 0 && index.row() < m_data.size()) + return m_data.at(index.row()).name; + } + else // Child-Item + { + int parentRow = static_cast(internalId) - 1; + if (parentRow >= 0 && parentRow < m_data.size()) + { + const HQData &parentData = m_data.at(parentRow); + auto it = m_movedData.constFind(parentData.id); + if (it != m_movedData.constEnd()) + { + const QList &children = it.value(); + if (index.row() >= 0 && index.row() < children.size()) + return children.at(index.row()).name; + } + } + } + } + return {}; } Qt::ItemFlags FlmHQReportModel::flags(const QModelIndex &index) const { - Qt::ItemFlags defaultFlags = QAbstractListModel::flags(index); + Qt::ItemFlags defaultFlags = QAbstractItemModel::flags(index); if (!index.isValid()) return defaultFlags; @@ -67,15 +117,9 @@ Qt::ItemFlags FlmHQReportModel::flags(const QModelIndex &index) const return defaultFlags | Qt::ItemIsDragEnabled | Qt::ItemIsDropEnabled; } -Qt::DropActions FlmHQReportModel::supportedDropActions() const -{ - return Qt::CopyAction; -} +Qt::DropActions FlmHQReportModel::supportedDropActions() const { return Qt::CopyAction; } -Qt::DropActions FlmHQReportModel::supportedDragActions() const -{ - return Qt::CopyAction; -} +Qt::DropActions FlmHQReportModel::supportedDragActions() const { return Qt::CopyAction; } QStringList FlmHQReportModel::mimeTypes() const { @@ -109,8 +153,34 @@ QMimeData *FlmHQReportModel::mimeData(const QList &indexes) const { if (index.isValid()) { - HQData md = m_data.at(index.row()); - stream << md.id << md.name;// Serialize your custom metadata to QByteArray + HQData md; + QString visibleName = index.data(Qt::DisplayRole).toString(); + + if (index.internalId() != 0) + { + int parentRow = static_cast(index.internalId()) - 1; + if (parentRow >= 0 && parentRow < m_data.size()) + { + const HQData &parentData = m_data.at(parentRow); + const auto &children = m_movedData.value(parentData.id); + if (index.row() >= 0 && index.row() < children.size()) + { + md = children.at(index.row()); + } + } + } + else + { + if (index.row() >= 0 && index.row() < m_data.size()) + { + const HQData &originalData = m_data.at(index.row()); + md.id = originalData.id; + md.name = visibleName; + md.properties = originalData.properties; + } + } + md.name = visibleName; + stream << md.id << md.name; } } mimeData->setData(mimeType, encodedData); @@ -128,17 +198,20 @@ bool FlmHQReportModel::dropMimeData(const QMimeData *data, Qt::DropAction action QByteArray encodedData = data->data(mimeType); QDataStream stream(&encodedData, QIODevice::ReadOnly); + if (parent.isValid() && parent.row() >= 0 && parent.row() < m_data.size()) + DEBUG_LOG(m_logger) << "DROP ZIEL (Parent im Tree): " << m_data.at(parent.row()).name; + while (!stream.atEnd()) { HQData md; - stream >> md.id >> md.name; - addMovedData(parent.row(), md); + DEBUG_LOG(m_logger) << "DROP INHALT aus Stream -> ID: " << md.id << ", NAME: " << md.name; + + addMovedData(parent, md); } emit dataAddedOrRemoved(); - return true; } @@ -147,52 +220,106 @@ bool FlmHQReportModel::canDropMimeData(const QMimeData *data, Qt::DropAction act Q_UNUSED(row) Q_UNUSED(column) - if (!parent.isValid() || - !data->hasFormat(mimeType) || - action != Qt::CopyAction || - parent.row() < 0 || - parent.row() >= m_data.size()) + if (!parent.isValid() || !data->hasFormat(mimeType) || action != Qt::CopyAction || parent.row() < 0 || parent.row() >= m_data.size()) return false; QByteArray encodedData = data->data(mimeType); QDataStream stream(&encodedData, QIODevice::ReadOnly); - const HQData ¤tData = m_data.at(parent.row()); - if (!m_movedData.contains(currentData.id)) + const HQData ¤tParentData = m_data.at(parent.row()); + + if (!m_movedData.contains(currentParentData.id)) return true; - const QList &movedDataListForCurrentData = m_movedData.value(currentData.id); + const QList &existingChildren = m_movedData.value(currentParentData.id); while (!stream.atEnd()) { - HQData movedData; + HQData incomingData; + stream >> incomingData.id >> incomingData.name; - stream >> movedData.id >> movedData.name; - - if (movedDataListForCurrentData.contains(movedData)) // we do not allow double entries - return false; + for (const HQData &child : existingChildren) + { + if (child.id == incomingData.id) + return false; + } } - return true; } +QModelIndex FlmHQReportModel::index(int row, int column, const QModelIndex &parent) const +{ + if (!hasIndex(row, column, parent)) + return QModelIndex(); + + if (!parent.isValid()) + { + if (row >= 0 && row < m_data.size()) + return createIndex(row, column, quintptr(0)); // internalId = 0 für Parents + } + else + { + if (parent.internalId() == 0) + { + int parentRow = parent.row(); + return createIndex(row, column, quintptr(parentRow + 1)); + } + } + + return QModelIndex(); +} void FlmHQReportModel::addHQReportData(const HQData &data) { - beginInsertRows(QModelIndex(), rowCount(), rowCount()); - m_data.append(data); + QList childProperties; + HQData copyData = data; + + if (!data.properties.empty()) + { + QJsonDocument doc = QJsonDocument::fromJson(QByteArray::fromStdString(data.properties)); + // Hole Einträge aus den properties + if (doc.isArray()) + { + QJsonArray jsonArray = doc.array(); + for (const QJsonValue &value : jsonArray) + { + QString prop = value.toString().trimmed(); + if (!prop.isEmpty() && prop != data.name) + { + HQData childData; + childData.id = data.id; + childData.name = prop; + copyData.children.insert(childData.id); + childProperties.append(childData); + } + } + } + else + { + QString prop = QString::fromStdString(data.properties).trimmed(); + if (!prop.isEmpty() && prop != data.name) + { + HQData childData; + childData.id = data.id; + childData.name = prop; + childProperties.append(childData); + } + } + } + + beginInsertRows(QModelIndex(), m_data.count(), m_data.count()); + m_data.append(copyData); + + if (!childProperties.isEmpty()) + m_movedData.insert(data.id, childProperties); endInsertRows(); } void FlmHQReportModel::deleteHQReportData(const HQData &data) { - beginInsertRows(QModelIndex(), rowCount(), rowCount()); - endInsertRows(); - const int zeile = m_data.indexOf(data); - if (zeile == -1) { + if (zeile == -1) return; - } beginRemoveRows(QModelIndex(), zeile, zeile); m_data.removeAt(zeile); @@ -202,41 +329,54 @@ void FlmHQReportModel::deleteHQReportData(const HQData &data) void FlmHQReportModel::onFileContentChanged(const FileContent &content, DataModification modType) { + if (content.folderId() != m_contentFolderId || content.fileType() != m_fileType) + return; + HQData data; data.id = content.id(); data.name = QString::fromStdString(content.name()); - if (content.folderId() != m_contentFolderId || content.fileType() != m_fileType) - return; + data.properties = content.properties(); - if (content.fileStatus() == FileStatus::Deleted) { - if (modType == DataModification::eModified || modType == DataModification::eAdded) { - deleteHQReportData(data); - } - } else if (modType == DataModification::eAdded) { - addHQReportData(data); + DEBUG_LOG(m_logger) << "FlmHQReportModel::onFileContentChanged " << "properties " << data.properties << " " << " Name: " << data.name; + + if (content.fileStatus() == FileStatus::Deleted) + { + if (modType == DataModification::eModified || modType == DataModification::eAdded) + deleteHQReportData(data); + } + else if (modType == DataModification::eAdded) + { + addHQReportData(data); } } -int FlmHQReportModel::folderId() const -{ - return m_contentFolderId; -} +int FlmHQReportModel::folderId() const { return m_contentFolderId; } -QMap> FlmHQReportModel::getHQToPlan() const +QMap> FlmHQReportModel::getChangedPlans() const { - QMap> hqToPlan; + QMap> hqToPlan; for (auto it = m_movedData.constBegin(); it != m_movedData.constEnd(); ++it) { const QList &movedData = it.value(); - QList hqIds; + QSet hqIds; hqIds.reserve(movedData.size()); for (const HQData ¤tData : movedData) - hqIds.append(currentData.id); + hqIds.insert(currentData.id); - hqToPlan.insert(it.key(), hqIds); + HQData myPlan; + for (const auto &plan : m_data) + { + if (plan.id == it.key()) + { + myPlan = plan; + break; + } + } + if (myPlan.children != hqIds) + hqToPlan.insert(it.key(), hqIds); } return hqToPlan; @@ -244,51 +384,47 @@ QMap> FlmHQReportModel::getHQToPlan() const void FlmHQReportModel::clearMovedData() { + if (m_movedData.isEmpty()) + return; + + beginResetModel(); m_movedData.clear(); + endResetModel(); emit dataAddedOrRemoved(); - emit dataChanged(index(0, 0), index(rowCount() - 1, 0)); } -QString FlmHQReportModel::createText(int dataIndex) const +void FlmHQReportModel::addMovedData(const QModelIndex &parentIndex, const HQData &movedData) { - DEBUG_LOG(m_logger) << LOGFUNCTION << " dataIndex: " << dataIndex; - - if (dataIndex < 0 || dataIndex >= m_data.size()) - return QString(); - - const HQData &data = m_data.at(dataIndex); - - if (!m_movedData.contains(data.id)) - { - DEBUG_LOG(m_logger) << "No moved data for " << data.name; - return data.name; - } - - const QList &movedData = m_movedData.value(data.id); - QStringList movedDataNames; - - movedDataNames.reserve(movedData.size()); - - for (const HQData ¤tMovedData : movedData) - movedDataNames.append(currentMovedData.name); - - return QString(QStringLiteral("%1 (%2)")).arg(data.name).arg(movedDataNames.join(QLatin1Char(','))); -} - -void FlmHQReportModel::addMovedData(int dataIndex, const HQData &movedData) -{ - DEBUG_LOG(m_logger) << LOGFUNCTION << " dataIndex: " << dataIndex << ", movedData.id: " << movedData.id << ", movedData.name: " << movedData.name; - + int dataIndex = parentIndex.row(); if (dataIndex < 0 || dataIndex >= m_data.size()) return; const HQData &data = m_data.at(dataIndex); + if (data.id == movedData.id) + { + DEBUG_LOG(m_logger) << "DROP ABGEWIESEN: PlanId entspricht der ReportId (" << data.id << ")"; + return; + } + if (!m_movedData.contains(data.id)) m_movedData.insert(data.id, QList()); - m_movedData[data.id].append(movedData); -} + const QList &existingChildren = m_movedData[data.id]; + for (const HQData &child : existingChildren) + { + if (child.id == movedData.id || child.name.trimmed() == movedData.name.trimmed()) + { + DEBUG_LOG(m_logger) << "DROP ABGEWIESEN: Element '" << movedData.name << "' ist bereits vorhanden."; + return; + } + } + int newRow = m_movedData[data.id].size(); + + beginInsertRows(parentIndex, newRow, newRow); + m_movedData[data.id].append(movedData); + endInsertRows(); } +} // namespace FileManagement diff --git a/Lts/Plugins/FileManagement/Gui/Explorer/HQReports/flm_hq_report_model.h b/Lts/Plugins/FileManagement/Gui/Explorer/HQReports/flm_hq_report_model.h index e9be248e..0ac140c6 100755 --- a/Lts/Plugins/FileManagement/Gui/Explorer/HQReports/flm_hq_report_model.h +++ b/Lts/Plugins/FileManagement/Gui/Explorer/HQReports/flm_hq_report_model.h @@ -1,14 +1,13 @@ #pragma once - -#include #include -#include -#include -#include #include #include +#include +#include +#include +#include #include #include @@ -22,7 +21,7 @@ namespace Interface { class Dtc; } -} +} // namespace FileManagement namespace LtsSession { @@ -33,21 +32,19 @@ namespace FileManagement { struct HQData { - int id; + int id{0}; QString name; + std::string properties; + QSet children; - bool operator==(const HQData &other) const - { - return id == other.id && - name == other.name; - } + bool operator==(const HQData &other) const { return id == other.id && name == other.name; } }; -class FlmHQReportModel : public QAbstractListModel +class FlmHQReportModel : public QAbstractItemModel { Q_OBJECT -public: + public: explicit FlmHQReportModel(QObject *parent = nullptr); bool init(LtsSession::LtsSession *session, int contentFolderId, const FileManagement::FileType &fileType); @@ -63,35 +60,37 @@ public: QMimeData *mimeData(const QList &indexes) const override; bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override; bool canDropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) const override; + QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const override; + int columnCount(const QModelIndex &parent = QModelIndex()) const override { return 1; } + QModelIndex parent(const QModelIndex &index) const override; void addHQReportData(const HQData &data); void deleteHQReportData(const HQData &data); int folderId() const; - QMap> getHQToPlan() const; + QMap> getChangedPlans() const; void clearMovedData(); -private: - QString createText(int dataIndex) const; - void addMovedData(int dataIndex, const HQData &movedData); + private: + void addMovedData(const QModelIndex &parentIndex, const HQData &movedData); -private Q_SLOTS: + private Q_SLOTS: void onFileContentChanged(const FileContent &content, DataModification modType); -Q_SIGNALS: + Q_SIGNALS: void dataAddedOrRemoved(); -private: + private: QList m_data; QMap> m_movedData; const QString mimeType = QStringLiteral("application/x-custom-hqdata"); - int m_contentFolderId {-1}; + int m_contentFolderId{-1}; FileManagement::FileType m_fileType; std::shared_ptr m_flmDtc; LOGGER_T m_logger; }; -}//namespace FileManagement +} // namespace FileManagement Q_DECLARE_METATYPE(FileManagement::HQData) diff --git a/Lts/Plugins/MarkerManagement/Gui/MarkerEdit/mrk_edit_gui_plugin.h b/Lts/Plugins/MarkerManagement/Gui/MarkerEdit/mrk_edit_gui_plugin.h index 8440bd9a..e3bbea11 100755 --- a/Lts/Plugins/MarkerManagement/Gui/MarkerEdit/mrk_edit_gui_plugin.h +++ b/Lts/Plugins/MarkerManagement/Gui/MarkerEdit/mrk_edit_gui_plugin.h @@ -15,7 +15,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/Lts/Plugins/ParticipantManagement/CMakeLists.txt b/Lts/Plugins/ParticipantManagement/CMakeLists.txt index ce156296..ca6177b8 100755 --- a/Lts/Plugins/ParticipantManagement/CMakeLists.txt +++ b/Lts/Plugins/ParticipantManagement/CMakeLists.txt @@ -101,3 +101,11 @@ ADD_INTERFACE_LIBRARY( ${CMAKE_CURRENT_SOURCE_DIR}/../../ ) ENDIF() + +# GuiElementInterface +ADD_INTERFACE_LIBRARY( + GuiElementInterface + ${CMAKE_CURRENT_SOURCE_DIR}/participant_info_gui_element_interface.h + ${CMAKE_CURRENT_SOURCE_DIR}/.. + Qt5::Core LtsWidgets +) diff --git a/Lts/Plugins/ParticipantManagement/Gui/ParticipantInfo/CMakeLists.txt b/Lts/Plugins/ParticipantManagement/Gui/ParticipantInfo/CMakeLists.txt index affdb345..07e52932 100755 --- a/Lts/Plugins/ParticipantManagement/Gui/ParticipantInfo/CMakeLists.txt +++ b/Lts/Plugins/ParticipantManagement/Gui/ParticipantInfo/CMakeLists.txt @@ -100,6 +100,8 @@ NGL_TARGET_LINK_LIBRARIES(PpmParticipantInfoGuiPlugin AesDataPluginInterface LtsDataView IsmDataPluginInterface + LtsPluginLoader + GuiElementInterface ) NGL_INSTALL_TARGET(PpmParticipantInfoGuiPlugin) diff --git a/Lts/Plugins/ParticipantManagement/Gui/ParticipantInfo/participant_info_dialog.cpp b/Lts/Plugins/ParticipantManagement/Gui/ParticipantInfo/participant_info_dialog.cpp index 6b1035c3..91d9346d 100755 --- a/Lts/Plugins/ParticipantManagement/Gui/ParticipantInfo/participant_info_dialog.cpp +++ b/Lts/Plugins/ParticipantManagement/Gui/ParticipantInfo/participant_info_dialog.cpp @@ -33,8 +33,10 @@ #include #include #include +#include #include +#include #include #include @@ -471,8 +473,38 @@ bool ParticipantInfoDialog::setUiValues() ERROR_LOG(m_logger) << LOGFUNCTION << m_typeClass; } +#if LTS_DEBUG + //-- start Test Gui Elment plugin + + auto cb = [this](const LtsPluginManager::PluginInstance &pi) { return loadGuiElementPLugin(pi);}; + LtsPluginManager::LtsPluginLoader::getInstance()->loadPlugins(LtsPluginManager::PluginType::GUI_ELEMENT, + cb, + QStringList()); + + //-- end Test Gui Element plugin +#endif return true; } + +bool ParticipantInfoDialog::loadGuiElementPLugin(const LtsPluginManager::PluginInstance &pi) +{ + WARNING_LOG(m_logger)<<">>>> GUI Element pluginName: "<(pi.plugin); + + if (guiElement->pluginName() == QStringLiteral("KeyValueGuiElement_XY")) + { + if (!guiElement->init(m_session, m_participant.id())) + return false; + + m_ui->gridLayout_2->addWidget(guiElement->createGuiElement(this)); + return true; + } + + + + + return false; +} //SLOTS void ParticipantInfoDialog::onDynamicParticipantDataChanged(const DynamicParticipantData &data, DataModification modType) diff --git a/Lts/Plugins/ParticipantManagement/Gui/ParticipantInfo/participant_info_dialog.h b/Lts/Plugins/ParticipantManagement/Gui/ParticipantInfo/participant_info_dialog.h index ab9f5aa3..12271b20 100755 --- a/Lts/Plugins/ParticipantManagement/Gui/ParticipantInfo/participant_info_dialog.h +++ b/Lts/Plugins/ParticipantManagement/Gui/ParticipantInfo/participant_info_dialog.h @@ -110,6 +110,7 @@ private: bool initTargetConfig(bool bShow); // Target (L400) bool initTargetConfigL400(bool bShow); + bool loadGuiElementPLugin(const LtsPluginManager::PluginInstance &pi); private Q_SLOTS: diff --git a/Lts/Plugins/ParticipantManagement/Gui/PartyEdit/ppm_party_edit.cpp b/Lts/Plugins/ParticipantManagement/Gui/PartyEdit/ppm_party_edit.cpp index 71c16a63..7957f2dc 100755 --- a/Lts/Plugins/ParticipantManagement/Gui/PartyEdit/ppm_party_edit.cpp +++ b/Lts/Plugins/ParticipantManagement/Gui/PartyEdit/ppm_party_edit.cpp @@ -54,7 +54,7 @@ PartyEdit::~PartyEdit() void PartyEdit::retranslate() { - translate(m_ui, m_dtc->party(m_partyId), tr("Party")); + translate(m_ui, m_dtc->party(m_partyId), trPartyName(m_dtc->party(m_partyId).name()), tr("Party")); m_ppmGuiCbxIfc->fillRoleComboBox(m_ui->cbRole); m_ppmGuiCbxIfc->fillHlaForceIdentifierComboBox(m_ui->cbHlaForceIdentifier); } diff --git a/Lts/Plugins/ParticipantManagement/Gui/PartyEdit/ppm_party_model.cpp b/Lts/Plugins/ParticipantManagement/Gui/PartyEdit/ppm_party_model.cpp index 89a8d0c4..27a0c909 100755 --- a/Lts/Plugins/ParticipantManagement/Gui/PartyEdit/ppm_party_model.cpp +++ b/Lts/Plugins/ParticipantManagement/Gui/PartyEdit/ppm_party_model.cpp @@ -105,14 +105,11 @@ QVariant PartyModel::data(const QModelIndex &index, int role) const QString connectState; switch (status.underlying()) { - case ParticipantManagement::ConnectState::Connected: - connectState = tr("Connected"); - break; - case ParticipantManagement::ConnectState::NoHeartbeat: - connectState = tr("No Heartbeat"); + case ParticipantManagement::ConnectState::Undefined: + connectState = QStringLiteral(""); break; default: - connectState = QStringLiteral(""); + connectState = ParticipantManagement::toString(status); break; } return connectState; diff --git a/Lts/Plugins/ParticipantManagement/participant_info_gui_element_interface.h b/Lts/Plugins/ParticipantManagement/participant_info_gui_element_interface.h new file mode 100644 index 00000000..df06b694 --- /dev/null +++ b/Lts/Plugins/ParticipantManagement/participant_info_gui_element_interface.h @@ -0,0 +1,23 @@ +#pragma once + +#include +#include + +namespace LtsSession +{ +class LtsSession; +} + +class GuiElementInterface +{ +public: + GuiElementInterface() = default; + virtual ~GuiElementInterface() = default; + virtual QString pluginName() = 0; + virtual QWidget* createGuiElement(QWidget *parent = nullptr) = 0; + virtual bool init(LtsSession::LtsSession *session, int participantId = 0) = 0; +}; + +// Eindeutige ID für das Qt-Plugin-System +#define IGuiElementPlugin "gui_element:3:participantInfo.guiElement" +Q_DECLARE_INTERFACE(GuiElementInterface, IGuiElementPlugin) diff --git a/Lts/Plugins/PresentationManagement/Gui/Script/ScriptEditor/pre_script_dialog.h b/Lts/Plugins/PresentationManagement/Gui/Script/ScriptEditor/pre_script_dialog.h index 81d65f1e..66f0c464 100755 --- a/Lts/Plugins/PresentationManagement/Gui/Script/ScriptEditor/pre_script_dialog.h +++ b/Lts/Plugins/PresentationManagement/Gui/Script/ScriptEditor/pre_script_dialog.h @@ -15,7 +15,7 @@ #include "pre_storyboard.h" // QPointer #include "filter_topic.h" -#include +#include #include #include #include diff --git a/Lts/Plugins/PresentationManagement/Gui/Script/ScriptTimelineEditor/pre_script_dialog.h b/Lts/Plugins/PresentationManagement/Gui/Script/ScriptTimelineEditor/pre_script_dialog.h index a020bee6..c693b6f4 100755 --- a/Lts/Plugins/PresentationManagement/Gui/Script/ScriptTimelineEditor/pre_script_dialog.h +++ b/Lts/Plugins/PresentationManagement/Gui/Script/ScriptTimelineEditor/pre_script_dialog.h @@ -14,7 +14,7 @@ #include "pre_journal_types.h" #include "pre_utils.h" -#include +#include #include #include #include diff --git a/Lts/Plugins/SituationReplayManagement/Data/srm_data_plugin.cpp b/Lts/Plugins/SituationReplayManagement/Data/srm_data_plugin.cpp index baac544e..1c4d8c31 100755 --- a/Lts/Plugins/SituationReplayManagement/Data/srm_data_plugin.cpp +++ b/Lts/Plugins/SituationReplayManagement/Data/srm_data_plugin.cpp @@ -9,12 +9,12 @@ #include "srm_data_plugin.h" -#include +#include #include #include #include #include -#include +#include #include #include #include diff --git a/Lts/Plugins/SituationReplayManagement/Gui/ReplayManagement/replay_dialog.h b/Lts/Plugins/SituationReplayManagement/Gui/ReplayManagement/replay_dialog.h index e2ac7d0b..31553369 100755 --- a/Lts/Plugins/SituationReplayManagement/Gui/ReplayManagement/replay_dialog.h +++ b/Lts/Plugins/SituationReplayManagement/Gui/ReplayManagement/replay_dialog.h @@ -12,7 +12,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/Lts/Plugins/SituationReplayManagement/Gui/ReplayManagement/replay_dialog_model.h b/Lts/Plugins/SituationReplayManagement/Gui/ReplayManagement/replay_dialog_model.h index e9dace6a..04a1805a 100755 --- a/Lts/Plugins/SituationReplayManagement/Gui/ReplayManagement/replay_dialog_model.h +++ b/Lts/Plugins/SituationReplayManagement/Gui/ReplayManagement/replay_dialog_model.h @@ -10,7 +10,7 @@ #pragma once #include -#include +#include #include #include diff --git a/Lts/Plugins/SituationReplayManagement/srm_data_plugin_interface.h b/Lts/Plugins/SituationReplayManagement/srm_data_plugin_interface.h index 5154e216..84d9a076 100755 --- a/Lts/Plugins/SituationReplayManagement/srm_data_plugin_interface.h +++ b/Lts/Plugins/SituationReplayManagement/srm_data_plugin_interface.h @@ -11,7 +11,7 @@ #include #include -#include +#include namespace Core { diff --git a/Lts/Projects/Guez/lts-cc.conf b/Lts/Projects/Guez/lts-cc.conf index 5e7f4a51..ff2ea17a 100755 --- a/Lts/Projects/Guez/lts-cc.conf +++ b/Lts/Projects/Guez/lts-cc.conf @@ -457,6 +457,10 @@ UsePvSan=true # Default -> @Point(0 0) ;webSocketServerPortRange/3=@Point(0 0) +# ADLER WebSocket +# sets the interval, in milliseconds, after which the ADLER WebSocket connection is reported as disconnected. +AdlerKeepalive=30000 + ############################# # IPS/OPS GPS transition # DistanceIpsToGps=0 Distance of the first GPS coordinate to the building after an IPS position default = 0 [m] (int) diff --git a/Lts/Proxies/Buildings/dds_handler.cpp b/Lts/Proxies/Buildings/dds_handler.cpp index cc648a44..158a4d09 100755 --- a/Lts/Proxies/Buildings/dds_handler.cpp +++ b/Lts/Proxies/Buildings/dds_handler.cpp @@ -8,7 +8,7 @@ #include "dds_handler.h" -#include +#include namespace Buildings { diff --git a/Lts/Proxies/Buildings/main_handler.cpp b/Lts/Proxies/Buildings/main_handler.cpp index ac379629..4919fcf3 100755 --- a/Lts/Proxies/Buildings/main_handler.cpp +++ b/Lts/Proxies/Buildings/main_handler.cpp @@ -8,7 +8,7 @@ #include "main_handler.h" #include "settings.h" -#include +#include #include #include diff --git a/Lts/Proxies/CombatNetRadio/dds_handler.cpp b/Lts/Proxies/CombatNetRadio/dds_handler.cpp index 06feb5ab..37008bf7 100755 --- a/Lts/Proxies/CombatNetRadio/dds_handler.cpp +++ b/Lts/Proxies/CombatNetRadio/dds_handler.cpp @@ -12,7 +12,7 @@ #include #include #include -#include +#include namespace CombatNetRadio { diff --git a/Lts/Proxies/CombatNetRadio/main_handler.cpp b/Lts/Proxies/CombatNetRadio/main_handler.cpp index 97386beb..eaa4b05c 100755 --- a/Lts/Proxies/CombatNetRadio/main_handler.cpp +++ b/Lts/Proxies/CombatNetRadio/main_handler.cpp @@ -11,7 +11,7 @@ #include "active_exercises.h" #include "exercise_manager.h" #include "WebSocketInterface/websocket_interface_handler.h" -#include +#include using namespace CombatNetRadio; diff --git a/Lts/Proxies/ComponentMonitor/dds_handler.cpp b/Lts/Proxies/ComponentMonitor/dds_handler.cpp index c1c8b9f1..782c8ad0 100755 --- a/Lts/Proxies/ComponentMonitor/dds_handler.cpp +++ b/Lts/Proxies/ComponentMonitor/dds_handler.cpp @@ -12,7 +12,7 @@ #include "cmo_fts.h" #include -#include +#include #include diff --git a/Lts/Proxies/ComponentMonitor/dds_handler.h b/Lts/Proxies/ComponentMonitor/dds_handler.h index d74005ad..fe139c04 100755 --- a/Lts/Proxies/ComponentMonitor/dds_handler.h +++ b/Lts/Proxies/ComponentMonitor/dds_handler.h @@ -9,7 +9,7 @@ #pragma once #include -#include +#include #include #include diff --git a/Lts/Proxies/ComponentMonitor/main_handler.cpp b/Lts/Proxies/ComponentMonitor/main_handler.cpp index 2c010922..94868e31 100755 --- a/Lts/Proxies/ComponentMonitor/main_handler.cpp +++ b/Lts/Proxies/ComponentMonitor/main_handler.cpp @@ -10,7 +10,7 @@ #include #include -#include +#include namespace ComponentMonitor { diff --git a/Lts/Proxies/DifferentialGPS/dds_handler.cpp b/Lts/Proxies/DifferentialGPS/dds_handler.cpp index 5a0f44d3..a40a1fa4 100755 --- a/Lts/Proxies/DifferentialGPS/dds_handler.cpp +++ b/Lts/Proxies/DifferentialGPS/dds_handler.cpp @@ -7,7 +7,7 @@ */ #include "dds_handler.h" -#include +#include namespace DifferentialGPS { diff --git a/Lts/Proxies/DifferentialGPS/mainthread.cpp b/Lts/Proxies/DifferentialGPS/mainthread.cpp index fcfcd5ab..04bd1b3b 100755 --- a/Lts/Proxies/DifferentialGPS/mainthread.cpp +++ b/Lts/Proxies/DifferentialGPS/mainthread.cpp @@ -11,7 +11,7 @@ #include #include -#include +#include namespace DifferentialGPS { diff --git a/Lts/Proxies/GuezNasat/initialization.cpp b/Lts/Proxies/GuezNasat/initialization.cpp index e76e4665..85bba163 100755 --- a/Lts/Proxies/GuezNasat/initialization.cpp +++ b/Lts/Proxies/GuezNasat/initialization.cpp @@ -19,7 +19,7 @@ #include #include -#include +#include #include diff --git a/Lts/Proxies/HighLevelArchitecture/Apache/dds_handler.cpp b/Lts/Proxies/HighLevelArchitecture/Apache/dds_handler.cpp index 2f2b7bbe..f5edb473 100755 --- a/Lts/Proxies/HighLevelArchitecture/Apache/dds_handler.cpp +++ b/Lts/Proxies/HighLevelArchitecture/Apache/dds_handler.cpp @@ -8,7 +8,7 @@ #include "dds_handler.h" -#include +#include #include namespace HighLevelArchitecture diff --git a/Lts/Proxies/HighLevelArchitecture/Apache/dds_handler.h b/Lts/Proxies/HighLevelArchitecture/Apache/dds_handler.h index 7afdbcf6..e56c803a 100755 --- a/Lts/Proxies/HighLevelArchitecture/Apache/dds_handler.h +++ b/Lts/Proxies/HighLevelArchitecture/Apache/dds_handler.h @@ -8,7 +8,7 @@ #pragma once #include -#include +#include #include #include diff --git a/Lts/Proxies/HighLevelArchitecture/Apache/main_handler.cpp b/Lts/Proxies/HighLevelArchitecture/Apache/main_handler.cpp index 5d4fddeb..413f8dac 100755 --- a/Lts/Proxies/HighLevelArchitecture/Apache/main_handler.cpp +++ b/Lts/Proxies/HighLevelArchitecture/Apache/main_handler.cpp @@ -13,7 +13,7 @@ #include #include #include -#include +#include namespace HighLevelArchitecture { diff --git a/Lts/Proxies/HighLevelArchitecture/Guez/dds_handler.cpp b/Lts/Proxies/HighLevelArchitecture/Guez/dds_handler.cpp index 295b21cb..5bac9e97 100755 --- a/Lts/Proxies/HighLevelArchitecture/Guez/dds_handler.cpp +++ b/Lts/Proxies/HighLevelArchitecture/Guez/dds_handler.cpp @@ -8,7 +8,7 @@ #include "dds_handler.h" -#include +#include #include namespace HighLevelArchitecture diff --git a/Lts/Proxies/HighLevelArchitecture/Guez/dds_handler.h b/Lts/Proxies/HighLevelArchitecture/Guez/dds_handler.h index 9ffbc352..caa5a772 100755 --- a/Lts/Proxies/HighLevelArchitecture/Guez/dds_handler.h +++ b/Lts/Proxies/HighLevelArchitecture/Guez/dds_handler.h @@ -8,7 +8,7 @@ #pragma once #include -#include +#include #include #include diff --git a/Lts/Proxies/HighLevelArchitecture/Guez/main_handler.cpp b/Lts/Proxies/HighLevelArchitecture/Guez/main_handler.cpp index 6e3a30d4..ea552f05 100755 --- a/Lts/Proxies/HighLevelArchitecture/Guez/main_handler.cpp +++ b/Lts/Proxies/HighLevelArchitecture/Guez/main_handler.cpp @@ -15,7 +15,7 @@ #include #include #include -#include +#include namespace HighLevelArchitecture { diff --git a/Lts/Proxies/HighLevelArchitecture/Hla_test_tool/main_handler.cpp b/Lts/Proxies/HighLevelArchitecture/Hla_test_tool/main_handler.cpp index 040f9a7a..b68b9db1 100755 --- a/Lts/Proxies/HighLevelArchitecture/Hla_test_tool/main_handler.cpp +++ b/Lts/Proxies/HighLevelArchitecture/Hla_test_tool/main_handler.cpp @@ -15,7 +15,7 @@ #include #include #include -#include +#include namespace HighLevelArchitecture { diff --git a/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/aes_handler.cpp b/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/aes_handler.cpp index 6cfc4454..89d1cab7 100755 --- a/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/aes_handler.cpp +++ b/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/aes_handler.cpp @@ -8,7 +8,7 @@ */ #include "aes_handler.h" -#include "Core/function_reply_object.h" +#include "DDS/Core/function_reply_object.h" #include "aes.hpp" #include "json_dispatcher.h" #include @@ -525,7 +525,11 @@ void AesHandler::handleEffectCluster(const WirkfeldplanungData &data, int wsId) // maye wrong? // not only maybe.. we need to swap .. yes.. area.height(data.zieldaten.breiteRadius); - area.width(data.zieldaten.tiefe); + if (data.zieldaten.tiefe > 0) + area.width(data.zieldaten.tiefe); + else + if (data.zieldaten.geometrie == ProjectDataManagement::L4_TargetGeometry::Linear) + area.width(5); // E01562-472 [Verbund] ImpactWidth invalid. Ein Wirkfeld mit der Zielgeometrie "Linear" kann nicht verarbeitet werden. } if (!createArea) diff --git a/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/aes_handler.h b/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/aes_handler.h index 28a64c01..0a71f3f2 100755 --- a/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/aes_handler.h +++ b/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/aes_handler.h @@ -9,7 +9,7 @@ #pragma once -#include "Core/function_reply_object.h" +#include "DDS/Core/function_reply_object.h" #include "logger.h" #include "main_dispatcher.h" #include "telegrams.h" diff --git a/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/json_dispatcher.cpp b/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/json_dispatcher.cpp index 903e6c88..56fcf829 100755 --- a/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/json_dispatcher.cpp +++ b/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/json_dispatcher.cpp @@ -477,25 +477,17 @@ void JsonDispatcher::onSAASQWS(const int wsId, const Waffensystemdaten &exSQWS) const bool isVerbund = true; auto saa = getSAAByWs(wsId); int partyId = saa->getPartyId(); - QStringList args; - const ParticipantManagement::Participant &part = m_ppmHandler->findParticipantByInternalName(exSQWS.einheit.verein, partyId, isVerbund); - QString content = QString::fromUtf8(tr_lts("Notification","Show Participant Info
Unit: %2/%3/%4")); - args.append(QString::number(part.id())); - args.append(ortsIdMap.key(exSQWS.einheit.oi)); - args.append(QString::number(exSQWS.einheit.r)); - args.append(exSQWS.einheit.verein); - - DEBUG_LOG(m_logger) << "Stellungsmeldung Waffensystem content=" << content; - createNotificationRequest(wsId, - QString::fromUtf8(tr_lts("Notification","Weapon System Position Report")), - NotificationManagement::MessageType_def::Info, - NotificationManagement::NotificationType::AdlerNotification, - content, - args); - // Parse in party SAA m_ppmHandler->parseSQWS(exSQWS, wsId); + if (part.id() > 0) + { + sendParticipantInfoNotification(wsId, partyId, isVerbund, exSQWS.einheit); + return; + } + QTimer::singleShot(5000, this, [this, wsId, partyId, isVerbund, exSQWS]() { + sendParticipantInfoNotification(wsId, partyId, isVerbund, exSQWS.einheit); + }); } void JsonDispatcher::onSAASQFS(const int wsId, const Feuerstellungsdaten &exSQFS) @@ -504,25 +496,17 @@ void JsonDispatcher::onSAASQFS(const int wsId, const Feuerstellungsdaten &exSQFS auto saa = getSAAByWs(wsId); int partyId = saa->getPartyId(); const bool isVerbund = true; - QStringList args; - const ParticipantManagement::Participant &part = m_ppmHandler->findParticipantByInternalName(exSQFS.feuereinheit.verein, partyId, isVerbund); - - QString content = QString::fromUtf8(tr_lts("Notification","Show Participant Info
Unit: %2/%3/%4")); - args.append(QString::number(part.id())); - args.append(ortsIdMap.key(exSQFS.feuereinheit.oi)); - args.append(QString::number(exSQFS.feuereinheit.r)); - args.append(exSQFS.feuereinheit.verein); - - DEBUG_LOG(m_logger) << "Stellungsmeldung Feuerstellung content=" << content; - createNotificationRequest(wsId, - QString::fromUtf8(tr_lts("Notification","Position Report: Firing Unit")), - NotificationManagement::MessageType_def::Info, - NotificationManagement::NotificationType::AdlerNotification, - content, - args); - // Parse in party SAA m_ppmHandler->parseSQFS(exSQFS, wsId); + const ParticipantManagement::Participant &part = m_ppmHandler->findParticipantByInternalName(exSQFS.feuereinheit.verein, partyId, isVerbund); + if (part.id() > 0) + { + sendParticipantInfoNotification(wsId, partyId, isVerbund, exSQFS.feuereinheit); + return; + } + QTimer::singleShot(5000, this, [this, wsId, partyId, isVerbund, exSQFS]() { + sendParticipantInfoNotification(wsId, partyId, isVerbund, exSQFS.feuereinheit); + }); } void JsonDispatcher::onSAASQLP(const int wsId, const Ladeplatzdaten &exSQLP) @@ -531,17 +515,35 @@ void JsonDispatcher::onSAASQLP(const int wsId, const Ladeplatzdaten &exSQLP) auto saa = getSAAByWs(wsId); int partyId = saa->getPartyId(); const bool isVerbund = true; - QStringList args; const ParticipantManagement::Participant &part = m_ppmHandler->findParticipantByInternalName(exSQLP.einheit.verein, partyId, isVerbund); - DEBUG_LOG(m_logger) << "ParticipantId=" << part.id(); + + + m_ppmHandler->parseSQLP(exSQLP, wsId); + if (part.id() > 0) + { + sendParticipantInfoNotification(wsId, partyId, isVerbund, exSQLP.einheit); + return; + } + QTimer::singleShot(5000, this, [this, wsId, partyId, exSQLP]() { + sendParticipantInfoNotification(wsId, partyId, isVerbund, exSQLP.einheit); + }); +} + +void JsonDispatcher::sendParticipantInfoNotification(const int wsId, const int partyId, const bool isVerbund, const Einheit &einheit) +{ + DEBUG_LOG(m_logger) << "sendParticipantInfoNotification"; + QStringList args; + + const ParticipantManagement::Participant &part = m_ppmHandler->findParticipantByInternalName(einheit.verein, partyId, isVerbund); + DEBUG_LOG(m_logger) << "sendParticipantInfoNotification ParticipantId=" << part.id(); QString content = QString::fromUtf8(tr_lts("Notification","Show Participant Info
Unit: %2/%3/%4")); args.append(QString::number(part.id())); - args.append(ortsIdMap.key(exSQLP.einheit.oi)); - args.append(QString::number(exSQLP.einheit.r)); - args.append(exSQLP.einheit.verein); + args.append(ortsIdMap.key(einheit.oi)); + args.append(QString::number(einheit.r)); + args.append(einheit.verein); createNotificationRequest(wsId, QString::fromUtf8(tr_lts("Notification","Loading Point Position Report")), @@ -549,9 +551,7 @@ void JsonDispatcher::onSAASQLP(const int wsId, const Ladeplatzdaten &exSQLP) NotificationManagement::NotificationType::AdlerNotification, content, args); - DEBUG_LOG(m_logger) << "Stellungsmeldung Ladeplatz content=" << content; - // Parse in party SAA - m_ppmHandler->parseSQLP(exSQLP, wsId); + DEBUG_LOG(m_logger) << "Stellungsmeldung content=" << content; } void JsonDispatcher::onSAATrajectoryData(const int wsId, const Flugbahndaten &exFlugbahndaten, const QString referenceUuid) diff --git a/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/json_dispatcher.h b/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/json_dispatcher.h index a4f359dc..9e134b0f 100755 --- a/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/json_dispatcher.h +++ b/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/json_dispatcher.h @@ -13,7 +13,7 @@ #include #include #include -#include // tr_lts +#include // tr_lts #include // #include "logger.h" #include "aes_handler.h" @@ -98,6 +98,7 @@ class JsonDispatcher final void onSAASQWS(const int wsId, const Waffensystemdaten &exSQWS); void onSAASQFS(const int wsId, const Feuerstellungsdaten &exSQFS); void onSAASQLP(const int wsId, const Ladeplatzdaten &exSQLP); + void sendParticipantInfoNotification(const int wsId, const int partyId, const bool isVerbund, const Einheit &einheit); void onSAAHXGuidingLines(const int wsId, const Koordinierungsdaten &koordinierungsdaten); void onSAAHXGuidingLinesAndBoundaries(const int wsId, const Fuehrungsdaten &fuehrungsdaten); void onSSAEXFIREHALT(const int wsId, const FeuerHaltDaten &feuerhaltdaten); diff --git a/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/json_handler_rx.cpp b/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/json_handler_rx.cpp index 6c87d427..2e12cdad 100755 --- a/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/json_handler_rx.cpp +++ b/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/json_handler_rx.cpp @@ -89,16 +89,16 @@ bool JsonHandlerRx::handleTelegram(int wsId, const QJsonObject &telegram, int &e m_dispatcher->onSAAStatus(wsId, exStatus); break; } - case TelegramIds::EX_TQ(): // Technische Quittierung - { - WARNING_LOG(m_logger) << "[EX_TQ] Technische Quittierung -------------------------------------"; - const auto data = telegram[JsonKeys::DATA()].toObject(); - bool bOk = true; - TechnischeDaten technischeDaten; - AdlerJson::technischeDatenFromJson(data, technischeDaten, bOk); - m_dispatcher->onSAAExceptionStatus(wsId, technischeDaten); - break; - } + case TelegramIds::EX_TQ(): // Technische Quittierung + { + WARNING_LOG(m_logger) << "[EX_TQ] Technische Quittierung -------------------------------------"; + const auto data = telegram[JsonKeys::DATA()].toObject(); + bool bOk = true; + TechnischeDaten technischeDaten; + AdlerJson::technischeDatenFromJson(data, technischeDaten, bOk); + m_dispatcher->onSAAExceptionStatus(wsId, technischeDaten); + break; + } case TelegramIds::EX_FIRE(): // EX-FQ(FN) Feuern { WARNING_LOG(m_logger) << "[EX-FQ(FN)] EX-Feuern -------------------------------------"; @@ -203,12 +203,13 @@ bool JsonHandlerRx::handleTelegram(int wsId, const QJsonObject &telegram, int &e { DEBUG_LOG(m_logger) << "[EX_GUIDING_LINES] EX-HQ Koordinierungsmassnahmen"; auto data = telegram[JsonKeys::DATA()].toObject(); + const QString artStr = data.value(JsonKeys::ART()).toString(QStringLiteral("Koordinierungsmassnahmen")); Koordinierungsdaten koordinierungsdaten; bool bOk = true; koordinierungsdatenFromJson(data, koordinierungsdaten, bOk); if (koordinierungsdaten.name.isEmpty()) - koordinierungsdaten.name = QString(QStringLiteral("%1 - %2")).arg(typeName).arg(uuid); + koordinierungsdaten.name = QString(QStringLiteral("%1 - %2")).arg(typeName).arg(artStr); else koordinierungsdaten.name = QString(QStringLiteral("%1 - %2")).arg(typeName).arg(koordinierungsdaten.name); @@ -219,12 +220,13 @@ bool JsonHandlerRx::handleTelegram(int wsId, const QJsonObject &telegram, int &e { DEBUG_LOG(m_logger) << "[EX_GUIDING_LINES_AND_BOUNDARIES] EX-HQ(G)Fuehrungslinien und Grenzen "; auto data = telegram[JsonKeys::DATA()].toObject(); + const QString artStr = data.value(JsonKeys::ART()).toString(QStringLiteral("Fuehrungslinien und Grenzen")); Fuehrungsdaten fuehrungsdaten; bool bOk = true; fuehrungsdatenFromJson(data, fuehrungsdaten, bOk); if (fuehrungsdaten.name.isEmpty()) - fuehrungsdaten.name = QString(QStringLiteral("%1 - %2")).arg(typeName).arg(uuid); + fuehrungsdaten.name = QString(QStringLiteral("%1 - %2")).arg(typeName).arg(artStr); else fuehrungsdaten.name = QString(QStringLiteral("%1 - %2")).arg(typeName).arg(fuehrungsdaten.name); diff --git a/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/main_dispatcher.cpp b/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/main_dispatcher.cpp index a586fcae..655a932f 100755 --- a/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/main_dispatcher.cpp +++ b/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/main_dispatcher.cpp @@ -12,7 +12,7 @@ #include "json_dispatcher.h" //#include "json_handler_tx.h" #include -#include +#include #include namespace AdlerJson diff --git a/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/main_dispatcher.h b/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/main_dispatcher.h index 21adee34..1cf82cb8 100755 --- a/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/main_dispatcher.h +++ b/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/main_dispatcher.h @@ -11,7 +11,7 @@ #include #include -#include // tr_lts +#include // tr_lts #include //#include "logger.h" #include "ppm_handler.h" diff --git a/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/telegrams.cpp b/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/telegrams.cpp index 2b62a79f..438474e2 100755 --- a/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/telegrams.cpp +++ b/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/telegrams.cpp @@ -1916,33 +1916,13 @@ Szenarstatus strToSzenarstatus(QString status) { return szenarstatusMap.value(st int getFeuerkommandoRaketeEffectDurationMsec(const QJsonObject &data) { - bool bOk = false; - int wirkzeitMsec; - switch (toInteger(data[JsonKeys::WIRKZEIT()], bOk)){ - case 1: - wirkzeitMsec = 3 * 60 * 60 * 1000; - break; - case 2: - wirkzeitMsec = 6 * 60 * 60 * 1000; - break; - case 3: - wirkzeitMsec = 12 * 60 * 60 * 1000; - break; - case 4: - wirkzeitMsec = 24 * 60 * 60 * 1000; - break; - case 5: - wirkzeitMsec = 48 * 60 * 60 * 1000; - break; - case 6: - wirkzeitMsec = 96 * 60 * 60 * 1000; - break; - default: - wirkzeitMsec = 3 * 60 * 60 * 1000; - break; - } + constexpr int hourToMsec = 60 * 60 * 1000; + constexpr int defaultWirkzeitMsec = 3 * hourToMsec; - return wirkzeitMsec; + bool bOk = false; + int wirkzeitHour = toInteger(data[JsonKeys::WIRKZEIT()], bOk); + + return (bOk ? wirkzeitHour * hourToMsec : defaultWirkzeitMsec); } } // namespace AdlerJson diff --git a/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/telegrams.h b/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/telegrams.h index eb88f223..bd034d53 100755 --- a/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/telegrams.h +++ b/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/telegrams.h @@ -383,15 +383,15 @@ template <> QJsonObject EXStatus::toJsonInternal(); // EX-L13 struct SAATELEGRAMS_EXPORT Koordinate { - double latitude; // -90.0…90.0 - double longitude; // -180.0…180.0 + double latitude {0.0}; // -90.0…90.0 + double longitude {0.0}; // -180.0…180.0 }; // EX-L14 struct SAATELEGRAMS_EXPORT KoordinateMitHoehe { Koordinate koordinate; // EX-L13 - int hoehe; // EX-L5 -399…9999 Meter + int hoehe {0}; // EX-L5 -399…9999 Meter }; // EX-L6 Abfeuerungsart @@ -683,10 +683,10 @@ struct SAATELEGRAMS_EXPORT FeuerkommandoGeschosse QString ladung; // EX-L10 (table pdm_load_type) QString zuender; // EX-L11 (table pdm_igniter_type) QString zuenderFunktion; // EX-L41 (table pdm_igniter_function) - double zuenderZeit; // [ms] - int anzahl; - int ladungsNummer; - double intervall; // [s] + double zuenderZeit {0.0};// [ms] + int anzahl {-1}; + int ladungsNummer {-1}; + double intervall {0.0}; // [s] }; // EX-L35 Flugbahnpunkt @@ -744,22 +744,22 @@ struct SAATELEGRAMS_EXPORT WirkmittelFeuerkommando struct SAATELEGRAMS_EXPORT Treffpunkt { KoordinateMitHoehe koordinate; // EX-L14 - int anzahl; + int anzahl {-1}; }; // EX-L49 Wirkmittel Feuerkommando Rakete struct SAATELEGRAMS_EXPORT WirkmittelFeuerkommandoRakete { - ProjectDataManagement::L27_EffectorId kenner; // EX-L27 + ProjectDataManagement::L27_EffectorId kenner {ProjectDataManagement::L27_EffectorId_def::get_default()}; // EX-L27 QVector treffpunkte; - double flugzeit; - int gipfelhoehe; - double schussrichtung; - int fallwinkel; - ProjectDataManagement::L48_TrajectoryRocket anflug; + double flugzeit {0.0}; + int gipfelhoehe {0}; + double schussrichtung {0.0}; + int fallwinkel {0}; + ProjectDataManagement::L48_TrajectoryRocket anflug {ProjectDataManagement::L48_TrajectoryRocket_def::get_default()}; FeuerkommandoGeschosse geschoss; - ProjectDataManagement::L46_GpsFrequency gps; - int wirkzeit; + ProjectDataManagement::L46_GpsFrequency gps {ProjectDataManagement::L46_GpsFrequency_def::get_default()}; + int wirkzeit {-1}; }; // EX-L33 Feuerkommando diff --git a/Lts/Proxies/TrainingAreaBase/Plugins/ApacheHlaJson/dds_handler.cpp b/Lts/Proxies/TrainingAreaBase/Plugins/ApacheHlaJson/dds_handler.cpp index 884c47b7..d7fd5bf2 100755 --- a/Lts/Proxies/TrainingAreaBase/Plugins/ApacheHlaJson/dds_handler.cpp +++ b/Lts/Proxies/TrainingAreaBase/Plugins/ApacheHlaJson/dds_handler.cpp @@ -8,7 +8,7 @@ #include "dds_handler.h" -#include +#include namespace ApHlaJson { diff --git a/Lts/Proxies/TrainingAreaBase/Plugins/ApacheHlaJson/hla_dispatcher.h b/Lts/Proxies/TrainingAreaBase/Plugins/ApacheHlaJson/hla_dispatcher.h index 708401a1..e26f6e53 100755 --- a/Lts/Proxies/TrainingAreaBase/Plugins/ApacheHlaJson/hla_dispatcher.h +++ b/Lts/Proxies/TrainingAreaBase/Plugins/ApacheHlaJson/hla_dispatcher.h @@ -11,7 +11,7 @@ #include #include #include -#include // tr_lts +#include // tr_lts #include "logger.h" #include "ppm_handler.h" #include "aes_handler.h" diff --git a/Lts/Proxies/TrainingAreaBase/Plugins/ApacheHlaJson/main_dispatcher.h b/Lts/Proxies/TrainingAreaBase/Plugins/ApacheHlaJson/main_dispatcher.h index 9c98d71b..51feada4 100755 --- a/Lts/Proxies/TrainingAreaBase/Plugins/ApacheHlaJson/main_dispatcher.h +++ b/Lts/Proxies/TrainingAreaBase/Plugins/ApacheHlaJson/main_dispatcher.h @@ -10,7 +10,7 @@ #include #include -#include // tr_lts +#include // tr_lts #include "dds_handler.h" #include "logger.h" #include "ppm_handler.h" diff --git a/Lts/Proxies/TrainingAreaBase/Plugins/DebugJsonDir/directory_dispatcher.h b/Lts/Proxies/TrainingAreaBase/Plugins/DebugJsonDir/directory_dispatcher.h index f1639b5a..001e53c1 100755 --- a/Lts/Proxies/TrainingAreaBase/Plugins/DebugJsonDir/directory_dispatcher.h +++ b/Lts/Proxies/TrainingAreaBase/Plugins/DebugJsonDir/directory_dispatcher.h @@ -10,7 +10,7 @@ #include #include -#include +#include #include "../TetraJson/convert_from_json.h" #include "convert_to_json_file.h" diff --git a/Lts/Proxies/TrainingAreaBase/Plugins/HlaJson/hla_dispatcher.h b/Lts/Proxies/TrainingAreaBase/Plugins/HlaJson/hla_dispatcher.h index 64e319fe..c2a63f89 100755 --- a/Lts/Proxies/TrainingAreaBase/Plugins/HlaJson/hla_dispatcher.h +++ b/Lts/Proxies/TrainingAreaBase/Plugins/HlaJson/hla_dispatcher.h @@ -11,7 +11,7 @@ #include #include #include -#include // tr_lts +#include // tr_lts #include "logger.h" class QTimer; diff --git a/Lts/Proxies/TrainingAreaBase/Plugins/HlaJson/main_dispatcher.h b/Lts/Proxies/TrainingAreaBase/Plugins/HlaJson/main_dispatcher.h index 15f5f3ae..c9bd5441 100755 --- a/Lts/Proxies/TrainingAreaBase/Plugins/HlaJson/main_dispatcher.h +++ b/Lts/Proxies/TrainingAreaBase/Plugins/HlaJson/main_dispatcher.h @@ -10,7 +10,7 @@ #include #include -#include // tr_lts +#include // tr_lts #include "logger.h" namespace HlaJson diff --git a/Lts/Proxies/TrainingAreaBase/Plugins/Nmea/main_dispatcher.h b/Lts/Proxies/TrainingAreaBase/Plugins/Nmea/main_dispatcher.h index 48b1e78b..1bb322ab 100755 --- a/Lts/Proxies/TrainingAreaBase/Plugins/Nmea/main_dispatcher.h +++ b/Lts/Proxies/TrainingAreaBase/Plugins/Nmea/main_dispatcher.h @@ -10,7 +10,7 @@ #include #include -#include // tr_lts +#include // tr_lts #include "logger.h" namespace Nmea diff --git a/Lts/Proxies/TrainingAreaBase/Plugins/Nmea/nmea_dispatcher.h b/Lts/Proxies/TrainingAreaBase/Plugins/Nmea/nmea_dispatcher.h index cbcc6b7e..7900e545 100755 --- a/Lts/Proxies/TrainingAreaBase/Plugins/Nmea/nmea_dispatcher.h +++ b/Lts/Proxies/TrainingAreaBase/Plugins/Nmea/nmea_dispatcher.h @@ -15,7 +15,7 @@ #include #include #include -#include // tr_lts +#include // tr_lts #include "logger.h" namespace Nmea diff --git a/Lts/Proxies/TrainingAreaBase/Plugins/UAS/plugin_instance.h b/Lts/Proxies/TrainingAreaBase/Plugins/UAS/plugin_instance.h index 78f60666..641874dc 100755 --- a/Lts/Proxies/TrainingAreaBase/Plugins/UAS/plugin_instance.h +++ b/Lts/Proxies/TrainingAreaBase/Plugins/UAS/plugin_instance.h @@ -12,7 +12,7 @@ #include #include -#include // tr_lts +#include // tr_lts #include diff --git a/Lts/Proxies/TrainingAreaBase/Plugins/WlsTetra/main_dispatcher.h b/Lts/Proxies/TrainingAreaBase/Plugins/WlsTetra/main_dispatcher.h index 6f355664..85d4ae38 100755 --- a/Lts/Proxies/TrainingAreaBase/Plugins/WlsTetra/main_dispatcher.h +++ b/Lts/Proxies/TrainingAreaBase/Plugins/WlsTetra/main_dispatcher.h @@ -10,7 +10,7 @@ #include #include -#include // tr_lts +#include // tr_lts #include "logger.h" namespace WlsTetra diff --git a/Lts/Proxies/TrainingAreaBase/Plugins/WlsTetra/tetra_dispatcher.h b/Lts/Proxies/TrainingAreaBase/Plugins/WlsTetra/tetra_dispatcher.h index deb5a623..4f961738 100755 --- a/Lts/Proxies/TrainingAreaBase/Plugins/WlsTetra/tetra_dispatcher.h +++ b/Lts/Proxies/TrainingAreaBase/Plugins/WlsTetra/tetra_dispatcher.h @@ -14,7 +14,7 @@ #include #include #include -#include // tr_lts +#include // tr_lts #include "tetra_prtcnv.h" #include "logger.h" diff --git a/Lts/Proxies/TrainingAreaBase/Plugins/WlsTetra/wls_dispatcher.h b/Lts/Proxies/TrainingAreaBase/Plugins/WlsTetra/wls_dispatcher.h index f44ecc08..96c78bc1 100755 --- a/Lts/Proxies/TrainingAreaBase/Plugins/WlsTetra/wls_dispatcher.h +++ b/Lts/Proxies/TrainingAreaBase/Plugins/WlsTetra/wls_dispatcher.h @@ -11,7 +11,7 @@ #include #include #include -#include // tr_lts +#include // tr_lts #include "logger.h" class QTimer; diff --git a/Lts/Proxies/TrainingAreaBase/dds_handler.cpp b/Lts/Proxies/TrainingAreaBase/dds_handler.cpp index 8d23cce5..d64e3d56 100755 --- a/Lts/Proxies/TrainingAreaBase/dds_handler.cpp +++ b/Lts/Proxies/TrainingAreaBase/dds_handler.cpp @@ -10,7 +10,7 @@ #include #include -#include +#include #include #include diff --git a/Lts/Proxies/TrainingAreaBase/dds_handler.h b/Lts/Proxies/TrainingAreaBase/dds_handler.h index d83fcf8e..a21c763a 100755 --- a/Lts/Proxies/TrainingAreaBase/dds_handler.h +++ b/Lts/Proxies/TrainingAreaBase/dds_handler.h @@ -8,7 +8,7 @@ #pragma once #include -#include +#include #include #include diff --git a/Lts/Proxies/TrainingAreaBase/main_handler.cpp b/Lts/Proxies/TrainingAreaBase/main_handler.cpp index 25a11c89..363d7292 100755 --- a/Lts/Proxies/TrainingAreaBase/main_handler.cpp +++ b/Lts/Proxies/TrainingAreaBase/main_handler.cpp @@ -13,7 +13,7 @@ #include "WebSocketInterface/json_keys.h" #include -#include +#include #include #include #include diff --git a/Lts/Proxies/TrainingAreaBase/recv_from_dds_fts.cpp b/Lts/Proxies/TrainingAreaBase/recv_from_dds_fts.cpp index e2288b9a..50433ccd 100755 --- a/Lts/Proxies/TrainingAreaBase/recv_from_dds_fts.cpp +++ b/Lts/Proxies/TrainingAreaBase/recv_from_dds_fts.cpp @@ -310,7 +310,10 @@ void RecvFromDdsFts::onSendCesHitRequest(const rti::core::SampleIdentity &cookie //data.aesTetraIdUnused = m_mainHandler->aesHandler()->tetraIdFromDdsId(request.aesId()); data.aesDdsId = request.aesId(); //TODO: !!!!!! Use new EventType to check which AreaEffectSimulationType will be chosen. - data.aesType = m_mainHandler->aesHandler()->aesTypeFromId(request.aesId()); + if (request.eventType() == ProjectDataManagement::EventType::ExplosionCluster) + data.aesType = TetraIcd::AreaEffectSimulationType::ExplosionArea; + else + data.aesType = m_mainHandler->aesHandler()->aesTypeFromId(request.aesId()); /*! \brief Take the new event type attribute to check if its is a HazardArea(DangerZone/Gefahrenbereich) * diff --git a/Lts/Proxies/TrainingAreaBaseOC/dds_handler.cpp b/Lts/Proxies/TrainingAreaBaseOC/dds_handler.cpp index 574c7ef6..6d5590ee 100755 --- a/Lts/Proxies/TrainingAreaBaseOC/dds_handler.cpp +++ b/Lts/Proxies/TrainingAreaBaseOC/dds_handler.cpp @@ -8,7 +8,7 @@ #include "dds_handler.h" -#include +#include namespace TrainingAreaBaseOC { diff --git a/Lts/Proxies/TrainingAreaBaseOC/dds_handler.h b/Lts/Proxies/TrainingAreaBaseOC/dds_handler.h index b9322284..07c686eb 100755 --- a/Lts/Proxies/TrainingAreaBaseOC/dds_handler.h +++ b/Lts/Proxies/TrainingAreaBaseOC/dds_handler.h @@ -8,7 +8,7 @@ #pragma once #include -#include +#include #include #include diff --git a/Lts/Proxies/TrainingAreaBaseOC/main_handler.cpp b/Lts/Proxies/TrainingAreaBaseOC/main_handler.cpp index 07705de9..c0646643 100755 --- a/Lts/Proxies/TrainingAreaBaseOC/main_handler.cpp +++ b/Lts/Proxies/TrainingAreaBaseOC/main_handler.cpp @@ -9,7 +9,7 @@ #include "main_handler.h" #include "settings.h" #include "logger.h" -#include +#include namespace TrainingAreaBaseOC { diff --git a/Lts/Proxies/WarehouseManagement/dds_handler.cpp b/Lts/Proxies/WarehouseManagement/dds_handler.cpp index abd36329..7ad6797d 100755 --- a/Lts/Proxies/WarehouseManagement/dds_handler.cpp +++ b/Lts/Proxies/WarehouseManagement/dds_handler.cpp @@ -8,7 +8,7 @@ #include "dds_handler.h" -#include +#include namespace WarehouseManagement { diff --git a/Lts/Proxies/WarehouseManagement/dds_handler_exercise.cpp b/Lts/Proxies/WarehouseManagement/dds_handler_exercise.cpp index e321f9b3..0f7c66a8 100755 --- a/Lts/Proxies/WarehouseManagement/dds_handler_exercise.cpp +++ b/Lts/Proxies/WarehouseManagement/dds_handler_exercise.cpp @@ -8,7 +8,7 @@ #include "dds_handler_exercise.h" -#include +#include #include namespace WarehouseManagement diff --git a/Lts/Proxies/WarehouseManagement/main_handler.cpp b/Lts/Proxies/WarehouseManagement/main_handler.cpp index 6d6d5109..ad454836 100755 --- a/Lts/Proxies/WarehouseManagement/main_handler.cpp +++ b/Lts/Proxies/WarehouseManagement/main_handler.cpp @@ -6,7 +6,7 @@ * Created by Christian Ehrlicher, SLSE, 2016-04-14 */ #include "main_handler.h" -#include +#include namespace WarehouseManagement { diff --git a/Lts/Proxies/WirelessLocationSystem/dds_handler.cpp b/Lts/Proxies/WirelessLocationSystem/dds_handler.cpp index fc3a9f09..fba1de9e 100755 --- a/Lts/Proxies/WirelessLocationSystem/dds_handler.cpp +++ b/Lts/Proxies/WirelessLocationSystem/dds_handler.cpp @@ -8,7 +8,7 @@ #include "dds_handler.h" -#include +#include namespace WirelessLocationSystem { diff --git a/Lts/Proxies/WirelessLocationSystem/main_handler.cpp b/Lts/Proxies/WirelessLocationSystem/main_handler.cpp index a94a0c05..c48118ff 100755 --- a/Lts/Proxies/WirelessLocationSystem/main_handler.cpp +++ b/Lts/Proxies/WirelessLocationSystem/main_handler.cpp @@ -8,7 +8,7 @@ #include "main_handler.h" #include "settings.h" -#include +#include namespace WirelessLocationSystem { diff --git a/Lts/Services/AlarmManagement/dds_handler.h b/Lts/Services/AlarmManagement/dds_handler.h index f6df12cf..c815b4b6 100755 --- a/Lts/Services/AlarmManagement/dds_handler.h +++ b/Lts/Services/AlarmManagement/dds_handler.h @@ -8,8 +8,8 @@ #pragma once #include -#include -#include +#include +#include #include #include #include diff --git a/Lts/Services/AlarmManagement/object_emergency_call.h b/Lts/Services/AlarmManagement/object_emergency_call.h index bb69543d..b7ab6192 100755 --- a/Lts/Services/AlarmManagement/object_emergency_call.h +++ b/Lts/Services/AlarmManagement/object_emergency_call.h @@ -4,7 +4,7 @@ #include #include "logger.h" -#include +#include //Generated #include diff --git a/Lts/Services/AreaEffectSimulation/EffectorFiringStrategy/abstract_firing_strategy.cpp b/Lts/Services/AreaEffectSimulation/EffectorFiringStrategy/abstract_firing_strategy.cpp index 8d0bbf58..ab50de78 100755 --- a/Lts/Services/AreaEffectSimulation/EffectorFiringStrategy/abstract_firing_strategy.cpp +++ b/Lts/Services/AreaEffectSimulation/EffectorFiringStrategy/abstract_firing_strategy.cpp @@ -40,19 +40,19 @@ AbstractFiringStrategy::~AbstractFiringStrategy() TRACE_LOG(m_logger) << LOGFUNCTION << " END"; } -void AbstractFiringStrategy::calculateDispersionTrajectory() +bool AbstractFiringStrategy::calculateDispersionTrajectory() { DEBUG_LOG(m_logger) << "calculateDispersionTrajectory"; // 1. Neuen Zielpunkt berechnen - const auto &intendendTrajectory = m_effector->intendendTrajectory(); + const auto intendendTrajectory = m_effector->intendendTrajectory(); // sanity check: if (intendendTrajectory.size() < 2) { ERROR_LOG(m_logger) << LOGFUNCTION << " size of intendendTrajectory not sufficiant, size=" << intendendTrajectory.size(); - return; + return false; } LtsUtils::QPoint3D newTarget = intendendTrajectory.last().position; @@ -66,6 +66,16 @@ void AbstractFiringStrategy::calculateDispersionTrajectory() // 2. Neue Trajektorie berechnen m_transformedTrajectory = TrajectoryTransform::transformToNewTarget(intendendTrajectory, newTarget); + + // sanity check: + if (m_transformedTrajectory.size() < 2) + { + ERROR_LOG(m_logger) << LOGFUNCTION + << " size of m_transformedTrajectory not sufficiant, size=" << m_transformedTrajectory.size(); + return false; + } + + return true; } std::vector AbstractFiringStrategy::buildTrajectoryGeometry(const QVector &relativeTrajectory) @@ -135,7 +145,7 @@ int AbstractFiringStrategy::sendChargeEffect(const TrajectoryTimeAware &trajecto { DEBUG_LOG(m_logger) << "sendChargeEffect"; - const auto &trajGeometry = trajectoryTimeAware.geometry(); + const auto trajGeometry = trajectoryTimeAware.geometry(); // sanity check: if (trajGeometry.size() < 2) @@ -165,7 +175,7 @@ int AbstractFiringStrategy::sendChargeEffect(const TrajectoryTimeAware &trajecto chargeEffect.trajectoryTimeAware(trajectoryTimeAware); const auto &reply = m_effector->mainHandler()->chargeEffectHandler()->createChargeEffect(chargeEffect); - DEBUG_LOG(m_logger) << "reply.id=" << reply.id() << ", str:" << reply.str() << ", uniqueId:" << reply.uniqueId(); + DEBUG_LOG(m_logger) << LOGFUNCTION << " reply.id=" << reply.id() << ", str:" << reply.str() << ", uniqueId:" << reply.uniqueId(); return reply.id(); } diff --git a/Lts/Services/AreaEffectSimulation/EffectorFiringStrategy/abstract_firing_strategy.h b/Lts/Services/AreaEffectSimulation/EffectorFiringStrategy/abstract_firing_strategy.h index a8d25422..3b4dd439 100755 --- a/Lts/Services/AreaEffectSimulation/EffectorFiringStrategy/abstract_firing_strategy.h +++ b/Lts/Services/AreaEffectSimulation/EffectorFiringStrategy/abstract_firing_strategy.h @@ -44,7 +44,7 @@ public: explicit AbstractFiringStrategy(ObjectEffector *parent); virtual ~AbstractFiringStrategy(); - virtual void doFiring() = 0; + virtual bool doFiring() = 0; Q_SIGNALS: // Has to be emitted in doFiring() implementation! @@ -52,7 +52,7 @@ Q_SIGNALS: protected: // methods: - void calculateDispersionTrajectory(); + bool calculateDispersionTrajectory(); std::vector buildTrajectoryGeometry(const QVector &trajectory); TrajectoryTimeAware buildTrajectoryTimeAware(const std::vector &trajectoryGeometry, qint64 curTime, int index = 0); diff --git a/Lts/Services/AreaEffectSimulation/EffectorFiringStrategy/default_firing_strategy.cpp b/Lts/Services/AreaEffectSimulation/EffectorFiringStrategy/default_firing_strategy.cpp index df9488ed..39970902 100755 --- a/Lts/Services/AreaEffectSimulation/EffectorFiringStrategy/default_firing_strategy.cpp +++ b/Lts/Services/AreaEffectSimulation/EffectorFiringStrategy/default_firing_strategy.cpp @@ -29,19 +29,50 @@ DefaultFiringStrategy::~DefaultFiringStrategy() TRACE_LOG(m_logger) << LOGFUNCTION << " END"; } -void DefaultFiringStrategy::doFiring() +bool DefaultFiringStrategy::doFiring() { - calculateDispersionTrajectory(); + // 1: calculateDispersionTrajectory + if (!calculateDispersionTrajectory()) + { + ERROR_LOG(m_logger) << LOGFUNCTION << " Error on calculateDispersionTrajectory"; + return false; + } + if (m_transformedTrajectory.size() < 2) + { + ERROR_LOG(m_logger) << LOGFUNCTION << " transformedTrajectory is not sufficiant" + << ", m_transformedTrajectory.size()" << m_transformedTrajectory.size(); + return false; + } + + // 2: getStartTime const qint64 trajectoryStartTime = getStartTime(); - const auto &geometry = buildTrajectoryGeometry(m_transformedTrajectory); - const auto &trajTimeAware = buildTrajectoryTimeAware(geometry, trajectoryStartTime); + // 3a buildTrajectoryGeometry + const auto geometry = buildTrajectoryGeometry(m_transformedTrajectory); + // 3b: buildTrajectoryTimeAware + const auto trajTimeAware = buildTrajectoryTimeAware(geometry, trajectoryStartTime); + // to be bullet-proof: + if (trajTimeAware.geometry().size() < 2) + { + ERROR_LOG(m_logger) << LOGFUNCTION << " trajTimeAware is empty"; + return false; + } + + // 4: sendChargeEffect const int chargeEffectId = sendChargeEffect(trajTimeAware); + if (chargeEffectId < 0) + { + ERROR_LOG(m_logger) << LOGFUNCTION << " sendChargeEffect failed"; + return false; + } + // 5: signalFired emit signalFired(m_effector->participantId(), m_effector->aesItemId(), {chargeEffectId}); + DEBUG_LOG(m_logger) << "created ChargeEffectId: " << chargeEffectId; + return true; } } //namespace AreaEffectSimulation diff --git a/Lts/Services/AreaEffectSimulation/EffectorFiringStrategy/default_firing_strategy.h b/Lts/Services/AreaEffectSimulation/EffectorFiringStrategy/default_firing_strategy.h index 11c26e96..b0c12d66 100755 --- a/Lts/Services/AreaEffectSimulation/EffectorFiringStrategy/default_firing_strategy.h +++ b/Lts/Services/AreaEffectSimulation/EffectorFiringStrategy/default_firing_strategy.h @@ -22,7 +22,7 @@ public: explicit DefaultFiringStrategy(ObjectEffector *effector); virtual ~DefaultFiringStrategy(); - void doFiring() override; + bool doFiring() override; }; // class DefaultFiringStrategy } // namespace AreaEffectSimulation diff --git a/Lts/Services/AreaEffectSimulation/EffectorFiringStrategy/dm72_firing_strategy.cpp b/Lts/Services/AreaEffectSimulation/EffectorFiringStrategy/dm72_firing_strategy.cpp index f6d544a0..0ed801a7 100755 --- a/Lts/Services/AreaEffectSimulation/EffectorFiringStrategy/dm72_firing_strategy.cpp +++ b/Lts/Services/AreaEffectSimulation/EffectorFiringStrategy/dm72_firing_strategy.cpp @@ -32,35 +32,57 @@ Dm72FiringStrategy::Dm72FiringStrategy(ObjectEffector *effector) DEBUG_LOG(m_logger) << "using Dm72FiringStrategy"; } -void Dm72FiringStrategy::doFiring() +bool Dm72FiringStrategy::doFiring() { m_transformedTrajectory = TrajectoryTransform::transformToNewTarget(m_effector->intendendTrajectory(), m_impactPoints.at(m_impactPointIndex++)); + if (m_transformedTrajectory.size() < 2) + { + ERROR_LOG(m_logger) << LOGFUNCTION << " transformedTrajectory is not sufficiant" + << ", m_transformedTrajectory.size()" << m_transformedTrajectory.size(); + return false; + } + if (m_impactPointIndex >= m_impactPoints.size()) m_impactPointIndex = 0; const qint64 trajectoryStartTime = getStartTime(); - const auto &geometry = buildTrajectoryGeometry(m_transformedTrajectory); - const auto &trajTimeAware = buildTrajectoryTimeAware(geometry, trajectoryStartTime); + const auto geometry = buildTrajectoryGeometry(m_transformedTrajectory); + const auto trajTimeAware = buildTrajectoryTimeAware(geometry, trajectoryStartTime); QJsonObject props{{QStringLiteral("effectDurationMsec"), m_effectDurationMsec}}; const int chargeEffectId = sendChargeEffect(trajTimeAware, props); + if (chargeEffectId < 0) + { + ERROR_LOG(m_logger) << LOGFUNCTION << " sendChargeEffect failed"; + return false; + } emit signalFired(m_effector->participantId(), m_effector->aesItemId(), {chargeEffectId}); + + return true; } void Dm72FiringStrategy::init() { + DEBUG_LOG(m_logger) << LOGFUNCTION << " START" + << ", m_effector->participantId=" << m_effector->participantId() + << ", m_effector->aesItemId=" << m_effector->aesItemId(); + using namespace AdlerJson; using namespace LtsCoordTrans; m_impactPointIndex = 0; m_impactPoints.clear(); - bool bOk; + bool bOk = false; WirkmittelFeuerkommandoRakete wirkmittel; - const QJsonObject properties = QJsonDocument::fromJson(QByteArray::fromStdString(m_effector->effectorData().properties())).object(); + + const std::string propertiesStdStr = m_effector->effectorData().properties(); + DEBUG_LOG(m_logger) << LOGFUNCTION << " START" << ", propertiesStdStr= '" << propertiesStdStr << "'"; + + const QJsonObject properties = QJsonDocument::fromJson(QByteArray::fromStdString(propertiesStdStr)).object(); const Core::GeoPosition geoStartPos = participantPosition(m_effector->participantId()); const UtmCoordinate utmStartPos = UtmCoordinate::fromGeographic(geoStartPos.lon(), geoStartPos.lat()); @@ -99,6 +121,8 @@ void Dm72FiringStrategy::init() } DEBUG_LOG(m_logger) << "Got " << m_impactPoints.size() << " impact points"; + + TRACE_LOG(m_logger) << LOGFUNCTION << " END"; } QVector Dm72FiringStrategy::mineLayingCentroids() const diff --git a/Lts/Services/AreaEffectSimulation/EffectorFiringStrategy/dm72_firing_strategy.h b/Lts/Services/AreaEffectSimulation/EffectorFiringStrategy/dm72_firing_strategy.h index adf8a374..1ab91f78 100755 --- a/Lts/Services/AreaEffectSimulation/EffectorFiringStrategy/dm72_firing_strategy.h +++ b/Lts/Services/AreaEffectSimulation/EffectorFiringStrategy/dm72_firing_strategy.h @@ -24,7 +24,7 @@ class Dm72FiringStrategy : public AbstractFiringStrategy public: explicit Dm72FiringStrategy(ObjectEffector *effector); - void doFiring() override final; + bool doFiring() final; private: // methods void init(); diff --git a/Lts/Services/AreaEffectSimulation/EffectorFiringStrategy/gmlrs_firing_strategy.cpp b/Lts/Services/AreaEffectSimulation/EffectorFiringStrategy/gmlrs_firing_strategy.cpp index 1b4ddc6b..05a6dd0a 100755 --- a/Lts/Services/AreaEffectSimulation/EffectorFiringStrategy/gmlrs_firing_strategy.cpp +++ b/Lts/Services/AreaEffectSimulation/EffectorFiringStrategy/gmlrs_firing_strategy.cpp @@ -36,7 +36,7 @@ GmlrsFiringStrategy::~GmlrsFiringStrategy() TRACE_LOG(m_logger) << LOGFUNCTION << " END"; } -void GmlrsFiringStrategy::doFiring() +bool GmlrsFiringStrategy::doFiring() { m_transformedTrajectory = TrajectoryTransform::transformToNewTarget(m_effector->intendendTrajectory(), m_impactPoints.at(m_impactPointIndex++)); @@ -45,12 +45,18 @@ void GmlrsFiringStrategy::doFiring() const qint64 trajectoryStartTime = getStartTime(); - const auto &geometry = buildTrajectoryGeometry(m_transformedTrajectory); - const auto &trajTimeAware = buildTrajectoryTimeAware(geometry, trajectoryStartTime); + const auto geometry = buildTrajectoryGeometry(m_transformedTrajectory); + const auto trajTimeAware = buildTrajectoryTimeAware(geometry, trajectoryStartTime); const int chargeEffectId = sendChargeEffect(trajTimeAware); + if (chargeEffectId < 0) + { + ERROR_LOG(m_logger) << LOGFUNCTION << " sendChargeEffect failed"; + return false; + } emit signalFired(m_effector->participantId(), m_effector->aesItemId(), {chargeEffectId}); + return true; } void GmlrsFiringStrategy::init() diff --git a/Lts/Services/AreaEffectSimulation/EffectorFiringStrategy/gmlrs_firing_strategy.h b/Lts/Services/AreaEffectSimulation/EffectorFiringStrategy/gmlrs_firing_strategy.h index b162edc1..ed205835 100755 --- a/Lts/Services/AreaEffectSimulation/EffectorFiringStrategy/gmlrs_firing_strategy.h +++ b/Lts/Services/AreaEffectSimulation/EffectorFiringStrategy/gmlrs_firing_strategy.h @@ -28,7 +28,7 @@ public: explicit GmlrsFiringStrategy(ObjectEffector *effector); virtual ~GmlrsFiringStrategy(); - void doFiring() override; + bool doFiring() override; private: // methods void init(); diff --git a/Lts/Services/AreaEffectSimulation/EffectorFiringStrategy/smart_firing_strategy.cpp b/Lts/Services/AreaEffectSimulation/EffectorFiringStrategy/smart_firing_strategy.cpp index 9cdee395..31b32547 100755 --- a/Lts/Services/AreaEffectSimulation/EffectorFiringStrategy/smart_firing_strategy.cpp +++ b/Lts/Services/AreaEffectSimulation/EffectorFiringStrategy/smart_firing_strategy.cpp @@ -35,7 +35,7 @@ SmartFiringStrategy::~SmartFiringStrategy() TRACE_LOG(m_logger) << LOGFUNCTION << " END"; } -void SmartFiringStrategy::doFiring() +bool SmartFiringStrategy::doFiring() { TRACE_LOG(m_logger) << LOGFUNCTION << " START"; @@ -59,13 +59,19 @@ void SmartFiringStrategy::doFiring() // convert from intendendTrajectory (relativ) to TRAJECTORY_TYPE (absolute) // The TrajectorySplitter needs TRAJECTORY_TYPE // using TRAJECTORY_TYPE = std::vector; - const auto &intendendTrajectory = m_effector->intendendTrajectory(); - const auto &trajGeometry = buildTrajectoryGeometry(intendendTrajectory); + const auto intendendTrajectory = m_effector->intendendTrajectory(); + const auto trajGeometry = buildTrajectoryGeometry(intendendTrajectory); + if (trajGeometry.size() < 2) + { + ERROR_LOG(m_logger) << LOGFUNCTION << " transformedTrajectory is not sufficiant" + << ", size=" << trajGeometry.size(); + return false; + } // split and avoid copying: const TrajectorySplitter> splitter(trajGeometry); - const auto &trajGeo1 = splitter.getTrajectory1(); - const auto &trajGeo2 = splitter.getTrajectory2(); + const auto trajGeo1 = splitter.getTrajectory1(); + const auto trajGeo2 = splitter.getTrajectory2(); DEBUG_LOG(m_logger) << "splitter: " << " intendendTrajectory.size = " << intendendTrajectory.size(); DEBUG_LOG(m_logger) << "splitter: " << " trajGeometry.size = " << trajGeometry.size(); @@ -76,27 +82,32 @@ void SmartFiringStrategy::doFiring() // // and second, process both Trajectories/Impacts // - - // ToDo: Check, how oftem signalFired should be fired? QVector chargeEffectIds; if (trajGeo1.size() > 2) { - const auto &trajTimeAware = buildTrajectoryTimeAware(trajGeo1, trajectoryStartTime, 0); + const auto trajTimeAware = buildTrajectoryTimeAware(trajGeo1, trajectoryStartTime, 0); const int chargeEffectId = sendChargeEffect(trajTimeAware); - chargeEffectIds << chargeEffectId; + if (chargeEffectId < 0) + WARNING_LOG(m_logger) << LOGFUNCTION << " sendChargeEffect failed"; + else + chargeEffectIds << chargeEffectId; DEBUG_LOG(m_logger) << "Trajectory1 - created ChargeEffectId: " << chargeEffectId; } if (trajGeo2.size() > 2) { - const auto &trajTimeAware = buildTrajectoryTimeAware(trajGeo2, trajectoryStartTime, 1); + const auto trajTimeAware = buildTrajectoryTimeAware(trajGeo2, trajectoryStartTime, 1); const int chargeEffectId = sendChargeEffect(trajTimeAware); - chargeEffectIds << chargeEffectId; + if (chargeEffectId < 0) + WARNING_LOG(m_logger) << LOGFUNCTION << " sendChargeEffect failed"; + else + chargeEffectIds << chargeEffectId; DEBUG_LOG(m_logger) << "Trajectory2 - created ChargeEffectId: " << chargeEffectId; } - if (chargeEffectIds.size()) + if (!chargeEffectIds.empty()) emit signalFired(m_effector->participantId(), m_effector->aesItemId(), chargeEffectIds); TRACE_LOG(m_logger) << LOGFUNCTION << " END"; + return true; } } // namespace AreaEffectSimulation diff --git a/Lts/Services/AreaEffectSimulation/EffectorFiringStrategy/smart_firing_strategy.h b/Lts/Services/AreaEffectSimulation/EffectorFiringStrategy/smart_firing_strategy.h index 0522e844..9c48013b 100755 --- a/Lts/Services/AreaEffectSimulation/EffectorFiringStrategy/smart_firing_strategy.h +++ b/Lts/Services/AreaEffectSimulation/EffectorFiringStrategy/smart_firing_strategy.h @@ -27,7 +27,7 @@ public: explicit SmartFiringStrategy(ObjectEffector *effector); virtual ~SmartFiringStrategy(); - void doFiring() override; + bool doFiring() override; private: // methods diff --git a/Lts/Services/AreaEffectSimulation/ModuleTest_Limits/limits_module_test.cpp b/Lts/Services/AreaEffectSimulation/ModuleTest_Limits/limits_module_test.cpp index 79f3d510..f6e95751 100755 --- a/Lts/Services/AreaEffectSimulation/ModuleTest_Limits/limits_module_test.cpp +++ b/Lts/Services/AreaEffectSimulation/ModuleTest_Limits/limits_module_test.cpp @@ -13,7 +13,7 @@ // AES #include -#include +#include #include diff --git a/Lts/Services/AreaEffectSimulation/dds_handler.cpp b/Lts/Services/AreaEffectSimulation/dds_handler.cpp index 6dcf0586..c1dd6103 100755 --- a/Lts/Services/AreaEffectSimulation/dds_handler.cpp +++ b/Lts/Services/AreaEffectSimulation/dds_handler.cpp @@ -9,8 +9,8 @@ #include "aes_dts.h" #include "aes_fts.h" -#include -#include +#include +#include #include #include #include diff --git a/Lts/Services/AreaEffectSimulation/dds_handler.h b/Lts/Services/AreaEffectSimulation/dds_handler.h index ceba25ce..22d4a536 100755 --- a/Lts/Services/AreaEffectSimulation/dds_handler.h +++ b/Lts/Services/AreaEffectSimulation/dds_handler.h @@ -9,8 +9,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include diff --git a/Lts/Services/AreaEffectSimulation/handler_charge_administration.cpp b/Lts/Services/AreaEffectSimulation/handler_charge_administration.cpp index 8a2a47f9..a5793188 100755 --- a/Lts/Services/AreaEffectSimulation/handler_charge_administration.cpp +++ b/Lts/Services/AreaEffectSimulation/handler_charge_administration.cpp @@ -133,9 +133,11 @@ Core::FunctionReplyObject HandlerChargeAdministration::consumeCharge(int chargeT ParticipantManagement::ConnectState connectState = m_mainHandler->dds()->ppmDtc()->saaConnectedState(partyId); DEBUG_LOG(m_logger) << "connectState: " << connectState; - if (m_mainHandler->dds()->ppmDtc()->isPartyAdlerVerbund(partyId) && connectState == ParticipantManagement::ConnectState::Connected) + if (m_mainHandler->dds()->ppmDtc()->isPartyAdlerVerbund(partyId) && connectState == ParticipantManagement::ConnectState::Connected + && m_mainHandler->dds()->pdmDtc()->isAdlerChargeType(chargeTypeId)) effectSource = ProjectDataManagement::EffectSource::ES_ADLER; - else if (!m_mainHandler->dds()->ppmDtc()->isPartyAdlerVerbund(partyId) && connectState == ParticipantManagement::ConnectState::Connected) + else if (!m_mainHandler->dds()->ppmDtc()->isPartyAdlerVerbund(partyId) && connectState == ParticipantManagement::ConnectState::Connected + && m_mainHandler->dds()->pdmDtc()->isAdlerChargeType(chargeTypeId)) effectSource = ProjectDataManagement::EffectSource::ES_ADLER_STANDALONE; DEBUG_LOG(m_logger) << "effectSource: " << effectSource; diff --git a/Lts/Services/AreaEffectSimulation/main_handler.cpp b/Lts/Services/AreaEffectSimulation/main_handler.cpp index 626239dc..267f22e7 100755 --- a/Lts/Services/AreaEffectSimulation/main_handler.cpp +++ b/Lts/Services/AreaEffectSimulation/main_handler.cpp @@ -37,7 +37,7 @@ #include #include -#include +#include #include #if QT_VERSION >= QT_VERSION_CHECK(5, 10, 0) diff --git a/Lts/Services/AreaEffectSimulation/mine_corridor_creator.h b/Lts/Services/AreaEffectSimulation/mine_corridor_creator.h index 5ae76de8..d5f1dc5b 100755 --- a/Lts/Services/AreaEffectSimulation/mine_corridor_creator.h +++ b/Lts/Services/AreaEffectSimulation/mine_corridor_creator.h @@ -11,7 +11,7 @@ #include #include -#include +#include #include #include "logger.h" diff --git a/Lts/Services/AreaEffectSimulation/object_base.h b/Lts/Services/AreaEffectSimulation/object_base.h index 49e4a95c..2b3ad543 100755 --- a/Lts/Services/AreaEffectSimulation/object_base.h +++ b/Lts/Services/AreaEffectSimulation/object_base.h @@ -16,7 +16,7 @@ #include "special_area_provider.h" #include "logger.h" -#include +#include #include #include diff --git a/Lts/Services/AreaEffectSimulation/object_borderline.h b/Lts/Services/AreaEffectSimulation/object_borderline.h index 528bbb55..8a7019cc 100755 --- a/Lts/Services/AreaEffectSimulation/object_borderline.h +++ b/Lts/Services/AreaEffectSimulation/object_borderline.h @@ -10,7 +10,7 @@ #include #include "object_base.h" -#include +#include #include diff --git a/Lts/Services/AreaEffectSimulation/object_charge_effect.h b/Lts/Services/AreaEffectSimulation/object_charge_effect.h index ef8bc1e8..c1defb55 100755 --- a/Lts/Services/AreaEffectSimulation/object_charge_effect.h +++ b/Lts/Services/AreaEffectSimulation/object_charge_effect.h @@ -11,7 +11,7 @@ #include "logger.h" -#include +#include #include #include #include diff --git a/Lts/Services/AreaEffectSimulation/object_effector.cpp b/Lts/Services/AreaEffectSimulation/object_effector.cpp index 13132470..efcdbf0e 100755 --- a/Lts/Services/AreaEffectSimulation/object_effector.cpp +++ b/Lts/Services/AreaEffectSimulation/object_effector.cpp @@ -183,11 +183,17 @@ void ObjectEffector::onEffectorFired() if (m_firingStrategy == nullptr) { ERROR_LOG(m_logger) << "Not possible to fire. No firing strategy specified."; - return; } - m_firingStrategy->doFiring(); + const bool bDoFiringSuccess = m_firingStrategy->doFiring(); + if (!bDoFiringSuccess) + { + ERROR_LOG(m_logger) << "doFiring failed" + << ", participantId=" << m_participantId + << ", aesItemId=" << m_aesItemId + << ", intendendTrajectory().size()=" << this->intendendTrajectory().size(); + } } // Anhand der EX-L39 Streuungsdaten wird eine Trajektorie für diesen @@ -209,7 +215,8 @@ void ObjectEffector::setIndendedTrajectory(const std::vector #include "object_base.h" -#include +#include #include diff --git a/Lts/Services/AssetManagement/dds_handler.cpp b/Lts/Services/AssetManagement/dds_handler.cpp index 577d7ca4..53361494 100755 --- a/Lts/Services/AssetManagement/dds_handler.cpp +++ b/Lts/Services/AssetManagement/dds_handler.cpp @@ -8,7 +8,7 @@ #include "dds_handler.h" -#include +#include namespace AssetManagement { diff --git a/Lts/Services/AssetManagement/dds_handler.h b/Lts/Services/AssetManagement/dds_handler.h index 84feccdc..74c56177 100755 --- a/Lts/Services/AssetManagement/dds_handler.h +++ b/Lts/Services/AssetManagement/dds_handler.h @@ -8,7 +8,7 @@ #pragma once #include -#include +#include #include #include diff --git a/Lts/Services/AssetManagement/main_handler.cpp b/Lts/Services/AssetManagement/main_handler.cpp index 4d88ad69..100983a5 100755 --- a/Lts/Services/AssetManagement/main_handler.cpp +++ b/Lts/Services/AssetManagement/main_handler.cpp @@ -15,7 +15,7 @@ #include "settings.h" #include -#include +#include #include namespace AssetManagement diff --git a/Lts/Services/AssetManagement/object_asset.h b/Lts/Services/AssetManagement/object_asset.h index c834ba0b..1a97a53b 100755 --- a/Lts/Services/AssetManagement/object_asset.h +++ b/Lts/Services/AssetManagement/object_asset.h @@ -10,7 +10,7 @@ #include "dds_handler.h" #include "logger.h" -#include +#include // Generated #include diff --git a/Lts/Services/AssetManagement/object_map_description.h b/Lts/Services/AssetManagement/object_map_description.h index bc41ed9c..3f45ebc2 100755 --- a/Lts/Services/AssetManagement/object_map_description.h +++ b/Lts/Services/AssetManagement/object_map_description.h @@ -8,7 +8,7 @@ #pragma once #include "logger.h" -#include +#include // Generated #include diff --git a/Lts/Services/AssetManagement/object_relay_info.h b/Lts/Services/AssetManagement/object_relay_info.h index b9609e7e..ae48cba1 100755 --- a/Lts/Services/AssetManagement/object_relay_info.h +++ b/Lts/Services/AssetManagement/object_relay_info.h @@ -10,7 +10,7 @@ #include "dds_handler.h" #include "logger.h" -#include +#include // Generated #include diff --git a/Lts/Services/AssetManagement/object_training_area.h b/Lts/Services/AssetManagement/object_training_area.h index c25619b6..e2503bc9 100755 --- a/Lts/Services/AssetManagement/object_training_area.h +++ b/Lts/Services/AssetManagement/object_training_area.h @@ -10,7 +10,7 @@ #include #include "dds_handler.h" #include "logger.h" -#include +#include // Generated #include diff --git a/Lts/Services/AudioVideoManagement/dds_handler.cpp b/Lts/Services/AudioVideoManagement/dds_handler.cpp index d1219645..c297a26e 100755 --- a/Lts/Services/AudioVideoManagement/dds_handler.cpp +++ b/Lts/Services/AudioVideoManagement/dds_handler.cpp @@ -18,7 +18,7 @@ #include #include -#include +#include namespace AudioVideoManagement diff --git a/Lts/Services/AudioVideoManagement/dds_handler.h b/Lts/Services/AudioVideoManagement/dds_handler.h index c2526d5b..9c58179c 100755 --- a/Lts/Services/AudioVideoManagement/dds_handler.h +++ b/Lts/Services/AudioVideoManagement/dds_handler.h @@ -9,11 +9,11 @@ #include "logger.h" #include -#include +#include #include #include -#include +#include #include #include diff --git a/Lts/Services/AudioVideoManagement/main_handler.cpp b/Lts/Services/AudioVideoManagement/main_handler.cpp index fcea092f..ff4d9dec 100755 --- a/Lts/Services/AudioVideoManagement/main_handler.cpp +++ b/Lts/Services/AudioVideoManagement/main_handler.cpp @@ -32,7 +32,7 @@ #include #include -#include +#include using namespace AudioVideoManagement; diff --git a/Lts/Services/AudioVideoManagement/object_menu_struct.cpp b/Lts/Services/AudioVideoManagement/object_menu_struct.cpp index 8917db8b..71b15111 100755 --- a/Lts/Services/AudioVideoManagement/object_menu_struct.cpp +++ b/Lts/Services/AudioVideoManagement/object_menu_struct.cpp @@ -13,7 +13,7 @@ #include "logger.h" #include #include -#include +#include #include #include #include diff --git a/Lts/Services/CentralEffectSimulation/Plugins/Explosions/handler_explosions.cpp b/Lts/Services/CentralEffectSimulation/Plugins/Explosions/handler_explosions.cpp index 876a2b7f..83650bde 100755 --- a/Lts/Services/CentralEffectSimulation/Plugins/Explosions/handler_explosions.cpp +++ b/Lts/Services/CentralEffectSimulation/Plugins/Explosions/handler_explosions.cpp @@ -115,7 +115,7 @@ void HandlerExplosions::onAesItemViewChanged(const AreaEffectSimulation::AesItem // if (m_ddsHandler->dtcPdm()->gearClassFromChargeTypeId(data.chargeTypeId()) == ProjectDataManagement::GearClass_def::AirSupport) // return; - static const QVector validAesTypes = {AesType_def::AtExplosionAreaSingleExplosions, AesType_def::AtExplosionSingle, AesType_def::AtExplosionCluster}; + static const QVector validAesTypes = {AesType_def::AtEffectCluster, AesType_def::AtExplosionAreaSingleExplosions, AesType_def::AtExplosionSingle, AesType_def::AtExplosionCluster}; if (!validAesTypes.contains(data.aesTypeId())) return; @@ -159,6 +159,12 @@ void HandlerExplosions::onAesItemViewChanged(const AreaEffectSimulation::AesItem DEBUG_LOG(m_logger) << "explosionCluster"; break; } + case AreaEffectSimulation::AesType::AtEffectCluster: + { + isCentral = true; + DEBUG_LOG(m_logger) << "effectCluster"; + break; + } default: DEBUG_LOG(m_logger) << "default, data.aesTypeId=" << aesTypeId; } // switch @@ -268,7 +274,7 @@ void HandlerExplosions::onAesItemViewChanged(const AreaEffectSimulation::AesItem // a) Aiv changes to EsActivated or // b) Effects ? // So be prepared and calculate hazardDistanceForm already at EsPrepared - if (aesTypeId == AreaEffectSimulation::AesType_def::AtExplosionCluster) + if (aesTypeId == AreaEffectSimulation::AesType_def::AtExplosionCluster || aesTypeId == AreaEffectSimulation::AesType_def::AtEffectCluster) { // useHazardDistance = (aesTypeId == AreaEffectSimulation::AesType_def::AtExplosionCluster); @@ -384,7 +390,10 @@ void HandlerExplosions::calculateImpact(const AreaEffectSimulation::ChargeEffect requestTab.equipmentNumber(equipNo); requestTab.participantId(pPos.participantId()); requestTab.chargeTypeId(data.chargeTypeId()); + //default requestTab.aesId(0); + requestTab.eventType(ProjectDataManagement::EventType_def::FireEvent); + // if (data.originatorTypeId() == ProjectDataManagement::StateChangeOriginator::Participant) { // if we get the equipmentNumber from the participant we will send this (needed by tab) @@ -402,10 +411,14 @@ void HandlerExplosions::calculateImpact(const AreaEffectSimulation::ChargeEffect { requestTab.originatorEquipmentNumber(data.originatorId()); } + else if (data.originatorTypeId() == ProjectDataManagement::StateChangeOriginator::AreaEffectSimulation) + { + requestTab.aesId(data.originatorId()); + requestTab.eventType(ProjectDataManagement::EventType_def::ExplosionCluster); + } requestTab.remainEffectPercent(remainEffectPercent); requestTab.position(tabPosition); requestTab.effectTime(data.effectStart() / 1000); - requestTab.eventType(ProjectDataManagement::EventType_def::FireEvent); ParticipantManagement::Participant originator = m_ddsHandler->dtcPpm()->participant(data.originatorId()); requestTab.partyId(originator.partyId()); requestTab.mineId(0); diff --git a/Lts/Services/CentralEffectSimulation/Plugins/TargetAreas/dds_handler.cpp b/Lts/Services/CentralEffectSimulation/Plugins/TargetAreas/dds_handler.cpp index d15ad395..5f5591f3 100755 --- a/Lts/Services/CentralEffectSimulation/Plugins/TargetAreas/dds_handler.cpp +++ b/Lts/Services/CentralEffectSimulation/Plugins/TargetAreas/dds_handler.cpp @@ -8,7 +8,7 @@ #include "dds_handler.h" -#include +#include namespace TargetAreas { diff --git a/Lts/Services/CentralEffectSimulation/Plugins/TargetAreas/dds_handler.h b/Lts/Services/CentralEffectSimulation/Plugins/TargetAreas/dds_handler.h index 60aa0e62..1e2d5c44 100755 --- a/Lts/Services/CentralEffectSimulation/Plugins/TargetAreas/dds_handler.h +++ b/Lts/Services/CentralEffectSimulation/Plugins/TargetAreas/dds_handler.h @@ -9,8 +9,8 @@ #include #include -#include -#include +#include +#include #include #include #include diff --git a/Lts/Services/CentralEffectSimulation/dds_handler.cpp b/Lts/Services/CentralEffectSimulation/dds_handler.cpp index 90f23adc..034d2335 100755 --- a/Lts/Services/CentralEffectSimulation/dds_handler.cpp +++ b/Lts/Services/CentralEffectSimulation/dds_handler.cpp @@ -8,7 +8,7 @@ #include "dds_handler.h" -#include +#include namespace CentralEffectSimulation { diff --git a/Lts/Services/CentralEffectSimulation/dds_handler.h b/Lts/Services/CentralEffectSimulation/dds_handler.h index ba82e608..c48faff8 100755 --- a/Lts/Services/CentralEffectSimulation/dds_handler.h +++ b/Lts/Services/CentralEffectSimulation/dds_handler.h @@ -9,8 +9,8 @@ #include #include -#include -#include +#include +#include #include #include #include diff --git a/Lts/Services/CentralEffectSimulation/handler_participant.cpp b/Lts/Services/CentralEffectSimulation/handler_participant.cpp index 11ddadb9..218b5010 100755 --- a/Lts/Services/CentralEffectSimulation/handler_participant.cpp +++ b/Lts/Services/CentralEffectSimulation/handler_participant.cpp @@ -118,11 +118,16 @@ void HandlerParticipant::onParticipantPositionChanged(const ParticipantManagemen } else { + ParticipantManagement::TypeClass typeClass = typeClassFromTypeId(data.participantTypeId()); + if (typeClass == ParticipantManagement::TypeClass_def::SupportEntity + || typeClass == ParticipantManagement::TypeClass_def::SupportUnit + || typeClass == ParticipantManagement::TypeClass_def::Unit + || typeClass == ParticipantManagement::TypeClass_def::Unknown) + return; + // [GUEZE-3102] Aufgesessene Teilnehmer bekommen den Schaden vom Fahrzeug, auf dem sie aufgesessen sind. - if ( data.mountedOn().is_set()) - { + if (data.mountedOn().is_set()) return; - } int floorId = m_handlerBuildingData->getFloorIdFromRoomId(data.roomId()); int lastFloorId; CesParticipantData partPos(data); diff --git a/Lts/Services/CentralEffectSimulation/main_handler.cpp b/Lts/Services/CentralEffectSimulation/main_handler.cpp index 4d2776cd..78c1805d 100755 --- a/Lts/Services/CentralEffectSimulation/main_handler.cpp +++ b/Lts/Services/CentralEffectSimulation/main_handler.cpp @@ -9,7 +9,7 @@ #include "main_handler.h" #include "settings.h" -#include +#include #include #include diff --git a/Lts/Services/CentralEffectSimulation/point_helpers.h b/Lts/Services/CentralEffectSimulation/point_helpers.h index fae12950..0aa7d4c5 100755 --- a/Lts/Services/CentralEffectSimulation/point_helpers.h +++ b/Lts/Services/CentralEffectSimulation/point_helpers.h @@ -11,7 +11,7 @@ #include #include #include -#include +#include namespace CentralEffectSimulation { diff --git a/Lts/Services/CodificationManagement/dds_handler.h b/Lts/Services/CodificationManagement/dds_handler.h index b15c7a6b..28d29aee 100755 --- a/Lts/Services/CodificationManagement/dds_handler.h +++ b/Lts/Services/CodificationManagement/dds_handler.h @@ -9,7 +9,7 @@ #pragma once #include -#include +#include #include #include diff --git a/Lts/Services/CodificationManagement/initialization.cpp b/Lts/Services/CodificationManagement/initialization.cpp index bec7e806..879c753d 100755 --- a/Lts/Services/CodificationManagement/initialization.cpp +++ b/Lts/Services/CodificationManagement/initialization.cpp @@ -12,7 +12,7 @@ #include #include -#include +#include using namespace CodificationManagement; diff --git a/Lts/Services/EffectShowClient/dds_handler.cpp b/Lts/Services/EffectShowClient/dds_handler.cpp index 5f9b0be0..1b869108 100755 --- a/Lts/Services/EffectShowClient/dds_handler.cpp +++ b/Lts/Services/EffectShowClient/dds_handler.cpp @@ -7,7 +7,7 @@ */ #include "dds_handler.h" -#include +#include namespace EffectShowClient { diff --git a/Lts/Services/EffectShowClient/dds_handler.h b/Lts/Services/EffectShowClient/dds_handler.h index 0777d576..b3f0b6b8 100755 --- a/Lts/Services/EffectShowClient/dds_handler.h +++ b/Lts/Services/EffectShowClient/dds_handler.h @@ -9,7 +9,7 @@ #pragma once #include -#include +#include #include #include diff --git a/Lts/Services/EffectShowClient/main_handler.cpp b/Lts/Services/EffectShowClient/main_handler.cpp index 2c1b29f6..ba11402c 100755 --- a/Lts/Services/EffectShowClient/main_handler.cpp +++ b/Lts/Services/EffectShowClient/main_handler.cpp @@ -14,7 +14,7 @@ #include "handler_vehicle.h" #include "control_unit_handler.h" #include "settings.h" -#include +#include namespace EffectShowClient { diff --git a/Lts/Services/EffectShowClient/object_order.h b/Lts/Services/EffectShowClient/object_order.h index 854c1206..5c568434 100755 --- a/Lts/Services/EffectShowClient/object_order.h +++ b/Lts/Services/EffectShowClient/object_order.h @@ -11,7 +11,7 @@ #include #include -#include +#include // Generated #include diff --git a/Lts/Services/EffectShowManagement/dds_handler.h b/Lts/Services/EffectShowManagement/dds_handler.h index d5ae4927..6200abbf 100755 --- a/Lts/Services/EffectShowManagement/dds_handler.h +++ b/Lts/Services/EffectShowManagement/dds_handler.h @@ -9,9 +9,9 @@ #pragma once #include -#include -#include -#include +#include +#include +#include #include #include diff --git a/Lts/Services/EffectShowManagement/object_aes_data.h b/Lts/Services/EffectShowManagement/object_aes_data.h index 2735f186..7304666c 100755 --- a/Lts/Services/EffectShowManagement/object_aes_data.h +++ b/Lts/Services/EffectShowManagement/object_aes_data.h @@ -10,7 +10,7 @@ #include "dds_handler.h" #include "logger.h" -#include +#include // Generated #include diff --git a/Lts/Services/EffectShowManagement/object_effect_show.h b/Lts/Services/EffectShowManagement/object_effect_show.h index 483c9d50..254c0f7d 100755 --- a/Lts/Services/EffectShowManagement/object_effect_show.h +++ b/Lts/Services/EffectShowManagement/object_effect_show.h @@ -12,7 +12,7 @@ #include "esm_convert_from_tab.h" #include "logger.h" -#include +#include #include #include diff --git a/Lts/Services/EffectShowManagement/object_effect_show_actor_relocation.h b/Lts/Services/EffectShowManagement/object_effect_show_actor_relocation.h index 996b7bff..692177f8 100755 --- a/Lts/Services/EffectShowManagement/object_effect_show_actor_relocation.h +++ b/Lts/Services/EffectShowManagement/object_effect_show_actor_relocation.h @@ -10,7 +10,7 @@ #include "esm_convert_to_tab.h" #include "logger.h" -#include +#include #include #include diff --git a/Lts/Services/EffectShowManagement/object_effect_show_vehicle_status.h b/Lts/Services/EffectShowManagement/object_effect_show_vehicle_status.h index 7c15b69d..9887827e 100755 --- a/Lts/Services/EffectShowManagement/object_effect_show_vehicle_status.h +++ b/Lts/Services/EffectShowManagement/object_effect_show_vehicle_status.h @@ -11,7 +11,7 @@ #include "handler_ppm_data.h" #include "logger.h" -#include +#include // Generated #include diff --git a/Lts/Services/Evaluations/dds_handler.cpp b/Lts/Services/Evaluations/dds_handler.cpp index 05e3fdae..5e395b78 100755 --- a/Lts/Services/Evaluations/dds_handler.cpp +++ b/Lts/Services/Evaluations/dds_handler.cpp @@ -8,7 +8,7 @@ #include "dds_handler.h" -#include +#include namespace Evaluations { diff --git a/Lts/Services/Evaluations/initialization.cpp b/Lts/Services/Evaluations/initialization.cpp index 05fa0b07..41dd0ca6 100755 --- a/Lts/Services/Evaluations/initialization.cpp +++ b/Lts/Services/Evaluations/initialization.cpp @@ -13,7 +13,7 @@ #include #include -#include +#include namespace Evaluations { diff --git a/Lts/Services/Evaluations/object_comment.h b/Lts/Services/Evaluations/object_comment.h index 739ff504..8b6d5360 100755 --- a/Lts/Services/Evaluations/object_comment.h +++ b/Lts/Services/Evaluations/object_comment.h @@ -9,7 +9,7 @@ #include "dds_handler.h" #include "logger.h" -#include +#include // Generated #include diff --git a/Lts/Services/Evaluations/object_criterium.h b/Lts/Services/Evaluations/object_criterium.h index 744308a7..3566e4f9 100755 --- a/Lts/Services/Evaluations/object_criterium.h +++ b/Lts/Services/Evaluations/object_criterium.h @@ -9,7 +9,7 @@ #include "dds_handler.h" #include "logger.h" -#include +#include // Generated #include diff --git a/Lts/Services/Evaluations/object_evaluation_element.h b/Lts/Services/Evaluations/object_evaluation_element.h index 4e5c1a03..ddc2060d 100755 --- a/Lts/Services/Evaluations/object_evaluation_element.h +++ b/Lts/Services/Evaluations/object_evaluation_element.h @@ -9,7 +9,7 @@ #include "dds_handler.h" #include "logger.h" -#include +#include // Generated #include diff --git a/Lts/Services/Evaluations/object_san_category_line.h b/Lts/Services/Evaluations/object_san_category_line.h index 14dd4b62..fa79a944 100755 --- a/Lts/Services/Evaluations/object_san_category_line.h +++ b/Lts/Services/Evaluations/object_san_category_line.h @@ -9,7 +9,7 @@ #include "dds_handler.h" #include "logger.h" -#include +#include // Generated #include diff --git a/Lts/Services/Evaluations/object_san_nine_liner.h b/Lts/Services/Evaluations/object_san_nine_liner.h index 925bfa9c..31c4c8af 100755 --- a/Lts/Services/Evaluations/object_san_nine_liner.h +++ b/Lts/Services/Evaluations/object_san_nine_liner.h @@ -9,7 +9,7 @@ #include "dds_handler.h" #include "logger.h" -#include +#include // Generated #include diff --git a/Lts/Services/ExerciseEventManagement/dds_handler.h b/Lts/Services/ExerciseEventManagement/dds_handler.h index 061704e6..f6165336 100755 --- a/Lts/Services/ExerciseEventManagement/dds_handler.h +++ b/Lts/Services/ExerciseEventManagement/dds_handler.h @@ -8,7 +8,7 @@ #pragma once #include -#include +#include #include #include #include "logger.h" diff --git a/Lts/Services/ExerciseEventManagement/main_handler.cpp b/Lts/Services/ExerciseEventManagement/main_handler.cpp index 18d21ab3..5d24395e 100755 --- a/Lts/Services/ExerciseEventManagement/main_handler.cpp +++ b/Lts/Services/ExerciseEventManagement/main_handler.cpp @@ -14,7 +14,7 @@ #include "web_socket_avs.h" #include "web_socket_server.h" -#include +#include #include #include #include diff --git a/Lts/Services/ExerciseManagement/dds_handler.cpp b/Lts/Services/ExerciseManagement/dds_handler.cpp index 2abc9a93..84be6d90 100755 --- a/Lts/Services/ExerciseManagement/dds_handler.cpp +++ b/Lts/Services/ExerciseManagement/dds_handler.cpp @@ -8,7 +8,7 @@ #include "dds_handler.h" -#include +#include namespace ExerciseManagement { diff --git a/Lts/Services/ExerciseManagement/dds_handler.h b/Lts/Services/ExerciseManagement/dds_handler.h index 85c9115b..3f99cf01 100755 --- a/Lts/Services/ExerciseManagement/dds_handler.h +++ b/Lts/Services/ExerciseManagement/dds_handler.h @@ -8,7 +8,7 @@ #pragma once #include -#include +#include #include #include #include diff --git a/Lts/Services/ExerciseManagement/main_handler.cpp b/Lts/Services/ExerciseManagement/main_handler.cpp index 18d58da8..affebfcf 100755 --- a/Lts/Services/ExerciseManagement/main_handler.cpp +++ b/Lts/Services/ExerciseManagement/main_handler.cpp @@ -13,7 +13,7 @@ #include "settings.h" #include -#include +#include #include namespace ExerciseManagement diff --git a/Lts/Services/ExerciseManagement/object_exercise.h b/Lts/Services/ExerciseManagement/object_exercise.h index 7e7d1795..14dcb2b4 100755 --- a/Lts/Services/ExerciseManagement/object_exercise.h +++ b/Lts/Services/ExerciseManagement/object_exercise.h @@ -8,7 +8,7 @@ #include #include "dds_handler.h" -#include +#include // Generated #include diff --git a/Lts/Services/ExerciseManagement/object_exercise_phase.h b/Lts/Services/ExerciseManagement/object_exercise_phase.h index e57410b1..6525bc33 100755 --- a/Lts/Services/ExerciseManagement/object_exercise_phase.h +++ b/Lts/Services/ExerciseManagement/object_exercise_phase.h @@ -8,7 +8,7 @@ */ #pragma once -#include +#include // Generated #include diff --git a/Lts/Services/FileManagement/dds_handler.cpp b/Lts/Services/FileManagement/dds_handler.cpp index ae20ffcb..3e867269 100755 --- a/Lts/Services/FileManagement/dds_handler.cpp +++ b/Lts/Services/FileManagement/dds_handler.cpp @@ -9,7 +9,7 @@ #include "dds_handler.h" -#include +#include namespace FileManagement { diff --git a/Lts/Services/FileManagement/dds_handler.h b/Lts/Services/FileManagement/dds_handler.h index cfc8d269..827061ee 100755 --- a/Lts/Services/FileManagement/dds_handler.h +++ b/Lts/Services/FileManagement/dds_handler.h @@ -10,7 +10,7 @@ #pragma once #include -#include +#include #include #include #include diff --git a/Lts/Services/FileManagement/main_handler.cpp b/Lts/Services/FileManagement/main_handler.cpp index 3df9cee2..1b8cb8f5 100755 --- a/Lts/Services/FileManagement/main_handler.cpp +++ b/Lts/Services/FileManagement/main_handler.cpp @@ -17,7 +17,7 @@ #include "pdf_server.h" #include -#include +#include namespace FileManagement { diff --git a/Lts/Services/FileManagement/object_file_content.h b/Lts/Services/FileManagement/object_file_content.h index d837e698..a0d1ba93 100755 --- a/Lts/Services/FileManagement/object_file_content.h +++ b/Lts/Services/FileManagement/object_file_content.h @@ -11,7 +11,7 @@ #include "base.h" -#include +#include // Generated #include diff --git a/Lts/Services/FileManagement/object_file_type_info.h b/Lts/Services/FileManagement/object_file_type_info.h index 480e9b0a..4c73a99f 100755 --- a/Lts/Services/FileManagement/object_file_type_info.h +++ b/Lts/Services/FileManagement/object_file_type_info.h @@ -11,7 +11,7 @@ #include "base.h" -#include +#include // Generated #include diff --git a/Lts/Services/FileManagement/object_folder.h b/Lts/Services/FileManagement/object_folder.h index d2f4fea2..9293d16f 100755 --- a/Lts/Services/FileManagement/object_folder.h +++ b/Lts/Services/FileManagement/object_folder.h @@ -11,7 +11,7 @@ #include "base.h" -#include +#include // Generated #include diff --git a/Lts/Services/FilterManagement/dds_handler.cpp b/Lts/Services/FilterManagement/dds_handler.cpp index d5c9dab1..eb435583 100755 --- a/Lts/Services/FilterManagement/dds_handler.cpp +++ b/Lts/Services/FilterManagement/dds_handler.cpp @@ -7,7 +7,7 @@ */ #include "dds_handler.h" -#include +#include namespace FilterManagement diff --git a/Lts/Services/FilterManagement/dds_handler.h b/Lts/Services/FilterManagement/dds_handler.h index 878f5982..93f77d32 100755 --- a/Lts/Services/FilterManagement/dds_handler.h +++ b/Lts/Services/FilterManagement/dds_handler.h @@ -9,7 +9,7 @@ #pragma once #include -#include +#include #include #include diff --git a/Lts/Services/FilterManagement/main_handler.cpp b/Lts/Services/FilterManagement/main_handler.cpp index 0aa28263..86570807 100755 --- a/Lts/Services/FilterManagement/main_handler.cpp +++ b/Lts/Services/FilterManagement/main_handler.cpp @@ -8,7 +8,7 @@ #include "settings.h" -#include +#include #include diff --git a/Lts/Services/GuezIedManagement/dds_handler.cpp b/Lts/Services/GuezIedManagement/dds_handler.cpp index a739537c..ae312140 100755 --- a/Lts/Services/GuezIedManagement/dds_handler.cpp +++ b/Lts/Services/GuezIedManagement/dds_handler.cpp @@ -8,7 +8,7 @@ #include "dds_handler.h" -#include +#include namespace GuezIedManagement { diff --git a/Lts/Services/GuezIedManagement/dds_handler.h b/Lts/Services/GuezIedManagement/dds_handler.h index 634cb87a..c9800834 100755 --- a/Lts/Services/GuezIedManagement/dds_handler.h +++ b/Lts/Services/GuezIedManagement/dds_handler.h @@ -9,7 +9,7 @@ #pragma once #include -#include +#include #include #include #include "logger.h" diff --git a/Lts/Services/GuezIedManagement/main_handler.cpp b/Lts/Services/GuezIedManagement/main_handler.cpp index ed6aa9c7..3a33d5c2 100755 --- a/Lts/Services/GuezIedManagement/main_handler.cpp +++ b/Lts/Services/GuezIedManagement/main_handler.cpp @@ -10,7 +10,7 @@ #include -#include +#include #include #include #include diff --git a/Lts/Services/GuezIedManagement/object_ied.h b/Lts/Services/GuezIedManagement/object_ied.h index 43355378..695adc04 100755 --- a/Lts/Services/GuezIedManagement/object_ied.h +++ b/Lts/Services/GuezIedManagement/object_ied.h @@ -10,7 +10,7 @@ #include "dds_handler.h" #include "logger.h" -#include +#include #include // Generated diff --git a/Lts/Services/GuezMinelayerProcessing/dds_handler.cpp b/Lts/Services/GuezMinelayerProcessing/dds_handler.cpp index 2028f9ed..65a3fd18 100755 --- a/Lts/Services/GuezMinelayerProcessing/dds_handler.cpp +++ b/Lts/Services/GuezMinelayerProcessing/dds_handler.cpp @@ -8,7 +8,7 @@ #include "dds_handler.h" -#include +#include namespace GuezMinelayerProcessing { diff --git a/Lts/Services/GuezMinelayerProcessing/dds_handler.h b/Lts/Services/GuezMinelayerProcessing/dds_handler.h index 9fd1db59..83cb11f2 100755 --- a/Lts/Services/GuezMinelayerProcessing/dds_handler.h +++ b/Lts/Services/GuezMinelayerProcessing/dds_handler.h @@ -8,7 +8,7 @@ #pragma once #include -#include +#include #include "logger.h" namespace GuezMinelayerProcessing diff --git a/Lts/Services/InfrastructureManagement/dds_handler.cpp b/Lts/Services/InfrastructureManagement/dds_handler.cpp index eb94e81b..400fc370 100755 --- a/Lts/Services/InfrastructureManagement/dds_handler.cpp +++ b/Lts/Services/InfrastructureManagement/dds_handler.cpp @@ -9,7 +9,7 @@ #include "dds_handler.h" -#include +#include namespace InfrastructureManagement { diff --git a/Lts/Services/InfrastructureManagement/dds_handler.h b/Lts/Services/InfrastructureManagement/dds_handler.h index 64c4dfdd..67cb07a6 100755 --- a/Lts/Services/InfrastructureManagement/dds_handler.h +++ b/Lts/Services/InfrastructureManagement/dds_handler.h @@ -10,7 +10,7 @@ #pragma once #include -#include +#include #include #include #include "logger.h" diff --git a/Lts/Services/InfrastructureManagement/main_handler.cpp b/Lts/Services/InfrastructureManagement/main_handler.cpp index a7d265ef..88f7c7b4 100755 --- a/Lts/Services/InfrastructureManagement/main_handler.cpp +++ b/Lts/Services/InfrastructureManagement/main_handler.cpp @@ -19,7 +19,7 @@ #include "settings.h" #include -#include +#include #include #include diff --git a/Lts/Services/InfrastructureManagement/object_effect_area.h b/Lts/Services/InfrastructureManagement/object_effect_area.h index 10a2cbb1..2bd6913d 100755 --- a/Lts/Services/InfrastructureManagement/object_effect_area.h +++ b/Lts/Services/InfrastructureManagement/object_effect_area.h @@ -10,7 +10,7 @@ #pragma once #include "base.h" -#include +#include #include diff --git a/Lts/Services/InfrastructureManagement/object_instrumentation_asset.h b/Lts/Services/InfrastructureManagement/object_instrumentation_asset.h index e8b3f2fa..2d0575ea 100755 --- a/Lts/Services/InfrastructureManagement/object_instrumentation_asset.h +++ b/Lts/Services/InfrastructureManagement/object_instrumentation_asset.h @@ -10,7 +10,7 @@ #pragma once #include "base.h" -#include +#include #include diff --git a/Lts/Services/InfrastructureManagement/object_main_schedule.h b/Lts/Services/InfrastructureManagement/object_main_schedule.h index 37fc246d..a858b9da 100755 --- a/Lts/Services/InfrastructureManagement/object_main_schedule.h +++ b/Lts/Services/InfrastructureManagement/object_main_schedule.h @@ -10,7 +10,7 @@ #pragma once #include "base.h" -#include +#include #include diff --git a/Lts/Services/InfrastructureManagement/object_main_structure_element.h b/Lts/Services/InfrastructureManagement/object_main_structure_element.h index 5ae4547b..c3244f48 100755 --- a/Lts/Services/InfrastructureManagement/object_main_structure_element.h +++ b/Lts/Services/InfrastructureManagement/object_main_structure_element.h @@ -12,7 +12,7 @@ #include #include #include "base.h" -#include +#include #include diff --git a/Lts/Services/InfrastructureManagement/object_mounting_point_asset.h b/Lts/Services/InfrastructureManagement/object_mounting_point_asset.h index b33e0cef..f8ffeec0 100755 --- a/Lts/Services/InfrastructureManagement/object_mounting_point_asset.h +++ b/Lts/Services/InfrastructureManagement/object_mounting_point_asset.h @@ -10,7 +10,7 @@ #pragma once #include "base.h" -#include +#include #include diff --git a/Lts/Services/InfrastructureManagement/object_special_area.h b/Lts/Services/InfrastructureManagement/object_special_area.h index 97290fee..18f93291 100755 --- a/Lts/Services/InfrastructureManagement/object_special_area.h +++ b/Lts/Services/InfrastructureManagement/object_special_area.h @@ -10,7 +10,7 @@ #pragma once #include "base.h" -#include +#include #include diff --git a/Lts/Services/InfrastructureManagement/object_structure_element.h b/Lts/Services/InfrastructureManagement/object_structure_element.h index 3b2fb224..dd69e9f4 100755 --- a/Lts/Services/InfrastructureManagement/object_structure_element.h +++ b/Lts/Services/InfrastructureManagement/object_structure_element.h @@ -10,7 +10,7 @@ #pragma once #include "base.h" -#include +#include #include #include diff --git a/Lts/Services/MarkerManagement/dds_handler.h b/Lts/Services/MarkerManagement/dds_handler.h index ebccd956..c62b9748 100755 --- a/Lts/Services/MarkerManagement/dds_handler.h +++ b/Lts/Services/MarkerManagement/dds_handler.h @@ -8,7 +8,7 @@ #pragma once #include -#include +#include #include #include #include "logger.h" diff --git a/Lts/Services/MarkerManagement/object_marker.h b/Lts/Services/MarkerManagement/object_marker.h index fea4e5ab..8091db8b 100755 --- a/Lts/Services/MarkerManagement/object_marker.h +++ b/Lts/Services/MarkerManagement/object_marker.h @@ -10,7 +10,7 @@ #include "dds_handler.h" #include "mrk_db.h" -#include +#include // Generated #include diff --git a/Lts/Services/MarkerManagement/object_snapshot.h b/Lts/Services/MarkerManagement/object_snapshot.h index 2aedef24..3be96e5a 100755 --- a/Lts/Services/MarkerManagement/object_snapshot.h +++ b/Lts/Services/MarkerManagement/object_snapshot.h @@ -11,7 +11,7 @@ #include #include "dds_handler.h" #include "mrk_db.h" -#include +#include // Generated #include diff --git a/Lts/Services/Messaging/dds_handler.cpp b/Lts/Services/Messaging/dds_handler.cpp index e3cdcac8..c1e5c2dc 100755 --- a/Lts/Services/Messaging/dds_handler.cpp +++ b/Lts/Services/Messaging/dds_handler.cpp @@ -8,7 +8,7 @@ #include "dds_handler.h" -#include +#include namespace Messaging { diff --git a/Lts/Services/Messaging/dds_handler.h b/Lts/Services/Messaging/dds_handler.h index 82879910..4d6afd3a 100755 --- a/Lts/Services/Messaging/dds_handler.h +++ b/Lts/Services/Messaging/dds_handler.h @@ -8,8 +8,8 @@ #pragma once #include -#include -#include +#include +#include #include diff --git a/Lts/Services/Messaging/main_handler.cpp b/Lts/Services/Messaging/main_handler.cpp index 75345f9c..67b3cd39 100755 --- a/Lts/Services/Messaging/main_handler.cpp +++ b/Lts/Services/Messaging/main_handler.cpp @@ -9,7 +9,7 @@ #include "main_handler.h" #include "settings.h" -#include +#include #include namespace Messaging diff --git a/Lts/Services/MeteoDataManagement/dds_handler.cpp b/Lts/Services/MeteoDataManagement/dds_handler.cpp index cdb97815..b6b00cf9 100755 --- a/Lts/Services/MeteoDataManagement/dds_handler.cpp +++ b/Lts/Services/MeteoDataManagement/dds_handler.cpp @@ -8,7 +8,7 @@ #include "dds_handler.h" -#include +#include namespace MeteoDataManagement { diff --git a/Lts/Services/MeteoDataManagement/dds_handler.h b/Lts/Services/MeteoDataManagement/dds_handler.h index 77ccf323..b8128263 100755 --- a/Lts/Services/MeteoDataManagement/dds_handler.h +++ b/Lts/Services/MeteoDataManagement/dds_handler.h @@ -12,7 +12,7 @@ #include #include -#include +#include #include "logger.h" diff --git a/Lts/Services/MeteoDataManagement/main_handler.cpp b/Lts/Services/MeteoDataManagement/main_handler.cpp index 3d352eff..e40314e9 100755 --- a/Lts/Services/MeteoDataManagement/main_handler.cpp +++ b/Lts/Services/MeteoDataManagement/main_handler.cpp @@ -9,7 +9,7 @@ #include "main_handler.h" #include "settings.h" -#include +#include #include #include diff --git a/Lts/Services/NmeaManagement/dds_handler.cpp b/Lts/Services/NmeaManagement/dds_handler.cpp index bd786981..4569f0cf 100755 --- a/Lts/Services/NmeaManagement/dds_handler.cpp +++ b/Lts/Services/NmeaManagement/dds_handler.cpp @@ -12,7 +12,7 @@ #include "nme_fts.h" #include -#include +#include namespace NmeaManagement { diff --git a/Lts/Services/NmeaManagement/dds_handler.h b/Lts/Services/NmeaManagement/dds_handler.h index f9e48e24..fbd2267b 100755 --- a/Lts/Services/NmeaManagement/dds_handler.h +++ b/Lts/Services/NmeaManagement/dds_handler.h @@ -10,9 +10,9 @@ #include #include -#include -#include -#include +#include +#include +#include #include #include diff --git a/Lts/Services/NotificationManagement/dds_handler.cpp b/Lts/Services/NotificationManagement/dds_handler.cpp index b534364a..d27dba81 100755 --- a/Lts/Services/NotificationManagement/dds_handler.cpp +++ b/Lts/Services/NotificationManagement/dds_handler.cpp @@ -8,7 +8,7 @@ #include "dds_handler.h" -#include +#include namespace NotificationManagement { diff --git a/Lts/Services/NotificationManagement/dds_handler.h b/Lts/Services/NotificationManagement/dds_handler.h index 10941109..0ab3dd64 100755 --- a/Lts/Services/NotificationManagement/dds_handler.h +++ b/Lts/Services/NotificationManagement/dds_handler.h @@ -7,8 +7,8 @@ */ #pragma once -#include -#include +#include +#include #include #include "logger.h" diff --git a/Lts/Services/NotificationManagement/main_handler.cpp b/Lts/Services/NotificationManagement/main_handler.cpp index 9841ea31..abe51024 100755 --- a/Lts/Services/NotificationManagement/main_handler.cpp +++ b/Lts/Services/NotificationManagement/main_handler.cpp @@ -9,7 +9,7 @@ #include "main_handler.h" #include "settings.h" -#include +#include #include namespace NotificationManagement diff --git a/Lts/Services/NotificationManagement/object_notification.h b/Lts/Services/NotificationManagement/object_notification.h index 2b27c601..537a0f9d 100755 --- a/Lts/Services/NotificationManagement/object_notification.h +++ b/Lts/Services/NotificationManagement/object_notification.h @@ -10,7 +10,7 @@ #include "dds_handler.h" //#include "nom_db.h" -#include +#include // Generated #include diff --git a/Lts/Services/OcBaseDownload/WebSocketInterface/Messages/client_message.h b/Lts/Services/OcBaseDownload/WebSocketInterface/Messages/client_message.h index 5febcf3b..8d9bc417 100755 --- a/Lts/Services/OcBaseDownload/WebSocketInterface/Messages/client_message.h +++ b/Lts/Services/OcBaseDownload/WebSocketInterface/Messages/client_message.h @@ -11,7 +11,7 @@ #include #include -#include +#include #include #include diff --git a/Lts/Services/OcBaseDownload/WebSocketInterface/Messages/reply_message.h b/Lts/Services/OcBaseDownload/WebSocketInterface/Messages/reply_message.h index 48b742b2..20cdc0fa 100755 --- a/Lts/Services/OcBaseDownload/WebSocketInterface/Messages/reply_message.h +++ b/Lts/Services/OcBaseDownload/WebSocketInterface/Messages/reply_message.h @@ -10,7 +10,7 @@ #include -#include +#include #include #include diff --git a/Lts/Services/OcBaseDownload/dds_handler.cpp b/Lts/Services/OcBaseDownload/dds_handler.cpp index 14f71954..96992567 100755 --- a/Lts/Services/OcBaseDownload/dds_handler.cpp +++ b/Lts/Services/OcBaseDownload/dds_handler.cpp @@ -9,7 +9,7 @@ #include "dds_handler.h" #include -#include +#include namespace OcBaseDownload { diff --git a/Lts/Services/OcBaseDownload/dds_handler.h b/Lts/Services/OcBaseDownload/dds_handler.h index 95d5e099..2ab4b6f7 100755 --- a/Lts/Services/OcBaseDownload/dds_handler.h +++ b/Lts/Services/OcBaseDownload/dds_handler.h @@ -9,8 +9,8 @@ #pragma once #include -#include -#include +#include +#include #include #include "logger.h" diff --git a/Lts/Services/OcBaseDownload/handler_base_download.cpp b/Lts/Services/OcBaseDownload/handler_base_download.cpp index 68638af9..aa4545e3 100755 --- a/Lts/Services/OcBaseDownload/handler_base_download.cpp +++ b/Lts/Services/OcBaseDownload/handler_base_download.cpp @@ -23,7 +23,7 @@ #include #include -#include +#include #include #include #include "copy_database.h" diff --git a/Lts/Services/OcBaseDownload/main_handler.cpp b/Lts/Services/OcBaseDownload/main_handler.cpp index fcc10f1f..ec9520bb 100755 --- a/Lts/Services/OcBaseDownload/main_handler.cpp +++ b/Lts/Services/OcBaseDownload/main_handler.cpp @@ -7,7 +7,7 @@ #include "main_handler.h" -#include +#include #include namespace OcBaseDownload diff --git a/Lts/Services/OcSituationClient/WebSocketInterface/Messages/client_message.h b/Lts/Services/OcSituationClient/WebSocketInterface/Messages/client_message.h index a7d4e470..0d3a3f91 100755 --- a/Lts/Services/OcSituationClient/WebSocketInterface/Messages/client_message.h +++ b/Lts/Services/OcSituationClient/WebSocketInterface/Messages/client_message.h @@ -11,7 +11,7 @@ #include #include -#include +#include #include #include diff --git a/Lts/Services/OcSituationClient/WebSocketInterface/Messages/reply_message.h b/Lts/Services/OcSituationClient/WebSocketInterface/Messages/reply_message.h index 7a880828..a21033b2 100755 --- a/Lts/Services/OcSituationClient/WebSocketInterface/Messages/reply_message.h +++ b/Lts/Services/OcSituationClient/WebSocketInterface/Messages/reply_message.h @@ -10,7 +10,7 @@ #include -#include +#include #include #include diff --git a/Lts/Services/OcSituationClient/dds_handler.cpp b/Lts/Services/OcSituationClient/dds_handler.cpp index 8d3eb709..4cdcac7b 100755 --- a/Lts/Services/OcSituationClient/dds_handler.cpp +++ b/Lts/Services/OcSituationClient/dds_handler.cpp @@ -8,7 +8,7 @@ #include "dds_handler.h" -#include +#include namespace OcSituationClient { diff --git a/Lts/Services/OcSituationClient/dds_handler.h b/Lts/Services/OcSituationClient/dds_handler.h index 9c09984d..118c7d49 100755 --- a/Lts/Services/OcSituationClient/dds_handler.h +++ b/Lts/Services/OcSituationClient/dds_handler.h @@ -9,8 +9,8 @@ #pragma once #include -#include -#include +#include +#include #include diff --git a/Lts/Services/OcSituationClient/main_handler.cpp b/Lts/Services/OcSituationClient/main_handler.cpp index 46c884c4..98a45f21 100755 --- a/Lts/Services/OcSituationClient/main_handler.cpp +++ b/Lts/Services/OcSituationClient/main_handler.cpp @@ -8,7 +8,7 @@ #include "main_handler.h" -#include +#include #include "handler_oc_data.h" #include "settings.h" diff --git a/Lts/Services/OcSituationServer/dds_handler.cpp b/Lts/Services/OcSituationServer/dds_handler.cpp index 7d21a457..dad19cab 100755 --- a/Lts/Services/OcSituationServer/dds_handler.cpp +++ b/Lts/Services/OcSituationServer/dds_handler.cpp @@ -8,7 +8,7 @@ #include "dds_handler.h" -#include +#include namespace OcSituationServer { diff --git a/Lts/Services/OcSituationServer/dds_handler.h b/Lts/Services/OcSituationServer/dds_handler.h index 5e96631c..04713d28 100755 --- a/Lts/Services/OcSituationServer/dds_handler.h +++ b/Lts/Services/OcSituationServer/dds_handler.h @@ -9,7 +9,7 @@ #pragma once #include -#include +#include #include #include diff --git a/Lts/Services/OcSituationServer/main_handler.cpp b/Lts/Services/OcSituationServer/main_handler.cpp index 73742307..c6eec627 100755 --- a/Lts/Services/OcSituationServer/main_handler.cpp +++ b/Lts/Services/OcSituationServer/main_handler.cpp @@ -8,7 +8,7 @@ #include "main_handler.h" -#include +#include #include "handler_oc_data.h" #include "position_converter.h" diff --git a/Lts/Services/OperatorManagement/dds_handler.cpp b/Lts/Services/OperatorManagement/dds_handler.cpp index 033e5442..7cf0eb4d 100755 --- a/Lts/Services/OperatorManagement/dds_handler.cpp +++ b/Lts/Services/OperatorManagement/dds_handler.cpp @@ -8,7 +8,7 @@ #include "dds_handler.h" -#include +#include namespace OperatorManagement { diff --git a/Lts/Services/OperatorManagement/dds_handler.h b/Lts/Services/OperatorManagement/dds_handler.h index fc9128d2..fb0f1cd0 100755 --- a/Lts/Services/OperatorManagement/dds_handler.h +++ b/Lts/Services/OperatorManagement/dds_handler.h @@ -8,7 +8,7 @@ #pragma once #include -#include +#include #include #include #include diff --git a/Lts/Services/OperatorManagement/handler_locked_topics.cpp b/Lts/Services/OperatorManagement/handler_locked_topics.cpp index 6f6ef471..56d6e9d3 100755 --- a/Lts/Services/OperatorManagement/handler_locked_topics.cpp +++ b/Lts/Services/OperatorManagement/handler_locked_topics.cpp @@ -11,7 +11,7 @@ #include "handler_operator.h" #include #include -#include +#include #include diff --git a/Lts/Services/OperatorManagement/handler_locked_topics.h b/Lts/Services/OperatorManagement/handler_locked_topics.h index 7a5c479d..2dc36990 100755 --- a/Lts/Services/OperatorManagement/handler_locked_topics.h +++ b/Lts/Services/OperatorManagement/handler_locked_topics.h @@ -11,9 +11,9 @@ #include "logger.h" #include "opm_db.h" -#include -#include -#include +#include +#include +#include #include #include diff --git a/Lts/Services/OperatorManagement/main_handler.cpp b/Lts/Services/OperatorManagement/main_handler.cpp index caa128f4..9d145270 100755 --- a/Lts/Services/OperatorManagement/main_handler.cpp +++ b/Lts/Services/OperatorManagement/main_handler.cpp @@ -15,7 +15,7 @@ #include "settings.h" #include -#include +#include #include namespace OperatorManagement diff --git a/Lts/Services/OperatorManagement/object_access_control_level.h b/Lts/Services/OperatorManagement/object_access_control_level.h index b4f444c7..ba2450db 100755 --- a/Lts/Services/OperatorManagement/object_access_control_level.h +++ b/Lts/Services/OperatorManagement/object_access_control_level.h @@ -6,7 +6,7 @@ */ #pragma once -#include +#include // Generated #include diff --git a/Lts/Services/OperatorManagement/object_group.h b/Lts/Services/OperatorManagement/object_group.h index 953d8905..7f39e1eb 100755 --- a/Lts/Services/OperatorManagement/object_group.h +++ b/Lts/Services/OperatorManagement/object_group.h @@ -6,7 +6,7 @@ */ #pragma once -#include +#include // Generated #include diff --git a/Lts/Services/OperatorManagement/object_operator.h b/Lts/Services/OperatorManagement/object_operator.h index b0b112ab..a6fc03d8 100755 --- a/Lts/Services/OperatorManagement/object_operator.h +++ b/Lts/Services/OperatorManagement/object_operator.h @@ -6,7 +6,7 @@ */ #pragma once -#include +#include #include // Generated diff --git a/Lts/Services/ParticipantManagement/ParticipantHandling/firing_unit_validator.h b/Lts/Services/ParticipantManagement/ParticipantHandling/firing_unit_validator.h index 33db1137..1d11b83d 100755 --- a/Lts/Services/ParticipantManagement/ParticipantHandling/firing_unit_validator.h +++ b/Lts/Services/ParticipantManagement/ParticipantHandling/firing_unit_validator.h @@ -11,7 +11,7 @@ #include #include -#include +#include namespace ParticipantManagement { diff --git a/Lts/Services/ParticipantManagement/TargetHandling/object_target_information.h b/Lts/Services/ParticipantManagement/TargetHandling/object_target_information.h index 687c49b9..17789106 100755 --- a/Lts/Services/ParticipantManagement/TargetHandling/object_target_information.h +++ b/Lts/Services/ParticipantManagement/TargetHandling/object_target_information.h @@ -10,7 +10,7 @@ #include "dds_handler.h" #include -#include +#include // Generated #include diff --git a/Lts/Services/ParticipantManagement/dds_handler.cpp b/Lts/Services/ParticipantManagement/dds_handler.cpp index e4339ea1..9ea7c079 100755 --- a/Lts/Services/ParticipantManagement/dds_handler.cpp +++ b/Lts/Services/ParticipantManagement/dds_handler.cpp @@ -10,7 +10,7 @@ #include "exercise_time.h" -#include +#include #include #include diff --git a/Lts/Services/ParticipantManagement/dds_handler.h b/Lts/Services/ParticipantManagement/dds_handler.h index a9c93463..0db18dd8 100755 --- a/Lts/Services/ParticipantManagement/dds_handler.h +++ b/Lts/Services/ParticipantManagement/dds_handler.h @@ -8,7 +8,7 @@ #pragma once #include -#include +#include #include #include #include diff --git a/Lts/Services/ParticipantManagement/exercise_time.h b/Lts/Services/ParticipantManagement/exercise_time.h index b4231f46..5a307105 100755 --- a/Lts/Services/ParticipantManagement/exercise_time.h +++ b/Lts/Services/ParticipantManagement/exercise_time.h @@ -10,7 +10,7 @@ #include #include -#include +#include #include "dds_handler.h" diff --git a/Lts/Services/ParticipantManagement/main_handler.cpp b/Lts/Services/ParticipantManagement/main_handler.cpp index 63f70d1f..207d331f 100755 --- a/Lts/Services/ParticipantManagement/main_handler.cpp +++ b/Lts/Services/ParticipantManagement/main_handler.cpp @@ -13,7 +13,7 @@ #include "WebSocketInterface/websocket_interface_handler.h" #include "settings.h" -#include +#include #include namespace ParticipantManagement diff --git a/Lts/Services/PresentationManagement/dds_handler.h b/Lts/Services/PresentationManagement/dds_handler.h index 0f43a0fe..ba2690cb 100755 --- a/Lts/Services/PresentationManagement/dds_handler.h +++ b/Lts/Services/PresentationManagement/dds_handler.h @@ -8,7 +8,7 @@ #pragma once #include -#include +#include #include #include #include "logger.h" diff --git a/Lts/Services/PresentationManagement/object_presentation.h b/Lts/Services/PresentationManagement/object_presentation.h index d808fd54..221ee712 100755 --- a/Lts/Services/PresentationManagement/object_presentation.h +++ b/Lts/Services/PresentationManagement/object_presentation.h @@ -10,7 +10,7 @@ #pragma once #include -#include +#include #include #include diff --git a/Lts/Services/ProjectDataManagement/dds_handler.cpp b/Lts/Services/ProjectDataManagement/dds_handler.cpp index fb03bc41..ddfa335f 100755 --- a/Lts/Services/ProjectDataManagement/dds_handler.cpp +++ b/Lts/Services/ProjectDataManagement/dds_handler.cpp @@ -8,7 +8,7 @@ #include "dds_handler.h" -#include +#include namespace ProjectDataManagement { diff --git a/Lts/Services/ProjectDataManagement/dds_handler.h b/Lts/Services/ProjectDataManagement/dds_handler.h index 708f84e5..cf3fd8ac 100755 --- a/Lts/Services/ProjectDataManagement/dds_handler.h +++ b/Lts/Services/ProjectDataManagement/dds_handler.h @@ -8,7 +8,7 @@ #pragma once #include -#include +#include #include #include diff --git a/Lts/Services/ProjectDataManagement/main_handler.cpp b/Lts/Services/ProjectDataManagement/main_handler.cpp index 8540a03a..29de893b 100755 --- a/Lts/Services/ProjectDataManagement/main_handler.cpp +++ b/Lts/Services/ProjectDataManagement/main_handler.cpp @@ -12,7 +12,7 @@ #include "convert_db_to_dds.h" #include -#include +#include #include #include "static_pvsan_import.h" diff --git a/Lts/Services/RecordingManagement/dds_handler.cpp b/Lts/Services/RecordingManagement/dds_handler.cpp index e039a236..e792e7c9 100755 --- a/Lts/Services/RecordingManagement/dds_handler.cpp +++ b/Lts/Services/RecordingManagement/dds_handler.cpp @@ -8,7 +8,7 @@ #include "dds_handler.h" #include -#include +#include namespace RecordingManagement { diff --git a/Lts/Services/RecordingManagement/main_handler.cpp b/Lts/Services/RecordingManagement/main_handler.cpp index 4fdf090d..efdc1f81 100755 --- a/Lts/Services/RecordingManagement/main_handler.cpp +++ b/Lts/Services/RecordingManagement/main_handler.cpp @@ -9,7 +9,7 @@ #include "settings.h" #include "logger.h" #include -#include +#include #include namespace RecordingManagement diff --git a/Lts/Services/ReportManagement/Analyzer/main_handler.cpp b/Lts/Services/ReportManagement/Analyzer/main_handler.cpp index a251a5c4..1ae8b469 100755 --- a/Lts/Services/ReportManagement/Analyzer/main_handler.cpp +++ b/Lts/Services/ReportManagement/Analyzer/main_handler.cpp @@ -9,7 +9,7 @@ #include "settings.h" #include "logger.h" #include -#include +#include #include namespace ReportManagement diff --git a/Lts/Services/ReportManagement/Generator/handler_report_data.cpp b/Lts/Services/ReportManagement/Generator/handler_report_data.cpp index ffa7e61c..cf4386ba 100755 --- a/Lts/Services/ReportManagement/Generator/handler_report_data.cpp +++ b/Lts/Services/ReportManagement/Generator/handler_report_data.cpp @@ -19,7 +19,7 @@ #include #include #include -#include +#include using namespace ReportManagement; //----------------------------------------------------------------------------- diff --git a/Lts/Services/ReportManagement/Generator/main_handler.cpp b/Lts/Services/ReportManagement/Generator/main_handler.cpp index 751eaf4e..a23c26eb 100755 --- a/Lts/Services/ReportManagement/Generator/main_handler.cpp +++ b/Lts/Services/ReportManagement/Generator/main_handler.cpp @@ -9,7 +9,7 @@ #include "settings.h" #include "logger.h" #include -#include +#include #include #include diff --git a/Lts/Services/ReportManagement/Generator/object_report_info.h b/Lts/Services/ReportManagement/Generator/object_report_info.h index 04d612dd..24952d0a 100755 --- a/Lts/Services/ReportManagement/Generator/object_report_info.h +++ b/Lts/Services/ReportManagement/Generator/object_report_info.h @@ -9,7 +9,7 @@ #include #include "dds_handler.h" -#include +#include // Generated #include diff --git a/Lts/Services/ReportManagement/dds_handler.cpp b/Lts/Services/ReportManagement/dds_handler.cpp index 527b8a56..3476f000 100755 --- a/Lts/Services/ReportManagement/dds_handler.cpp +++ b/Lts/Services/ReportManagement/dds_handler.cpp @@ -8,7 +8,7 @@ #include "dds_handler.h" -#include +#include namespace ReportManagement { diff --git a/Lts/Services/ReportManagement/dds_handler.h b/Lts/Services/ReportManagement/dds_handler.h index 0284d2fc..d4230252 100755 --- a/Lts/Services/ReportManagement/dds_handler.h +++ b/Lts/Services/ReportManagement/dds_handler.h @@ -8,8 +8,8 @@ #pragma once #include -#include -#include +#include +#include #include #include diff --git a/Lts/Services/RoutingServiceNG/main_handler.cpp b/Lts/Services/RoutingServiceNG/main_handler.cpp index ef43e68c..c0e7a52d 100755 --- a/Lts/Services/RoutingServiceNG/main_handler.cpp +++ b/Lts/Services/RoutingServiceNG/main_handler.cpp @@ -16,7 +16,7 @@ #include #include -#include +#include #include namespace RoutingService diff --git a/Lts/Services/ServiceManagement/WebSocketInterface/Messages/reply_message.h b/Lts/Services/ServiceManagement/WebSocketInterface/Messages/reply_message.h index f05a47e9..e3e2f396 100755 --- a/Lts/Services/ServiceManagement/WebSocketInterface/Messages/reply_message.h +++ b/Lts/Services/ServiceManagement/WebSocketInterface/Messages/reply_message.h @@ -10,7 +10,7 @@ #include -#include +#include #include #include diff --git a/Lts/Services/ServiceManagement/group.h b/Lts/Services/ServiceManagement/group.h index b573a9f0..0f5473e5 100755 --- a/Lts/Services/ServiceManagement/group.h +++ b/Lts/Services/ServiceManagement/group.h @@ -13,7 +13,7 @@ #include #include -#include +#include #include "logger.h" #include "dds_handler.h" diff --git a/Lts/Services/ServiceManagement/heartbeat_listener.h b/Lts/Services/ServiceManagement/heartbeat_listener.h index 2b38bbbd..420d6550 100755 --- a/Lts/Services/ServiceManagement/heartbeat_listener.h +++ b/Lts/Services/ServiceManagement/heartbeat_listener.h @@ -10,7 +10,7 @@ #include "logger.h" #include -#include +#include namespace Core { diff --git a/Lts/Services/ServiceManagement/service_process.h b/Lts/Services/ServiceManagement/service_process.h index 580677f1..44760297 100755 --- a/Lts/Services/ServiceManagement/service_process.h +++ b/Lts/Services/ServiceManagement/service_process.h @@ -11,7 +11,7 @@ #include #include -#include +#include #include #include "logger.h" diff --git a/Lts/Services/SituationReplay/dds_handler.h b/Lts/Services/SituationReplay/dds_handler.h index 388c24ca..23aa50b5 100755 --- a/Lts/Services/SituationReplay/dds_handler.h +++ b/Lts/Services/SituationReplay/dds_handler.h @@ -12,7 +12,7 @@ #include #include -#include +#include #include "logger.h" namespace SituationReplay diff --git a/Lts/Services/SituationReplay/object_situation_replay.h b/Lts/Services/SituationReplay/object_situation_replay.h index 9a20f419..4e1ca8c4 100755 --- a/Lts/Services/SituationReplay/object_situation_replay.h +++ b/Lts/Services/SituationReplay/object_situation_replay.h @@ -11,7 +11,7 @@ #include #include "dds_handler.h" #include "db_reader.h" -#include +#include // Generated #include diff --git a/Lts/Services/SoundManagement/dds_handler.cpp b/Lts/Services/SoundManagement/dds_handler.cpp index 95f6cb11..4afef2f6 100755 --- a/Lts/Services/SoundManagement/dds_handler.cpp +++ b/Lts/Services/SoundManagement/dds_handler.cpp @@ -9,7 +9,7 @@ #include "dds_handler.h" #include -#include +#include namespace SoundManagement { diff --git a/Lts/Services/SoundManagement/dds_handler.h b/Lts/Services/SoundManagement/dds_handler.h index 9287d464..2e897eb4 100755 --- a/Lts/Services/SoundManagement/dds_handler.h +++ b/Lts/Services/SoundManagement/dds_handler.h @@ -10,9 +10,9 @@ #include #include -#include -#include -#include +#include +#include +#include #include #include diff --git a/Lts/Services/SoundManagement/main_handler.cpp b/Lts/Services/SoundManagement/main_handler.cpp index 98dbc9a5..ee5ce3ee 100755 --- a/Lts/Services/SoundManagement/main_handler.cpp +++ b/Lts/Services/SoundManagement/main_handler.cpp @@ -8,7 +8,7 @@ #include "main_handler.h" #include -#include +#include #include #include "som_db.h" diff --git a/Lts/Services/TargetManagement/dds_handler.cpp b/Lts/Services/TargetManagement/dds_handler.cpp index 585262d6..d721a8b8 100755 --- a/Lts/Services/TargetManagement/dds_handler.cpp +++ b/Lts/Services/TargetManagement/dds_handler.cpp @@ -9,7 +9,7 @@ #include "dds_handler.h" #include -#include +#include namespace TargetManagement { diff --git a/Lts/Services/TargetManagement/dds_handler.h b/Lts/Services/TargetManagement/dds_handler.h index b98996c2..1522a4f4 100755 --- a/Lts/Services/TargetManagement/dds_handler.h +++ b/Lts/Services/TargetManagement/dds_handler.h @@ -10,9 +10,9 @@ #include #include -#include -#include -#include +#include +#include +#include #include #include diff --git a/Lts/Services/TargetManagement/main_handler.cpp b/Lts/Services/TargetManagement/main_handler.cpp index f1a2881d..61fc4875 100755 --- a/Lts/Services/TargetManagement/main_handler.cpp +++ b/Lts/Services/TargetManagement/main_handler.cpp @@ -8,7 +8,7 @@ #include "main_handler.h" #include -#include +#include #include #include "settings.h" diff --git a/Lts/Services/TargetManagement/object_shootback_area.h b/Lts/Services/TargetManagement/object_shootback_area.h index 59a67c23..bd7c071c 100755 --- a/Lts/Services/TargetManagement/object_shootback_area.h +++ b/Lts/Services/TargetManagement/object_shootback_area.h @@ -10,7 +10,7 @@ #include "dds_handler.h" #include "logger.h" -#include +#include // Generated #include diff --git a/Lts/Services/TargetManagement/object_shootback_target.h b/Lts/Services/TargetManagement/object_shootback_target.h index 4389eac3..09397dc6 100755 --- a/Lts/Services/TargetManagement/object_shootback_target.h +++ b/Lts/Services/TargetManagement/object_shootback_target.h @@ -10,7 +10,7 @@ #include "dds_handler.h" #include "logger.h" -#include +#include // Generated #include diff --git a/Lts/Services/TargetManagement/object_target_area_assignment.h b/Lts/Services/TargetManagement/object_target_area_assignment.h index b65d7ce9..4251788b 100755 --- a/Lts/Services/TargetManagement/object_target_area_assignment.h +++ b/Lts/Services/TargetManagement/object_target_area_assignment.h @@ -10,7 +10,7 @@ #include "dds_handler.h" #include "logger.h" -#include +#include // Generated #include diff --git a/Lts/Services/VideoOverlayManagement/dds_handler.cpp b/Lts/Services/VideoOverlayManagement/dds_handler.cpp index 38645fac..a2c0f74e 100755 --- a/Lts/Services/VideoOverlayManagement/dds_handler.cpp +++ b/Lts/Services/VideoOverlayManagement/dds_handler.cpp @@ -8,7 +8,7 @@ #include "dds_handler.h" -#include +#include namespace VideoOverlayManagement { diff --git a/Lts/Services/VideoOverlayManagement/main_handler.cpp b/Lts/Services/VideoOverlayManagement/main_handler.cpp index e0386c30..120d93b1 100755 --- a/Lts/Services/VideoOverlayManagement/main_handler.cpp +++ b/Lts/Services/VideoOverlayManagement/main_handler.cpp @@ -11,7 +11,7 @@ #include -#include +#include using namespace VideoOverlayManagement; diff --git a/Lts/Services/WarehouseGuez/WsBaseDataInterface/Messages/reply_message.h b/Lts/Services/WarehouseGuez/WsBaseDataInterface/Messages/reply_message.h index 4efdae38..61e161ee 100755 --- a/Lts/Services/WarehouseGuez/WsBaseDataInterface/Messages/reply_message.h +++ b/Lts/Services/WarehouseGuez/WsBaseDataInterface/Messages/reply_message.h @@ -10,7 +10,7 @@ #include -#include +#include #include #include diff --git a/Lts/Services/WarehouseGuez/dds_handler.h b/Lts/Services/WarehouseGuez/dds_handler.h index c0b69d7f..c04fb5ab 100755 --- a/Lts/Services/WarehouseGuez/dds_handler.h +++ b/Lts/Services/WarehouseGuez/dds_handler.h @@ -9,8 +9,8 @@ #pragma once #include -#include -#include +#include +#include #include #include diff --git a/Lts/Services/WarehouseGuez/object_equipment_type_wh.h b/Lts/Services/WarehouseGuez/object_equipment_type_wh.h index c91a7b48..29cecd5c 100755 --- a/Lts/Services/WarehouseGuez/object_equipment_type_wh.h +++ b/Lts/Services/WarehouseGuez/object_equipment_type_wh.h @@ -9,7 +9,7 @@ #include "logger.h" #include "main_handler.h" -#include +#include namespace WarehouseGuez { diff --git a/Lts/Services/WarehouseGuez/object_injury_model.h b/Lts/Services/WarehouseGuez/object_injury_model.h index f5c56738..c6b3b273 100755 --- a/Lts/Services/WarehouseGuez/object_injury_model.h +++ b/Lts/Services/WarehouseGuez/object_injury_model.h @@ -9,7 +9,7 @@ #include "logger.h" #include "main_handler.h" -#include +#include namespace WarehouseGuez { diff --git a/Lts/Services/skeleton/base/dds_handler.cpp b/Lts/Services/skeleton/base/dds_handler.cpp index f9d9b669..a4a606cb 100755 --- a/Lts/Services/skeleton/base/dds_handler.cpp +++ b/Lts/Services/skeleton/base/dds_handler.cpp @@ -12,7 +12,7 @@ #include "xxx_fts.h" #include -#include +#include namespace XxxXxxXxx { diff --git a/Lts/Services/skeleton/base/dds_handler.h b/Lts/Services/skeleton/base/dds_handler.h index 3f7fbc3d..f8060af1 100755 --- a/Lts/Services/skeleton/base/dds_handler.h +++ b/Lts/Services/skeleton/base/dds_handler.h @@ -9,7 +9,7 @@ #pragma once #include -#include +#include #include #include diff --git a/Lts/Services/skeleton/stub/object_xxx.h b/Lts/Services/skeleton/stub/object_xxx.h index b5cccfdc..9630ad71 100755 --- a/Lts/Services/skeleton/stub/object_xxx.h +++ b/Lts/Services/skeleton/stub/object_xxx.h @@ -10,7 +10,7 @@ #include "dds_handler.h" #include "logger.h" -#include +#include // Generated #include diff --git a/Lts/Tests/DatabaseInitialisation/guez_pdm/GUEZ_EXC_PDM_werte.xlsm b/Lts/Tests/DatabaseInitialisation/guez_pdm/GUEZ_EXC_PDM_werte.xlsm index 6d2a0af7..3b3f3bbd 100755 Binary files a/Lts/Tests/DatabaseInitialisation/guez_pdm/GUEZ_EXC_PDM_werte.xlsm and b/Lts/Tests/DatabaseInitialisation/guez_pdm/GUEZ_EXC_PDM_werte.xlsm differ diff --git a/Lts/Tests/DatabaseInitialisation/guez_pdm/building_charge_effect.csv b/Lts/Tests/DatabaseInitialisation/guez_pdm/building_charge_effect.csv index a739553f..3277966c 100755 --- a/Lts/Tests/DatabaseInitialisation/guez_pdm/building_charge_effect.csv +++ b/Lts/Tests/DatabaseInitialisation/guez_pdm/building_charge_effect.csv @@ -319,3 +319,11 @@ id;charge_type_id;destructive_factor;penetration_factor;hit_sound;difcue_light;d 324;468;100;150;4;true;true 325;469;100;150;4;true;true 326;470;100;150;4;true;true +330;356;100;150;4;true;true +331;357;100;150;4;true;true +332;358;100;150;4;true;true +333;359;100;150;4;true;true +334;360;100;150;4;true;true +335;366;100;150;4;true;true +336;367;100;150;4;true;true +337;368;100;150;4;true;true diff --git a/Lts/Tests/DatabaseInitialisation/guez_pdm/charge_type.csv b/Lts/Tests/DatabaseInitialisation/guez_pdm/charge_type.csv index 5b642445..f0a79194 100755 --- a/Lts/Tests/DatabaseInitialisation/guez_pdm/charge_type.csv +++ b/Lts/Tests/DatabaseInitialisation/guez_pdm/charge_type.csv @@ -1,4 +1,4 @@ -charge_type_id;charge_legacy_id;given_name;name [de_DE];shortName [de_DE];name [en_GB];shortName [en_GB];properties;gear_type;max_range;properties;gear_type;max_range;properties;dis_code +charge_type_id;charge_legacy_id;given_name;name [de_DE];shortName [de_DE];name [en_GB];shortName [en_GB];properties;gear_type;max_range;properties;gear_type;max_range;properties;dis_code ;;;;;;;;;;;;;; 311;;;Gefahrenzone Dummy;;;;"{""isDummy"":true}";101;;;;;; 312;;;Abgrenzung Dummy;;;;"{""isDummy"":true}";101;;;;;; @@ -43,6 +43,9 @@ 366;1;;Sprengpatrone, Annäherung-DM61;Spreng DM61;Explosive cartridges, proximity - DM61;Explosive, proximity - DM61;"{""adlerChargeTypeName"": ""Spreng DM61"", ""isAdlerChargeType"": true, ""impactRadius"":25, ""impactEdgeLength"":25, ""hazardDistance"": 250, ""fuseTypes"" : [ { ""fuseType"" : 0, ""chargeLegacyId"" : 2}, { ""fuseType"" : 1, ""chargeLegacyId"": 1}, {""fuseType"" : 2, ""chargeLegacyId"" : 1}, {""fuseType"" : 3, ""chargeLegacyId"" : 1}]}";801;;;;;; 367;1;;Sprenggeschoss - DM91 AZ-NG;Spreng DM91 AZ-NG;Explosive projectiles - DM91 AZ-NG;Explosive - DM91 AZ-NG;"{""adlerChargeTypeName"": ""Spreng DM91 AZ-NG"", ""isAdlerChargeType"": true, ""impactRadius"":25, ""impactEdgeLength"":25, ""hazardDistance"": 250, ""fuseTypes"" : [ { ""fuseType"" : 0, ""chargeLegacyId"" : 2}, { ""fuseType"" : 1, ""chargeLegacyId"": 1}, {""fuseType"" : 2, ""chargeLegacyId"" : 1}, {""fuseType"" : 3, ""chargeLegacyId"" : 1}]}";801;;;;;; ;;;;;;;;;;;;;; +368;1;;GMLRS Unitary M31;GMLRS;GMLRS Unitary;GMLRS;"{""adlerChargeTypeName"": ""Unitary M31"", ""isAdlerChargeType"": true, ""impactRadius"":25, ""impactEdgeLength"":25, ""hazardDistance"": 250, ""fuseTypes"" : [ { ""fuseType"" : 1, ""chargeLegacyId"" : 1}]}";901;25190;;;;;2.255.201.3.0.0.0 +369;395;;Mine DM72;DM72;Mine DM72;DM72;"{""impactRadius"": 25, ""hazardDistance"": 250, ""impactEdgeLength"": 25, ""adlerChargeTypeName"": ""Mine DM72"", ""fuseTypes"": [{""fuseType"": 1, ""chargeLegacyId"": 395}], ""mineLaying"": {""pattern"": [ { ""id"": 1, ""positions"": [ {""easting"": 111, ""northing"": -30}, {""easting"": 111, ""northing"": -36}, {""easting"": 120, ""northing"": -48}, {""easting"": 101, ""northing"": -45}, {""easting"": 61, ""northing"": -44}, {""easting"": 87, ""northing"": -35}, {""easting"": -78, ""northing"": -36}, {""easting"": -78, ""northing"": -35}, {""easting"": -82, ""northing"": -39}, {""easting"": -113, ""northing"": -27}, {""easting"": -105, ""northing"": -15}, {""easting"": -104, ""northing"": -1}, {""easting"": -93, ""northing"": -54}, {""easting"": -91, ""northing"": -60}, {""easting"": -89, ""northing"": -59}, {""easting"": -81, ""northing"": -64}, {""easting"": -78, ""northing"": -69}, {""easting"": -95, ""northing"": -86}, {""easting"": 11, ""northing"": -70}, {""easting"": -4, ""northing"": -90}, {""easting"": 2, ""northing"": -16}, {""easting"": -3, ""northing"": 16}, {""easting"": -11, ""northing"": 11}, {""easting"": -12, ""northing"": 5}, {""easting"": 7, ""northing"": -40}, {""easting"": 8, ""northing"": -13}, {""easting"": -21, ""northing"": 6}, {""easting"": 44, ""northing"": -34} ] }, { ""id"": 2, ""positions"": [ {""easting"": -239, ""northing"": -31}, {""easting"": -132, ""northing"": 17}, {""easting"": -108, ""northing"": -57}, {""easting"": -261, ""northing"": 67}, {""easting"": -123, ""northing"": 14}, {""easting"": -143, ""northing"": 5}, {""easting"": -233, ""northing"": 125}, {""easting"": -109, ""northing"": -37}, {""easting"": -261, ""northing"": 37}, {""easting"": -247, ""northing"": 73}, {""easting"": -253, ""northing"": 60}, {""easting"": -168, ""northing"": 124}, {""easting"": -267, ""northing"": 57}, {""easting"": -115, ""northing"": 3}, {""easting"": -258, ""northing"": 49}, {""easting"": -117, ""northing"": -53}, {""easting"": -230, ""northing"": -45}, {""easting"": -153, ""northing"": 131}, {""easting"": -234, ""northing"": 146}, {""easting"": -234, ""northing"": 138}, {""easting"": -246, ""northing"": 132}, {""easting"": -100, ""northing"": -38}, {""easting"": -239, ""northing"": -18}, {""easting"": -251, ""northing"": 53}, {""easting"": -137, ""northing"": 160}, {""easting"": -274, ""northing"": 75}, {""easting"": -225, ""northing"": -23}, {""easting"": -234, ""northing"": 58} ] }, { ""id"": 3, ""positions"": [ {""easting"": -521, ""northing"": -54}, {""easting"": -409, ""northing"": -50}, {""easting"": -473, ""northing"": 44}, {""easting"": -392, ""northing"": 76}, {""easting"": -447, ""northing"": 1}, {""easting"": -503, ""northing"": -27}, {""easting"": -399, ""northing"": -31}, {""easting"": -377, ""northing"": 61}, {""easting"": -466, ""northing"": 10}, {""easting"": -342, ""northing"": -15}, {""easting"": -497, ""northing"": -17}, {""easting"": -487, ""northing"": -18}, {""easting"": -445, ""northing"": -38}, {""easting"": -398, ""northing"": 72}, {""easting"": -392, ""northing"": -38}, {""easting"": -464, ""northing"": 19}, {""easting"": -502, ""northing"": -45}, {""easting"": -522, ""northing"": -31}, {""easting"": -444, ""northing"": 23}, {""easting"": -467, ""northing"": -33}, {""easting"": -355, ""northing"": 40}, {""easting"": -353, ""northing"": 30}, {""easting"": -358, ""northing"": 49}, {""easting"": -360, ""northing"": 94}, {""easting"": -538, ""northing"": -30}, {""easting"": -364, ""northing"": 31}, {""easting"": -391, ""northing"": -95}, {""easting"": -366, ""northing"": -90} ] }, { ""id"": 4, ""positions"": [ {""easting"": 221, ""northing"": -20}, {""easting"": 163, ""northing"": -127}, {""easting"": 224, ""northing"": -17}, {""easting"": 214, ""northing"": -26}, {""easting"": 349, ""northing"": -97}, {""easting"": 232, ""northing"": -18}, {""easting"": 364, ""northing"": -89}, {""easting"": 358, ""northing"": -70}, {""easting"": 215, ""northing"": -37}, {""easting"": 236, ""northing"": -3}, {""easting"": 243, ""northing"": 21}, {""easting"": 241, ""northing"": -35}, {""easting"": 183, ""northing"": -80}, {""easting"": 322, ""northing"": -84}, {""easting"": 166, ""northing"": -130}, {""easting"": 157, ""northing"": -133}, {""easting"": 358, ""northing"": -104}, {""easting"": 209, ""northing"": -45}, {""easting"": 329, ""northing"": -118}, {""easting"": 227, ""northing"": -37}, {""easting"": 342, ""northing"": -108}, {""easting"": 230, ""northing"": -29}, {""easting"": 201, ""northing"": -83}, {""easting"": 339, ""northing"": -116}, {""easting"": 201, ""northing"": -35}, {""easting"": 208, ""northing"": -70}, {""easting"": 212, ""northing"": -55}, {""easting"": 205, ""northing"": -48} ] }, { ""id"": 5, ""positions"": [ {""easting"": -69, ""northing"": 6}, {""easting"": -53, ""northing"": 22}, {""easting"": -25, ""northing"": -1}, {""easting"": 43, ""northing"": 48}, {""easting"": -82, ""northing"": 103}, {""easting"": 70, ""northing"": 42}, {""easting"": 43, ""northing"": 29}, {""easting"": -136, ""northing"": 20}, {""easting"": -61, ""northing"": 90}, {""easting"": -128, ""northing"": 41}, {""easting"": 71, ""northing"": 79}, {""easting"": -130, ""northing"": 10}, {""easting"": -6, ""northing"": -7}, {""easting"": -63, ""northing"": 121}, {""easting"": 73, ""northing"": 58}, {""easting"": 35, ""northing"": 90}, {""easting"": -14, ""northing"": 20}, {""easting"": -111, ""northing"": 38}, {""easting"": 58, ""northing"": 82}, {""easting"": -135, ""northing"": 8}, {""easting"": -110, ""northing"": 12}, {""easting"": -107, ""northing"": 23}, {""easting"": -73, ""northing"": -24}, {""easting"": -66, ""northing"": 140}, {""easting"": -13, ""northing"": 35}, {""easting"": -139, ""northing"": 43}, {""easting"": -153, ""northing"": 20}, {""easting"": 65, ""northing"": 60} ] }, { ""id"": 6, ""positions"": [ {""easting"": 525, ""northing"": 64}, {""easting"": 408, ""northing"": 56}, {""easting"": 470, ""northing"": -33}, {""easting"": 390, ""northing"": -68}, {""easting"": 445, ""northing"": 6}, {""easting"": 500, ""northing"": 35}, {""easting"": 401, ""northing"": 36}, {""easting"": 376, ""northing"": -51}, {""easting"": 468, ""northing"": 0}, {""easting"": 343, ""northing"": 25}, {""easting"": 497, ""northing"": 26}, {""easting"": 486, ""northing"": 25}, {""easting"": 442, ""northing"": 44}, {""easting"": 399, ""northing"": -62}, {""easting"": 390, ""northing"": 47}, {""easting"": 463, ""northing"": -13}, {""easting"": 501, ""northing"": 54}, {""easting"": 522, ""northing"": 44}, {""easting"": 446, ""northing"": -15}, {""easting"": 468, ""northing"": 41}, {""easting"": 357, ""northing"": -35}, {""easting"": 356, ""northing"": -21}, {""easting"": 356, ""northing"": -41}, {""easting"": 359, ""northing"": -87}, {""easting"": 541, ""northing"": 38}, {""easting"": 365, ""northing"": -24}, {""easting"": 458, ""northing"": -9}, {""easting"": 488, ""northing"": 52} ] }], ""armingJitter"": 2.3, ""appearanceJitter"": 3.4, ""armingTimeOffset"": 29.6, ""mineChargeTypeId"": 216, ""appearanceTimeOffset"": 19.2}}";901;25190;;;;;2.255.201.3.0.0.0 +;;;;;;;;;;;;;; 371;1;;High Explosive;HE;High Explosive;HE;"{""impactRadius"":25, ""impactEdgeLength"":25, ""hazardDistance"": 250, ""fuseTypes"" : [ { ""fuseType"" : 0, ""chargeLegacyId"" : 2}, { ""fuseType"" : 1, ""chargeLegacyId"": 1}, {""fuseType"" : 2, ""chargeLegacyId"" : 1}, {""fuseType"" : 3, ""chargeLegacyId"" : 1}]}";701;29650;;;;;2.9.222.2.19.1.0 373;3;;Bomblet;Bomblet;Bomblet;Bomblet;"{""impactRadius"":25, ""impactEdgeLength"":25}";701;25190;;;;;2.9.222.2.19.10.0 374;4;;SMArt;SMArt;EFP;EFP;"{""impactRadius"":25, ""impactEdgeLength"":50, ""isSmart"":true, ""searchRadius"":150, ""hazardDistance"": 250, ""fuseTypes"" :[ { ""fuseType"" : 0, ""chargeLegacyId"" : 4}, { ""fuseType"" : 1, ""chargeLegacyId"": 4}, {""fuseType"" : 2, ""chargeLegacyId"" : 4}]}";701;26160;;;;;2.255.201.4.0.0.0 @@ -52,8 +55,8 @@ 381;10;;High Explosive;HE;High Explosive;HE;"{""impactRadius"":15, ""impactEdgeLength"":25, ""hazardDistance"": 250, ""fuseTypes"" : [ { ""fuseType"" : 0, ""chargeLegacyId"" : 11}, { ""fuseType"" : 1, ""chargeLegacyId"": 10}, {""fuseType"" : 2, ""chargeLegacyId"" : 10}, {""fuseType"" : 3, ""chargeLegacyId"" : 1}]}";801;;;;;;2.9.225.2.8.18.0 385;5;;Nebel;Nebel;Nebel;Nebel;"{""impactRadius"":25, ""impactEdgeLength"":25, ""isSmoke"":true, ""hazardDistance"": 250, ""fuseTypes"" : [ {""fuseType"": 3, ""chargeLegacyId"" : 5}]}";801;25190;;;;;2.255.201.5.0.0.0 ;;;;;;;;;;;;;; -394;;;GMLRS Unitary M31;GMLRS;GMLRS Unitary;GMLRS;"{""adlerChargeTypeName"": ""Unitary M31"", ""impactRadius"":25, ""impactEdgeLength"":25, ""hazardDistance"": 250, ""fuseTypes"" : [ { ""fuseType"" : 1, ""chargeLegacyId"" : 394}]}";901;25190;;;;;2.255.201.3.0.0.0 -395;;;Mine DM72;DM72;Mine DM72;DM72;"{""adlerChargeTypeName"": ""Mine DM72"", ""impactRadius"":25, ""impactEdgeLength"":25, ""hazardDistance"": 250, ""fuseTypes"": [{""fuseType"": 1, ""chargeLegacyId"": 395}], ""mineLaying"":{""appearanceTimeOffset"" : 19.2, ""appearanceJitter"": 3.4, ""armingTimeOffset"": 29.6, ""armingJitter"" : 2.3, ""mineChargeTypeId"": 216, ""pattern"": [ {""id"": 1, ""positions"": [{""easting"": -28, ""northing"": -30}, {""easting"": -34, ""northing"": -36}, {""easting"": -46, ""northing"": -48}, {""easting"": -43, ""northing"": -44}, {""easting"": -61, ""northing"": -43}, {""easting"": -34, ""northing"": -35}, {""easting"": 78, ""northing"": -77}, {""easting"": 78, ""northing"": -77}, {""easting"": 82, ""northing"": -81}, {""easting"": 113, ""northing"": -112}, {""easting"": 105, ""northing"": -105}, {""easting"": 104, ""northing"": -102}, {""easting"": 55, ""northing"": -53}, {""easting"": 61, ""northing"": -60}, {""easting"": 61, ""northing"": -59}, {""easting"": 65, ""northing"": -64}, {""easting"": 71, ""northing"": -76}, {""easting"": 88, ""northing"": -93}, {""easting"": -12, ""northing"": -13}, {""easting"": -4, ""northing"": -3}, {""easting"": 2, ""northing"": -16}, {""easting"": -16, ""northing"": -3}, {""easting"": -11, ""northing"": -11}, {""easting"": -12, ""northing"": 5}, {""easting"": 7, ""northing"": -40}, {""easting"": 8, ""northing"": -13}, {""easting"": 5, ""northing"": -21}, {""easting"": -33, ""northing"": 44}]}, {""id"": 2, ""positions"": [{""easting"": 34, ""northing"": -238}, {""easting"": 16, ""northing"": -132}, {""easting"": -108, ""northing"": -57}, {""easting"": 64, ""northing"": -262}, {""easting"": -12, ""northing"": -122}, {""easting"": 2, ""northing"": -143}, {""easting"": 125, ""northing"": -235}, {""easting"": 39, ""northing"": -108}, {""easting"": 32, ""northing"": -261}, {""easting"": 69, ""northing"": -248}, {""easting"": 56, ""northing"": -253}, {""easting"": 121, ""northing"": -170}, {""easting"": 53, ""northing"": -268}, {""easting"": 116, ""northing"": -115}, {""easting"": 46, ""northing"": -258}, {""easting"": -117, ""northing"": -53}, {""easting"": 49, ""northing"": -229}, {""easting"": 131, ""northing"": -155}, {""easting"": 143, ""northing"": -236}, {""easting"": 137, ""northing"": -236}, {""easting"": 131, ""northing"": -248}, {""easting"": 39, ""northing"": -100}, {""easting"": 22, ""northing"": -238}, {""easting"": 51, ""northing"": -251}, {""easting"": 139, ""northing"": -139}, {""easting"": 73, ""northing"": -274}, {""easting"": 28, ""northing"": -224}, {""easting"": 53, ""northing"": -234}]}, {""id"": 3, ""positions"": [{""easting"": -61, ""northing"": -520}, {""easting"": -58, ""northing"": -409}, {""easting"": -74, ""northing"": -474}, {""easting"": -69, ""northing"": -393}, {""easting"": -5, ""northing"": -448}, {""easting"": -37, ""northing"": -504}, {""easting"": -37, ""northing"": -397}, {""easting"": -55, ""northing"": -378}, {""easting"": -5, ""northing"": -467}, {""easting"": 19, ""northing"": -342}, {""easting"": -26, ""northing"": -496}, {""easting"": -26, ""northing"": -487}, {""easting"": -43, ""northing"": -445}, {""easting"": -69, ""northing"": -400}, {""easting"": -43, ""northing"": -389}, {""easting"": -13, ""northing"": -463}, {""easting"": -52, ""northing"": -500}, {""easting"": -40, ""northing"": -520}, {""easting"": -19, ""northing"": -444}, {""easting"": -38, ""northing"": -464}, {""easting"": 38, ""northing"": -356}, {""easting"": 27, ""northing"": -354}, {""easting"": 47, ""northing"": -359}, {""easting"": -91, ""northing"": -362}, {""easting"": -36, ""northing"": -540}, {""easting"": 27, ""northing"": -365}, {""easting"": 100, ""northing"": -391}, {""easting"": 97, ""northing"": -365}]}, {""id"": 4, ""positions"": [{""easting"": 16, ""northing"": 221}, {""easting"": -125, ""northing"": 164}, {""easting"": 13, ""northing"": 224}, {""easting"": 23, ""northing"": 214}, {""easting"": -91, ""northing"": 350}, {""easting"": 15, ""northing"": 233}, {""easting"": -83, ""northing"": 365}, {""easting"": -63, ""northing"": 358}, {""easting"": 32, ""northing"": 216}, {""easting"": -1, ""northing"": 236}, {""easting"": -26, ""northing"": 244}, {""easting"": -31, ""northing"": 241}, {""easting"": -77, ""northing"": 184}, {""easting"": -79, ""northing"": 323}, {""easting"": -128, ""northing"": 167}, {""easting"": -130, ""northing"": 158}, {""easting"": -97, ""northing"": 360}, {""easting"": 42, ""northing"": 210}, {""easting"": -111, ""northing"": 329}, {""easting"": -32, ""northing"": 233}, {""easting"": -102, ""northing"": 342}, {""easting"": -25, ""northing"": 231}, {""easting"": -81, ""northing"": 202}, {""easting"": -113, ""northing"": 340}, {""easting"": 31, ""northing"": 202}, {""easting"": -67, ""northing"": 219}, {""easting"": -50, ""northing"": 213}, {""easting"": -45, ""northing"": 210}]}, {""id"": 5, ""positions"": [{""easting"": -69, ""northing"": 5}, {""easting"": -53, ""northing"": 22}, {""easting"": -25, ""northing"": -1}, {""easting"": -48, ""northing"": 48}, {""easting"": -103, ""northing"": 83}, {""easting"": -43, ""northing"": 69}, {""easting"": -30, ""northing"": 43}, {""easting"": -137, ""northing"": 19}, {""easting"": -89, ""northing"": 89}, {""easting"": -128, ""northing"": 41}, {""easting"": -81, ""northing"": 79}, {""easting"": -130, ""northing"": 9}, {""easting"": -6, ""northing"": -7}, {""easting"": -121, ""northing"": 63}, {""easting"": -59, ""northing"": 73}, {""easting"": -90, ""northing"": 35}, {""easting"": -20, ""northing"": 20}, {""easting"": -111, ""northing"": 37}, {""easting"": -83, ""northing"": 82}, {""easting"": -135, ""northing"": 7}, {""easting"": -110, ""northing"": 11}, {""easting"": -106, ""northing"": 22}, {""easting"": -73, ""northing"": -24}, {""easting"": -138, ""northing"": 67}, {""easting"": -35, ""northing"": 34}, {""easting"": -140, ""northing"": 42}, {""easting"": -152, ""northing"": 19}, {""easting"": -61, ""northing"": 64}]}, {""id"": 6, ""positions"": [{""easting"": -72, ""northing"": 522}, {""easting"": -63, ""northing"": 409}, {""easting"": 25, ""northing"": 472}, {""easting"": 61, ""northing"": 391}, {""easting"": -13, ""northing"": 446}, {""easting"": -44, ""northing"": 500}, {""easting"": -42, ""northing"": 400}, {""easting"": 46, ""northing"": 377}, {""easting"": -8, ""northing"": 468}, {""easting"": -30, ""northing"": 341}, {""easting"": -33, ""northing"": 497}, {""easting"": -31, ""northing"": 486}, {""easting"": -50, ""northing"": 443}, {""easting"": 55, ""northing"": 399}, {""easting"": -53, ""northing"": 389}, {""easting"": 5, ""northing"": 464}, {""easting"": -61, ""northing"": 499}, {""easting"": -52, ""northing"": 521}, {""easting"": 9, ""northing"": 446}, {""easting"": -49, ""northing"": 463}, {""easting"": 29, ""northing"": 357}, {""easting"": 16, ""northing"": 356}, {""easting"": 36, ""northing"": 356}, {""easting"": 81, ""northing"": 359}, {""easting"": -47, ""northing"": 542}, {""easting"": 19, ""northing"": 364}, {""easting"": 2, ""northing"": 459}, {""easting"": -59, ""northing"": 487}]}]}}";901;25190;;;;;2.255.201.3.0.0.0 +394;1;;GMLRS Unitary;GMLRS;GMLRS Unitary;GMLRS;"{ ""impactRadius"":25, ""impactEdgeLength"":25, ""hazardDistance"": 250, ""fuseTypes"" : [ { ""fuseType"" : 1, ""chargeLegacyId"" : 1}]}";901;25190;;;;;2.255.201.3.0.0.0 +395;;;Mine DM72;DM72;Mine DM72;DM72;"{""impactRadius"": 25, ""hazardDistance"": 250, ""impactEdgeLength"": 25, ""fuseTypes"": [{""fuseType"": 1, ""chargeLegacyId"": 395}], ""mineLaying"": {""pattern"": [ { ""id"": 1, ""positions"": [ {""easting"": 111, ""northing"": -30}, {""easting"": 111, ""northing"": -36}, {""easting"": 120, ""northing"": -48}, {""easting"": 101, ""northing"": -45}, {""easting"": 61, ""northing"": -44}, {""easting"": 87, ""northing"": -35}, {""easting"": -78, ""northing"": -36}, {""easting"": -78, ""northing"": -35}, {""easting"": -82, ""northing"": -39}, {""easting"": -113, ""northing"": -27}, {""easting"": -105, ""northing"": -15}, {""easting"": -104, ""northing"": -1}, {""easting"": -93, ""northing"": -54}, {""easting"": -91, ""northing"": -60}, {""easting"": -89, ""northing"": -59}, {""easting"": -81, ""northing"": -64}, {""easting"": -78, ""northing"": -69}, {""easting"": -95, ""northing"": -86}, {""easting"": 11, ""northing"": -70}, {""easting"": -4, ""northing"": -90}, {""easting"": 2, ""northing"": -16}, {""easting"": -3, ""northing"": 16}, {""easting"": -11, ""northing"": 11}, {""easting"": -12, ""northing"": 5}, {""easting"": 7, ""northing"": -40}, {""easting"": 8, ""northing"": -13}, {""easting"": -21, ""northing"": 6}, {""easting"": 44, ""northing"": -34} ] }, { ""id"": 2, ""positions"": [ {""easting"": -239, ""northing"": -31}, {""easting"": -132, ""northing"": 17}, {""easting"": -108, ""northing"": -57}, {""easting"": -261, ""northing"": 67}, {""easting"": -123, ""northing"": 14}, {""easting"": -143, ""northing"": 5}, {""easting"": -233, ""northing"": 125}, {""easting"": -109, ""northing"": -37}, {""easting"": -261, ""northing"": 37}, {""easting"": -247, ""northing"": 73}, {""easting"": -253, ""northing"": 60}, {""easting"": -168, ""northing"": 124}, {""easting"": -267, ""northing"": 57}, {""easting"": -115, ""northing"": 3}, {""easting"": -258, ""northing"": 49}, {""easting"": -117, ""northing"": -53}, {""easting"": -230, ""northing"": -45}, {""easting"": -153, ""northing"": 131}, {""easting"": -234, ""northing"": 146}, {""easting"": -234, ""northing"": 138}, {""easting"": -246, ""northing"": 132}, {""easting"": -100, ""northing"": -38}, {""easting"": -239, ""northing"": -18}, {""easting"": -251, ""northing"": 53}, {""easting"": -137, ""northing"": 160}, {""easting"": -274, ""northing"": 75}, {""easting"": -225, ""northing"": -23}, {""easting"": -234, ""northing"": 58} ] }, { ""id"": 3, ""positions"": [ {""easting"": -521, ""northing"": -54}, {""easting"": -409, ""northing"": -50}, {""easting"": -473, ""northing"": 44}, {""easting"": -392, ""northing"": 76}, {""easting"": -447, ""northing"": 1}, {""easting"": -503, ""northing"": -27}, {""easting"": -399, ""northing"": -31}, {""easting"": -377, ""northing"": 61}, {""easting"": -466, ""northing"": 10}, {""easting"": -342, ""northing"": -15}, {""easting"": -497, ""northing"": -17}, {""easting"": -487, ""northing"": -18}, {""easting"": -445, ""northing"": -38}, {""easting"": -398, ""northing"": 72}, {""easting"": -392, ""northing"": -38}, {""easting"": -464, ""northing"": 19}, {""easting"": -502, ""northing"": -45}, {""easting"": -522, ""northing"": -31}, {""easting"": -444, ""northing"": 23}, {""easting"": -467, ""northing"": -33}, {""easting"": -355, ""northing"": 40}, {""easting"": -353, ""northing"": 30}, {""easting"": -358, ""northing"": 49}, {""easting"": -360, ""northing"": 94}, {""easting"": -538, ""northing"": -30}, {""easting"": -364, ""northing"": 31}, {""easting"": -391, ""northing"": -95}, {""easting"": -366, ""northing"": -90} ] }, { ""id"": 4, ""positions"": [ {""easting"": 221, ""northing"": -20}, {""easting"": 163, ""northing"": -127}, {""easting"": 224, ""northing"": -17}, {""easting"": 214, ""northing"": -26}, {""easting"": 349, ""northing"": -97}, {""easting"": 232, ""northing"": -18}, {""easting"": 364, ""northing"": -89}, {""easting"": 358, ""northing"": -70}, {""easting"": 215, ""northing"": -37}, {""easting"": 236, ""northing"": -3}, {""easting"": 243, ""northing"": 21}, {""easting"": 241, ""northing"": -35}, {""easting"": 183, ""northing"": -80}, {""easting"": 322, ""northing"": -84}, {""easting"": 166, ""northing"": -130}, {""easting"": 157, ""northing"": -133}, {""easting"": 358, ""northing"": -104}, {""easting"": 209, ""northing"": -45}, {""easting"": 329, ""northing"": -118}, {""easting"": 227, ""northing"": -37}, {""easting"": 342, ""northing"": -108}, {""easting"": 230, ""northing"": -29}, {""easting"": 201, ""northing"": -83}, {""easting"": 339, ""northing"": -116}, {""easting"": 201, ""northing"": -35}, {""easting"": 208, ""northing"": -70}, {""easting"": 212, ""northing"": -55}, {""easting"": 205, ""northing"": -48} ] }, { ""id"": 5, ""positions"": [ {""easting"": -69, ""northing"": 6}, {""easting"": -53, ""northing"": 22}, {""easting"": -25, ""northing"": -1}, {""easting"": 43, ""northing"": 48}, {""easting"": -82, ""northing"": 103}, {""easting"": 70, ""northing"": 42}, {""easting"": 43, ""northing"": 29}, {""easting"": -136, ""northing"": 20}, {""easting"": -61, ""northing"": 90}, {""easting"": -128, ""northing"": 41}, {""easting"": 71, ""northing"": 79}, {""easting"": -130, ""northing"": 10}, {""easting"": -6, ""northing"": -7}, {""easting"": -63, ""northing"": 121}, {""easting"": 73, ""northing"": 58}, {""easting"": 35, ""northing"": 90}, {""easting"": -14, ""northing"": 20}, {""easting"": -111, ""northing"": 38}, {""easting"": 58, ""northing"": 82}, {""easting"": -135, ""northing"": 8}, {""easting"": -110, ""northing"": 12}, {""easting"": -107, ""northing"": 23}, {""easting"": -73, ""northing"": -24}, {""easting"": -66, ""northing"": 140}, {""easting"": -13, ""northing"": 35}, {""easting"": -139, ""northing"": 43}, {""easting"": -153, ""northing"": 20}, {""easting"": 65, ""northing"": 60} ] }, { ""id"": 6, ""positions"": [ {""easting"": 525, ""northing"": 64}, {""easting"": 408, ""northing"": 56}, {""easting"": 470, ""northing"": -33}, {""easting"": 390, ""northing"": -68}, {""easting"": 445, ""northing"": 6}, {""easting"": 500, ""northing"": 35}, {""easting"": 401, ""northing"": 36}, {""easting"": 376, ""northing"": -51}, {""easting"": 468, ""northing"": 0}, {""easting"": 343, ""northing"": 25}, {""easting"": 497, ""northing"": 26}, {""easting"": 486, ""northing"": 25}, {""easting"": 442, ""northing"": 44}, {""easting"": 399, ""northing"": -62}, {""easting"": 390, ""northing"": 47}, {""easting"": 463, ""northing"": -13}, {""easting"": 501, ""northing"": 54}, {""easting"": 522, ""northing"": 44}, {""easting"": 446, ""northing"": -15}, {""easting"": 468, ""northing"": 41}, {""easting"": 357, ""northing"": -35}, {""easting"": 356, ""northing"": -21}, {""easting"": 356, ""northing"": -41}, {""easting"": 359, ""northing"": -87}, {""easting"": 541, ""northing"": 38}, {""easting"": 365, ""northing"": -24}, {""easting"": 458, ""northing"": -9}, {""easting"": 488, ""northing"": 52} ] }], ""armingJitter"": 2.3, ""appearanceJitter"": 3.4, ""armingTimeOffset"": 29.6, ""mineChargeTypeId"": 216, ""appearanceTimeOffset"": 19.2}}";901;25190;;;;;2.255.201.3.0.0.0 ;;;;;;;;;;;;;; 411;;;Medizinisch;Med;Medical;Med;;1101;;;;;; 412;;;Wartung;Wart;Maintainance;Maint;;1101;;;;;; @@ -186,12 +189,13 @@ 471;21;;Rakete MK 261 (low ALT);MK 261 (low ALT);Missile MK 261 (low ALT);MK 261 (low ALT);"{""nasatId"":40, ""hazardDistance"": 250, ""casEffects"" : [{ ""severityType"" : 1, ""iedClass"" : 255, ""impactRadius"": 290}, { ""severityType"" : 3, ""iedClass"": 3, ""impactRadius"": 700}]}";1701;;;;;; 472;21;;Rakete Mk 24;Mk 24;Missile Mk 24;Mk 24;"{""nasatId"":41, ""hazardDistance"": 250, ""casEffects"" : [{ ""severityType"" : 1, ""iedClass"" : 255, ""impactRadius"": 340}, { ""severityType"" : 3, ""iedClass"": 3, ""impactRadius"": 750}]}";1701;;;;;; ;;;;;;;;;;;;;; -494;;;UAS IED 1;UAS IED 1;UAS IED 1;UAS IED 1;"{""isUasDroppable"":true, ""hazardDistance"": 100, ""casEffects"" : [{ ""severityType"" : 1, ""iedClass"" : 1, ""impactRadius"": 5}]}";;;;;;;2.255.26.0.0.0.0 -495;;;UAS IED 2;UAS IED 2;UAS IED 2;UAS IED 2;"{""isUasDroppable"":true, ""hazardDistance"": 100, ""casEffects"" : [{ ""severityType"" : 1, ""iedClass"" : 2, ""impactRadius"": 10}]}";;;;;;;2.255.26.0.0.0.1 -496;;;UAS IED 3;UAS IED 3;UAS IED 3;UAS IED 3;"{""isUasDroppable"":true, ""hazardDistance"": 100, ""casEffects"" : [{ ""severityType"" : 1, ""iedClass"" : 3, ""impactRadius"": 20}]}";;;;;;;2.255.26.0.0.0.2 -497;;;UAS IED 4;UAS IED 4;UAS IED 4;UAS IED 4;"{""isUasDroppable"":true, ""hazardDistance"": 100, ""casEffects"" : [{ ""severityType"" : 1, ""iedClass"" : 4, ""impactRadius"": 40}]}";;;;;;;2.255.26.0.0.0.3 -498;;;UAS IED 5;UAS IED 5;UAS IED 5;UAS IED 5;"{""isUasDroppable"":true, ""hazardDistance"": 100, ""casEffects"" : [{ ""severityType"" : 1, ""iedClass"" : 5, ""impactRadius"": 60}]}";;;;;;;2.255.26.0.0.0.4 -499;;;UAS Lethal;UAS IED Lethal;UAS Lethal;UAS IED Lethal;"{""isUasDroppable"":true, ""hazardDistance"": 100, ""casEffects"" : [{ ""severityType"" : 1, ""iedClass"" : 255, ""impactRadius"": 80}]}";;;;;;;2.255.26.0.0.0.5 +491;;;UAS IED 1;UAS IED 1;UAS IED 1;UAS IED 1;"{""isUasDroppable"":true, ""hazardDistance"": 100, ""casEffects"" : [{ ""severityType"" : 1, ""iedClass"" : 1, ""impactRadius"": 5}]}";;;;;;;2.255.26.0.0.0.0 +492;;;UAS IED 2;UAS IED 2;UAS IED 2;UAS IED 2;"{""isUasDroppable"":true, ""hazardDistance"": 100, ""casEffects"" : [{ ""severityType"" : 1, ""iedClass"" : 2, ""impactRadius"": 10}]}";;;;;;;2.255.26.0.0.0.1 +493;;;UAS IED 3;UAS IED 3;UAS IED 3;UAS IED 3;"{""isUasDroppable"":true, ""hazardDistance"": 100, ""casEffects"" : [{ ""severityType"" : 1, ""iedClass"" : 3, ""impactRadius"": 20}]}";;;;;;;2.255.26.0.0.0.2 +494;;;UAS IED 4;UAS IED 4;UAS IED 4;UAS IED 4;"{""isUasDroppable"":true, ""hazardDistance"": 100, ""casEffects"" : [{ ""severityType"" : 1, ""iedClass"" : 4, ""impactRadius"": 40}]}";;;;;;;2.255.26.0.0.0.3 +495;;;UAS IED 5;UAS IED 5;UAS IED 5;UAS IED 5;"{""isUasDroppable"":true, ""hazardDistance"": 100, ""casEffects"" : [{ ""severityType"" : 1, ""iedClass"" : 5, ""impactRadius"": 60}]}";;;;;;;2.255.26.0.0.0.4 +496;;;UAS IED vernichtend;UAS IED vernichtend;UAS IED Lethal;UAS IED Lethal;"{""isUasDroppable"":true, ""hazardDistance"": 100, ""casEffects"" : [{ ""severityType"" : 1, ""iedClass"" : 255, ""impactRadius"": 80}]}";;;;;;;2.255.26.0.0.0.5 +497;;;Virtueller Trigger UAS;Virtueller Trigger UAS;UAS Virtual Trigger;UAS Virtual Trigger;"{""flashing"" : false }";;;;;;; ;;;;;;;;;;;;;; 2001;;5.56mm M995 AP;5.56mm M995 AP;5,56 mm AP;;;;1000;;;;;; 2002;;"5.45mm M74 diff --git a/Lts/Tests/DatabaseInitialisation/guez_pdm/charge_type_igniter_type_igniter_function.csv b/Lts/Tests/DatabaseInitialisation/guez_pdm/charge_type_igniter_type_igniter_function.csv index 632a39a0..9698654b 100755 --- a/Lts/Tests/DatabaseInitialisation/guez_pdm/charge_type_igniter_type_igniter_function.csv +++ b/Lts/Tests/DatabaseInitialisation/guez_pdm/charge_type_igniter_type_igniter_function.csv @@ -48,12 +48,14 @@ charge_type_id;igniter_type_id;igniter_function_id;impact_area (Json);impact_rad 366;13;2;;25;250;1;2; 367;14;2;;25;250;1;1; 367;14;1;;25;250;1;1; -394;0;2;;25;250;394;2; -394;0;5;;25;250;394;0; -394;0;6;;25;250;394;0; -394;0;7;;25;250;394;0; -394;0;8;;25;250;394;0; -395;0;0;;25;250;395;0; +368;0;2;;25;250;394;2; +368;0;5;;25;250;394;0; +368;0;6;;25;250;394;0; +368;0;7;;25;250;394;0; +368;0;8;;25;250;394;0; +369;0;0;;25;250;395;0; +394;102;0;;25;250;394;0; +395;102;0;;25;250;395;0; 361;10;1;;25;250;5;1; 362;11;1;;25;250;5;1; 363;12;1;;25;250;5;1; @@ -117,12 +119,13 @@ charge_type_id;igniter_type_id;igniter_function_id;impact_area (Json);impact_rad 470;0;0;;0;0;0;0; 471;0;0;;0;0;0;0; 472;0;0;;0;0;0;0; -494;0;0;;5;100;0;0; -495;0;0;;10;100;0;0; -496;0;0;;20;100;0;0; -497;0;0;;30;100;0;0; -498;0;0;;60;100;0;0; -499;0;0;;80;100;0;0; +491;0;0;;5;100;0;0; +492;0;0;;10;100;0;0; +493;0;0;;20;100;0;0; +494;0;0;;30;100;0;0; +495;0;0;;60;100;0;0; +496;0;0;;80;100;0;0; +497;0;0;;0;0;0;0; 2001;0;0;;0;0;0;0; 2002;0;0;;0;0;0;0; 2003;0;0;;0;0;0;0; @@ -393,7 +396,10 @@ charge_type_id;igniter_type_id;igniter_function_id;impact_area (Json);impact_rad 77;0;0;;0;0;0;0; 78;0;0;;0;0;0;0; 79;0;0;;0;0;0;0; -373;0;0;;25;0;0;0; +373;101;0;;25;0;3;4; +373;102;0;;25;0;3;2; +373;103;0;;25;0;3;3; +373;104;0;;25;0;3;1; 311;0;0;;0;0;0;0; 312;0;0;;0;0;0;0; 313;0;0;;0;0;0;0; diff --git a/Lts/Tests/DatabaseInitialisation/guez_pdm_charge_type_update.sql b/Lts/Tests/DatabaseInitialisation/guez_pdm_charge_type_update.sql index f5cb85b0..ea4499df 100755 --- a/Lts/Tests/DatabaseInitialisation/guez_pdm_charge_type_update.sql +++ b/Lts/Tests/DatabaseInitialisation/guez_pdm_charge_type_update.sql @@ -42,6 +42,8 @@ UPDATE pdm.pdm_charge_type SET predefined_name = NULL, name = 'Nebelpatrone - DM UPDATE pdm.pdm_charge_type SET predefined_name = NULL, name = 'Nebelpatrone-DM65 msd-NG', short_name = 'Nebel NG DM65', properties = '{"adlerChargeTypeName": "Nebel NG DM65", "isAdlerChargeType": true, "impactRadius":25, "impactEdgeLength":25, "isSmoke":true, "hazardDistance": 250, "fuseTypes" : [ {"fuseType": 3, "chargeLegacyId" : 5}]}', dis_entity = NULL, charge_legacy_id = 5 WHERE ID = 365; UPDATE pdm.pdm_charge_type SET predefined_name = NULL, name = 'Sprengpatrone, Annäherung-DM61', short_name = 'Spreng DM61', properties = '{"adlerChargeTypeName": "Spreng DM61", "isAdlerChargeType": true, "impactRadius":25, "impactEdgeLength":25, "hazardDistance": 250, "fuseTypes" : [ { "fuseType" : 0, "chargeLegacyId" : 2}, { "fuseType" : 1, "chargeLegacyId": 1}, {"fuseType" : 2, "chargeLegacyId" : 1}, {"fuseType" : 3, "chargeLegacyId" : 1}]}', dis_entity = NULL, charge_legacy_id = 1 WHERE ID = 366; UPDATE pdm.pdm_charge_type SET predefined_name = NULL, name = 'Sprenggeschoss - DM91 AZ-NG', short_name = 'Spreng DM91 AZ-NG', properties = '{"adlerChargeTypeName": "Spreng DM91 AZ-NG", "isAdlerChargeType": true, "impactRadius":25, "impactEdgeLength":25, "hazardDistance": 250, "fuseTypes" : [ { "fuseType" : 0, "chargeLegacyId" : 2}, { "fuseType" : 1, "chargeLegacyId": 1}, {"fuseType" : 2, "chargeLegacyId" : 1}, {"fuseType" : 3, "chargeLegacyId" : 1}]}', dis_entity = NULL, charge_legacy_id = 1 WHERE ID = 367; +UPDATE pdm.pdm_charge_type SET predefined_name = NULL, name = 'GMLRS Unitary M31', short_name = 'GMLRS', properties = '{"adlerChargeTypeName": "Unitary M31", "isAdlerChargeType": true, "impactRadius":25, "impactEdgeLength":25, "hazardDistance": 250, "fuseTypes" : [ { "fuseType" : 1, "chargeLegacyId" : 1}]}', dis_entity = '2.255.201.3.0.0.0', charge_legacy_id = 1 WHERE ID = 368; +UPDATE pdm.pdm_charge_type SET predefined_name = NULL, name = 'Mine DM72', short_name = 'DM72', properties = '{"impactRadius": 25, "hazardDistance": 250, "impactEdgeLength": 25, "adlerChargeTypeName": "Mine DM72", "fuseTypes": [{"fuseType": 1, "chargeLegacyId": 395}], "mineLaying": {"pattern": [ { "id": 1, "positions": [ {"easting": 111, "northing": -30}, {"easting": 111, "northing": -36}, {"easting": 120, "northing": -48}, {"easting": 101, "northing": -45}, {"easting": 61, "northing": -44}, {"easting": 87, "northing": -35}, {"easting": -78, "northing": -36}, {"easting": -78, "northing": -35}, {"easting": -82, "northing": -39}, {"easting": -113, "northing": -27}, {"easting": -105, "northing": -15}, {"easting": -104, "northing": -1}, {"easting": -93, "northing": -54}, {"easting": -91, "northing": -60}, {"easting": -89, "northing": -59}, {"easting": -81, "northing": -64}, {"easting": -78, "northing": -69}, {"easting": -95, "northing": -86}, {"easting": 11, "northing": -70}, {"easting": -4, "northing": -90}, {"easting": 2, "northing": -16}, {"easting": -3, "northing": 16}, {"easting": -11, "northing": 11}, {"easting": -12, "northing": 5}, {"easting": 7, "northing": -40}, {"easting": 8, "northing": -13}, {"easting": -21, "northing": 6}, {"easting": 44, "northing": -34} ] }, { "id": 2, "positions": [ {"easting": -239, "northing": -31}, {"easting": -132, "northing": 17}, {"easting": -108, "northing": -57}, {"easting": -261, "northing": 67}, {"easting": -123, "northing": 14}, {"easting": -143, "northing": 5}, {"easting": -233, "northing": 125}, {"easting": -109, "northing": -37}, {"easting": -261, "northing": 37}, {"easting": -247, "northing": 73}, {"easting": -253, "northing": 60}, {"easting": -168, "northing": 124}, {"easting": -267, "northing": 57}, {"easting": -115, "northing": 3}, {"easting": -258, "northing": 49}, {"easting": -117, "northing": -53}, {"easting": -230, "northing": -45}, {"easting": -153, "northing": 131}, {"easting": -234, "northing": 146}, {"easting": -234, "northing": 138}, {"easting": -246, "northing": 132}, {"easting": -100, "northing": -38}, {"easting": -239, "northing": -18}, {"easting": -251, "northing": 53}, {"easting": -137, "northing": 160}, {"easting": -274, "northing": 75}, {"easting": -225, "northing": -23}, {"easting": -234, "northing": 58} ] }, { "id": 3, "positions": [ {"easting": -521, "northing": -54}, {"easting": -409, "northing": -50}, {"easting": -473, "northing": 44}, {"easting": -392, "northing": 76}, {"easting": -447, "northing": 1}, {"easting": -503, "northing": -27}, {"easting": -399, "northing": -31}, {"easting": -377, "northing": 61}, {"easting": -466, "northing": 10}, {"easting": -342, "northing": -15}, {"easting": -497, "northing": -17}, {"easting": -487, "northing": -18}, {"easting": -445, "northing": -38}, {"easting": -398, "northing": 72}, {"easting": -392, "northing": -38}, {"easting": -464, "northing": 19}, {"easting": -502, "northing": -45}, {"easting": -522, "northing": -31}, {"easting": -444, "northing": 23}, {"easting": -467, "northing": -33}, {"easting": -355, "northing": 40}, {"easting": -353, "northing": 30}, {"easting": -358, "northing": 49}, {"easting": -360, "northing": 94}, {"easting": -538, "northing": -30}, {"easting": -364, "northing": 31}, {"easting": -391, "northing": -95}, {"easting": -366, "northing": -90} ] }, { "id": 4, "positions": [ {"easting": 221, "northing": -20}, {"easting": 163, "northing": -127}, {"easting": 224, "northing": -17}, {"easting": 214, "northing": -26}, {"easting": 349, "northing": -97}, {"easting": 232, "northing": -18}, {"easting": 364, "northing": -89}, {"easting": 358, "northing": -70}, {"easting": 215, "northing": -37}, {"easting": 236, "northing": -3}, {"easting": 243, "northing": 21}, {"easting": 241, "northing": -35}, {"easting": 183, "northing": -80}, {"easting": 322, "northing": -84}, {"easting": 166, "northing": -130}, {"easting": 157, "northing": -133}, {"easting": 358, "northing": -104}, {"easting": 209, "northing": -45}, {"easting": 329, "northing": -118}, {"easting": 227, "northing": -37}, {"easting": 342, "northing": -108}, {"easting": 230, "northing": -29}, {"easting": 201, "northing": -83}, {"easting": 339, "northing": -116}, {"easting": 201, "northing": -35}, {"easting": 208, "northing": -70}, {"easting": 212, "northing": -55}, {"easting": 205, "northing": -48} ] }, { "id": 5, "positions": [ {"easting": -69, "northing": 6}, {"easting": -53, "northing": 22}, {"easting": -25, "northing": -1}, {"easting": 43, "northing": 48}, {"easting": -82, "northing": 103}, {"easting": 70, "northing": 42}, {"easting": 43, "northing": 29}, {"easting": -136, "northing": 20}, {"easting": -61, "northing": 90}, {"easting": -128, "northing": 41}, {"easting": 71, "northing": 79}, {"easting": -130, "northing": 10}, {"easting": -6, "northing": -7}, {"easting": -63, "northing": 121}, {"easting": 73, "northing": 58}, {"easting": 35, "northing": 90}, {"easting": -14, "northing": 20}, {"easting": -111, "northing": 38}, {"easting": 58, "northing": 82}, {"easting": -135, "northing": 8}, {"easting": -110, "northing": 12}, {"easting": -107, "northing": 23}, {"easting": -73, "northing": -24}, {"easting": -66, "northing": 140}, {"easting": -13, "northing": 35}, {"easting": -139, "northing": 43}, {"easting": -153, "northing": 20}, {"easting": 65, "northing": 60} ] }, { "id": 6, "positions": [ {"easting": 525, "northing": 64}, {"easting": 408, "northing": 56}, {"easting": 470, "northing": -33}, {"easting": 390, "northing": -68}, {"easting": 445, "northing": 6}, {"easting": 500, "northing": 35}, {"easting": 401, "northing": 36}, {"easting": 376, "northing": -51}, {"easting": 468, "northing": 0}, {"easting": 343, "northing": 25}, {"easting": 497, "northing": 26}, {"easting": 486, "northing": 25}, {"easting": 442, "northing": 44}, {"easting": 399, "northing": -62}, {"easting": 390, "northing": 47}, {"easting": 463, "northing": -13}, {"easting": 501, "northing": 54}, {"easting": 522, "northing": 44}, {"easting": 446, "northing": -15}, {"easting": 468, "northing": 41}, {"easting": 357, "northing": -35}, {"easting": 356, "northing": -21}, {"easting": 356, "northing": -41}, {"easting": 359, "northing": -87}, {"easting": 541, "northing": 38}, {"easting": 365, "northing": -24}, {"easting": 458, "northing": -9}, {"easting": 488, "northing": 52} ] }], "armingJitter": 2.3, "appearanceJitter": 3.4, "armingTimeOffset": 29.6, "mineChargeTypeId": 216, "appearanceTimeOffset": 19.2}}', dis_entity = '2.255.201.3.0.0.0', charge_legacy_id = 395 WHERE ID = 369; UPDATE pdm.pdm_charge_type SET predefined_name = NULL, name = 'High Explosive', short_name = 'HE', properties = '{"impactRadius":25, "impactEdgeLength":25, "hazardDistance": 250, "fuseTypes" : [ { "fuseType" : 0, "chargeLegacyId" : 2}, { "fuseType" : 1, "chargeLegacyId": 1}, {"fuseType" : 2, "chargeLegacyId" : 1}, {"fuseType" : 3, "chargeLegacyId" : 1}]}', dis_entity = '2.9.222.2.19.1.0', charge_legacy_id = 1 WHERE ID = 371; UPDATE pdm.pdm_charge_type SET predefined_name = NULL, name = 'Bomblet', short_name = 'Bomblet', properties = '{"impactRadius":25, "impactEdgeLength":25}', dis_entity = '2.9.222.2.19.10.0', charge_legacy_id = 3 WHERE ID = 373; UPDATE pdm.pdm_charge_type SET predefined_name = NULL, name = 'SMArt', short_name = 'SMArt', properties = '{"impactRadius":25, "impactEdgeLength":50, "isSmart":true, "searchRadius":150, "hazardDistance": 250, "fuseTypes" :[ { "fuseType" : 0, "chargeLegacyId" : 4}, { "fuseType" : 1, "chargeLegacyId": 4}, {"fuseType" : 2, "chargeLegacyId" : 4}]}', dis_entity = '2.255.201.4.0.0.0', charge_legacy_id = 4 WHERE ID = 374; @@ -49,8 +51,8 @@ UPDATE pdm.pdm_charge_type SET predefined_name = NULL, name = 'Nebel', short_nam UPDATE pdm.pdm_charge_type SET predefined_name = NULL, name = 'Präzisionsmunition LASER', short_name = 'PGM', properties = '{"adlerChargeTypeName": "VULCANO GLR-SAL", "impactRadius":25, "impactEdgeLength":25, "hazardDistance": 250, "fuseTypes" : [ {"fuseType": 1, "chargeLegacyId" : 1}], "isLaserGuidable" : true}', dis_entity = '2.255.201.3.0.0.0', charge_legacy_id = 1 WHERE ID = 376; UPDATE pdm.pdm_charge_type SET predefined_name = NULL, name = 'High Explosive', short_name = 'HE', properties = '{"impactRadius":15, "impactEdgeLength":25, "hazardDistance": 250, "fuseTypes" : [ { "fuseType" : 0, "chargeLegacyId" : 11}, { "fuseType" : 1, "chargeLegacyId": 10}, {"fuseType" : 2, "chargeLegacyId" : 10}, {"fuseType" : 3, "chargeLegacyId" : 1}]}', dis_entity = '2.9.225.2.8.18.0', charge_legacy_id = 10 WHERE ID = 381; UPDATE pdm.pdm_charge_type SET predefined_name = NULL, name = 'Nebel', short_name = 'Nebel', properties = '{"impactRadius":25, "impactEdgeLength":25, "isSmoke":true, "hazardDistance": 250, "fuseTypes" : [ {"fuseType": 3, "chargeLegacyId" : 5}]}', dis_entity = '2.255.201.5.0.0.0', charge_legacy_id = 5 WHERE ID = 385; -UPDATE pdm.pdm_charge_type SET predefined_name = NULL, name = 'GMLRS Unitary M31', short_name = 'GMLRS', properties = '{"adlerChargeTypeName": "Unitary M31", "impactRadius":25, "impactEdgeLength":25, "hazardDistance": 250, "fuseTypes" : [ { "fuseType" : 1, "chargeLegacyId" : 394}]}', dis_entity = '2.255.201.3.0.0.0', charge_legacy_id = NULL WHERE ID = 394; -UPDATE pdm.pdm_charge_type SET predefined_name = NULL, name = 'Mine DM72', short_name = 'DM72', properties = '{"adlerChargeTypeName": "Mine DM72", "impactRadius":25, "impactEdgeLength":25, "hazardDistance": 250, "fuseTypes": [{"fuseType": 1, "chargeLegacyId": 395}], "mineLaying":{"appearanceTimeOffset" : 19.2, "appearanceJitter": 3.4, "armingTimeOffset": 29.6, "armingJitter" : 2.3, "mineChargeTypeId": 216, "pattern": [ {"id": 1, "positions": [{"easting": -28, "northing": -30}, {"easting": -34, "northing": -36}, {"easting": -46, "northing": -48}, {"easting": -43, "northing": -44}, {"easting": -61, "northing": -43}, {"easting": -34, "northing": -35}, {"easting": 78, "northing": -77}, {"easting": 78, "northing": -77}, {"easting": 82, "northing": -81}, {"easting": 113, "northing": -112}, {"easting": 105, "northing": -105}, {"easting": 104, "northing": -102}, {"easting": 55, "northing": -53}, {"easting": 61, "northing": -60}, {"easting": 61, "northing": -59}, {"easting": 65, "northing": -64}, {"easting": 71, "northing": -76}, {"easting": 88, "northing": -93}, {"easting": -12, "northing": -13}, {"easting": -4, "northing": -3}, {"easting": 2, "northing": -16}, {"easting": -16, "northing": -3}, {"easting": -11, "northing": -11}, {"easting": -12, "northing": 5}, {"easting": 7, "northing": -40}, {"easting": 8, "northing": -13}, {"easting": 5, "northing": -21}, {"easting": -33, "northing": 44}]}, {"id": 2, "positions": [{"easting": 34, "northing": -238}, {"easting": 16, "northing": -132}, {"easting": -108, "northing": -57}, {"easting": 64, "northing": -262}, {"easting": -12, "northing": -122}, {"easting": 2, "northing": -143}, {"easting": 125, "northing": -235}, {"easting": 39, "northing": -108}, {"easting": 32, "northing": -261}, {"easting": 69, "northing": -248}, {"easting": 56, "northing": -253}, {"easting": 121, "northing": -170}, {"easting": 53, "northing": -268}, {"easting": 116, "northing": -115}, {"easting": 46, "northing": -258}, {"easting": -117, "northing": -53}, {"easting": 49, "northing": -229}, {"easting": 131, "northing": -155}, {"easting": 143, "northing": -236}, {"easting": 137, "northing": -236}, {"easting": 131, "northing": -248}, {"easting": 39, "northing": -100}, {"easting": 22, "northing": -238}, {"easting": 51, "northing": -251}, {"easting": 139, "northing": -139}, {"easting": 73, "northing": -274}, {"easting": 28, "northing": -224}, {"easting": 53, "northing": -234}]}, {"id": 3, "positions": [{"easting": -61, "northing": -520}, {"easting": -58, "northing": -409}, {"easting": -74, "northing": -474}, {"easting": -69, "northing": -393}, {"easting": -5, "northing": -448}, {"easting": -37, "northing": -504}, {"easting": -37, "northing": -397}, {"easting": -55, "northing": -378}, {"easting": -5, "northing": -467}, {"easting": 19, "northing": -342}, {"easting": -26, "northing": -496}, {"easting": -26, "northing": -487}, {"easting": -43, "northing": -445}, {"easting": -69, "northing": -400}, {"easting": -43, "northing": -389}, {"easting": -13, "northing": -463}, {"easting": -52, "northing": -500}, {"easting": -40, "northing": -520}, {"easting": -19, "northing": -444}, {"easting": -38, "northing": -464}, {"easting": 38, "northing": -356}, {"easting": 27, "northing": -354}, {"easting": 47, "northing": -359}, {"easting": -91, "northing": -362}, {"easting": -36, "northing": -540}, {"easting": 27, "northing": -365}, {"easting": 100, "northing": -391}, {"easting": 97, "northing": -365}]}, {"id": 4, "positions": [{"easting": 16, "northing": 221}, {"easting": -125, "northing": 164}, {"easting": 13, "northing": 224}, {"easting": 23, "northing": 214}, {"easting": -91, "northing": 350}, {"easting": 15, "northing": 233}, {"easting": -83, "northing": 365}, {"easting": -63, "northing": 358}, {"easting": 32, "northing": 216}, {"easting": -1, "northing": 236}, {"easting": -26, "northing": 244}, {"easting": -31, "northing": 241}, {"easting": -77, "northing": 184}, {"easting": -79, "northing": 323}, {"easting": -128, "northing": 167}, {"easting": -130, "northing": 158}, {"easting": -97, "northing": 360}, {"easting": 42, "northing": 210}, {"easting": -111, "northing": 329}, {"easting": -32, "northing": 233}, {"easting": -102, "northing": 342}, {"easting": -25, "northing": 231}, {"easting": -81, "northing": 202}, {"easting": -113, "northing": 340}, {"easting": 31, "northing": 202}, {"easting": -67, "northing": 219}, {"easting": -50, "northing": 213}, {"easting": -45, "northing": 210}]}, {"id": 5, "positions": [{"easting": -69, "northing": 5}, {"easting": -53, "northing": 22}, {"easting": -25, "northing": -1}, {"easting": -48, "northing": 48}, {"easting": -103, "northing": 83}, {"easting": -43, "northing": 69}, {"easting": -30, "northing": 43}, {"easting": -137, "northing": 19}, {"easting": -89, "northing": 89}, {"easting": -128, "northing": 41}, {"easting": -81, "northing": 79}, {"easting": -130, "northing": 9}, {"easting": -6, "northing": -7}, {"easting": -121, "northing": 63}, {"easting": -59, "northing": 73}, {"easting": -90, "northing": 35}, {"easting": -20, "northing": 20}, {"easting": -111, "northing": 37}, {"easting": -83, "northing": 82}, {"easting": -135, "northing": 7}, {"easting": -110, "northing": 11}, {"easting": -106, "northing": 22}, {"easting": -73, "northing": -24}, {"easting": -138, "northing": 67}, {"easting": -35, "northing": 34}, {"easting": -140, "northing": 42}, {"easting": -152, "northing": 19}, {"easting": -61, "northing": 64}]}, {"id": 6, "positions": [{"easting": -72, "northing": 522}, {"easting": -63, "northing": 409}, {"easting": 25, "northing": 472}, {"easting": 61, "northing": 391}, {"easting": -13, "northing": 446}, {"easting": -44, "northing": 500}, {"easting": -42, "northing": 400}, {"easting": 46, "northing": 377}, {"easting": -8, "northing": 468}, {"easting": -30, "northing": 341}, {"easting": -33, "northing": 497}, {"easting": -31, "northing": 486}, {"easting": -50, "northing": 443}, {"easting": 55, "northing": 399}, {"easting": -53, "northing": 389}, {"easting": 5, "northing": 464}, {"easting": -61, "northing": 499}, {"easting": -52, "northing": 521}, {"easting": 9, "northing": 446}, {"easting": -49, "northing": 463}, {"easting": 29, "northing": 357}, {"easting": 16, "northing": 356}, {"easting": 36, "northing": 356}, {"easting": 81, "northing": 359}, {"easting": -47, "northing": 542}, {"easting": 19, "northing": 364}, {"easting": 2, "northing": 459}, {"easting": -59, "northing": 487}]}]}}', dis_entity = '2.255.201.3.0.0.0', charge_legacy_id = NULL WHERE ID = 395; +UPDATE pdm.pdm_charge_type SET predefined_name = NULL, name = 'GMLRS Unitary', short_name = 'GMLRS', properties = '{ "impactRadius":25, "impactEdgeLength":25, "hazardDistance": 250, "fuseTypes" : [ { "fuseType" : 1, "chargeLegacyId" : 1}]}', dis_entity = '2.255.201.3.0.0.0', charge_legacy_id = 1 WHERE ID = 394; +UPDATE pdm.pdm_charge_type SET predefined_name = NULL, name = 'Mine DM72', short_name = 'DM72', properties = '{"impactRadius": 25, "hazardDistance": 250, "impactEdgeLength": 25, "fuseTypes": [{"fuseType": 1, "chargeLegacyId": 395}], "mineLaying": {"pattern": [ { "id": 1, "positions": [ {"easting": 111, "northing": -30}, {"easting": 111, "northing": -36}, {"easting": 120, "northing": -48}, {"easting": 101, "northing": -45}, {"easting": 61, "northing": -44}, {"easting": 87, "northing": -35}, {"easting": -78, "northing": -36}, {"easting": -78, "northing": -35}, {"easting": -82, "northing": -39}, {"easting": -113, "northing": -27}, {"easting": -105, "northing": -15}, {"easting": -104, "northing": -1}, {"easting": -93, "northing": -54}, {"easting": -91, "northing": -60}, {"easting": -89, "northing": -59}, {"easting": -81, "northing": -64}, {"easting": -78, "northing": -69}, {"easting": -95, "northing": -86}, {"easting": 11, "northing": -70}, {"easting": -4, "northing": -90}, {"easting": 2, "northing": -16}, {"easting": -3, "northing": 16}, {"easting": -11, "northing": 11}, {"easting": -12, "northing": 5}, {"easting": 7, "northing": -40}, {"easting": 8, "northing": -13}, {"easting": -21, "northing": 6}, {"easting": 44, "northing": -34} ] }, { "id": 2, "positions": [ {"easting": -239, "northing": -31}, {"easting": -132, "northing": 17}, {"easting": -108, "northing": -57}, {"easting": -261, "northing": 67}, {"easting": -123, "northing": 14}, {"easting": -143, "northing": 5}, {"easting": -233, "northing": 125}, {"easting": -109, "northing": -37}, {"easting": -261, "northing": 37}, {"easting": -247, "northing": 73}, {"easting": -253, "northing": 60}, {"easting": -168, "northing": 124}, {"easting": -267, "northing": 57}, {"easting": -115, "northing": 3}, {"easting": -258, "northing": 49}, {"easting": -117, "northing": -53}, {"easting": -230, "northing": -45}, {"easting": -153, "northing": 131}, {"easting": -234, "northing": 146}, {"easting": -234, "northing": 138}, {"easting": -246, "northing": 132}, {"easting": -100, "northing": -38}, {"easting": -239, "northing": -18}, {"easting": -251, "northing": 53}, {"easting": -137, "northing": 160}, {"easting": -274, "northing": 75}, {"easting": -225, "northing": -23}, {"easting": -234, "northing": 58} ] }, { "id": 3, "positions": [ {"easting": -521, "northing": -54}, {"easting": -409, "northing": -50}, {"easting": -473, "northing": 44}, {"easting": -392, "northing": 76}, {"easting": -447, "northing": 1}, {"easting": -503, "northing": -27}, {"easting": -399, "northing": -31}, {"easting": -377, "northing": 61}, {"easting": -466, "northing": 10}, {"easting": -342, "northing": -15}, {"easting": -497, "northing": -17}, {"easting": -487, "northing": -18}, {"easting": -445, "northing": -38}, {"easting": -398, "northing": 72}, {"easting": -392, "northing": -38}, {"easting": -464, "northing": 19}, {"easting": -502, "northing": -45}, {"easting": -522, "northing": -31}, {"easting": -444, "northing": 23}, {"easting": -467, "northing": -33}, {"easting": -355, "northing": 40}, {"easting": -353, "northing": 30}, {"easting": -358, "northing": 49}, {"easting": -360, "northing": 94}, {"easting": -538, "northing": -30}, {"easting": -364, "northing": 31}, {"easting": -391, "northing": -95}, {"easting": -366, "northing": -90} ] }, { "id": 4, "positions": [ {"easting": 221, "northing": -20}, {"easting": 163, "northing": -127}, {"easting": 224, "northing": -17}, {"easting": 214, "northing": -26}, {"easting": 349, "northing": -97}, {"easting": 232, "northing": -18}, {"easting": 364, "northing": -89}, {"easting": 358, "northing": -70}, {"easting": 215, "northing": -37}, {"easting": 236, "northing": -3}, {"easting": 243, "northing": 21}, {"easting": 241, "northing": -35}, {"easting": 183, "northing": -80}, {"easting": 322, "northing": -84}, {"easting": 166, "northing": -130}, {"easting": 157, "northing": -133}, {"easting": 358, "northing": -104}, {"easting": 209, "northing": -45}, {"easting": 329, "northing": -118}, {"easting": 227, "northing": -37}, {"easting": 342, "northing": -108}, {"easting": 230, "northing": -29}, {"easting": 201, "northing": -83}, {"easting": 339, "northing": -116}, {"easting": 201, "northing": -35}, {"easting": 208, "northing": -70}, {"easting": 212, "northing": -55}, {"easting": 205, "northing": -48} ] }, { "id": 5, "positions": [ {"easting": -69, "northing": 6}, {"easting": -53, "northing": 22}, {"easting": -25, "northing": -1}, {"easting": 43, "northing": 48}, {"easting": -82, "northing": 103}, {"easting": 70, "northing": 42}, {"easting": 43, "northing": 29}, {"easting": -136, "northing": 20}, {"easting": -61, "northing": 90}, {"easting": -128, "northing": 41}, {"easting": 71, "northing": 79}, {"easting": -130, "northing": 10}, {"easting": -6, "northing": -7}, {"easting": -63, "northing": 121}, {"easting": 73, "northing": 58}, {"easting": 35, "northing": 90}, {"easting": -14, "northing": 20}, {"easting": -111, "northing": 38}, {"easting": 58, "northing": 82}, {"easting": -135, "northing": 8}, {"easting": -110, "northing": 12}, {"easting": -107, "northing": 23}, {"easting": -73, "northing": -24}, {"easting": -66, "northing": 140}, {"easting": -13, "northing": 35}, {"easting": -139, "northing": 43}, {"easting": -153, "northing": 20}, {"easting": 65, "northing": 60} ] }, { "id": 6, "positions": [ {"easting": 525, "northing": 64}, {"easting": 408, "northing": 56}, {"easting": 470, "northing": -33}, {"easting": 390, "northing": -68}, {"easting": 445, "northing": 6}, {"easting": 500, "northing": 35}, {"easting": 401, "northing": 36}, {"easting": 376, "northing": -51}, {"easting": 468, "northing": 0}, {"easting": 343, "northing": 25}, {"easting": 497, "northing": 26}, {"easting": 486, "northing": 25}, {"easting": 442, "northing": 44}, {"easting": 399, "northing": -62}, {"easting": 390, "northing": 47}, {"easting": 463, "northing": -13}, {"easting": 501, "northing": 54}, {"easting": 522, "northing": 44}, {"easting": 446, "northing": -15}, {"easting": 468, "northing": 41}, {"easting": 357, "northing": -35}, {"easting": 356, "northing": -21}, {"easting": 356, "northing": -41}, {"easting": 359, "northing": -87}, {"easting": 541, "northing": 38}, {"easting": 365, "northing": -24}, {"easting": 458, "northing": -9}, {"easting": 488, "northing": 52} ] }], "armingJitter": 2.3, "appearanceJitter": 3.4, "armingTimeOffset": 29.6, "mineChargeTypeId": 216, "appearanceTimeOffset": 19.2}}', dis_entity = '2.255.201.3.0.0.0', charge_legacy_id = NULL WHERE ID = 395; UPDATE pdm.pdm_charge_type SET predefined_name = NULL, name = 'Medizinisch', short_name = 'Med', properties = NULL, dis_entity = NULL, charge_legacy_id = NULL WHERE ID = 411; UPDATE pdm.pdm_charge_type SET predefined_name = NULL, name = 'Wartung', short_name = 'Wart', properties = NULL, dis_entity = NULL, charge_legacy_id = NULL WHERE ID = 412; UPDATE pdm.pdm_charge_type SET predefined_name = NULL, name = 'Dekontamination', short_name = 'Dekon', properties = NULL, dis_entity = NULL, charge_legacy_id = NULL WHERE ID = 413; @@ -174,12 +176,13 @@ UPDATE pdm.pdm_charge_type SET predefined_name = NULL, name = 'Rakete Mk 151 (lo UPDATE pdm.pdm_charge_type SET predefined_name = NULL, name = 'Rakete MK  229 (low ALT) ', short_name = 'MK  229 (low ALT) ', properties = '{"nasatId":39, "hazardDistance": 250, "casEffects" : [{ "severityType" : 1, "iedClass" : 255, "impactRadius": 290}, { "severityType" : 3, "iedClass": 3, "impactRadius": 700}]}', dis_entity = NULL, charge_legacy_id = 21 WHERE ID = 470; UPDATE pdm.pdm_charge_type SET predefined_name = NULL, name = 'Rakete MK 261 (low ALT)', short_name = 'MK 261 (low ALT)', properties = '{"nasatId":40, "hazardDistance": 250, "casEffects" : [{ "severityType" : 1, "iedClass" : 255, "impactRadius": 290}, { "severityType" : 3, "iedClass": 3, "impactRadius": 700}]}', dis_entity = NULL, charge_legacy_id = 21 WHERE ID = 471; UPDATE pdm.pdm_charge_type SET predefined_name = NULL, name = 'Rakete Mk 24', short_name = 'Mk 24', properties = '{"nasatId":41, "hazardDistance": 250, "casEffects" : [{ "severityType" : 1, "iedClass" : 255, "impactRadius": 340}, { "severityType" : 3, "iedClass": 3, "impactRadius": 750}]}', dis_entity = NULL, charge_legacy_id = 21 WHERE ID = 472; -UPDATE pdm.pdm_charge_type SET predefined_name = NULL, name = 'UAS IED 1', short_name = 'UAS IED 1', properties = '{"isUasDroppable":true, "hazardDistance": 100, "casEffects" : [{ "severityType" : 1, "iedClass" : 1, "impactRadius": 5}]}', dis_entity = '2.255.26.0.0.0.0', charge_legacy_id = NULL WHERE ID = 494; -UPDATE pdm.pdm_charge_type SET predefined_name = NULL, name = 'UAS IED 2', short_name = 'UAS IED 2', properties = '{"isUasDroppable":true, "hazardDistance": 100, "casEffects" : [{ "severityType" : 1, "iedClass" : 2, "impactRadius": 10}]}', dis_entity = '2.255.26.0.0.0.1', charge_legacy_id = NULL WHERE ID = 495; -UPDATE pdm.pdm_charge_type SET predefined_name = NULL, name = 'UAS IED 3', short_name = 'UAS IED 3', properties = '{"isUasDroppable":true, "hazardDistance": 100, "casEffects" : [{ "severityType" : 1, "iedClass" : 3, "impactRadius": 20}]}', dis_entity = '2.255.26.0.0.0.2', charge_legacy_id = NULL WHERE ID = 496; -UPDATE pdm.pdm_charge_type SET predefined_name = NULL, name = 'UAS IED 4', short_name = 'UAS IED 4', properties = '{"isUasDroppable":true, "hazardDistance": 100, "casEffects" : [{ "severityType" : 1, "iedClass" : 4, "impactRadius": 40}]}', dis_entity = '2.255.26.0.0.0.3', charge_legacy_id = NULL WHERE ID = 497; -UPDATE pdm.pdm_charge_type SET predefined_name = NULL, name = 'UAS IED 5', short_name = 'UAS IED 5', properties = '{"isUasDroppable":true, "hazardDistance": 100, "casEffects" : [{ "severityType" : 1, "iedClass" : 5, "impactRadius": 60}]}', dis_entity = '2.255.26.0.0.0.4', charge_legacy_id = NULL WHERE ID = 498; -UPDATE pdm.pdm_charge_type SET predefined_name = NULL, name = 'UAS Lethal', short_name = 'UAS IED Lethal', properties = '{"isUasDroppable":true, "hazardDistance": 100, "casEffects" : [{ "severityType" : 1, "iedClass" : 255, "impactRadius": 80}]}', dis_entity = '2.255.26.0.0.0.5', charge_legacy_id = NULL WHERE ID = 499; +UPDATE pdm.pdm_charge_type SET predefined_name = NULL, name = 'UAS IED 1', short_name = 'UAS IED 1', properties = '{"isUasDroppable":true, "hazardDistance": 100, "casEffects" : [{ "severityType" : 1, "iedClass" : 1, "impactRadius": 5}]}', dis_entity = '2.255.26.0.0.0.0', charge_legacy_id = NULL WHERE ID = 491; +UPDATE pdm.pdm_charge_type SET predefined_name = NULL, name = 'UAS IED 2', short_name = 'UAS IED 2', properties = '{"isUasDroppable":true, "hazardDistance": 100, "casEffects" : [{ "severityType" : 1, "iedClass" : 2, "impactRadius": 10}]}', dis_entity = '2.255.26.0.0.0.1', charge_legacy_id = NULL WHERE ID = 492; +UPDATE pdm.pdm_charge_type SET predefined_name = NULL, name = 'UAS IED 3', short_name = 'UAS IED 3', properties = '{"isUasDroppable":true, "hazardDistance": 100, "casEffects" : [{ "severityType" : 1, "iedClass" : 3, "impactRadius": 20}]}', dis_entity = '2.255.26.0.0.0.2', charge_legacy_id = NULL WHERE ID = 493; +UPDATE pdm.pdm_charge_type SET predefined_name = NULL, name = 'UAS IED 4', short_name = 'UAS IED 4', properties = '{"isUasDroppable":true, "hazardDistance": 100, "casEffects" : [{ "severityType" : 1, "iedClass" : 4, "impactRadius": 40}]}', dis_entity = '2.255.26.0.0.0.3', charge_legacy_id = NULL WHERE ID = 494; +UPDATE pdm.pdm_charge_type SET predefined_name = NULL, name = 'UAS IED 5', short_name = 'UAS IED 5', properties = '{"isUasDroppable":true, "hazardDistance": 100, "casEffects" : [{ "severityType" : 1, "iedClass" : 5, "impactRadius": 60}]}', dis_entity = '2.255.26.0.0.0.4', charge_legacy_id = NULL WHERE ID = 495; +UPDATE pdm.pdm_charge_type SET predefined_name = NULL, name = 'UAS IED vernichtend', short_name = 'UAS IED vernichtend', properties = '{"isUasDroppable":true, "hazardDistance": 100, "casEffects" : [{ "severityType" : 1, "iedClass" : 255, "impactRadius": 80}]}', dis_entity = '2.255.26.0.0.0.5', charge_legacy_id = NULL WHERE ID = 496; +UPDATE pdm.pdm_charge_type SET predefined_name = NULL, name = 'Virtueller Trigger UAS', short_name = 'Virtueller Trigger UAS', properties = '{"flashing" : false }', dis_entity = NULL, charge_legacy_id = NULL WHERE ID = 497; UPDATE pdm.pdm_charge_type SET predefined_name = '5.56mm M995 AP', name = '5.56mm M995 AP', short_name = '5,56 mm AP', properties = NULL, dis_entity = NULL, charge_legacy_id = NULL WHERE ID = 2001; UPDATE pdm.pdm_charge_type SET predefined_name = '5.45mm M74 5.56mm Remington', name = '5.45x39mm M74/ 5.56mm .223 Remington', short_name = '5,45 mm/5,56mm', properties = NULL, dis_entity = NULL, charge_legacy_id = NULL WHERE ID = 2002; diff --git a/Lts/Tests/DatabaseInitialisation/guez_pdm_values.sql b/Lts/Tests/DatabaseInitialisation/guez_pdm_values.sql index 9d8a2b60..41130bef 100755 --- a/Lts/Tests/DatabaseInitialisation/guez_pdm_values.sql +++ b/Lts/Tests/DatabaseInitialisation/guez_pdm_values.sql @@ -82,6 +82,8 @@ INSERT INTO pdm.pdm_charge_type (id, predefined_name, name, short_name, properti INSERT INTO pdm.pdm_charge_type (id, predefined_name, name, short_name, properties, dis_entity, charge_legacy_id) VALUES (365, NULL, 'Nebelpatrone-DM65 msd-NG', 'Nebel NG DM65', '{"adlerChargeTypeName": "Nebel NG DM65", "isAdlerChargeType": true, "impactRadius":25, "impactEdgeLength":25, "isSmoke":true, "hazardDistance": 250, "fuseTypes" : [ {"fuseType": 3, "chargeLegacyId" : 5}]}', NULL, 5); INSERT INTO pdm.pdm_charge_type (id, predefined_name, name, short_name, properties, dis_entity, charge_legacy_id) VALUES (366, NULL, 'Sprengpatrone, Annäherung-DM61', 'Spreng DM61', '{"adlerChargeTypeName": "Spreng DM61", "isAdlerChargeType": true, "impactRadius":25, "impactEdgeLength":25, "hazardDistance": 250, "fuseTypes" : [ { "fuseType" : 0, "chargeLegacyId" : 2}, { "fuseType" : 1, "chargeLegacyId": 1}, {"fuseType" : 2, "chargeLegacyId" : 1}, {"fuseType" : 3, "chargeLegacyId" : 1}]}', NULL, 1); INSERT INTO pdm.pdm_charge_type (id, predefined_name, name, short_name, properties, dis_entity, charge_legacy_id) VALUES (367, NULL, 'Sprenggeschoss - DM91 AZ-NG', 'Spreng DM91 AZ-NG', '{"adlerChargeTypeName": "Spreng DM91 AZ-NG", "isAdlerChargeType": true, "impactRadius":25, "impactEdgeLength":25, "hazardDistance": 250, "fuseTypes" : [ { "fuseType" : 0, "chargeLegacyId" : 2}, { "fuseType" : 1, "chargeLegacyId": 1}, {"fuseType" : 2, "chargeLegacyId" : 1}, {"fuseType" : 3, "chargeLegacyId" : 1}]}', NULL, 1); +INSERT INTO pdm.pdm_charge_type (id, predefined_name, name, short_name, properties, dis_entity, charge_legacy_id) VALUES (368, NULL, 'GMLRS Unitary M31', 'GMLRS', '{"adlerChargeTypeName": "Unitary M31", "isAdlerChargeType": true, "impactRadius":25, "impactEdgeLength":25, "hazardDistance": 250, "fuseTypes" : [ { "fuseType" : 1, "chargeLegacyId" : 1}]}', '2.255.201.3.0.0.0', 1); +INSERT INTO pdm.pdm_charge_type (id, predefined_name, name, short_name, properties, dis_entity, charge_legacy_id) VALUES (369, NULL, 'Mine DM72', 'DM72', '{"impactRadius": 25, "hazardDistance": 250, "impactEdgeLength": 25, "adlerChargeTypeName": "Mine DM72", "fuseTypes": [{"fuseType": 1, "chargeLegacyId": 395}], "mineLaying": {"pattern": [ { "id": 1, "positions": [ {"easting": 111, "northing": -30}, {"easting": 111, "northing": -36}, {"easting": 120, "northing": -48}, {"easting": 101, "northing": -45}, {"easting": 61, "northing": -44}, {"easting": 87, "northing": -35}, {"easting": -78, "northing": -36}, {"easting": -78, "northing": -35}, {"easting": -82, "northing": -39}, {"easting": -113, "northing": -27}, {"easting": -105, "northing": -15}, {"easting": -104, "northing": -1}, {"easting": -93, "northing": -54}, {"easting": -91, "northing": -60}, {"easting": -89, "northing": -59}, {"easting": -81, "northing": -64}, {"easting": -78, "northing": -69}, {"easting": -95, "northing": -86}, {"easting": 11, "northing": -70}, {"easting": -4, "northing": -90}, {"easting": 2, "northing": -16}, {"easting": -3, "northing": 16}, {"easting": -11, "northing": 11}, {"easting": -12, "northing": 5}, {"easting": 7, "northing": -40}, {"easting": 8, "northing": -13}, {"easting": -21, "northing": 6}, {"easting": 44, "northing": -34} ] }, { "id": 2, "positions": [ {"easting": -239, "northing": -31}, {"easting": -132, "northing": 17}, {"easting": -108, "northing": -57}, {"easting": -261, "northing": 67}, {"easting": -123, "northing": 14}, {"easting": -143, "northing": 5}, {"easting": -233, "northing": 125}, {"easting": -109, "northing": -37}, {"easting": -261, "northing": 37}, {"easting": -247, "northing": 73}, {"easting": -253, "northing": 60}, {"easting": -168, "northing": 124}, {"easting": -267, "northing": 57}, {"easting": -115, "northing": 3}, {"easting": -258, "northing": 49}, {"easting": -117, "northing": -53}, {"easting": -230, "northing": -45}, {"easting": -153, "northing": 131}, {"easting": -234, "northing": 146}, {"easting": -234, "northing": 138}, {"easting": -246, "northing": 132}, {"easting": -100, "northing": -38}, {"easting": -239, "northing": -18}, {"easting": -251, "northing": 53}, {"easting": -137, "northing": 160}, {"easting": -274, "northing": 75}, {"easting": -225, "northing": -23}, {"easting": -234, "northing": 58} ] }, { "id": 3, "positions": [ {"easting": -521, "northing": -54}, {"easting": -409, "northing": -50}, {"easting": -473, "northing": 44}, {"easting": -392, "northing": 76}, {"easting": -447, "northing": 1}, {"easting": -503, "northing": -27}, {"easting": -399, "northing": -31}, {"easting": -377, "northing": 61}, {"easting": -466, "northing": 10}, {"easting": -342, "northing": -15}, {"easting": -497, "northing": -17}, {"easting": -487, "northing": -18}, {"easting": -445, "northing": -38}, {"easting": -398, "northing": 72}, {"easting": -392, "northing": -38}, {"easting": -464, "northing": 19}, {"easting": -502, "northing": -45}, {"easting": -522, "northing": -31}, {"easting": -444, "northing": 23}, {"easting": -467, "northing": -33}, {"easting": -355, "northing": 40}, {"easting": -353, "northing": 30}, {"easting": -358, "northing": 49}, {"easting": -360, "northing": 94}, {"easting": -538, "northing": -30}, {"easting": -364, "northing": 31}, {"easting": -391, "northing": -95}, {"easting": -366, "northing": -90} ] }, { "id": 4, "positions": [ {"easting": 221, "northing": -20}, {"easting": 163, "northing": -127}, {"easting": 224, "northing": -17}, {"easting": 214, "northing": -26}, {"easting": 349, "northing": -97}, {"easting": 232, "northing": -18}, {"easting": 364, "northing": -89}, {"easting": 358, "northing": -70}, {"easting": 215, "northing": -37}, {"easting": 236, "northing": -3}, {"easting": 243, "northing": 21}, {"easting": 241, "northing": -35}, {"easting": 183, "northing": -80}, {"easting": 322, "northing": -84}, {"easting": 166, "northing": -130}, {"easting": 157, "northing": -133}, {"easting": 358, "northing": -104}, {"easting": 209, "northing": -45}, {"easting": 329, "northing": -118}, {"easting": 227, "northing": -37}, {"easting": 342, "northing": -108}, {"easting": 230, "northing": -29}, {"easting": 201, "northing": -83}, {"easting": 339, "northing": -116}, {"easting": 201, "northing": -35}, {"easting": 208, "northing": -70}, {"easting": 212, "northing": -55}, {"easting": 205, "northing": -48} ] }, { "id": 5, "positions": [ {"easting": -69, "northing": 6}, {"easting": -53, "northing": 22}, {"easting": -25, "northing": -1}, {"easting": 43, "northing": 48}, {"easting": -82, "northing": 103}, {"easting": 70, "northing": 42}, {"easting": 43, "northing": 29}, {"easting": -136, "northing": 20}, {"easting": -61, "northing": 90}, {"easting": -128, "northing": 41}, {"easting": 71, "northing": 79}, {"easting": -130, "northing": 10}, {"easting": -6, "northing": -7}, {"easting": -63, "northing": 121}, {"easting": 73, "northing": 58}, {"easting": 35, "northing": 90}, {"easting": -14, "northing": 20}, {"easting": -111, "northing": 38}, {"easting": 58, "northing": 82}, {"easting": -135, "northing": 8}, {"easting": -110, "northing": 12}, {"easting": -107, "northing": 23}, {"easting": -73, "northing": -24}, {"easting": -66, "northing": 140}, {"easting": -13, "northing": 35}, {"easting": -139, "northing": 43}, {"easting": -153, "northing": 20}, {"easting": 65, "northing": 60} ] }, { "id": 6, "positions": [ {"easting": 525, "northing": 64}, {"easting": 408, "northing": 56}, {"easting": 470, "northing": -33}, {"easting": 390, "northing": -68}, {"easting": 445, "northing": 6}, {"easting": 500, "northing": 35}, {"easting": 401, "northing": 36}, {"easting": 376, "northing": -51}, {"easting": 468, "northing": 0}, {"easting": 343, "northing": 25}, {"easting": 497, "northing": 26}, {"easting": 486, "northing": 25}, {"easting": 442, "northing": 44}, {"easting": 399, "northing": -62}, {"easting": 390, "northing": 47}, {"easting": 463, "northing": -13}, {"easting": 501, "northing": 54}, {"easting": 522, "northing": 44}, {"easting": 446, "northing": -15}, {"easting": 468, "northing": 41}, {"easting": 357, "northing": -35}, {"easting": 356, "northing": -21}, {"easting": 356, "northing": -41}, {"easting": 359, "northing": -87}, {"easting": 541, "northing": 38}, {"easting": 365, "northing": -24}, {"easting": 458, "northing": -9}, {"easting": 488, "northing": 52} ] }], "armingJitter": 2.3, "appearanceJitter": 3.4, "armingTimeOffset": 29.6, "mineChargeTypeId": 216, "appearanceTimeOffset": 19.2}}', '2.255.201.3.0.0.0', 395); INSERT INTO pdm.pdm_charge_type (id, predefined_name, name, short_name, properties, dis_entity, charge_legacy_id) VALUES (371, NULL, 'High Explosive', 'HE', '{"impactRadius":25, "impactEdgeLength":25, "hazardDistance": 250, "fuseTypes" : [ { "fuseType" : 0, "chargeLegacyId" : 2}, { "fuseType" : 1, "chargeLegacyId": 1}, {"fuseType" : 2, "chargeLegacyId" : 1}, {"fuseType" : 3, "chargeLegacyId" : 1}]}', '2.9.222.2.19.1.0', 1); INSERT INTO pdm.pdm_charge_type (id, predefined_name, name, short_name, properties, dis_entity, charge_legacy_id) VALUES (373, NULL, 'Bomblet', 'Bomblet', '{"impactRadius":25, "impactEdgeLength":25}', '2.9.222.2.19.10.0', 3); INSERT INTO pdm.pdm_charge_type (id, predefined_name, name, short_name, properties, dis_entity, charge_legacy_id) VALUES (374, NULL, 'SMArt', 'SMArt', '{"impactRadius":25, "impactEdgeLength":50, "isSmart":true, "searchRadius":150, "hazardDistance": 250, "fuseTypes" :[ { "fuseType" : 0, "chargeLegacyId" : 4}, { "fuseType" : 1, "chargeLegacyId": 4}, {"fuseType" : 2, "chargeLegacyId" : 4}]}', '2.255.201.4.0.0.0', 4); @@ -89,8 +91,8 @@ INSERT INTO pdm.pdm_charge_type (id, predefined_name, name, short_name, properti INSERT INTO pdm.pdm_charge_type (id, predefined_name, name, short_name, properties, dis_entity, charge_legacy_id) VALUES (376, NULL, 'Präzisionsmunition LASER', 'PGM', '{"adlerChargeTypeName": "VULCANO GLR-SAL", "impactRadius":25, "impactEdgeLength":25, "hazardDistance": 250, "fuseTypes" : [ {"fuseType": 1, "chargeLegacyId" : 1}], "isLaserGuidable" : true}', '2.255.201.3.0.0.0', 1); INSERT INTO pdm.pdm_charge_type (id, predefined_name, name, short_name, properties, dis_entity, charge_legacy_id) VALUES (381, NULL, 'High Explosive', 'HE', '{"impactRadius":15, "impactEdgeLength":25, "hazardDistance": 250, "fuseTypes" : [ { "fuseType" : 0, "chargeLegacyId" : 11}, { "fuseType" : 1, "chargeLegacyId": 10}, {"fuseType" : 2, "chargeLegacyId" : 10}, {"fuseType" : 3, "chargeLegacyId" : 1}]}', '2.9.225.2.8.18.0', 10); INSERT INTO pdm.pdm_charge_type (id, predefined_name, name, short_name, properties, dis_entity, charge_legacy_id) VALUES (385, NULL, 'Nebel', 'Nebel', '{"impactRadius":25, "impactEdgeLength":25, "isSmoke":true, "hazardDistance": 250, "fuseTypes" : [ {"fuseType": 3, "chargeLegacyId" : 5}]}', '2.255.201.5.0.0.0', 5); -INSERT INTO pdm.pdm_charge_type (id, predefined_name, name, short_name, properties, dis_entity, charge_legacy_id) VALUES (394, NULL, 'GMLRS Unitary M31', 'GMLRS', '{"adlerChargeTypeName": "Unitary M31", "impactRadius":25, "impactEdgeLength":25, "hazardDistance": 250, "fuseTypes" : [ { "fuseType" : 1, "chargeLegacyId" : 394}]}', '2.255.201.3.0.0.0', NULL); -INSERT INTO pdm.pdm_charge_type (id, predefined_name, name, short_name, properties, dis_entity, charge_legacy_id) VALUES (395, NULL, 'Mine DM72', 'DM72', '{"adlerChargeTypeName": "Mine DM72", "impactRadius":25, "impactEdgeLength":25, "hazardDistance": 250, "fuseTypes": [{"fuseType": 1, "chargeLegacyId": 395}], "mineLaying":{"appearanceTimeOffset" : 19.2, "appearanceJitter": 3.4, "armingTimeOffset": 29.6, "armingJitter" : 2.3, "mineChargeTypeId": 216, "pattern": [ {"id": 1, "positions": [{"easting": -28, "northing": -30}, {"easting": -34, "northing": -36}, {"easting": -46, "northing": -48}, {"easting": -43, "northing": -44}, {"easting": -61, "northing": -43}, {"easting": -34, "northing": -35}, {"easting": 78, "northing": -77}, {"easting": 78, "northing": -77}, {"easting": 82, "northing": -81}, {"easting": 113, "northing": -112}, {"easting": 105, "northing": -105}, {"easting": 104, "northing": -102}, {"easting": 55, "northing": -53}, {"easting": 61, "northing": -60}, {"easting": 61, "northing": -59}, {"easting": 65, "northing": -64}, {"easting": 71, "northing": -76}, {"easting": 88, "northing": -93}, {"easting": -12, "northing": -13}, {"easting": -4, "northing": -3}, {"easting": 2, "northing": -16}, {"easting": -16, "northing": -3}, {"easting": -11, "northing": -11}, {"easting": -12, "northing": 5}, {"easting": 7, "northing": -40}, {"easting": 8, "northing": -13}, {"easting": 5, "northing": -21}, {"easting": -33, "northing": 44}]}, {"id": 2, "positions": [{"easting": 34, "northing": -238}, {"easting": 16, "northing": -132}, {"easting": -108, "northing": -57}, {"easting": 64, "northing": -262}, {"easting": -12, "northing": -122}, {"easting": 2, "northing": -143}, {"easting": 125, "northing": -235}, {"easting": 39, "northing": -108}, {"easting": 32, "northing": -261}, {"easting": 69, "northing": -248}, {"easting": 56, "northing": -253}, {"easting": 121, "northing": -170}, {"easting": 53, "northing": -268}, {"easting": 116, "northing": -115}, {"easting": 46, "northing": -258}, {"easting": -117, "northing": -53}, {"easting": 49, "northing": -229}, {"easting": 131, "northing": -155}, {"easting": 143, "northing": -236}, {"easting": 137, "northing": -236}, {"easting": 131, "northing": -248}, {"easting": 39, "northing": -100}, {"easting": 22, "northing": -238}, {"easting": 51, "northing": -251}, {"easting": 139, "northing": -139}, {"easting": 73, "northing": -274}, {"easting": 28, "northing": -224}, {"easting": 53, "northing": -234}]}, {"id": 3, "positions": [{"easting": -61, "northing": -520}, {"easting": -58, "northing": -409}, {"easting": -74, "northing": -474}, {"easting": -69, "northing": -393}, {"easting": -5, "northing": -448}, {"easting": -37, "northing": -504}, {"easting": -37, "northing": -397}, {"easting": -55, "northing": -378}, {"easting": -5, "northing": -467}, {"easting": 19, "northing": -342}, {"easting": -26, "northing": -496}, {"easting": -26, "northing": -487}, {"easting": -43, "northing": -445}, {"easting": -69, "northing": -400}, {"easting": -43, "northing": -389}, {"easting": -13, "northing": -463}, {"easting": -52, "northing": -500}, {"easting": -40, "northing": -520}, {"easting": -19, "northing": -444}, {"easting": -38, "northing": -464}, {"easting": 38, "northing": -356}, {"easting": 27, "northing": -354}, {"easting": 47, "northing": -359}, {"easting": -91, "northing": -362}, {"easting": -36, "northing": -540}, {"easting": 27, "northing": -365}, {"easting": 100, "northing": -391}, {"easting": 97, "northing": -365}]}, {"id": 4, "positions": [{"easting": 16, "northing": 221}, {"easting": -125, "northing": 164}, {"easting": 13, "northing": 224}, {"easting": 23, "northing": 214}, {"easting": -91, "northing": 350}, {"easting": 15, "northing": 233}, {"easting": -83, "northing": 365}, {"easting": -63, "northing": 358}, {"easting": 32, "northing": 216}, {"easting": -1, "northing": 236}, {"easting": -26, "northing": 244}, {"easting": -31, "northing": 241}, {"easting": -77, "northing": 184}, {"easting": -79, "northing": 323}, {"easting": -128, "northing": 167}, {"easting": -130, "northing": 158}, {"easting": -97, "northing": 360}, {"easting": 42, "northing": 210}, {"easting": -111, "northing": 329}, {"easting": -32, "northing": 233}, {"easting": -102, "northing": 342}, {"easting": -25, "northing": 231}, {"easting": -81, "northing": 202}, {"easting": -113, "northing": 340}, {"easting": 31, "northing": 202}, {"easting": -67, "northing": 219}, {"easting": -50, "northing": 213}, {"easting": -45, "northing": 210}]}, {"id": 5, "positions": [{"easting": -69, "northing": 5}, {"easting": -53, "northing": 22}, {"easting": -25, "northing": -1}, {"easting": -48, "northing": 48}, {"easting": -103, "northing": 83}, {"easting": -43, "northing": 69}, {"easting": -30, "northing": 43}, {"easting": -137, "northing": 19}, {"easting": -89, "northing": 89}, {"easting": -128, "northing": 41}, {"easting": -81, "northing": 79}, {"easting": -130, "northing": 9}, {"easting": -6, "northing": -7}, {"easting": -121, "northing": 63}, {"easting": -59, "northing": 73}, {"easting": -90, "northing": 35}, {"easting": -20, "northing": 20}, {"easting": -111, "northing": 37}, {"easting": -83, "northing": 82}, {"easting": -135, "northing": 7}, {"easting": -110, "northing": 11}, {"easting": -106, "northing": 22}, {"easting": -73, "northing": -24}, {"easting": -138, "northing": 67}, {"easting": -35, "northing": 34}, {"easting": -140, "northing": 42}, {"easting": -152, "northing": 19}, {"easting": -61, "northing": 64}]}, {"id": 6, "positions": [{"easting": -72, "northing": 522}, {"easting": -63, "northing": 409}, {"easting": 25, "northing": 472}, {"easting": 61, "northing": 391}, {"easting": -13, "northing": 446}, {"easting": -44, "northing": 500}, {"easting": -42, "northing": 400}, {"easting": 46, "northing": 377}, {"easting": -8, "northing": 468}, {"easting": -30, "northing": 341}, {"easting": -33, "northing": 497}, {"easting": -31, "northing": 486}, {"easting": -50, "northing": 443}, {"easting": 55, "northing": 399}, {"easting": -53, "northing": 389}, {"easting": 5, "northing": 464}, {"easting": -61, "northing": 499}, {"easting": -52, "northing": 521}, {"easting": 9, "northing": 446}, {"easting": -49, "northing": 463}, {"easting": 29, "northing": 357}, {"easting": 16, "northing": 356}, {"easting": 36, "northing": 356}, {"easting": 81, "northing": 359}, {"easting": -47, "northing": 542}, {"easting": 19, "northing": 364}, {"easting": 2, "northing": 459}, {"easting": -59, "northing": 487}]}]}}', '2.255.201.3.0.0.0', NULL); +INSERT INTO pdm.pdm_charge_type (id, predefined_name, name, short_name, properties, dis_entity, charge_legacy_id) VALUES (394, NULL, 'GMLRS Unitary', 'GMLRS', '{ "impactRadius":25, "impactEdgeLength":25, "hazardDistance": 250, "fuseTypes" : [ { "fuseType" : 1, "chargeLegacyId" : 1}]}', '2.255.201.3.0.0.0', 1); +INSERT INTO pdm.pdm_charge_type (id, predefined_name, name, short_name, properties, dis_entity, charge_legacy_id) VALUES (395, NULL, 'Mine DM72', 'DM72', '{"impactRadius": 25, "hazardDistance": 250, "impactEdgeLength": 25, "fuseTypes": [{"fuseType": 1, "chargeLegacyId": 395}], "mineLaying": {"pattern": [ { "id": 1, "positions": [ {"easting": 111, "northing": -30}, {"easting": 111, "northing": -36}, {"easting": 120, "northing": -48}, {"easting": 101, "northing": -45}, {"easting": 61, "northing": -44}, {"easting": 87, "northing": -35}, {"easting": -78, "northing": -36}, {"easting": -78, "northing": -35}, {"easting": -82, "northing": -39}, {"easting": -113, "northing": -27}, {"easting": -105, "northing": -15}, {"easting": -104, "northing": -1}, {"easting": -93, "northing": -54}, {"easting": -91, "northing": -60}, {"easting": -89, "northing": -59}, {"easting": -81, "northing": -64}, {"easting": -78, "northing": -69}, {"easting": -95, "northing": -86}, {"easting": 11, "northing": -70}, {"easting": -4, "northing": -90}, {"easting": 2, "northing": -16}, {"easting": -3, "northing": 16}, {"easting": -11, "northing": 11}, {"easting": -12, "northing": 5}, {"easting": 7, "northing": -40}, {"easting": 8, "northing": -13}, {"easting": -21, "northing": 6}, {"easting": 44, "northing": -34} ] }, { "id": 2, "positions": [ {"easting": -239, "northing": -31}, {"easting": -132, "northing": 17}, {"easting": -108, "northing": -57}, {"easting": -261, "northing": 67}, {"easting": -123, "northing": 14}, {"easting": -143, "northing": 5}, {"easting": -233, "northing": 125}, {"easting": -109, "northing": -37}, {"easting": -261, "northing": 37}, {"easting": -247, "northing": 73}, {"easting": -253, "northing": 60}, {"easting": -168, "northing": 124}, {"easting": -267, "northing": 57}, {"easting": -115, "northing": 3}, {"easting": -258, "northing": 49}, {"easting": -117, "northing": -53}, {"easting": -230, "northing": -45}, {"easting": -153, "northing": 131}, {"easting": -234, "northing": 146}, {"easting": -234, "northing": 138}, {"easting": -246, "northing": 132}, {"easting": -100, "northing": -38}, {"easting": -239, "northing": -18}, {"easting": -251, "northing": 53}, {"easting": -137, "northing": 160}, {"easting": -274, "northing": 75}, {"easting": -225, "northing": -23}, {"easting": -234, "northing": 58} ] }, { "id": 3, "positions": [ {"easting": -521, "northing": -54}, {"easting": -409, "northing": -50}, {"easting": -473, "northing": 44}, {"easting": -392, "northing": 76}, {"easting": -447, "northing": 1}, {"easting": -503, "northing": -27}, {"easting": -399, "northing": -31}, {"easting": -377, "northing": 61}, {"easting": -466, "northing": 10}, {"easting": -342, "northing": -15}, {"easting": -497, "northing": -17}, {"easting": -487, "northing": -18}, {"easting": -445, "northing": -38}, {"easting": -398, "northing": 72}, {"easting": -392, "northing": -38}, {"easting": -464, "northing": 19}, {"easting": -502, "northing": -45}, {"easting": -522, "northing": -31}, {"easting": -444, "northing": 23}, {"easting": -467, "northing": -33}, {"easting": -355, "northing": 40}, {"easting": -353, "northing": 30}, {"easting": -358, "northing": 49}, {"easting": -360, "northing": 94}, {"easting": -538, "northing": -30}, {"easting": -364, "northing": 31}, {"easting": -391, "northing": -95}, {"easting": -366, "northing": -90} ] }, { "id": 4, "positions": [ {"easting": 221, "northing": -20}, {"easting": 163, "northing": -127}, {"easting": 224, "northing": -17}, {"easting": 214, "northing": -26}, {"easting": 349, "northing": -97}, {"easting": 232, "northing": -18}, {"easting": 364, "northing": -89}, {"easting": 358, "northing": -70}, {"easting": 215, "northing": -37}, {"easting": 236, "northing": -3}, {"easting": 243, "northing": 21}, {"easting": 241, "northing": -35}, {"easting": 183, "northing": -80}, {"easting": 322, "northing": -84}, {"easting": 166, "northing": -130}, {"easting": 157, "northing": -133}, {"easting": 358, "northing": -104}, {"easting": 209, "northing": -45}, {"easting": 329, "northing": -118}, {"easting": 227, "northing": -37}, {"easting": 342, "northing": -108}, {"easting": 230, "northing": -29}, {"easting": 201, "northing": -83}, {"easting": 339, "northing": -116}, {"easting": 201, "northing": -35}, {"easting": 208, "northing": -70}, {"easting": 212, "northing": -55}, {"easting": 205, "northing": -48} ] }, { "id": 5, "positions": [ {"easting": -69, "northing": 6}, {"easting": -53, "northing": 22}, {"easting": -25, "northing": -1}, {"easting": 43, "northing": 48}, {"easting": -82, "northing": 103}, {"easting": 70, "northing": 42}, {"easting": 43, "northing": 29}, {"easting": -136, "northing": 20}, {"easting": -61, "northing": 90}, {"easting": -128, "northing": 41}, {"easting": 71, "northing": 79}, {"easting": -130, "northing": 10}, {"easting": -6, "northing": -7}, {"easting": -63, "northing": 121}, {"easting": 73, "northing": 58}, {"easting": 35, "northing": 90}, {"easting": -14, "northing": 20}, {"easting": -111, "northing": 38}, {"easting": 58, "northing": 82}, {"easting": -135, "northing": 8}, {"easting": -110, "northing": 12}, {"easting": -107, "northing": 23}, {"easting": -73, "northing": -24}, {"easting": -66, "northing": 140}, {"easting": -13, "northing": 35}, {"easting": -139, "northing": 43}, {"easting": -153, "northing": 20}, {"easting": 65, "northing": 60} ] }, { "id": 6, "positions": [ {"easting": 525, "northing": 64}, {"easting": 408, "northing": 56}, {"easting": 470, "northing": -33}, {"easting": 390, "northing": -68}, {"easting": 445, "northing": 6}, {"easting": 500, "northing": 35}, {"easting": 401, "northing": 36}, {"easting": 376, "northing": -51}, {"easting": 468, "northing": 0}, {"easting": 343, "northing": 25}, {"easting": 497, "northing": 26}, {"easting": 486, "northing": 25}, {"easting": 442, "northing": 44}, {"easting": 399, "northing": -62}, {"easting": 390, "northing": 47}, {"easting": 463, "northing": -13}, {"easting": 501, "northing": 54}, {"easting": 522, "northing": 44}, {"easting": 446, "northing": -15}, {"easting": 468, "northing": 41}, {"easting": 357, "northing": -35}, {"easting": 356, "northing": -21}, {"easting": 356, "northing": -41}, {"easting": 359, "northing": -87}, {"easting": 541, "northing": 38}, {"easting": 365, "northing": -24}, {"easting": 458, "northing": -9}, {"easting": 488, "northing": 52} ] }], "armingJitter": 2.3, "appearanceJitter": 3.4, "armingTimeOffset": 29.6, "mineChargeTypeId": 216, "appearanceTimeOffset": 19.2}}', '2.255.201.3.0.0.0', NULL); INSERT INTO pdm.pdm_charge_type (id, predefined_name, name, short_name, properties, dis_entity, charge_legacy_id) VALUES (411, NULL, 'Medizinisch', 'Med', NULL, NULL, NULL); INSERT INTO pdm.pdm_charge_type (id, predefined_name, name, short_name, properties, dis_entity, charge_legacy_id) VALUES (412, NULL, 'Wartung', 'Wart', NULL, NULL, NULL); INSERT INTO pdm.pdm_charge_type (id, predefined_name, name, short_name, properties, dis_entity, charge_legacy_id) VALUES (413, NULL, 'Dekontamination', 'Dekon', NULL, NULL, NULL); @@ -214,12 +216,13 @@ INSERT INTO pdm.pdm_charge_type (id, predefined_name, name, short_name, properti INSERT INTO pdm.pdm_charge_type (id, predefined_name, name, short_name, properties, dis_entity, charge_legacy_id) VALUES (470, NULL, 'Rakete MK  229 (low ALT) ', 'MK  229 (low ALT) ', '{"nasatId":39, "hazardDistance": 250, "casEffects" : [{ "severityType" : 1, "iedClass" : 255, "impactRadius": 290}, { "severityType" : 3, "iedClass": 3, "impactRadius": 700}]}', NULL, 21); INSERT INTO pdm.pdm_charge_type (id, predefined_name, name, short_name, properties, dis_entity, charge_legacy_id) VALUES (471, NULL, 'Rakete MK 261 (low ALT)', 'MK 261 (low ALT)', '{"nasatId":40, "hazardDistance": 250, "casEffects" : [{ "severityType" : 1, "iedClass" : 255, "impactRadius": 290}, { "severityType" : 3, "iedClass": 3, "impactRadius": 700}]}', NULL, 21); INSERT INTO pdm.pdm_charge_type (id, predefined_name, name, short_name, properties, dis_entity, charge_legacy_id) VALUES (472, NULL, 'Rakete Mk 24', 'Mk 24', '{"nasatId":41, "hazardDistance": 250, "casEffects" : [{ "severityType" : 1, "iedClass" : 255, "impactRadius": 340}, { "severityType" : 3, "iedClass": 3, "impactRadius": 750}]}', NULL, 21); -INSERT INTO pdm.pdm_charge_type (id, predefined_name, name, short_name, properties, dis_entity, charge_legacy_id) VALUES (494, NULL, 'UAS IED 1', 'UAS IED 1', '{"isUasDroppable":true, "hazardDistance": 100, "casEffects" : [{ "severityType" : 1, "iedClass" : 1, "impactRadius": 5}]}', '2.255.26.0.0.0.0', NULL); -INSERT INTO pdm.pdm_charge_type (id, predefined_name, name, short_name, properties, dis_entity, charge_legacy_id) VALUES (495, NULL, 'UAS IED 2', 'UAS IED 2', '{"isUasDroppable":true, "hazardDistance": 100, "casEffects" : [{ "severityType" : 1, "iedClass" : 2, "impactRadius": 10}]}', '2.255.26.0.0.0.1', NULL); -INSERT INTO pdm.pdm_charge_type (id, predefined_name, name, short_name, properties, dis_entity, charge_legacy_id) VALUES (496, NULL, 'UAS IED 3', 'UAS IED 3', '{"isUasDroppable":true, "hazardDistance": 100, "casEffects" : [{ "severityType" : 1, "iedClass" : 3, "impactRadius": 20}]}', '2.255.26.0.0.0.2', NULL); -INSERT INTO pdm.pdm_charge_type (id, predefined_name, name, short_name, properties, dis_entity, charge_legacy_id) VALUES (497, NULL, 'UAS IED 4', 'UAS IED 4', '{"isUasDroppable":true, "hazardDistance": 100, "casEffects" : [{ "severityType" : 1, "iedClass" : 4, "impactRadius": 40}]}', '2.255.26.0.0.0.3', NULL); -INSERT INTO pdm.pdm_charge_type (id, predefined_name, name, short_name, properties, dis_entity, charge_legacy_id) VALUES (498, NULL, 'UAS IED 5', 'UAS IED 5', '{"isUasDroppable":true, "hazardDistance": 100, "casEffects" : [{ "severityType" : 1, "iedClass" : 5, "impactRadius": 60}]}', '2.255.26.0.0.0.4', NULL); -INSERT INTO pdm.pdm_charge_type (id, predefined_name, name, short_name, properties, dis_entity, charge_legacy_id) VALUES (499, NULL, 'UAS Lethal', 'UAS IED Lethal', '{"isUasDroppable":true, "hazardDistance": 100, "casEffects" : [{ "severityType" : 1, "iedClass" : 255, "impactRadius": 80}]}', '2.255.26.0.0.0.5', NULL); +INSERT INTO pdm.pdm_charge_type (id, predefined_name, name, short_name, properties, dis_entity, charge_legacy_id) VALUES (491, NULL, 'UAS IED 1', 'UAS IED 1', '{"isUasDroppable":true, "hazardDistance": 100, "casEffects" : [{ "severityType" : 1, "iedClass" : 1, "impactRadius": 5}]}', '2.255.26.0.0.0.0', NULL); +INSERT INTO pdm.pdm_charge_type (id, predefined_name, name, short_name, properties, dis_entity, charge_legacy_id) VALUES (492, NULL, 'UAS IED 2', 'UAS IED 2', '{"isUasDroppable":true, "hazardDistance": 100, "casEffects" : [{ "severityType" : 1, "iedClass" : 2, "impactRadius": 10}]}', '2.255.26.0.0.0.1', NULL); +INSERT INTO pdm.pdm_charge_type (id, predefined_name, name, short_name, properties, dis_entity, charge_legacy_id) VALUES (493, NULL, 'UAS IED 3', 'UAS IED 3', '{"isUasDroppable":true, "hazardDistance": 100, "casEffects" : [{ "severityType" : 1, "iedClass" : 3, "impactRadius": 20}]}', '2.255.26.0.0.0.2', NULL); +INSERT INTO pdm.pdm_charge_type (id, predefined_name, name, short_name, properties, dis_entity, charge_legacy_id) VALUES (494, NULL, 'UAS IED 4', 'UAS IED 4', '{"isUasDroppable":true, "hazardDistance": 100, "casEffects" : [{ "severityType" : 1, "iedClass" : 4, "impactRadius": 40}]}', '2.255.26.0.0.0.3', NULL); +INSERT INTO pdm.pdm_charge_type (id, predefined_name, name, short_name, properties, dis_entity, charge_legacy_id) VALUES (495, NULL, 'UAS IED 5', 'UAS IED 5', '{"isUasDroppable":true, "hazardDistance": 100, "casEffects" : [{ "severityType" : 1, "iedClass" : 5, "impactRadius": 60}]}', '2.255.26.0.0.0.4', NULL); +INSERT INTO pdm.pdm_charge_type (id, predefined_name, name, short_name, properties, dis_entity, charge_legacy_id) VALUES (496, NULL, 'UAS IED vernichtend', 'UAS IED vernichtend', '{"isUasDroppable":true, "hazardDistance": 100, "casEffects" : [{ "severityType" : 1, "iedClass" : 255, "impactRadius": 80}]}', '2.255.26.0.0.0.5', NULL); +INSERT INTO pdm.pdm_charge_type (id, predefined_name, name, short_name, properties, dis_entity, charge_legacy_id) VALUES (497, NULL, 'Virtueller Trigger UAS', 'Virtueller Trigger UAS', '{"flashing" : false }', NULL, NULL); INSERT INTO pdm.pdm_charge_type (id, predefined_name, name, short_name, properties, dis_entity, charge_legacy_id) VALUES (2001, '5.56mm M995 AP', '5.56mm M995 AP', '5,56 mm AP', NULL, NULL, NULL); INSERT INTO pdm.pdm_charge_type (id, predefined_name, name, short_name, properties, dis_entity, charge_legacy_id) VALUES (2002, '5.45mm M74 5.56mm Remington', '5.45x39mm M74/ 5.56mm .223 Remington', '5,45 mm/5,56mm', NULL, NULL, NULL); @@ -731,6 +734,8 @@ INSERT INTO pdm.pdm_gear_type_charge_type (gear_type_id, charge_type_id, max_ran INSERT INTO pdm.pdm_gear_type_charge_type (gear_type_id, charge_type_id, max_range) VALUES (801, 365, NULL); INSERT INTO pdm.pdm_gear_type_charge_type (gear_type_id, charge_type_id, max_range) VALUES (801, 366, NULL); INSERT INTO pdm.pdm_gear_type_charge_type (gear_type_id, charge_type_id, max_range) VALUES (801, 367, NULL); +INSERT INTO pdm.pdm_gear_type_charge_type (gear_type_id, charge_type_id, max_range) VALUES (901, 368, 25190); +INSERT INTO pdm.pdm_gear_type_charge_type (gear_type_id, charge_type_id, max_range) VALUES (901, 369, 25190); INSERT INTO pdm.pdm_gear_type_charge_type (gear_type_id, charge_type_id, max_range) VALUES (701, 371, 29650); INSERT INTO pdm.pdm_gear_type_charge_type (gear_type_id, charge_type_id, max_range) VALUES (701, 373, 25190); INSERT INTO pdm.pdm_gear_type_charge_type (gear_type_id, charge_type_id, max_range) VALUES (701, 374, 26160); @@ -1145,12 +1150,14 @@ INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, i INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (366, 13, 2, NULL, 25, 250, 1, 2, NULL); INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (367, 14, 2, NULL, 25, 250, 1, 1, NULL); INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (367, 14, 1, NULL, 25, 250, 1, 1, NULL); -INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (394, 0, 2, NULL, 25, 250, 394, 2, NULL); -INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (394, 0, 5, NULL, 25, 250, 394, 0, NULL); -INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (394, 0, 6, NULL, 25, 250, 394, 0, NULL); -INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (394, 0, 7, NULL, 25, 250, 394, 0, NULL); -INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (394, 0, 8, NULL, 25, 250, 394, 0, NULL); -INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (395, 0, 0, NULL, 25, 250, 395, 0, NULL); +INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (368, 0, 2, NULL, 25, 250, 394, 2, NULL); +INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (368, 0, 5, NULL, 25, 250, 394, 0, NULL); +INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (368, 0, 6, NULL, 25, 250, 394, 0, NULL); +INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (368, 0, 7, NULL, 25, 250, 394, 0, NULL); +INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (368, 0, 8, NULL, 25, 250, 394, 0, NULL); +INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (369, 0, 0, NULL, 25, 250, 395, 0, NULL); +INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (394, 102, 0, NULL, 25, 250, 394, 0, NULL); +INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (395, 102, 0, NULL, 25, 250, 395, 0, NULL); INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (361, 10, 1, NULL, 25, 250, 5, 1, NULL); INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (362, 11, 1, NULL, 25, 250, 5, 1, NULL); INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (363, 12, 1, NULL, 25, 250, 5, 1, NULL); @@ -1214,12 +1221,13 @@ INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, i INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (470, 0, 0, NULL, 0, 0, 0, 0, NULL); INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (471, 0, 0, NULL, 0, 0, 0, 0, NULL); INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (472, 0, 0, NULL, 0, 0, 0, 0, NULL); -INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (494, 0, 0, NULL, 5, 100, 0, 0, NULL); -INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (495, 0, 0, NULL, 10, 100, 0, 0, NULL); -INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (496, 0, 0, NULL, 20, 100, 0, 0, NULL); -INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (497, 0, 0, NULL, 30, 100, 0, 0, NULL); -INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (498, 0, 0, NULL, 60, 100, 0, 0, NULL); -INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (499, 0, 0, NULL, 80, 100, 0, 0, NULL); +INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (491, 0, 0, NULL, 5, 100, 0, 0, NULL); +INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (492, 0, 0, NULL, 10, 100, 0, 0, NULL); +INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (493, 0, 0, NULL, 20, 100, 0, 0, NULL); +INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (494, 0, 0, NULL, 30, 100, 0, 0, NULL); +INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (495, 0, 0, NULL, 60, 100, 0, 0, NULL); +INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (496, 0, 0, NULL, 80, 100, 0, 0, NULL); +INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (497, 0, 0, NULL, 0, 0, 0, 0, NULL); INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (2001, 0, 0, NULL, 0, 0, 0, 0, NULL); INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (2002, 0, 0, NULL, 0, 0, 0, 0, NULL); INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (2003, 0, 0, NULL, 0, 0, 0, 0, NULL); @@ -1490,7 +1498,10 @@ INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, i INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (77, 0, 0, NULL, 0, 0, 0, 0, NULL); INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (78, 0, 0, NULL, 0, 0, 0, 0, NULL); INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (79, 0, 0, NULL, 0, 0, 0, 0, NULL); -INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (373, 0, 0, NULL, 25, 0, 0, 0, NULL); +INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (373, 101, 0, NULL, 25, 0, 3, 4, NULL); +INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (373, 102, 0, NULL, 25, 0, 3, 2, NULL); +INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (373, 103, 0, NULL, 25, 0, 3, 3, NULL); +INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (373, 104, 0, NULL, 25, 0, 3, 1, NULL); INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (311, 0, 0, NULL, 0, 0, 0, 0, NULL); INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (312, 0, 0, NULL, 0, 0, 0, 0, NULL); INSERT INTO pdm.pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (313, 0, 0, NULL, 0, 0, 0, 0, NULL); @@ -1883,6 +1894,14 @@ INSERT INTO pdm.pdm_building_charge_effect (id, charge_type_id, destructive_fact INSERT INTO pdm.pdm_building_charge_effect (id, charge_type_id, destructive_factor, penetration_factor, hit_sound, difcue_light, difcue_pyro) VALUES (324, 468, 100, 150, 4, true, true); INSERT INTO pdm.pdm_building_charge_effect (id, charge_type_id, destructive_factor, penetration_factor, hit_sound, difcue_light, difcue_pyro) VALUES (325, 469, 100, 150, 4, true, true); INSERT INTO pdm.pdm_building_charge_effect (id, charge_type_id, destructive_factor, penetration_factor, hit_sound, difcue_light, difcue_pyro) VALUES (326, 470, 100, 150, 4, true, true); +INSERT INTO pdm.pdm_building_charge_effect (id, charge_type_id, destructive_factor, penetration_factor, hit_sound, difcue_light, difcue_pyro) VALUES (330, 356, 100, 150, 4, true, true); +INSERT INTO pdm.pdm_building_charge_effect (id, charge_type_id, destructive_factor, penetration_factor, hit_sound, difcue_light, difcue_pyro) VALUES (331, 357, 100, 150, 4, true, true); +INSERT INTO pdm.pdm_building_charge_effect (id, charge_type_id, destructive_factor, penetration_factor, hit_sound, difcue_light, difcue_pyro) VALUES (332, 358, 100, 150, 4, true, true); +INSERT INTO pdm.pdm_building_charge_effect (id, charge_type_id, destructive_factor, penetration_factor, hit_sound, difcue_light, difcue_pyro) VALUES (333, 359, 100, 150, 4, true, true); +INSERT INTO pdm.pdm_building_charge_effect (id, charge_type_id, destructive_factor, penetration_factor, hit_sound, difcue_light, difcue_pyro) VALUES (334, 360, 100, 150, 4, true, true); +INSERT INTO pdm.pdm_building_charge_effect (id, charge_type_id, destructive_factor, penetration_factor, hit_sound, difcue_light, difcue_pyro) VALUES (335, 366, 100, 150, 4, true, true); +INSERT INTO pdm.pdm_building_charge_effect (id, charge_type_id, destructive_factor, penetration_factor, hit_sound, difcue_light, difcue_pyro) VALUES (336, 367, 100, 150, 4, true, true); +INSERT INTO pdm.pdm_building_charge_effect (id, charge_type_id, destructive_factor, penetration_factor, hit_sound, difcue_light, difcue_pyro) VALUES (337, 368, 100, 150, 4, true, true); --- This file is automatically generated by pdm_csv_to_sql.py from csv (xls) files - do not modify here directly! @@ -3265,6 +3284,10 @@ INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, transla INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation) VALUES ('en_GB', 'shortName', 'ChargeType', 'Spreng DM61', 'Explosive, proximity - DM61'); INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation) VALUES ('en_GB', 'name', 'ChargeType', 'Sprenggeschoss - DM91 AZ-NG', 'Explosive projectiles - DM91 AZ-NG'); INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation) VALUES ('en_GB', 'shortName', 'ChargeType', 'Spreng DM91 AZ-NG', 'Explosive - DM91 AZ-NG'); +INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation) VALUES ('en_GB', 'name', 'ChargeType', 'GMLRS Unitary M31', 'GMLRS Unitary'); +INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation) VALUES ('en_GB', 'shortName', 'ChargeType', 'GMLRS', 'GMLRS'); +INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation) VALUES ('en_GB', 'name', 'ChargeType', 'Mine DM72', 'Mine DM72'); +INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation) VALUES ('en_GB', 'shortName', 'ChargeType', 'DM72', 'DM72'); INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation) VALUES ('en_GB', 'name', 'ChargeType', 'High Explosive', 'High Explosive'); INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation) VALUES ('en_GB', 'shortName', 'ChargeType', 'HE', 'HE'); INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation) VALUES ('en_GB', 'name', 'ChargeType', 'Bomblet', 'Bomblet'); @@ -3279,7 +3302,7 @@ INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, transla INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation) VALUES ('en_GB', 'shortName', 'ChargeType', 'HE', 'HE'); INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation) VALUES ('en_GB', 'name', 'ChargeType', 'Nebel', 'Nebel'); INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation) VALUES ('en_GB', 'shortName', 'ChargeType', 'Nebel', 'Nebel'); -INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation) VALUES ('en_GB', 'name', 'ChargeType', 'GMLRS Unitary M31', 'GMLRS Unitary'); +INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation) VALUES ('en_GB', 'name', 'ChargeType', 'GMLRS Unitary', 'GMLRS Unitary'); INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation) VALUES ('en_GB', 'shortName', 'ChargeType', 'GMLRS', 'GMLRS'); INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation) VALUES ('en_GB', 'name', 'ChargeType', 'Mine DM72', 'Mine DM72'); INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation) VALUES ('en_GB', 'shortName', 'ChargeType', 'DM72', 'DM72'); @@ -3534,8 +3557,10 @@ INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, transla INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation) VALUES ('en_GB', 'shortName', 'ChargeType', 'UAS IED 4', 'UAS IED 4'); INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation) VALUES ('en_GB', 'name', 'ChargeType', 'UAS IED 5', 'UAS IED 5'); INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation) VALUES ('en_GB', 'shortName', 'ChargeType', 'UAS IED 5', 'UAS IED 5'); -INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation) VALUES ('en_GB', 'name', 'ChargeType', 'UAS Lethal', 'UAS Lethal'); -INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation) VALUES ('en_GB', 'shortName', 'ChargeType', 'UAS IED Lethal', 'UAS IED Lethal'); +INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation) VALUES ('en_GB', 'name', 'ChargeType', 'UAS IED vernichtend', 'UAS IED Lethal'); +INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation) VALUES ('en_GB', 'shortName', 'ChargeType', 'UAS IED vernichtend', 'UAS IED Lethal'); +INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation) VALUES ('en_GB', 'name', 'ChargeType', 'Virtueller Trigger UAS', 'UAS Virtual Trigger'); +INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation) VALUES ('en_GB', 'shortName', 'ChargeType', 'Virtueller Trigger UAS', 'UAS Virtual Trigger'); INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation) VALUES ('en_GB', 'name', 'GearType', 'Unspecified', 'Unspecified'); INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation) VALUES ('en_GB', 'name', 'GearType', 'Nuclear Area', 'Nuclear Area'); INSERT INTO pdm.pdm_translation (iso_code, disambiguation, context, key, translation) VALUES ('en_GB', 'name', 'GearType', 'Biological Area', 'Biological Area'); diff --git a/Lts/Tools/Adler/WebSocketSimulator/awss_icd_test.cpp b/Lts/Tools/Adler/WebSocketSimulator/awss_icd_test.cpp index 02487015..8021a3d2 100755 --- a/Lts/Tools/Adler/WebSocketSimulator/awss_icd_test.cpp +++ b/Lts/Tools/Adler/WebSocketSimulator/awss_icd_test.cpp @@ -21,6 +21,11 @@ #include #include +#include +#include +#include +#include + #include #include @@ -41,6 +46,7 @@ ICDTest::ICDTest(QWidget *parent) generatePositionReportsPage(); generateTextMessagePage(); generateErkundungsergebnissePage(); + generateFilePage(); connect(m_ui->tbTrash, &QToolButton::clicked, m_ui->textEdit, &QTextEdit::clear); connect(m_ui->tbRestart, &QToolButton::clicked, this, &ICDTest::doRestart); connect(&m_heartbeatTimer, &QTimer::timeout, this, &ICDTest::generateConnectionTestMessage); @@ -1170,6 +1176,57 @@ void ICDTest::generateErkundungsergebnissePage() m_ui->toolBox->addItem(widget, tr("Erkundungsergebnisse")); } +void ICDTest::selectAndSendJson() { + // 1. QSettings initialisieren + QSettings settings(QStringLiteral("Legatus"), QStringLiteral("JsonWebsocketSender")); + + // 2. Letzten Pfad auslesen (Standard: leerer String) + QString lastDir = settings.value(QStringLiteral("lastDirectory"), QStringLiteral("")).toString(); + + // 3. Dialog mit dem letzten Pfad öffnen + QString filePath = QFileDialog::getOpenFileName(this, + tr("Select JSON file"), + lastDir, // Hier wird der gemerkte Pfad übergeben + tr("JSON Files (.json);;Text Files (.txt)")); + + if (filePath.isEmpty()) return; + + // 4. Neuen Pfad für das nächste Mal speichern + QFileInfo fileInfo(filePath); + settings.setValue(QStringLiteral("lastDirectory"), fileInfo.absolutePath()); + + // 5. Datei einlesen + QFile file(filePath); + if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { + QMessageBox::critical(this, tr("Error"), tr("Couldn't open file")); + return; + } + + m_pendingData = file.readAll(); + file.close(); + + QString message = QString::fromUtf8(m_pendingData); + m_ui->textEdit->append(message); + emit messsageToProxy(message); + +} + +void ICDTest::generateFilePage() +{ + QVBoxLayout *lay = new QVBoxLayout(this); + QSpacerItem *item = new QSpacerItem(1, 1, QSizePolicy::Minimum, QSizePolicy::MinimumExpanding); + QWidget *widget = new QWidget(this); + + QPushButton *btnEXAQ = new QPushButton(tr("JSON Files")); + connect(btnEXAQ, &QPushButton::clicked, this, &ICDTest::selectAndSendJson); + lay->addWidget(btnEXAQ); + + lay->addItem(item); + widget->setLayout(lay); + m_ui->toolBox->addItem(widget, tr("Load JSON File")); +} + + void ICDTest::generateStatusPage() { QVBoxLayout *lay = new QVBoxLayout(this); diff --git a/Lts/Tools/Adler/WebSocketSimulator/awss_icd_test.h b/Lts/Tools/Adler/WebSocketSimulator/awss_icd_test.h index d66c5904..4347ab10 100755 --- a/Lts/Tools/Adler/WebSocketSimulator/awss_icd_test.h +++ b/Lts/Tools/Adler/WebSocketSimulator/awss_icd_test.h @@ -82,6 +82,7 @@ class ICDTest : public QWidget void generateEXFlugbahnberechnung(); // Flugbahnberechnung void generateEXFlugbahndaten(); // Flugbahndaten void onSendHeartbeatChanged(); + void selectAndSendJson(); private: void generateConnectionPage(); @@ -91,6 +92,7 @@ class ICDTest : public QWidget void generateTrajectoryGenerationPage(); void generateTextMessagePage(); void generateErkundungsergebnissePage(); + void generateFilePage(); void generateStatusPage(); void generateEXSQWS_1WS(const QString &verein, const QString &kenner); @@ -101,6 +103,7 @@ class ICDTest : public QWidget QTimer m_heartbeatTimer; QString m_lastFeuerkampfReferenz; QString m_fixedReference; + QByteArray m_pendingData; }; } // namespace AdlerWebSocketSimulator diff --git a/Lts/Tools/CMakeLists.txt b/Lts/Tools/CMakeLists.txt index c3322769..a14903ae 100755 --- a/Lts/Tools/CMakeLists.txt +++ b/Lts/Tools/CMakeLists.txt @@ -23,6 +23,7 @@ ADD_SUBDIRECTORY(ParticipantDataGenerator) ADD_SUBDIRECTORY(ProjectSettingsEditor) ADD_SUBDIRECTORY(QLedLine) ADD_SUBDIRECTORY(QLedMatrix) +ADD_SUBDIRECTORY(RestClientUi) ADD_SUBDIRECTORY(ScreenIdShow) ADD_SUBDIRECTORY(SerialToTcpConverter) ADD_SUBDIRECTORY(Splash) @@ -34,6 +35,8 @@ ADD_SUBDIRECTORY(VapixConfig) ADD_SUBDIRECTORY(Automount) ADD_SUBDIRECTORY(EgcuSimulator) ADD_SUBDIRECTORY(TextEditorTest) +#ADD_SUBDIRECTORY(Examples/Plugins) +ADD_SUBDIRECTORY(Examples/TestGuiElement) #ADD_SUBDIRECTORY(VideoImport) ADD_SUBDIRECTORY(VulnerabilityStateGenerator) diff --git a/Lts/Tools/DBUpdate/CMakeLists.txt b/Lts/Tools/DBUpdate/CMakeLists.txt index e75df6a7..e2c97618 100755 --- a/Lts/Tools/DBUpdate/CMakeLists.txt +++ b/Lts/Tools/DBUpdate/CMakeLists.txt @@ -278,6 +278,7 @@ SET(UPDATES_GUEZ updates/guez/2.178_guez_pdm_target_type_target_subtype.upd updates/guez/2.179_guez_ppm_uas_update.upd updates/guez/2.180_guez_ex_rec_uas.upd + updates/guez/2.183_guez_pdm_charge_type.upd ) SET(UPDATES_QATAR diff --git a/Lts/Tools/DBUpdate/updates/guez/2.177_guez_DM72_update_charge_type_properties.upd b/Lts/Tools/DBUpdate/updates/guez/2.177_guez_DM72_update_charge_type_properties.upd index fa2c60e4..48591235 100755 --- a/Lts/Tools/DBUpdate/updates/guez/2.177_guez_DM72_update_charge_type_properties.upd +++ b/Lts/Tools/DBUpdate/updates/guez/2.177_guez_DM72_update_charge_type_properties.upd @@ -9,8 +9,8 @@ -- GLOBAL: PDM; BEGIN; -UPDATE pdm_charge_type SET properties = '{"adlerChargeTypeName": "Mine DM72", "impactRadius":25, "impactEdgeLength":25, "hazardDistance": 250, "fuseTypes": [{"fuseType": 1, "chargeLegacyId": 395}], "mineLaying":{"appearanceTimeOffset" : 19.2, "appearanceJitter": 3.4, "armingTimeOffset": 29.6, "armingJitter" : 2.3, "mineChargeTypeId": 216, "pattern": [ {"id": 1, "positions": [{"easting": -28, "northing": -30}, {"easting": -34, "northing": -36}, {"easting": -46, "northing": -48}, {"easting": -43, "northing": -44}, {"easting": -61, "northing": -43}, {"easting": -34, "northing": -35}, {"easting": 78, "northing": -77}, {"easting": 78, "northing": -77}, {"easting": 82, "northing": -81}, {"easting": 113, "northing": -112}, {"easting": 105, "northing": -105}, {"easting": 104, "northing": -102}, {"easting": 55, "northing": -53}, {"easting": 61, "northing": -60}, {"easting": 61, "northing": -59}, {"easting": 65, "northing": -64}, {"easting": 71, "northing": -76}, {"easting": 88, "northing": -93}, {"easting": -12, "northing": -13}, {"easting": -4, "northing": -3}, {"easting": 2, "northing": -16}, {"easting": -16, "northing": -3}, {"easting": -11, "northing": -11}, {"easting": -12, "northing": 5}, {"easting": 7, "northing": -40}, {"easting": 8, "northing": -13}, {"easting": 5, "northing": -21}, {"easting": -33, "northing": 44}]}, {"id": 2, "positions": [{"easting": 34, "northing": -238}, {"easting": 16, "northing": -132}, {"easting": -108, "northing": -57}, {"easting": 64, "northing": -262}, {"easting": -12, "northing": -122}, {"easting": 2, "northing": -143}, {"easting": 125, "northing": -235}, {"easting": 39, "northing": -108}, {"easting": 32, "northing": -261}, {"easting": 69, "northing": -248}, {"easting": 56, "northing": -253}, {"easting": 121, "northing": -170}, {"easting": 53, "northing": -268}, {"easting": 116, "northing": -115}, {"easting": 46, "northing": -258}, {"easting": -117, "northing": -53}, {"easting": 49, "northing": -229}, {"easting": 131, "northing": -155}, {"easting": 143, "northing": -236}, {"easting": 137, "northing": -236}, {"easting": 131, "northing": -248}, {"easting": 39, "northing": -100}, {"easting": 22, "northing": -238}, {"easting": 51, "northing": -251}, {"easting": 139, "northing": -139}, {"easting": 73, "northing": -274}, {"easting": 28, "northing": -224}, {"easting": 53, "northing": -234}]}, {"id": 3, "positions": [{"easting": -61, "northing": -520}, {"easting": -58, "northing": -409}, {"easting": -74, "northing": -474}, {"easting": -69, "northing": -393}, {"easting": -5, "northing": -448}, {"easting": -37, "northing": -504}, {"easting": -37, "northing": -397}, {"easting": -55, "northing": -378}, {"easting": -5, "northing": -467}, {"easting": 19, "northing": -342}, {"easting": -26, "northing": -496}, {"easting": -26, "northing": -487}, {"easting": -43, "northing": -445}, {"easting": -69, "northing": -400}, {"easting": -43, "northing": -389}, {"easting": -13, "northing": -463}, {"easting": -52, "northing": -500}, {"easting": -40, "northing": -520}, {"easting": -19, "northing": -444}, {"easting": -38, "northing": -464}, {"easting": 38, "northing": -356}, {"easting": 27, "northing": -354}, {"easting": 47, "northing": -359}, {"easting": -91, "northing": -362}, {"easting": -36, "northing": -540}, {"easting": 27, "northing": -365}, {"easting": 100, "northing": -391}, {"easting": 97, "northing": -365}]}, {"id": 4, "positions": [{"easting": 16, "northing": 221}, {"easting": -125, "northing": 164}, {"easting": 13, "northing": 224}, {"easting": 23, "northing": 214}, {"easting": -91, "northing": 350}, {"easting": 15, "northing": 233}, {"easting": -83, "northing": 365}, {"easting": -63, "northing": 358}, {"easting": 32, "northing": 216}, {"easting": -1, "northing": 236}, {"easting": -26, "northing": 244}, {"easting": -31, "northing": 241}, {"easting": -77, "northing": 184}, {"easting": -79, "northing": 323}, {"easting": -128, "northing": 167}, {"easting": -130, "northing": 158}, {"easting": -97, "northing": 360}, {"easting": 42, "northing": 210}, {"easting": -111, "northing": 329}, {"easting": -32, "northing": 233}, {"easting": -102, "northing": 342}, {"easting": -25, "northing": 231}, {"easting": -81, "northing": 202}, {"easting": -113, "northing": 340}, {"easting": 31, "northing": 202}, {"easting": -67, "northing": 219}, {"easting": -50, "northing": 213}, {"easting": -45, "northing": 210}]}, {"id": 5, "positions": [{"easting": -69, "northing": 5}, {"easting": -53, "northing": 22}, {"easting": -25, "northing": -1}, {"easting": -48, "northing": 48}, {"easting": -103, "northing": 83}, {"easting": -43, "northing": 69}, {"easting": -30, "northing": 43}, {"easting": -137, "northing": 19}, {"easting": -89, "northing": 89}, {"easting": -128, "northing": 41}, {"easting": -81, "northing": 79}, {"easting": -130, "northing": 9}, {"easting": -6, "northing": -7}, {"easting": -121, "northing": 63}, {"easting": -59, "northing": 73}, {"easting": -90, "northing": 35}, {"easting": -20, "northing": 20}, {"easting": -111, "northing": 37}, {"easting": -83, "northing": 82}, {"easting": -135, "northing": 7}, {"easting": -110, "northing": 11}, {"easting": -106, "northing": 22}, {"easting": -73, "northing": -24}, {"easting": -138, "northing": 67}, {"easting": -35, "northing": 34}, {"easting": -140, "northing": 42}, {"easting": -152, "northing": 19}, {"easting": -61, "northing": 64}]}, {"id": 6, "positions": [{"easting": -72, "northing": 522}, {"easting": -63, "northing": 409}, {"easting": 25, "northing": 472}, {"easting": 61, "northing": 391}, {"easting": -13, "northing": 446}, {"easting": -44, "northing": 500}, {"easting": -42, "northing": 400}, {"easting": 46, "northing": 377}, {"easting": -8, "northing": 468}, {"easting": -30, "northing": 341}, {"easting": -33, "northing": 497}, {"easting": -31, "northing": 486}, {"easting": -50, "northing": 443}, {"easting": 55, "northing": 399}, {"easting": -53, "northing": 389}, {"easting": 5, "northing": 464}, {"easting": -61, "northing": 499}, {"easting": -52, "northing": 521}, {"easting": 9, "northing": 446}, {"easting": -49, "northing": 463}, {"easting": 29, "northing": 357}, {"easting": 16, "northing": 356}, {"easting": 36, "northing": 356}, {"easting": 81, "northing": 359}, {"easting": -47, "northing": 542}, {"easting": 19, "northing": 364}, {"easting": 2, "northing": 459}, {"easting": -59, "northing": 487}]}]}}' WHERE id=395; - +UPDATE pdm_charge_type SET properties = '{"impactRadius": 25, "hazardDistance": 250, "impactEdgeLength": 25, "fuseTypes": [{"fuseType": 1, "chargeLegacyId": 395}], "mineLaying": {"pattern": [ { "id": 1, "positions": [ {"easting": 111, "northing": -30}, {"easting": 111, "northing": -36}, {"easting": 120, "northing": -48}, {"easting": 101, "northing": -45}, {"easting": 61, "northing": -44}, {"easting": 87, "northing": -35}, {"easting": -78, "northing": -36}, {"easting": -78, "northing": -35}, {"easting": -82, "northing": -39}, {"easting": -113, "northing": -27}, {"easting": -105, "northing": -15}, {"easting": -104, "northing": -1}, {"easting": -93, "northing": -54}, {"easting": -91, "northing": -60}, {"easting": -89, "northing": -59}, {"easting": -81, "northing": -64}, {"easting": -78, "northing": -69}, {"easting": -95, "northing": -86}, {"easting": 11, "northing": -70}, {"easting": -4, "northing": -90}, {"easting": 2, "northing": -16}, {"easting": -3, "northing": 16}, {"easting": -11, "northing": 11}, {"easting": -12, "northing": 5}, {"easting": 7, "northing": -40}, {"easting": 8, "northing": -13}, {"easting": -21, "northing": 6}, {"easting": 44, "northing": -34} ] }, { "id": 2, "positions": [ {"easting": -239, "northing": -31}, {"easting": -132, "northing": 17}, {"easting": -108, "northing": -57}, {"easting": -261, "northing": 67}, {"easting": -123, "northing": 14}, {"easting": -143, "northing": 5}, {"easting": -233, "northing": 125}, {"easting": -109, "northing": -37}, {"easting": -261, "northing": 37}, {"easting": -247, "northing": 73}, {"easting": -253, "northing": 60}, {"easting": -168, "northing": 124}, {"easting": -267, "northing": 57}, {"easting": -115, "northing": 3}, {"easting": -258, "northing": 49}, {"easting": -117, "northing": -53}, {"easting": -230, "northing": -45}, {"easting": -153, "northing": 131}, {"easting": -234, "northing": 146}, {"easting": -234, "northing": 138}, {"easting": -246, "northing": 132}, {"easting": -100, "northing": -38}, {"easting": -239, "northing": -18}, {"easting": -251, "northing": 53}, {"easting": -137, "northing": 160}, {"easting": -274, "northing": 75}, {"easting": -225, "northing": -23}, {"easting": -234, "northing": 58} ] }, { "id": 3, "positions": [ {"easting": -521, "northing": -54}, {"easting": -409, "northing": -50}, {"easting": -473, "northing": 44}, {"easting": -392, "northing": 76}, {"easting": -447, "northing": 1}, {"easting": -503, "northing": -27}, {"easting": -399, "northing": -31}, {"easting": -377, "northing": 61}, {"easting": -466, "northing": 10}, {"easting": -342, "northing": -15}, {"easting": -497, "northing": -17}, {"easting": -487, "northing": -18}, {"easting": -445, "northing": -38}, {"easting": -398, "northing": 72}, {"easting": -392, "northing": -38}, {"easting": -464, "northing": 19}, {"easting": -502, "northing": -45}, {"easting": -522, "northing": -31}, {"easting": -444, "northing": 23}, {"easting": -467, "northing": -33}, {"easting": -355, "northing": 40}, {"easting": -353, "northing": 30}, {"easting": -358, "northing": 49}, {"easting": -360, "northing": 94}, {"easting": -538, "northing": -30}, {"easting": -364, "northing": 31}, {"easting": -391, "northing": -95}, {"easting": -366, "northing": -90} ] }, { "id": 4, "positions": [ {"easting": 221, "northing": -20}, {"easting": 163, "northing": -127}, {"easting": 224, "northing": -17}, {"easting": 214, "northing": -26}, {"easting": 349, "northing": -97}, {"easting": 232, "northing": -18}, {"easting": 364, "northing": -89}, {"easting": 358, "northing": -70}, {"easting": 215, "northing": -37}, {"easting": 236, "northing": -3}, {"easting": 243, "northing": 21}, {"easting": 241, "northing": -35}, {"easting": 183, "northing": -80}, {"easting": 322, "northing": -84}, {"easting": 166, "northing": -130}, {"easting": 157, "northing": -133}, {"easting": 358, "northing": -104}, {"easting": 209, "northing": -45}, {"easting": 329, "northing": -118}, {"easting": 227, "northing": -37}, {"easting": 342, "northing": -108}, {"easting": 230, "northing": -29}, {"easting": 201, "northing": -83}, {"easting": 339, "northing": -116}, {"easting": 201, "northing": -35}, {"easting": 208, "northing": -70}, {"easting": 212, "northing": -55}, {"easting": 205, "northing": -48} ] }, { "id": 5, "positions": [ {"easting": -69, "northing": 6}, {"easting": -53, "northing": 22}, {"easting": -25, "northing": -1}, {"easting": 43, "northing": 48}, {"easting": -82, "northing": 103}, {"easting": 70, "northing": 42}, {"easting": 43, "northing": 29}, {"easting": -136, "northing": 20}, {"easting": -61, "northing": 90}, {"easting": -128, "northing": 41}, {"easting": 71, "northing": 79}, {"easting": -130, "northing": 10}, {"easting": -6, "northing": -7}, {"easting": -63, "northing": 121}, {"easting": 73, "northing": 58}, {"easting": 35, "northing": 90}, {"easting": -14, "northing": 20}, {"easting": -111, "northing": 38}, {"easting": 58, "northing": 82}, {"easting": -135, "northing": 8}, {"easting": -110, "northing": 12}, {"easting": -107, "northing": 23}, {"easting": -73, "northing": -24}, {"easting": -66, "northing": 140}, {"easting": -13, "northing": 35}, {"easting": -139, "northing": 43}, {"easting": -153, "northing": 20}, {"easting": 65, "northing": 60} ] }, { "id": 6, "positions": [ {"easting": 525, "northing": 64}, {"easting": 408, "northing": 56}, {"easting": 470, "northing": -33}, {"easting": 390, "northing": -68}, {"easting": 445, "northing": 6}, {"easting": 500, "northing": 35}, {"easting": 401, "northing": 36}, {"easting": 376, "northing": -51}, {"easting": 468, "northing": 0}, {"easting": 343, "northing": 25}, {"easting": 497, "northing": 26}, {"easting": 486, "northing": 25}, {"easting": 442, "northing": 44}, {"easting": 399, "northing": -62}, {"easting": 390, "northing": 47}, {"easting": 463, "northing": -13}, {"easting": 501, "northing": 54}, {"easting": 522, "northing": 44}, {"easting": 446, "northing": -15}, {"easting": 468, "northing": 41}, {"easting": 357, "northing": -35}, {"easting": 356, "northing": -21}, {"easting": 356, "northing": -41}, {"easting": 359, "northing": -87}, {"easting": 541, "northing": 38}, {"easting": 365, "northing": -24}, {"easting": 458, "northing": -9}, {"easting": 488, "northing": 52} ] }], "armingJitter": 2.3, "appearanceJitter": 3.4, "armingTimeOffset": 29.6, "mineChargeTypeId": 216, "appearanceTimeOffset": 19.2}}' WHERE ID = 395; +UPDATE pdm_charge_type SET properties = '{"impactRadius": 25, "hazardDistance": 250, "impactEdgeLength": 25, "adlerChargeTypeName": "Mine DM72", "fuseTypes": [{"fuseType": 1, "chargeLegacyId": 395}], "mineLaying": {"pattern": [ { "id": 1, "positions": [ {"easting": 111, "northing": -30}, {"easting": 111, "northing": -36}, {"easting": 120, "northing": -48}, {"easting": 101, "northing": -45}, {"easting": 61, "northing": -44}, {"easting": 87, "northing": -35}, {"easting": -78, "northing": -36}, {"easting": -78, "northing": -35}, {"easting": -82, "northing": -39}, {"easting": -113, "northing": -27}, {"easting": -105, "northing": -15}, {"easting": -104, "northing": -1}, {"easting": -93, "northing": -54}, {"easting": -91, "northing": -60}, {"easting": -89, "northing": -59}, {"easting": -81, "northing": -64}, {"easting": -78, "northing": -69}, {"easting": -95, "northing": -86}, {"easting": 11, "northing": -70}, {"easting": -4, "northing": -90}, {"easting": 2, "northing": -16}, {"easting": -3, "northing": 16}, {"easting": -11, "northing": 11}, {"easting": -12, "northing": 5}, {"easting": 7, "northing": -40}, {"easting": 8, "northing": -13}, {"easting": -21, "northing": 6}, {"easting": 44, "northing": -34} ] }, { "id": 2, "positions": [ {"easting": -239, "northing": -31}, {"easting": -132, "northing": 17}, {"easting": -108, "northing": -57}, {"easting": -261, "northing": 67}, {"easting": -123, "northing": 14}, {"easting": -143, "northing": 5}, {"easting": -233, "northing": 125}, {"easting": -109, "northing": -37}, {"easting": -261, "northing": 37}, {"easting": -247, "northing": 73}, {"easting": -253, "northing": 60}, {"easting": -168, "northing": 124}, {"easting": -267, "northing": 57}, {"easting": -115, "northing": 3}, {"easting": -258, "northing": 49}, {"easting": -117, "northing": -53}, {"easting": -230, "northing": -45}, {"easting": -153, "northing": 131}, {"easting": -234, "northing": 146}, {"easting": -234, "northing": 138}, {"easting": -246, "northing": 132}, {"easting": -100, "northing": -38}, {"easting": -239, "northing": -18}, {"easting": -251, "northing": 53}, {"easting": -137, "northing": 160}, {"easting": -274, "northing": 75}, {"easting": -225, "northing": -23}, {"easting": -234, "northing": 58} ] }, { "id": 3, "positions": [ {"easting": -521, "northing": -54}, {"easting": -409, "northing": -50}, {"easting": -473, "northing": 44}, {"easting": -392, "northing": 76}, {"easting": -447, "northing": 1}, {"easting": -503, "northing": -27}, {"easting": -399, "northing": -31}, {"easting": -377, "northing": 61}, {"easting": -466, "northing": 10}, {"easting": -342, "northing": -15}, {"easting": -497, "northing": -17}, {"easting": -487, "northing": -18}, {"easting": -445, "northing": -38}, {"easting": -398, "northing": 72}, {"easting": -392, "northing": -38}, {"easting": -464, "northing": 19}, {"easting": -502, "northing": -45}, {"easting": -522, "northing": -31}, {"easting": -444, "northing": 23}, {"easting": -467, "northing": -33}, {"easting": -355, "northing": 40}, {"easting": -353, "northing": 30}, {"easting": -358, "northing": 49}, {"easting": -360, "northing": 94}, {"easting": -538, "northing": -30}, {"easting": -364, "northing": 31}, {"easting": -391, "northing": -95}, {"easting": -366, "northing": -90} ] }, { "id": 4, "positions": [ {"easting": 221, "northing": -20}, {"easting": 163, "northing": -127}, {"easting": 224, "northing": -17}, {"easting": 214, "northing": -26}, {"easting": 349, "northing": -97}, {"easting": 232, "northing": -18}, {"easting": 364, "northing": -89}, {"easting": 358, "northing": -70}, {"easting": 215, "northing": -37}, {"easting": 236, "northing": -3}, {"easting": 243, "northing": 21}, {"easting": 241, "northing": -35}, {"easting": 183, "northing": -80}, {"easting": 322, "northing": -84}, {"easting": 166, "northing": -130}, {"easting": 157, "northing": -133}, {"easting": 358, "northing": -104}, {"easting": 209, "northing": -45}, {"easting": 329, "northing": -118}, {"easting": 227, "northing": -37}, {"easting": 342, "northing": -108}, {"easting": 230, "northing": -29}, {"easting": 201, "northing": -83}, {"easting": 339, "northing": -116}, {"easting": 201, "northing": -35}, {"easting": 208, "northing": -70}, {"easting": 212, "northing": -55}, {"easting": 205, "northing": -48} ] }, { "id": 5, "positions": [ {"easting": -69, "northing": 6}, {"easting": -53, "northing": 22}, {"easting": -25, "northing": -1}, {"easting": 43, "northing": 48}, {"easting": -82, "northing": 103}, {"easting": 70, "northing": 42}, {"easting": 43, "northing": 29}, {"easting": -136, "northing": 20}, {"easting": -61, "northing": 90}, {"easting": -128, "northing": 41}, {"easting": 71, "northing": 79}, {"easting": -130, "northing": 10}, {"easting": -6, "northing": -7}, {"easting": -63, "northing": 121}, {"easting": 73, "northing": 58}, {"easting": 35, "northing": 90}, {"easting": -14, "northing": 20}, {"easting": -111, "northing": 38}, {"easting": 58, "northing": 82}, {"easting": -135, "northing": 8}, {"easting": -110, "northing": 12}, {"easting": -107, "northing": 23}, {"easting": -73, "northing": -24}, {"easting": -66, "northing": 140}, {"easting": -13, "northing": 35}, {"easting": -139, "northing": 43}, {"easting": -153, "northing": 20}, {"easting": 65, "northing": 60} ] }, { "id": 6, "positions": [ {"easting": 525, "northing": 64}, {"easting": 408, "northing": 56}, {"easting": 470, "northing": -33}, {"easting": 390, "northing": -68}, {"easting": 445, "northing": 6}, {"easting": 500, "northing": 35}, {"easting": 401, "northing": 36}, {"easting": 376, "northing": -51}, {"easting": 468, "northing": 0}, {"easting": 343, "northing": 25}, {"easting": 497, "northing": 26}, {"easting": 486, "northing": 25}, {"easting": 442, "northing": 44}, {"easting": 399, "northing": -62}, {"easting": 390, "northing": 47}, {"easting": 463, "northing": -13}, {"easting": 501, "northing": 54}, {"easting": 522, "northing": 44}, {"easting": 446, "northing": -15}, {"easting": 468, "northing": 41}, {"easting": 357, "northing": -35}, {"easting": 356, "northing": -21}, {"easting": 356, "northing": -41}, {"easting": 359, "northing": -87}, {"easting": 541, "northing": 38}, {"easting": 365, "northing": -24}, {"easting": 458, "northing": -9}, {"easting": 488, "northing": 52} ] }], "armingJitter": 2.3, "appearanceJitter": 3.4, "armingTimeOffset": 29.6, "mineChargeTypeId": 216, "appearanceTimeOffset": 19.2}}' WHERE ID = 369; COMMIT; -- EXERCISE: NONE; diff --git a/Lts/Tools/DBUpdate/updates/guez/2.183_guez_pdm_charge_type.upd b/Lts/Tools/DBUpdate/updates/guez/2.183_guez_pdm_charge_type.upd new file mode 100644 index 00000000..cecc906e --- /dev/null +++ b/Lts/Tools/DBUpdate/updates/guez/2.183_guez_pdm_charge_type.upd @@ -0,0 +1,48 @@ +-- $Id: 2.89_guez_pdm_charge_type.upd 62864 2024-05-24 08:23:59Z rathje $ +-- $HeadURL$ +-- $Author: rathje $ + +------------------------------------------------------------------------- +-- INFO: Add table pdm_load_type / pdm_charge_type_load_type +-- PROJECT: Guez +-- DATE: 2026-06-26 +-- VERSION: 2.183 +------------------------------------------------------------------------- + +-- GLOBAL: PDM; +BEGIN; + +-- delete +DELETE FROM pdm_charge_type_igniter_type_igniter_function WHERE charge_type_id IN (368,369,373,394,395); + +-- updates +UPDATE pdm_charge_type SET predefined_name = NULL, name = 'GMLRS Unitary M31', short_name = 'GMLRS', properties = '{"impactRadius":25, "impactEdgeLength":25, "hazardDistance": 250, "fuseTypes" : [ { "fuseType" : 1, "chargeLegacyId" : 394}]}', dis_entity = '2.255.201.3.0.0.0', charge_legacy_id = NULL WHERE ID = 394; +UPDATE pdm_charge_type SET predefined_name = NULL, name = 'Mine DM72', short_name = 'DM72', properties = '{"impactRadius":25, "impactEdgeLength":25, "hazardDistance": 250, "fuseTypes": [{"fuseType": 1, "chargeLegacyId": 395}], "mineLaying":{"appearanceTimeOffset" : 19.2, "appearanceJitter": 3.4, "armingTimeOffset": 29.6, "armingJitter" : 2.3, "mineChargeTypeId": 216, "pattern": [ {"id": 1, "positions": [{"easting": -28, "northing": -30}, {"easting": -34, "northing": -36}, {"easting": -46, "northing": -48}, {"easting": -43, "northing": -44}, {"easting": -61, "northing": -43}, {"easting": -34, "northing": -35}, {"easting": 78, "northing": -77}, {"easting": 78, "northing": -77}, {"easting": 82, "northing": -81}, {"easting": 113, "northing": -112}, {"easting": 105, "northing": -105}, {"easting": 104, "northing": -102}, {"easting": 55, "northing": -53}, {"easting": 61, "northing": -60}, {"easting": 61, "northing": -59}, {"easting": 65, "northing": -64}, {"easting": 71, "northing": -76}, {"easting": 88, "northing": -93}, {"easting": -12, "northing": -13}, {"easting": -4, "northing": -3}, {"easting": 2, "northing": -16}, {"easting": -16, "northing": -3}, {"easting": -11, "northing": -11}, {"easting": -12, "northing": 5}, {"easting": 7, "northing": -40}, {"easting": 8, "northing": -13}, {"easting": 5, "northing": -21}, {"easting": -33, "northing": 44}]}, {"id": 2, "positions": [{"easting": 34, "northing": -238}, {"easting": 16, "northing": -132}, {"easting": -108, "northing": -57}, {"easting": 64, "northing": -262}, {"easting": -12, "northing": -122}, {"easting": 2, "northing": -143}, {"easting": 125, "northing": -235}, {"easting": 39, "northing": -108}, {"easting": 32, "northing": -261}, {"easting": 69, "northing": -248}, {"easting": 56, "northing": -253}, {"easting": 121, "northing": -170}, {"easting": 53, "northing": -268}, {"easting": 116, "northing": -115}, {"easting": 46, "northing": -258}, {"easting": -117, "northing": -53}, {"easting": 49, "northing": -229}, {"easting": 131, "northing": -155}, {"easting": 143, "northing": -236}, {"easting": 137, "northing": -236}, {"easting": 131, "northing": -248}, {"easting": 39, "northing": -100}, {"easting": 22, "northing": -238}, {"easting": 51, "northing": -251}, {"easting": 139, "northing": -139}, {"easting": 73, "northing": -274}, {"easting": 28, "northing": -224}, {"easting": 53, "northing": -234}]}, {"id": 3, "positions": [{"easting": -61, "northing": -520}, {"easting": -58, "northing": -409}, {"easting": -74, "northing": -474}, {"easting": -69, "northing": -393}, {"easting": -5, "northing": -448}, {"easting": -37, "northing": -504}, {"easting": -37, "northing": -397}, {"easting": -55, "northing": -378}, {"easting": -5, "northing": -467}, {"easting": 19, "northing": -342}, {"easting": -26, "northing": -496}, {"easting": -26, "northing": -487}, {"easting": -43, "northing": -445}, {"easting": -69, "northing": -400}, {"easting": -43, "northing": -389}, {"easting": -13, "northing": -463}, {"easting": -52, "northing": -500}, {"easting": -40, "northing": -520}, {"easting": -19, "northing": -444}, {"easting": -38, "northing": -464}, {"easting": 38, "northing": -356}, {"easting": 27, "northing": -354}, {"easting": 47, "northing": -359}, {"easting": -91, "northing": -362}, {"easting": -36, "northing": -540}, {"easting": 27, "northing": -365}, {"easting": 100, "northing": -391}, {"easting": 97, "northing": -365}]}, {"id": 4, "positions": [{"easting": 16, "northing": 221}, {"easting": -125, "northing": 164}, {"easting": 13, "northing": 224}, {"easting": 23, "northing": 214}, {"easting": -91, "northing": 350}, {"easting": 15, "northing": 233}, {"easting": -83, "northing": 365}, {"easting": -63, "northing": 358}, {"easting": 32, "northing": 216}, {"easting": -1, "northing": 236}, {"easting": -26, "northing": 244}, {"easting": -31, "northing": 241}, {"easting": -77, "northing": 184}, {"easting": -79, "northing": 323}, {"easting": -128, "northing": 167}, {"easting": -130, "northing": 158}, {"easting": -97, "northing": 360}, {"easting": 42, "northing": 210}, {"easting": -111, "northing": 329}, {"easting": -32, "northing": 233}, {"easting": -102, "northing": 342}, {"easting": -25, "northing": 231}, {"easting": -81, "northing": 202}, {"easting": -113, "northing": 340}, {"easting": 31, "northing": 202}, {"easting": -67, "northing": 219}, {"easting": -50, "northing": 213}, {"easting": -45, "northing": 210}]}, {"id": 5, "positions": [{"easting": -69, "northing": 5}, {"easting": -53, "northing": 22}, {"easting": -25, "northing": -1}, {"easting": -48, "northing": 48}, {"easting": -103, "northing": 83}, {"easting": -43, "northing": 69}, {"easting": -30, "northing": 43}, {"easting": -137, "northing": 19}, {"easting": -89, "northing": 89}, {"easting": -128, "northing": 41}, {"easting": -81, "northing": 79}, {"easting": -130, "northing": 9}, {"easting": -6, "northing": -7}, {"easting": -121, "northing": 63}, {"easting": -59, "northing": 73}, {"easting": -90, "northing": 35}, {"easting": -20, "northing": 20}, {"easting": -111, "northing": 37}, {"easting": -83, "northing": 82}, {"easting": -135, "northing": 7}, {"easting": -110, "northing": 11}, {"easting": -106, "northing": 22}, {"easting": -73, "northing": -24}, {"easting": -138, "northing": 67}, {"easting": -35, "northing": 34}, {"easting": -140, "northing": 42}, {"easting": -152, "northing": 19}, {"easting": -61, "northing": 64}]}, {"id": 6, "positions": [{"easting": -72, "northing": 522}, {"easting": -63, "northing": 409}, {"easting": 25, "northing": 472}, {"easting": 61, "northing": 391}, {"easting": -13, "northing": 446}, {"easting": -44, "northing": 500}, {"easting": -42, "northing": 400}, {"easting": 46, "northing": 377}, {"easting": -8, "northing": 468}, {"easting": -30, "northing": 341}, {"easting": -33, "northing": 497}, {"easting": -31, "northing": 486}, {"easting": -50, "northing": 443}, {"easting": 55, "northing": 399}, {"easting": -53, "northing": 389}, {"easting": 5, "northing": 464}, {"easting": -61, "northing": 499}, {"easting": -52, "northing": 521}, {"easting": 9, "northing": 446}, {"easting": -49, "northing": 463}, {"easting": 29, "northing": 357}, {"easting": 16, "northing": 356}, {"easting": 36, "northing": 356}, {"easting": 81, "northing": 359}, {"easting": -47, "northing": 542}, {"easting": 19, "northing": 364}, {"easting": 2, "northing": 459}, {"easting": -59, "northing": 487}]}]}}', dis_entity = '2.255.201.3.0.0.0 ', charge_legacy_id = NULL WHERE ID = 395; + + + +INSERT INTO pdm_charge_type (id, predefined_name, name, short_name, properties, dis_entity, charge_legacy_id) VALUES (368, NULL, 'GMLRS Unitary M31', 'GMLRS', '{"adlerChargeTypeName": "Unitary M31", "isAdlerChargeType": true, "impactRadius":25, "impactEdgeLength":25, "hazardDistance": 250, "fuseTypes" : [ { "fuseType" : 1, "chargeLegacyId" : 394}]}', '2.255.201.3.0.0.0', 394); +INSERT INTO pdm_charge_type (id, predefined_name, name, short_name, properties, dis_entity, charge_legacy_id) VALUES (369, NULL, 'Mine DM72', 'DM72', '{"adlerChargeTypeName": "Mine DM72","isAdlerChargeType": true, "impactRadius":25, "impactEdgeLength":25, "hazardDistance": 250, "fuseTypes": [{"fuseType": 1, "chargeLegacyId": 395}], "mineLaying":{"appearanceTimeOffset" : 19.2, "appearanceJitter": 3.4, "armingTimeOffset": 29.6, "armingJitter" : 2.3, "mineChargeTypeId": 216, "pattern": [{"id": 1, "positions": [{"easting": -28, "northing": -30}, {"easting": -34, "northing": -36}, {"easting": -46, "northing": -48}, {"easting": -43, "northing": -44}, {"easting": -61, "northing": -43}, {"easting": -34, "northing": -35}, {"easting": 78, "northing": -77}, {"easting": 78, "northing": -77}, {"easting": 82, "northing": -81}, {"easting": 113, "northing": -112}, {"easting": 105, "northing": -105}, {"easting": 104, "northing": -102}, {"easting": 55, "northing": -53}, {"easting": 61, "northing": -60}, {"easting": 61, "northing": -59}, {"easting": 65, "northing": -64}, {"easting": 71, "northing": -76}, {"easting": 88, "northing": -93}, {"easting": -12, "northing": -13}, {"easting": -4, "northing": -3}, {"easting": 2, "northing": -16}, {"easting": -16, "northing": -3}, {"easting": -11, "northing": -11}, {"easting": -12, "northing": 5}, {"easting": 7, "northing": -40}, {"easting": 8, "northing": -13}, {"easting": 5, "northing": -21}, {"easting": -33, "northing": 44}]}, {"id": 2, "positions": [{"easting": 34, "northing": -238}, {"easting": 16, "northing": -132}, {"easting": -108, "northing": -57}, {"easting": 64, "northing": -262}, {"easting": -12, "northing": -122}, {"easting": 2, "northing": -143}, {"easting": 125, "northing": -235}, {"easting": 39, "northing": -108}, {"easting": 32, "northing": -261}, {"easting": 69, "northing": -248}, {"easting": 56, "northing": -253}, {"easting": 121, "northing": -170}, {"easting": 53, "northing": -268}, {"easting": 116, "northing": -115}, {"easting": 46, "northing": -258}, {"easting": -117, "northing": -53}, {"easting": 49, "northing": -229}, {"easting": 131, "northing": -155}, {"easting": 143, "northing": -236}, {"easting": 137, "northing": -236}, {"easting": 131, "northing": -248}, {"easting": 39, "northing": -100}, {"easting": 22, "northing": -238}, {"easting": 51, "northing": -251}, {"easting": 139, "northing": -139}, {"easting": 73, "northing": -274}, {"easting": 28, "northing": -224}, {"easting": 53, "northing": -234}]}, {"id": 3, "positions": [{"easting": -61, "northing": -520}, {"easting": -58, "northing": -409}, {"easting": -74, "northing": -474}, {"easting": -69, "northing": -393}, {"easting": -5, "northing": -448}, {"easting": -37, "northing": -504}, {"easting": -37, "northing": -397}, {"easting": -55, "northing": -378}, {"easting": -5, "northing": -467}, {"easting": 19, "northing": -342}, {"easting": -26, "northing": -496}, {"easting": -26, "northing": -487}, {"easting": -43, "northing": -445}, {"easting": -69, "northing": -400}, {"easting": -43, "northing": -389}, {"easting": -13, "northing": -463}, {"easting": -52, "northing": -500}, {"easting": -40, "northing": -520}, {"easting": -19, "northing": -444}, {"easting": -38, "northing": -464}, {"easting": 38, "northing": -356}, {"easting": 27, "northing": -354}, {"easting": 47, "northing": -359}, {"easting": -91, "northing": -362}, {"easting": -36, "northing": -540}, {"easting": 27, "northing": -365}, {"easting": 100, "northing": -391}, {"easting": 97, "northing": -365}]}, {"id": 4, "positions": [{"easting": 16, "northing": 221}, {"easting": -125, "northing": 164}, {"easting": 13, "northing": 224}, {"easting": 23, "northing": 214}, {"easting": -91, "northing": 350}, {"easting": 15, "northing": 233}, {"easting": -83, "northing": 365}, {"easting": -63, "northing": 358}, {"easting": 32, "northing": 216}, {"easting": -1, "northing": 236}, {"easting": -26, "northing": 244}, {"easting": -31, "northing": 241}, {"easting": -77, "northing": 184}, {"easting": -79, "northing": 323}, {"easting": -128, "northing": 167}, {"easting": -130, "northing": 158}, {"easting": -97, "northing": 360}, {"easting": 42, "northing": 210}, {"easting": -111, "northing": 329}, {"easting": -32, "northing": 233}, {"easting": -102, "northing": 342}, {"easting": -25, "northing": 231}, {"easting": -81, "northing": 202}, {"easting": -113, "northing": 340}, {"easting": 31, "northing": 202}, {"easting": -67, "northing": 219}, {"easting": -50, "northing": 213}, {"easting": -45, "northing": 210}]}, {"id": 5, "positions": [{"easting": -69, "northing": 5}, {"easting": -53, "northing": 22}, {"easting": -25, "northing": -1}, {"easting": -48, "northing": 48}, {"easting": -103, "northing": 83}, {"easting": -43, "northing": 69}, {"easting": -30, "northing": 43}, {"easting": -137, "northing": 19}, {"easting": -89, "northing": 89}, {"easting": -128, "northing": 41}, {"easting": -81, "northing": 79}, {"easting": -130, "northing": 9}, {"easting": -6, "northing": -7}, {"easting": -121, "northing": 63}, {"easting": -59, "northing": 73}, {"easting": -90, "northing": 35}, {"easting": -20, "northing": 20}, {"easting": -111, "northing": 37}, {"easting": -83, "northing": 82}, {"easting": -135, "northing": 7}, {"easting": -110, "northing": 11}, {"easting": -106, "northing": 22}, {"easting": -73, "northing": -24}, {"easting": -138, "northing": 67}, {"easting": -35, "northing": 34}, {"easting": -140, "northing": 42}, {"easting": -152, "northing": 19}, {"easting": -61, "northing": 64}]}, {"id": 6, "positions": [{"easting": -72, "northing": 522}, {"easting": -63, "northing": 409}, {"easting": 25, "northing": 472}, {"easting": 61, "northing": 391}, {"easting": -13, "northing": 446}, {"easting": -44, "northing": 500}, {"easting": -42, "northing": 400}, {"easting": 46, "northing": 377}, {"easting": -8, "northing": 468}, {"easting": -30, "northing": 341}, {"easting": -33, "northing": 497}, {"easting": -31, "northing": 486}, {"easting": -50, "northing": 443}, {"easting": 55, "northing": 399}, {"easting": -53, "northing": 389}, {"easting": 5, "northing": 464}, {"easting": -61, "northing": 499}, {"easting": -52, "northing": 521}, {"easting": 9, "northing": 446}, {"easting": -49, "northing": 463}, {"easting": 29, "northing": 357}, {"easting": 16, "northing": 356}, {"easting": 36, "northing": 356}, {"easting": 81, "northing": 359}, {"easting": -47, "northing": 542}, {"easting": 19, "northing": 364}, {"easting": 2, "northing": 459}, {"easting": -59, "northing": 487}]}]}}', '2.255.201.3.0.0.0', 395); +INSERT INTO pdm.pdm_gear_type_charge_type (gear_type_id, charge_type_id, max_range) VALUES (901, 368, 25190); +INSERT INTO pdm.pdm_gear_type_charge_type (gear_type_id, charge_type_id, max_range) VALUES (901, 369, 25190); + + +-- inserts pdm_charge_type_igniter_type_igniter_function +INSERT INTO pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (368, 0, 2, NULL, 25, 250, 394, 2, NULL); +INSERT INTO pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (368, 0, 5, NULL, 25, 250, 394, 0, NULL); +INSERT INTO pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (368, 0, 6, NULL, 25, 250, 394, 0, NULL); +INSERT INTO pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (368, 0, 7, NULL, 25, 250, 394, 0, NULL); +INSERT INTO pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (368, 0, 8, NULL, 25, 250, 394, 0, NULL); +INSERT INTO pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (369, 0, 0, NULL, 25, 250, 395, 0, NULL); +INSERT INTO pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (394, 102, 0, NULL, 25, 250, 394, 0, NULL); +INSERT INTO pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (395, 102, 0, NULL, 25, 250, 395, 0, NULL); +INSERT INTO pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (373, 101, 0, NULL, 25, 0, 3, 4, NULL); +INSERT INTO pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (373, 102, 0, NULL, 25, 0, 3, 2, NULL); +INSERT INTO pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (373, 103, 0, NULL, 25, 0, 3, 3, NULL); +INSERT INTO pdm_charge_type_igniter_type_igniter_function (charge_type_id, igniter_type_id, igniter_function_id, impact_area, impact_radius, hazard_distance, charge_legacy_id, igniter_function_base_id, properties) VALUES (373, 104, 0, NULL, 25, 0, 3, 1, NULL); + +COMMIT; + +-- EXERCISE: NONE; +BEGIN; +COMMIT; diff --git a/Lts/Tools/DBUpdate/updates/guez/2.184_guez_charge.upd b/Lts/Tools/DBUpdate/updates/guez/2.184_guez_charge.upd new file mode 100644 index 00000000..17dbb972 --- /dev/null +++ b/Lts/Tools/DBUpdate/updates/guez/2.184_guez_charge.upd @@ -0,0 +1,29 @@ + +-- $Id: 2.184_guez_charge.upd$ +-- $HeadURL$ +-- $Author: rudolphus $ + +------------------------------------------------------------------------- +-- INFO: update pdm_charge_type_igniter_type_igniter_function and pdm_charge_type +-- PROJECT: Guez +-- DATE: 2026-07-15 +-- VERSION: 2.184 +------------------------------------------------------------------------- + +-- GLOBAL: PDM; +BEGIN; + +UPDATE pdm_charge_type_igniter_type_igniter_function set impact_radius = 10 where charge_type_id = 2050; +UPDATE pdm_charge_type_igniter_type_igniter_function set charge_legacy_id = 1 where charge_legacy_id = 394; +UPDATE pdm_charge_type_igniter_type_igniter_function set charge_legacy_id = 1 where charge_legacy_id = 395; + +UPDATE pdm_charge_type set charge_legacy_id = 1 where id = 368; +UPDATE pdm_charge_type set charge_legacy_id = 1 where id = 369; + + +COMMIT; + +-- EXERCISE: NONE; +BEGIN; +COMMIT; + diff --git a/Lts/Tools/Examples/Plugins/CMakeLists.txt b/Lts/Tools/Examples/Plugins/CMakeLists.txt new file mode 100644 index 00000000..e61c137a --- /dev/null +++ b/Lts/Tools/Examples/Plugins/CMakeLists.txt @@ -0,0 +1,18 @@ +cmake_minimum_required(VERSION 3.10) +project(QtPluginSystemDemo CXX) + +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTOUIC ON) + +find_package(Qt5 REQUIRED COMPONENTS Core Widgets) + +# Ausgabepfad für Plugins definieren +set(PLUGIN_OUTPUT_DIR "${CMAKE_BINARY_DIR}/plugins") + +add_subdirectory(plugins) +add_subdirectory(app) + diff --git a/Lts/Tools/Examples/Plugins/app/CMakeLists.txt b/Lts/Tools/Examples/Plugins/app/CMakeLists.txt new file mode 100644 index 00000000..c06763da --- /dev/null +++ b/Lts/Tools/Examples/Plugins/app/CMakeLists.txt @@ -0,0 +1,6 @@ +add_executable(DlboTestPluginApp main.cpp) +target_link_libraries(DlboTestPluginApp PRIVATE Qt5::Widgets) + +# Kopiert die Interfaces virtuell via Include-Pfad (keine statische Link-Abhängigkeit zu .cpp Dateien) +target_include_directories(DlboTestPluginApp PRIVATE ${CMAKE_SOURCE_DIR}/interfaces) + diff --git a/Lts/Tools/Examples/Plugins/app/main.cpp b/Lts/Tools/Examples/Plugins/app/main.cpp new file mode 100644 index 00000000..15768ff2 --- /dev/null +++ b/Lts/Tools/Examples/Plugins/app/main.cpp @@ -0,0 +1,112 @@ +#include +#include +#include +#include +#include +#include +#include + +#include "../interfaces/child_interface.h" +#include "../interfaces/parent_interface.h" + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + + QMainWindow mainWindow; + QWidget *centralWidget = new QWidget(&mainWindow); + QVBoxLayout *mainLayout = new QVBoxLayout(centralWidget); + mainWindow.setCentralWidget(centralWidget); + + // Ordnerstruktur auflösen (.../build-.../plugins/) + QDir baseDir(QCoreApplication::applicationDirPath()); + baseDir.cdUp(); + QDir pluginsDir = baseDir; + if (!pluginsDir.cd(QStringLiteral("plugins"))) + { + qCritical() << "Plugins-Ordner nicht gefunden!"; + return -1; + } + + QMap parentPlugins; + QList childPlugins; + + // Nur .so-Dateien auflisten (verhindert das Einlesen von cmake_install.cmake) + QStringList filters; + filters << QStringLiteral("*.so"); +#ifdef Q_OS_WIN + filters << QStringLiteral("*.dll"); +#else + filters << QStringLiteral("*.so"); +#endif + + // 1. Durchlauf: Plugins laden und katalogisieren + for (const QString &fileName : pluginsDir.entryList(filters, QDir::Files)) + { + QPluginLoader loader(pluginsDir.absoluteFilePath(fileName)); + QObject *pluginInstance = loader.instance(); + + if (!pluginInstance) + { + qDebug() << "Überspringe Datei:" << fileName << loader.errorString(); + continue; + } + + // Ist es ein Parent? + auto *parent = qobject_cast(pluginInstance); + if (parent) + { + parentPlugins[parent->pluginName()] = parent; + mainLayout->addWidget(parent->widget()); + qDebug() << "Eltern-Plugin registriert:" << parent->pluginName(); + continue; + } + + // Ist es ein Child? + auto *child = qobject_cast(pluginInstance); + if (child) + { + childPlugins.append(child); + qDebug() << "Kind-Plugin zwischengespeichert:" << child->childName(); + } + } + + // 2. Durchlauf: Zuordnen, Daten übergeben und Signale verbinden + for (ChildInterface *child : childPlugins) + { + QString target = child->targetParentName(); + + if (parentPlugins.contains(target)) + { + ParentInterface *parent = parentPlugins[target]; + + // A. Widget zuweisen + parent->addChildWidget(child->widget()); + qDebug() << "Kind" << child->childName() << "wurde" << target << "zugeordnet."; + + // B. Initiale Parameterübergabe + child->setParentData(QStringLiteral("Konfig-Paket via %1").arg(parent->pluginName())); + + // C. Dynamische Signal-Slot Live-Verbindung (Absturzsicher via Pointer-Check) + QObject *parentObj = parent->qobjectInstance(); + QObject *childObj = dynamic_cast(child); + + if (parentObj && childObj) + { + bool connected = QObject::connect(parentObj, SIGNAL(dataChangedLive(QString)), childObj, SLOT(updateLiveData(QString))); + if (connected) + qDebug() << "Live-Signal verbunden für:" << child->childName(); + else + qWarning() << "Verbindung fehlgeschlagen für:" << child->childName(); + } + else + qWarning() << "Fehler beim Casten des Plugins" << child->childName() << "zu QObject!"; + } + else + qDebug() << "Warnung: Kein Parent gefunden für" << child->childName(); + } + + mainWindow.resize(500, 450); + mainWindow.show(); + return app.exec(); +} diff --git a/Lts/Tools/Examples/Plugins/interfaces/child_interface.h b/Lts/Tools/Examples/Plugins/interfaces/child_interface.h new file mode 100644 index 00000000..5dde5e61 --- /dev/null +++ b/Lts/Tools/Examples/Plugins/interfaces/child_interface.h @@ -0,0 +1,25 @@ +#pragma once + +#include +#include +#include + +class ChildInterface +{ +public: + virtual ~ChildInterface() = default; + virtual QString childName() const = 0; + virtual QString targetParentName() const = 0; + virtual QWidget* widget() = 0; + + // Für die einmalige Übergabe direkt nach dem Laden + virtual void setParentData(const QString& data) = 0; + + // Für die dynamischen Live-Updates zur Laufzeit + virtual void updateLiveData(const QString& text) = 0; +}; + +QT_BEGIN_NAMESPACE +Q_DECLARE_INTERFACE(ChildInterface, "gui:3:ChildInterface") +QT_END_NAMESPACE + diff --git a/Lts/Tools/Examples/Plugins/interfaces/parent_interface.h b/Lts/Tools/Examples/Plugins/interfaces/parent_interface.h new file mode 100644 index 00000000..7cbdd243 --- /dev/null +++ b/Lts/Tools/Examples/Plugins/interfaces/parent_interface.h @@ -0,0 +1,22 @@ +#pragma once + +#include +#include +#include + +class ParentInterface +{ + public: + virtual ~ParentInterface() = default; + virtual QString pluginName() const = 0; + virtual QWidget *widget() = 0; + virtual void addChildWidget(QWidget *childWidget) = 0; + + // Ermöglicht der App den Zugriff auf das QObject für connect() + virtual QObject *qobjectInstance() = 0; +}; + +QT_BEGIN_NAMESPACE +Q_DECLARE_INTERFACE(ParentInterface, "gui:3:ParentInterface") +QT_END_NAMESPACE + diff --git a/Lts/Tools/Examples/Plugins/plugins/CMakeLists.txt b/Lts/Tools/Examples/Plugins/plugins/CMakeLists.txt new file mode 100644 index 00000000..24e8fbcf --- /dev/null +++ b/Lts/Tools/Examples/Plugins/plugins/CMakeLists.txt @@ -0,0 +1,4 @@ +add_subdirectory(parent_alpha) +add_subdirectory(child_beta) +add_subdirectory(child_gamma) + diff --git a/Lts/Tools/Examples/Plugins/plugins/child_beta/CMakeLists.txt b/Lts/Tools/Examples/Plugins/plugins/child_beta/CMakeLists.txt new file mode 100644 index 00000000..035ec3e0 --- /dev/null +++ b/Lts/Tools/Examples/Plugins/plugins/child_beta/CMakeLists.txt @@ -0,0 +1,10 @@ +add_library(childBetaGui MODULE child_beta.cpp child_beta.h) +target_link_libraries(childBetaGui PRIVATE Qt5::Widgets) +target_include_directories(childBetaGui PRIVATE ${CMAKE_SOURCE_DIR}/interfaces) + +# Plugin in den Laufzeit-Ordner verschieben +set_target_properties(childBetaGui PROPERTIES + LIBRARY_OUTPUT_DIRECTORY "${PLUGIN_OUTPUT_DIR}" + RUNTIME_OUTPUT_DIRECTORY "${PLUGIN_OUTPUT_DIR}" +) + diff --git a/Lts/Tools/Examples/Plugins/plugins/child_beta/child_beta.cpp b/Lts/Tools/Examples/Plugins/plugins/child_beta/child_beta.cpp new file mode 100644 index 00000000..026d2719 --- /dev/null +++ b/Lts/Tools/Examples/Plugins/plugins/child_beta/child_beta.cpp @@ -0,0 +1,36 @@ +#include "child_beta.h" +#include + +namespace DLBO +{ +ChildBeta::ChildBeta() +{ + m_widget = new QWidget(); + QVBoxLayout *layout = new QVBoxLayout(m_widget); + m_widget->setStyleSheet(QStringLiteral("border: 1px solid green; background-color: #f0fff0; margin: 5px;")); + + QLabel *title = new QLabel(QStringLiteral("Kind-Widget 1")); + title->setStyleSheet(QStringLiteral("font-weight: bold; color: green;")); + + m_staticLabel = new QLabel(QStringLiteral("Warte auf Init-Daten...")); + m_liveLabel = new QLabel(QStringLiteral("Warte auf Live-Text...")); + + layout->addWidget(title); + layout->addWidget(m_staticLabel); + layout->addWidget(m_liveLabel); +} + +void ChildBeta::setParentData(const QString &data) +{ + if (m_staticLabel) + m_staticLabel->setText(QStringLiteral("Init-Wert: %1").arg(data)); +} + +void ChildBeta::updateLiveData(const QString &text) +{ + if (m_liveLabel) + { + m_liveLabel->setText(text.isEmpty() ? QStringLiteral("Warte auf Live-Text...") : QStringLiteral("Beta Live: ") + text); + } +} +} diff --git a/Lts/Tools/Examples/Plugins/plugins/child_beta/child_beta.h b/Lts/Tools/Examples/Plugins/plugins/child_beta/child_beta.h new file mode 100644 index 00000000..dda3e123 --- /dev/null +++ b/Lts/Tools/Examples/Plugins/plugins/child_beta/child_beta.h @@ -0,0 +1,33 @@ +#pragma once + +#include "../../interfaces/child_interface.h" +#include +#include + +namespace DLBO +{ +class ChildBeta + : public QObject + , public ChildInterface +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID "gui:3:ChildInterface") + Q_INTERFACES(ChildInterface) + + public: + ChildBeta(); + QString childName() const override { return QStringLiteral("BetaChild"); } + QString targetParentName() const override { return QStringLiteral("AlphaParent"); } + QWidget *widget() override { return m_widget; } + + void setParentData(const QString &data) override; + + public slots: + void updateLiveData(const QString &text) override; + + private: + QWidget *m_widget; + QLabel *m_staticLabel; + QLabel *m_liveLabel; +}; +} diff --git a/Lts/Tools/Examples/Plugins/plugins/child_beta/child_beta.json b/Lts/Tools/Examples/Plugins/plugins/child_beta/child_beta.json new file mode 100644 index 00000000..2c7d34a5 --- /dev/null +++ b/Lts/Tools/Examples/Plugins/plugins/child_beta/child_beta.json @@ -0,0 +1,3 @@ +{ + "Keys": ["child_beta"] +} diff --git a/Lts/Tools/Examples/Plugins/plugins/child_gamma/CMakeLists.txt b/Lts/Tools/Examples/Plugins/plugins/child_gamma/CMakeLists.txt new file mode 100644 index 00000000..dafb9cd0 --- /dev/null +++ b/Lts/Tools/Examples/Plugins/plugins/child_gamma/CMakeLists.txt @@ -0,0 +1,10 @@ +add_library(childGammaGui MODULE child_gamma.cpp child_gamma.h) +target_link_libraries(childGammaGui PRIVATE Qt5::Widgets) +target_include_directories(childGammaGui PRIVATE ${CMAKE_SOURCE_DIR}/interfaces) + +# Plugin in den Laufzeit-Ordner verschieben +set_target_properties(childGammaGui PROPERTIES + LIBRARY_OUTPUT_DIRECTORY "${PLUGIN_OUTPUT_DIR}" + RUNTIME_OUTPUT_DIRECTORY "${PLUGIN_OUTPUT_DIR}" +) + diff --git a/Lts/Tools/Examples/Plugins/plugins/child_gamma/child_gamma.cpp b/Lts/Tools/Examples/Plugins/plugins/child_gamma/child_gamma.cpp new file mode 100644 index 00000000..2e3ff0b0 --- /dev/null +++ b/Lts/Tools/Examples/Plugins/plugins/child_gamma/child_gamma.cpp @@ -0,0 +1,37 @@ +#include "child_gamma.h" +#include + +namespace DLBO +{ +ChildGamma::ChildGamma() +{ + m_widget = new QWidget(); + QVBoxLayout *layout = new QVBoxLayout(m_widget); + m_widget->setStyleSheet(QStringLiteral("border: 1px solid purple; background-color: #faf0ff; margin: 5px;")); + + QLabel *title = new QLabel(QStringLiteral("Kind-Widget 2")); + title->setStyleSheet(QStringLiteral("font-weight: bold; color: purple;")); + + m_staticLabel = new QLabel(QStringLiteral("Warte auf Init-Daten...")); + m_liveLabel = new QLabel(QStringLiteral("Warte auf Live-Text...")); + + layout->addWidget(title); + layout->addWidget(m_staticLabel); + layout->addWidget(m_liveLabel); +} + +void ChildGamma::setParentData(const QString &data) +{ + if (m_staticLabel) + m_staticLabel->setText(QStringLiteral("Init-Wert: %1").arg(data)); +} + +void ChildGamma::updateLiveData(const QString &text) +{ + if (m_liveLabel) + { + m_liveLabel->setText(text.isEmpty() ? QStringLiteral("Warte auf Live-Text...") : QStringLiteral("Gamma Live: ") + text); + } +} + +} diff --git a/Lts/Tools/Examples/Plugins/plugins/child_gamma/child_gamma.h b/Lts/Tools/Examples/Plugins/plugins/child_gamma/child_gamma.h new file mode 100644 index 00000000..cbdd8432 --- /dev/null +++ b/Lts/Tools/Examples/Plugins/plugins/child_gamma/child_gamma.h @@ -0,0 +1,33 @@ +#pragma once + +#include "../../interfaces/child_interface.h" +#include +#include + +namespace DLBO +{ +class ChildGamma + : public QObject + , public ChildInterface +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID "gui:3:ChildInterface") + Q_INTERFACES(ChildInterface) + + public: + ChildGamma(); + QString childName() const override { return QStringLiteral("GammaChild"); } + QString targetParentName() const override { return QStringLiteral("AlphaParent"); } + QWidget *widget() override { return m_widget; } + + void setParentData(const QString &data) override; + + public slots: + void updateLiveData(const QString &text) override; + + private: + QWidget *m_widget; + QLabel *m_staticLabel; + QLabel *m_liveLabel; +}; +} diff --git a/Lts/Tools/Examples/Plugins/plugins/child_gamma/child_gamma.json b/Lts/Tools/Examples/Plugins/plugins/child_gamma/child_gamma.json new file mode 100644 index 00000000..13be3450 --- /dev/null +++ b/Lts/Tools/Examples/Plugins/plugins/child_gamma/child_gamma.json @@ -0,0 +1,3 @@ +{ + "Keys": ["child_gamma"] +} diff --git a/Lts/Tools/Examples/Plugins/plugins/parent_alpha/CMakeLists.txt b/Lts/Tools/Examples/Plugins/plugins/parent_alpha/CMakeLists.txt new file mode 100644 index 00000000..c3fb8284 --- /dev/null +++ b/Lts/Tools/Examples/Plugins/plugins/parent_alpha/CMakeLists.txt @@ -0,0 +1,10 @@ +add_library(parentAlphaGui MODULE parent_alpha.cpp parent_alpha.h) +target_link_libraries(parentAlphaGui PRIVATE Qt5::Widgets) +target_include_directories(parentAlphaGui PRIVATE ${CMAKE_SOURCE_DIR}/interfaces) + +# Plugin in den Laufzeit-Ordner verschieben +set_target_properties(parentAlphaGui PROPERTIES + LIBRARY_OUTPUT_DIRECTORY "${PLUGIN_OUTPUT_DIR}" + RUNTIME_OUTPUT_DIRECTORY "${PLUGIN_OUTPUT_DIR}" +) + diff --git a/Lts/Tools/Examples/Plugins/plugins/parent_alpha/parent_alpha.cpp b/Lts/Tools/Examples/Plugins/plugins/parent_alpha/parent_alpha.cpp new file mode 100644 index 00000000..b030acae --- /dev/null +++ b/Lts/Tools/Examples/Plugins/plugins/parent_alpha/parent_alpha.cpp @@ -0,0 +1,31 @@ +#include "parent_alpha.h" +#include + +namespace DLBO +{ +ParentAlpha::ParentAlpha() +{ + m_widget = new QWidget(); + m_layout = new QVBoxLayout(m_widget); + m_widget->setStyleSheet(QStringLiteral("border: 2px solid blue; padding: 10px; margin: 5px;")); + + QLabel *label = new QLabel(QStringLiteral("Eltern-Widget (AlphaParent)\nBsp.: Tln-Info-Fenster")); + label->setStyleSheet(QStringLiteral("font-weight: bold; color: blue; font-size: 14px;")); + m_layout->addWidget(label); + + m_inputField = new QLineEdit(); + m_inputField->setPlaceholderText(QStringLiteral("Live-Eingabe für alle Kinder...")); + m_layout->addWidget(m_inputField); + + connect(m_inputField, &QLineEdit::textChanged, this, &ParentAlpha::dataChangedLive); +} + +void ParentAlpha::addChildWidget(QWidget *childWidget) +{ + if (childWidget) + { + m_layout->addWidget(childWidget); + } +} + +} diff --git a/Lts/Tools/Examples/Plugins/plugins/parent_alpha/parent_alpha.h b/Lts/Tools/Examples/Plugins/plugins/parent_alpha/parent_alpha.h new file mode 100644 index 00000000..5f86b7b8 --- /dev/null +++ b/Lts/Tools/Examples/Plugins/plugins/parent_alpha/parent_alpha.h @@ -0,0 +1,35 @@ +#pragma once + +#include "../../interfaces/parent_interface.h" +#include +#include +#include + +namespace DLBO +{ +class ParentAlpha + : public QObject + , public ParentInterface +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID "gui:3:ParentInterface") + Q_INTERFACES(ParentInterface) + + public: + ParentAlpha(); + QString pluginName() const override { return QStringLiteral("AlphaParent"); } + QWidget *widget() override { return m_widget; } + void addChildWidget(QWidget *childWidget) override; + QObject *qobjectInstance() override { return this; } + + signals: + void dataChangedLive(const QString &text); + + private: + QWidget *m_widget; + QVBoxLayout *m_layout; + QLineEdit *m_inputField; +}; + +} + diff --git a/Lts/Tools/Examples/Plugins/plugins/parent_alpha/parent_alpha.json b/Lts/Tools/Examples/Plugins/plugins/parent_alpha/parent_alpha.json new file mode 100644 index 00000000..7baab993 --- /dev/null +++ b/Lts/Tools/Examples/Plugins/plugins/parent_alpha/parent_alpha.json @@ -0,0 +1,3 @@ +{ + "Keys": ["parent_alpha"] +} diff --git a/Lts/Tools/Examples/Plugins/readme.txt b/Lts/Tools/Examples/Plugins/readme.txt new file mode 100644 index 00000000..77de2f46 --- /dev/null +++ b/Lts/Tools/Examples/Plugins/readme.txt @@ -0,0 +1,3 @@ +Confluence: https://confluence-classified.rh-int.de/spaces/GUEZDLBO/pages/186346247/Plugin+Konzept + +Jira: https://devhub.defence-elec.de/jira/browse/LS-671 diff --git a/Lts/Tools/Examples/TestGuiElement/CMakeLists.txt b/Lts/Tools/Examples/TestGuiElement/CMakeLists.txt new file mode 100644 index 00000000..a3c439ba --- /dev/null +++ b/Lts/Tools/Examples/TestGuiElement/CMakeLists.txt @@ -0,0 +1,31 @@ +cmake_minimum_required(VERSION 3.16) +project(GuiElementPlugin CXX) + +set(CMAKE_AUTOMOC ON) + + +SET(gui_element_SRCS + custom_widget.cpp + custom_widget.h + gui_element_plugin.cpp + gui_element_plugin.h +) + +NGL_WRAP_UI(gui_element_SRCS + custom_widget.ui +) + +NGL_ADD_LIBRARY(WS GuiElementPlugin MODULE ${gui_element_SRCS}) +# Pfad zum Interface-Ordner bekannt machen +NGL_TARGET_INCLUDE_DIRECTORIES(GuiElementPlugin PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/..) + +NGL_TARGET_LINK_LIBRARIES(GuiElementPlugin + Qt5::Widgets + LtsWidgets + LtsSession + LtsSessionData + GuiElementInterface + PpmDataPluginInterface + PpmCommon + LtsCoordTrans + ) diff --git a/Lts/Tools/Examples/TestGuiElement/custom_widget.cpp b/Lts/Tools/Examples/TestGuiElement/custom_widget.cpp new file mode 100644 index 00000000..8f8512ad --- /dev/null +++ b/Lts/Tools/Examples/TestGuiElement/custom_widget.cpp @@ -0,0 +1,33 @@ +#include "custom_widget.h" +#include "LtsCoordTrans/lts_coord_trans.h" +#include "ui_custom_widget.h" +#include + +CustomWidget::CustomWidget(QWidget *parent) + : QWidget(parent) + , m_ui(new Ui::CustomWidget) +{ + m_ui->setupUi(this); + + connect(m_ui->pbFindOnMap, &QToolButton::clicked, this, &CustomWidget::finOnMapClicked); +} + +CustomWidget::~CustomWidget() +{ + delete m_ui; +} + +void CustomWidget::onPositionChanged(const Core::GeoPosition &position, int participantId) +{ + if (participantId == 0 || std::isnan(position.lon()) || std::isnan(position.lat())) + m_ui->lblPos->setText(tr("Invalid Position")); + else + { + QString mgrs = LtsCoordTrans::mgrsFromGeographic(position.lon(), position.lat()); + + if (!qFuzzyIsNull(position.z())) + mgrs += QStringLiteral(" | ") + QString::number(position.z(), 'f', 2); + + m_ui->lblPos->setText(mgrs); + } +} diff --git a/Lts/Tools/Examples/TestGuiElement/custom_widget.h b/Lts/Tools/Examples/TestGuiElement/custom_widget.h new file mode 100644 index 00000000..7dfb3251 --- /dev/null +++ b/Lts/Tools/Examples/TestGuiElement/custom_widget.h @@ -0,0 +1,24 @@ +#pragma once + +#include "Core/core.hpp" +#include + +namespace Ui { +class CustomWidget; +} + +class CustomWidget : public QWidget +{ + Q_OBJECT + +public: + explicit CustomWidget(QWidget *parent = nullptr); + ~CustomWidget(); + void onPositionChanged(const Core::GeoPosition &position, int participantId); + +signals: + void finOnMapClicked(); +private: + Ui::CustomWidget *m_ui; +}; + diff --git a/Lts/Tools/Examples/TestGuiElement/custom_widget.ui b/Lts/Tools/Examples/TestGuiElement/custom_widget.ui new file mode 100644 index 00000000..cbcdb4e0 --- /dev/null +++ b/Lts/Tools/Examples/TestGuiElement/custom_widget.ui @@ -0,0 +1,70 @@ + + + CustomWidget + + + + 0 + 0 + 268 + 88 + + + + Form + + + + + + Plugin-Test-DEBUG ONLY + + + + + + Position: + + + + + + + <Position> + + + + + + + + 40 + 40 + + + + Find on map + + + <TIME OVER TARGET> + + + + :/style/center_to_object.svg:/style/center_to_object.svg + + + + 40 + 40 + + + + + + + + + + + + diff --git a/Lts/Tools/Examples/TestGuiElement/gui_element_plugin.cpp b/Lts/Tools/Examples/TestGuiElement/gui_element_plugin.cpp new file mode 100644 index 00000000..7dbb5429 --- /dev/null +++ b/Lts/Tools/Examples/TestGuiElement/gui_element_plugin.cpp @@ -0,0 +1,60 @@ +#include +#include +#include + +#include "gui_element_plugin.h" +#include "custom_widget.h" + + + +#include + +GuiElementPlugin::GuiElementPlugin() +{ + +} + +QWidget *GuiElementPlugin::createGuiElement(QWidget *parent) +{ + m_customWidget = new CustomWidget(parent); + if (!m_ppmDtc) + { + qCritical()<<" ppmDtc not yet init!!!"; + return nullptr; + } + + connect(m_customWidget, &CustomWidget::finOnMapClicked, this, &GuiElementPlugin::onFindOnMap); + connect(m_ppmDtc.get(), &ParticipantManagement::Interface::Dtc::participantPositionChanged, + m_customWidget, [=](const ParticipantManagement::ParticipantPosition &ppPos){ + m_customWidget->onPositionChanged(ppPos.pos(), m_participantId); + }, Qt::UniqueConnection); + m_customWidget->onPositionChanged(m_ppmDtc->participantPosition(m_participantId).pos(), m_participantId); + return m_customWidget; +} + + +bool GuiElementPlugin::init(LtsSession::LtsSession *session, int participantId) +{ + m_session = session; + + if (!m_session->getDtc(m_ppmDtc)) + { + qCritical()<<"couln't init ppmDtc for gui element "; + return false; + } + + if (!session->getForeignGuiInterface(m_sitMapGuiIfc)) + { + qCritical()<<"couln't init sitMapGuiIfc for gui element "; + return false; + } + + m_participantId = participantId; + return true; +} + +void GuiElementPlugin::onFindOnMap() +{ + if (m_sitMapGuiIfc) + m_sitMapGuiIfc->centerMapToParticipant(m_participantId); +} diff --git a/Lts/Tools/Examples/TestGuiElement/gui_element_plugin.h b/Lts/Tools/Examples/TestGuiElement/gui_element_plugin.h new file mode 100644 index 00000000..77c5f33c --- /dev/null +++ b/Lts/Tools/Examples/TestGuiElement/gui_element_plugin.h @@ -0,0 +1,36 @@ +#pragma once +#include +#include +#include +#include +#include + + + +class CustomWidget; + +class GuiElementPlugin : public QObject, public GuiElementInterface +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID IGuiElementPlugin) + Q_INTERFACES(GuiElementInterface) + +public: + GuiElementPlugin(); + + QString pluginName() {return QStringLiteral("KeyValueGuiElement_XY");} + QWidget* createGuiElement(QWidget *parent = nullptr); + + bool init(LtsSession::LtsSession *session, int participantId = 0); + void onFindOnMap(); + + +private: + LtsSession::LtsSession *m_session; + std::shared_ptr m_ppmDtc; + std::shared_ptr m_sitMapGuiIfc; + CustomWidget *m_customWidget; + int m_participantId = 0; +}; + + diff --git a/Lts/Tools/RestClientUi/CMakeLists.txt b/Lts/Tools/RestClientUi/CMakeLists.txt new file mode 100644 index 00000000..9184c736 --- /dev/null +++ b/Lts/Tools/RestClientUi/CMakeLists.txt @@ -0,0 +1,38 @@ +# +# Tool for sending http-requests to a REST API +# $Id$ +# $HeadURL$ +# $Author$ +# Created by Hannes Fritsche, ESZS, 2026-08-25 +# + +SET(SRCS + main_window.cpp + main_window.h + main.cpp +) + +NGL_WRAP_UI(SRCS main_window.ui) + +NGL_ADD_EXECUTABLE(TOOLSWS RestClientUi ${SRCS}) + +NGL_INSTALL(WS DIRECTORY rest_templates/ DESTINATION bin/updates/) + +NGL_TARGET_LINK_LIBRARIES(RestClientUi + Qt5::Widgets + Qt5::Gui + LtsRestClient +) + +NGL_INSTALL_TARGET(RestClientUi) + +IF (BUILD_TOOLSWS) + SET(TEMPLATES_SOURCE "${CMAKE_CURRENT_SOURCE_DIR}/rest_templates") + SET(TEMPLATES_DESTINATION "${CMAKE_BINARY_DIR}/bin/rest_templates") + + ADD_CUSTOM_COMMAND( + TARGET RestClientUi POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_directory "${TEMPLATES_SOURCE}" "${TEMPLATES_DESTINATION}" + COMMENT "Copy ${TEMPLATES_SOURCE} to ${TEMPLATES_DESTINATION}" + ) +ENDIF() diff --git a/Lts/Tools/RestClientUi/main.cpp b/Lts/Tools/RestClientUi/main.cpp new file mode 100644 index 00000000..7779f08f --- /dev/null +++ b/Lts/Tools/RestClientUi/main.cpp @@ -0,0 +1,22 @@ +/* + * main for RestClientUi + * $Id$ + * $HeadURL$ + * $Author$ + * Created by Hannes Fritsche, ESZS, 2026-08-25 + */ + +#include +#include "main_window.h" + +// Documentation on how to use it can be found at https://confluence-classified.rh-int.de/spaces/LEG/pages/207919552/HOWTO+RestClientUi+Tool + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + + MainWindow window; + window.show(); + + return app.exec(); +} diff --git a/Lts/Tools/RestClientUi/main_window.cpp b/Lts/Tools/RestClientUi/main_window.cpp new file mode 100644 index 00000000..484e986f --- /dev/null +++ b/Lts/Tools/RestClientUi/main_window.cpp @@ -0,0 +1,301 @@ +#include "main_window.h" +#include "LtsRestClient/lts_rest_client.h" +#include "ui_main_window.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// Documentation on how to use it can be found at https://confluence-classified.rh-int.de/spaces/LEG/pages/207919552/HOWTO+RestClientUi+Tool + +MainWindow::MainWindow(QWidget *parent) + : QMainWindow(parent) + , ui(new Ui::MainWindow) +{ + ui->setupUi(this); + + // Connect core HTTP actions + connect(ui->m_getBtn, &QPushButton::clicked, this, &MainWindow::onGetClicked); + connect(ui->m_postBtn, &QPushButton::clicked, this, &MainWindow::onPostClicked); + connect(ui->m_putBtn, &QPushButton::clicked, this, &MainWindow::onPutClicked); + connect(ui->m_deleteBtn, &QPushButton::clicked, this, &MainWindow::onDeleteClicked); + + // Connect logging output actions + connect(ui->m_clearResponseBtn, &QPushButton::clicked, this, &MainWindow::onClearResponseClicked); + connect(ui->m_exportResponseBtn, &QPushButton::clicked, this, &MainWindow::onExportResponseClicked); + + loadRequestTemplates(); +} + +MainWindow::~MainWindow() +{ + delete ui; +} + +void MainWindow::onClearResponseClicked() +{ + ui->m_responseOutput->clear(); +} + +void MainWindow::onExportResponseClicked() +{ + const QString content = ui->m_responseOutput->toPlainText().trimmed(); + + if (content.isEmpty()) + { + QMessageBox::warning(this, QStringLiteral("Export Failed"), QStringLiteral("There is no response data available to export.")); + + return; + } + + const QString fileName = QFileDialog::getSaveFileName(this, + QStringLiteral("Save Response as JSON"), + QDir::homePath() + QStringLiteral("/response.json"), + QStringLiteral("JSON Files (*.json);;All Files (*)")); + + if (fileName.isEmpty()) + return; + + QJsonParseError parseError; + const QJsonDocument jsonDoc = QJsonDocument::fromJson(content.toUtf8(), &parseError); + QByteArray dataToWrite; + + if (parseError.error == QJsonParseError::NoError) + dataToWrite = jsonDoc.toJson(QJsonDocument::Indented); + else + dataToWrite = content.toUtf8(); + + QFile file(fileName); + + if (file.open(QIODevice::WriteOnly | QIODevice::Text)) + { + file.write(dataToWrite); + file.close(); + + QMessageBox::information(this, QStringLiteral("Success"), QStringLiteral("File saved successfully.")); + } + else + QMessageBox::critical(this, QStringLiteral("Error"), QStringLiteral("Could not write to file:\n") + file.errorString()); +} + +void MainWindow::highlightMethodButton(const QString &method) +{ + // Reset stylesheets for all HTTP method buttons back to default + ui->m_getBtn->setStyleSheet(QString()); + ui->m_postBtn->setStyleSheet(QString()); + ui->m_putBtn->setStyleSheet(QString()); + ui->m_deleteBtn->setStyleSheet(QString()); + + // Modern green border highlight style string + const QString highlightStyle = QStringLiteral("border: 2px solid #2ecc71; font-weight: bold; background-color: #e8f8f5;"); + + // Apply style based on the uppercase method string + const QString upperMethod = method.toUpper().trimmed(); + if (upperMethod == QStringLiteral("GET")) + ui->m_getBtn->setStyleSheet(highlightStyle); + else if (upperMethod == QStringLiteral("POST")) + ui->m_postBtn->setStyleSheet(highlightStyle); + else if (upperMethod == QStringLiteral("PUT")) + ui->m_putBtn->setStyleSheet(highlightStyle); + else if (upperMethod == QStringLiteral("DELETE") + || upperMethod == QStringLiteral("DEL")) + ui->m_deleteBtn->setStyleSheet(highlightStyle); +} + +void MainWindow::loadRequestTemplates() +{ + const QString templatePath = QCoreApplication::applicationDirPath() + QStringLiteral("/templates"); + QDir directory(templatePath); + + if (!directory.exists()) + directory.mkpath(QStringLiteral(".")); + + QStringList filters; + filters << QStringLiteral("*.json"); + directory.setNameFilters(filters); + + const QFileInfoList fileList = directory.entryInfoList(QDir::Files); + + int insertIndex = 0; + for (const QFileInfo &fileInfo : fileList) + { + const QString absolutePath = fileInfo.absoluteFilePath(); + + QFile file(absolutePath); + if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) + { + continue; + } + + const QByteArray fileContent = file.readAll(); + file.close(); + + QJsonParseError parseError; + const QJsonDocument metaDoc = QJsonDocument::fromJson(fileContent, &parseError); + + if (parseError.error != QJsonParseError::NoError + || !metaDoc.isObject()) + continue; + + const QJsonObject metaObj = metaDoc.object(); + + QString displayName = metaObj.value(QStringLiteral("name")).toString(); + if (displayName.isEmpty()) + displayName = fileInfo.fileName(); + + const QString targetEndpoint = metaObj.value(QStringLiteral("endpoint")).toString(); + const QString targetMethod = metaObj.value(QStringLiteral("method")).toString().toUpper().trimmed(); + + QPushButton *templateBtn = new QPushButton(displayName, this); + + connect(templateBtn, &QPushButton::clicked, this, [this, metaObj, targetEndpoint, targetMethod]() + { + // 1. Fill values into fields + ui->m_endpointInput->setText(targetEndpoint); + ui->m_jsonInput->clear(); + + if (metaObj.contains(QStringLiteral("payload"))) + { + const QJsonValue payloadValue = metaObj.value(QStringLiteral("payload")); + + if (payloadValue.isObject()) + { + const QJsonDocument doc(payloadValue.toObject()); + ui->m_jsonInput->setPlainText(QString::fromUtf8(doc.toJson(QJsonDocument::Indented))); + } + else if (payloadValue.isArray()) + { + const QJsonDocument doc(payloadValue.toArray()); + ui->m_jsonInput->setPlainText(QString::fromUtf8(doc.toJson(QJsonDocument::Indented))); + } + else + { + ui->m_jsonInput->setPlainText(payloadValue.toVariant().toString()); + } + } + + // 2. Visually focus the matching HTTP button + highlightMethodButton(targetMethod); + + // 3. NEW: Optional Auto-Submit trigger chain execution + if (ui->m_autoSubmitCheck->isChecked()) + { + if (targetMethod == QStringLiteral("GET")) + ui->m_getBtn->animateClick(); // animateClick provides nice visual feedback + else if (targetMethod == QStringLiteral("POST")) + ui->m_postBtn->animateClick(); + else if (targetMethod == QStringLiteral("PUT")) + ui->m_putBtn->animateClick(); + else if (targetMethod == QStringLiteral("DELETE") + || targetMethod == QStringLiteral("DEL")) + ui->m_deleteBtn->animateClick(); + } + }); + + ui->templateButtonContainer->insertWidget(insertIndex++, templateBtn); + } +} + +LtsCommon::LtsRestClient *MainWindow::createClient() +{ + return new LtsCommon::LtsRestClient(ui->m_urlInput->text(), this); +} + +void MainWindow::showSuccess(const QJsonDocument &json) +{ + ui->m_responseOutput->setTextColor(QColor(Qt::darkGreen)); + ui->m_responseOutput->setText(QString::fromLatin1(json.toJson(QJsonDocument::Indented))); +} + +void MainWindow::showError(const QString &error) +{ + ui->m_responseOutput->setTextColor(QColor(Qt::red)); + ui->m_responseOutput->setText(QStringLiteral("Error: ") + error); +} + +void MainWindow::onGetClicked() +{ + ui->m_responseOutput->clear(); + LtsCommon::LtsRestClient *client = createClient(); + client->get( + ui->m_endpointInput->text(), + [this](const QJsonDocument &json) + { + showSuccess(json); + }, + [this](const QString &err) + { + showError(err); + }); +} + +void MainWindow::onPostClicked() +{ + ui->m_responseOutput->clear(); + QJsonParseError parseError; + QJsonDocument jsonDoc = QJsonDocument::fromJson(ui->m_jsonInput->toPlainText().toUtf8(), &parseError); + + if (parseError.error != QJsonParseError::NoError) + { + showError(QStringLiteral("Invalid JSON input syntax: ") + parseError.errorString()); + return; + } + + LtsCommon::LtsRestClient *client = createClient(); + client->post( + ui->m_endpointInput->text(), jsonDoc, + [this](const QJsonDocument &json) + { + showSuccess(json); + }, + [this](const QString &err) + { + showError(err); + }); +} + +void MainWindow::onPutClicked() +{ + ui->m_responseOutput->clear(); + QJsonParseError parseError; + QJsonDocument jsonDoc = QJsonDocument::fromJson(ui->m_jsonInput->toPlainText().toUtf8(), &parseError); + + if (parseError.error != QJsonParseError::NoError) + { + showError(QStringLiteral("Invalid JSON input syntax: ") + parseError.errorString()); + return; + } + + LtsCommon::LtsRestClient *client = createClient(); + client->put( + ui->m_endpointInput->text(), jsonDoc, + [this](const QJsonDocument &json) + { + showSuccess(json); + }, + [this](const QString &err) + { + showError(err); + }); +} + +void MainWindow::onDeleteClicked() +{ + ui->m_responseOutput->clear(); + LtsCommon::LtsRestClient *client = createClient(); + client->del( + ui->m_endpointInput->text(), + [this](const QJsonDocument &json) + { + showSuccess(json); + }, + [this](const QString &err) + { + showError(err); + }); +} diff --git a/Lts/Tools/RestClientUi/main_window.h b/Lts/Tools/RestClientUi/main_window.h new file mode 100644 index 00000000..081895ed --- /dev/null +++ b/Lts/Tools/RestClientUi/main_window.h @@ -0,0 +1,38 @@ +#pragma once + +#include "LtsRestClient/lts_rest_client.h" +#include +#include + +// Documentation on how to use it can be found at https://confluence-classified.rh-int.de/spaces/LEG/pages/207919552/HOWTO+RestClientUi+Tool + +namespace Ui +{ +class MainWindow; +} + +class MainWindow : public QMainWindow +{ + Q_OBJECT + + public: + explicit MainWindow(QWidget *parent = nullptr); + ~MainWindow(); + + private slots: + void onGetClicked(); + void onPostClicked(); + void onPutClicked(); + void onDeleteClicked(); + void onClearResponseClicked(); + void onExportResponseClicked(); + + private: + void loadRequestTemplates(); + LtsCommon::LtsRestClient *createClient(); + void showSuccess(const QJsonDocument &json); + void showError(const QString &error); + void highlightMethodButton(const QString &method); + + Ui::MainWindow *ui; +}; // class MainWindow diff --git a/Lts/Tools/RestClientUi/main_window.ui b/Lts/Tools/RestClientUi/main_window.ui new file mode 100644 index 00000000..45fdc01d --- /dev/null +++ b/Lts/Tools/RestClientUi/main_window.ui @@ -0,0 +1,215 @@ + + + MainWindow + + + + 0 + 0 + 750 + 580 + + + + Qt REST Client GUI + + + + + + + + 180 + 0 + + + + + 220 + 16777215 + + + + + + + + true + + + + JSON Templates: + + + + + + + true + + + + + 0 + 0 + 200 + 520 + + + + + + + Qt::Vertical + + + + 0 + 0 + + + + + + + + + + + + + + + + + + + Basis URL: + + + + + + + http://localhost:8080 + + + + + + + Endpunkt: + + + + + + + /posts + + + + + + + + + JSON Input (for POST / PUT): + + + + + + + + + + Submit automatically on template click + + + + + + + + + GET + + + + + + + POST + + + + + + + PUT + + + + + + + DELETE + + + + + + + + + Server Response / Error Log: + + + + + + + true + + + + + + + + + Qt::Horizontal + + + + 0 + 0 + + + + + + + + Clear Log + + + + + + + Export as JSON... + + + + + + + + + + + + + diff --git a/Lts/Tools/RestClientUi/rest_templates/01_itemsKeys.json b/Lts/Tools/RestClientUi/rest_templates/01_itemsKeys.json new file mode 100644 index 00000000..9aa9c7a7 --- /dev/null +++ b/Lts/Tools/RestClientUi/rest_templates/01_itemsKeys.json @@ -0,0 +1,5 @@ +{ + "name": "itemsKeys", + "method": "GET", + "endpoint": "/uncat/itemsKeys" +} diff --git a/specs/external/ctc_devel_tds_qt5-1.0.spec b/specs/external/ctc_devel_tds_qt5-1.0.spec index 726b442a..4ad11db1 100755 --- a/specs/external/ctc_devel_tds_qt5-1.0.spec +++ b/specs/external/ctc_devel_tds_qt5-1.0.spec @@ -17,7 +17,7 @@ Summary: CTC Development Meta-Package (Qt5 development) Name: ctc_devel_tds_qt5 Version: 1.0 -Release: 25 +Release: 27 License: proprietary Group: Applications/Communications Source: ctc_devel_tds_qt5.tgz @@ -44,6 +44,7 @@ Requires: ctc_schusstafel Requires: gdb Requires: git Requires: grantlee5-devel +Requires: gtest Requires: pkgconfig(gstreamer-1.0) Requires: pkgconfig(gstreamer-app-1.0) Requires: pkgconfig(gstreamer-video-1.0) @@ -86,6 +87,7 @@ Requires: rpm-build Requires: subversion Requires: subversion-tools Requires: subversion-bash-completion +Requires: tacticalapi-devel Requires: valgrind Requires: vlc-devel Requires: xsd diff --git a/translations/tds_de_DE.ts b/translations/tds_de_DE.ts index 31940771..584ba12e 100755 --- a/translations/tds_de_DE.ts +++ b/translations/tds_de_DE.ts @@ -323,7 +323,7 @@ HQ Report - HQ Bericht + HQ Meldung @@ -9615,27 +9615,27 @@ Die Parameter können nicht geändert werden! Undefined - Undefiniert + undefiniert Disconnecting - Trennen + trennen Disconnected - Getrennt + nicht verbunden Connecting - Verbinden + verbinden Connected - Verbunden + verbunden @@ -17308,7 +17308,7 @@ Die zu ladende Datei ist nicht lesbar (%1). HQ Report - HQ Bericht + HQ Meldung @@ -17343,7 +17343,7 @@ Die zu ladende Datei ist nicht lesbar (%1). HQ Report - HQ Bericht + HQ Meldung