Add debug logging for directory filtering in make_rpm_ubuntu26.py
- Added logging at root, Lts, and Lts/Proxies levels to trace filtering - Helps diagnose why TrainingAreaBase is not being copied Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
343 files changed
+52718
-1634
No files matched your search
@@ -17,19 +17,13 @@ endif()
|
||||
|
||||
# Add only existing subdirectories to allow partial checkouts / incremental migration
|
||||
if(RELEASE_BUILD)
|
||||
# For first release: build Lts/Common and TrainingAreaBase (for tabTelegrams library)
|
||||
message(STATUS "RELEASE_BUILD=ON: Building Lts/Common and TrainingAreaBase/tabTelegrams")
|
||||
# For first release: only build Lts/Common (excludes Tools, Application, DDS, Services, Proxies, Plugins, Viewer, Projects)
|
||||
message(STATUS "RELEASE_BUILD=ON: Building only Lts/Common")
|
||||
if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/Common")
|
||||
NGL_ADD_SUBDIR_GUARDED(Common)
|
||||
else()
|
||||
message(STATUS "Skipping missing Lts subdirectory: Common")
|
||||
endif()
|
||||
# TrainingAreaBase needed for tabTelegrams library (used by TetraIF/CoPrtCnv)
|
||||
if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/Proxies/TrainingAreaBase")
|
||||
NGL_ADD_SUBDIR_GUARDED(Proxies/TrainingAreaBase)
|
||||
else()
|
||||
message(STATUS "Skipping missing Lts subdirectory: Proxies/TrainingAreaBase")
|
||||
endif()
|
||||
else()
|
||||
set(LTS_SUBDIRS Tools Application DDS Common Services Proxies Plugins Viewer Projects)
|
||||
foreach(dir IN LISTS LTS_SUBDIRS)
|
||||
|
||||
+8
-1
@@ -16,8 +16,10 @@
|
||||
#include <QtCore/QString>
|
||||
#include <QtGui/QIcon>
|
||||
#include <QtWidgets/QScrollArea>
|
||||
#include <QScroller>
|
||||
#include <QtWidgets/QAbstractItemView>
|
||||
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
|
||||
#include <QScroller>
|
||||
#endif
|
||||
|
||||
#include <functional>
|
||||
|
||||
@@ -80,6 +82,7 @@ inline void addTouchScroll(QWidget *widget)
|
||||
{
|
||||
if (!widget)
|
||||
return;
|
||||
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
|
||||
widget->setAttribute(Qt::WA_AcceptTouchEvents);
|
||||
|
||||
{
|
||||
@@ -101,6 +104,10 @@ inline void addTouchScroll(QWidget *widget)
|
||||
return;
|
||||
}
|
||||
}
|
||||
#else
|
||||
// Qt6: Touch scrolling is enabled by default for scrollable widgets
|
||||
Q_UNUSED(widget)
|
||||
#endif
|
||||
}
|
||||
|
||||
enum class ButtonSize
|
||||
|
||||
+4
-9
@@ -16,12 +16,10 @@ else()
|
||||
endif()
|
||||
|
||||
|
||||
# Skip DDS-dependent code generation and plugins for release builds
|
||||
IF(NOT RELEASE_BUILD)
|
||||
INCLUDE(MacroRTIDDSGen)
|
||||
INCLUDE(MacroCodeGenIdl)
|
||||
ADD_SUBDIRECTORY(Plugins)
|
||||
ENDIF()
|
||||
INCLUDE(MacroRTIDDSGen)
|
||||
INCLUDE(MacroCodeGenIdl)
|
||||
|
||||
ADD_SUBDIRECTORY(Plugins)
|
||||
|
||||
SET(xml_FILE tab_service.xml)
|
||||
|
||||
@@ -66,8 +64,6 @@ endif()
|
||||
#
|
||||
# --- Library svcTabCommon --------------------------------------------------------------------------------
|
||||
#
|
||||
# Skip for release builds - DDS-dependent service library
|
||||
IF(NOT RELEASE_BUILD)
|
||||
SET(SRCS_common
|
||||
logger.cpp
|
||||
logger.h
|
||||
@@ -134,7 +130,6 @@ NGL_TARGET_LINK_LIBRARIES(svcTabCommon
|
||||
)
|
||||
ENDIF(BUILD_RTI)
|
||||
NGL_INSTALL_TARGET(svcTabCommon)
|
||||
ENDIF() # NOT RELEASE_BUILD
|
||||
|
||||
#
|
||||
# --- Library svcTabClient --------------------------------------------------------------------------------
|
||||
|
||||
+8
-1
@@ -16,8 +16,10 @@
|
||||
#include <QtCore/QString>
|
||||
#include <QtGui/QIcon>
|
||||
#include <QtWidgets/QScrollArea>
|
||||
#include <QScroller>
|
||||
#include <QtWidgets/QAbstractItemView>
|
||||
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
|
||||
#include <QScroller>
|
||||
#endif
|
||||
|
||||
#include <functional>
|
||||
|
||||
@@ -80,6 +82,7 @@ inline void addTouchScroll(QWidget *widget)
|
||||
{
|
||||
if (!widget)
|
||||
return;
|
||||
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
|
||||
widget->setAttribute(Qt::WA_AcceptTouchEvents);
|
||||
|
||||
{
|
||||
@@ -101,6 +104,10 @@ inline void addTouchScroll(QWidget *widget)
|
||||
return;
|
||||
}
|
||||
}
|
||||
#else
|
||||
// Qt6: Touch scrolling is enabled by default for scrollable widgets
|
||||
Q_UNUSED(widget)
|
||||
#endif
|
||||
}
|
||||
|
||||
enum class ButtonSize
|
||||
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
#
|
||||
# $Id$
|
||||
# $HeadURL$
|
||||
# $Author:
|
||||
#
|
||||
|
||||
OPTION(BUILD_SVC_HLA "Build service HighLevelArchitecture (default: OFF)" OFF)
|
||||
OPTION(BUILD_WLS "Build service WirelessLocationSystem (default: OFF)" OFF)
|
||||
|
||||
IF(BUILD_RTI)
|
||||
ADD_SUBDIRECTORY(Buildings)
|
||||
ADD_SUBDIRECTORY(WarehouseManagement)
|
||||
ENDIF()
|
||||
|
||||
# TrainingAreaBase is a core dependency - always include it when Proxies is included
|
||||
ADD_SUBDIRECTORY(TrainingAreaBase) # sql
|
||||
IF(BUILD_RTI)
|
||||
ADD_SUBDIRECTORY(TrainingAreaBaseOC)
|
||||
ENDIF()
|
||||
|
||||
ADD_SUBDIRECTORY(CombatNetRadio)
|
||||
ADD_SUBDIRECTORY(DifferentialGPS)
|
||||
IF(BUILD_RTI)
|
||||
ADD_SUBDIRECTORY(GuezNasat) # rpcgen
|
||||
ENDIF()
|
||||
|
||||
IF(BUILD_RTI)
|
||||
ADD_SUBDIRECTORY(ComponentMonitor)
|
||||
ENDIF()
|
||||
|
||||
IF (BUILD_WLS)
|
||||
ADD_SUBDIRECTORY(WirelessLocationSystem)
|
||||
ENDIF()
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
|
||||
Proxies
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
* BLD - Buildings
|
||||
* HLA - High Level Architecture
|
||||
* TAB - Training Area Base
|
||||
* WLS - WirelessLocationService
|
||||
* WMS - WarehouseManagement
|
||||
* CNR - Combat Net Radio
|
||||
* CMO - ComponentMonitor (Monitor InstrumentationAsset vi Nagios/Checkmk)
|
||||
+344
@@ -0,0 +1,344 @@
|
||||
#
|
||||
# $Id$
|
||||
# $HeadURL$
|
||||
# $Author$
|
||||
#
|
||||
|
||||
# Uncomment if necessary
|
||||
#ADD_SUBDIRECTORY(UnitTests)
|
||||
#ADD_SUBDIRECTORY(ModuleTests)
|
||||
|
||||
# Make ${Qt6_Gui} optional
|
||||
if(QT6_GUI_AVAILABLE AND TARGET Qt6::Gui)
|
||||
set(Qt6_Gui ${Qt6_Gui})
|
||||
else()
|
||||
set(Qt6_Gui "")
|
||||
endif()
|
||||
|
||||
|
||||
INCLUDE(MacroRTIDDSGen)
|
||||
INCLUDE(MacroCodeGenIdl)
|
||||
|
||||
ADD_SUBDIRECTORY(Plugins)
|
||||
|
||||
SET(xml_FILE tab_service.xml)
|
||||
|
||||
#
|
||||
# --- Library tabTelegrams --------------------------------------------------------------------------------
|
||||
#
|
||||
find_package(Qt6 COMPONENTS Core Sql Network REQUIRED)
|
||||
set(_QT_CORE_TARGET Qt6::Core)
|
||||
set(_QT_SQL_TARGET Qt6::Sql)
|
||||
set(_QT_NETWORK_TARGET Qt6::Network)
|
||||
|
||||
SET(SRCS_telegrams
|
||||
training_area_telegrams.cpp
|
||||
training_area_telegrams.h
|
||||
)
|
||||
NGL_ADD_LIBRARY(AAR SV WS HLA tabTelegrams STATIC ${SRCS_telegrams})
|
||||
NGL_TARGET_INCLUDE_DIRECTORIES(tabTelegrams
|
||||
PUBLIC
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/..
|
||||
)
|
||||
NGL_TARGET_LINK_LIBRARIES(tabTelegrams
|
||||
PUBLIC
|
||||
${_QT_CORE_TARGET}
|
||||
$<IF:$<AND:$<BOOL:${QT6_GUI_AVAILABLE}>,$<TARGET_EXISTS:Qt6::Gui>>,Qt6::Gui,>
|
||||
${_QT_NETWORK_TARGET}
|
||||
)
|
||||
|
||||
# install on RPM build and copy for local builds so that LogView automatically finds the training_area_telegrams.h file
|
||||
if (BUILD_RPM)
|
||||
add_custom_target(training_area_telegrams.h_bin) # empty target so that LogView still builds on RPM build
|
||||
NGL_INSTALL(AAR SV FILES training_area_telegrams.h DESTINATION bin)
|
||||
else()
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_BINARY_DIR}/bin/training_area_telegrams.h
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/training_area_telegrams.h ${CMAKE_BINARY_DIR}/bin/training_area_telegrams.h
|
||||
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/training_area_telegrams.h
|
||||
COMMENT "[Local build] Copy training_area_telegrams.h for LogView into bin/"
|
||||
)
|
||||
add_custom_target(training_area_telegrams.h_bin DEPENDS ${CMAKE_BINARY_DIR}/bin/training_area_telegrams.h)
|
||||
endif()
|
||||
|
||||
#
|
||||
# --- Library svcTabCommon --------------------------------------------------------------------------------
|
||||
#
|
||||
SET(SRCS_common
|
||||
logger.cpp
|
||||
logger.h
|
||||
tab_export.h
|
||||
)
|
||||
|
||||
IF(BUILD_RTI)
|
||||
# Generate tab_enums.idl / tab.idl
|
||||
CODEGEN_IDL_SVC(SRCS_common ${xml_FILE})
|
||||
# Generate tab_db_impl.cpp/.h, tab_db.h
|
||||
CODEGEN_DATABASE(SRCS_common ${xml_FILE})
|
||||
# Generate *.cpp/*.hpp from idl (only with BUILD_RTI)
|
||||
RTIDDSGEN(SRCS_common tab_enums.idl)
|
||||
# tab.idl includes pdm.idl, so add explicit dependency on pdm.idl generation
|
||||
RTIDDSGEN(SRCS_common tab.idl DEPENDS ${CMAKE_BINARY_DIR}/Lts/Services/ProjectDataManagement/pdm.idl)
|
||||
# Generate tab_dt[s,c]_types.h, tab_ft[s,c]_types.h
|
||||
CODEGEN_TOPIC_TYPEDEFS(SRCS_common ${xml_FILE})
|
||||
# generate tab_[d|f]tc.h
|
||||
CODEGEN_CLIENT_TOPICS_IFC(SRCS_common ${xml_FILE})
|
||||
ELSE()
|
||||
# Stub files for BUILD_RTI=OFF - NO code generation
|
||||
LIST(APPEND SRCS_common
|
||||
stubs/tab_enums_stub.hpp
|
||||
stubs/tab_stub.hpp
|
||||
stubs/tab_db_stub.hpp
|
||||
stubs/tab_topic_type_plugin_stub.cpp
|
||||
)
|
||||
ENDIF()
|
||||
|
||||
# Create target only if component flags allow
|
||||
NGL_ADD_LIBRARY2(AAR SV WS HLA svcTabCommon SHARED ${SRCS_common})
|
||||
|
||||
# Generate export header ALWAYS (needed for logger.h even if target not built)
|
||||
# Use custom command to create minimal export header if target wasn't created
|
||||
IF(NOT TARGET svcTabCommon)
|
||||
# Create a dummy static library just for export header generation
|
||||
ADD_LIBRARY(svcTabCommon STATIC ${SRCS_common})
|
||||
ENDIF()
|
||||
GENERATE_EXPORT_HEADER(svcTabCommon EXPORT_FILE_NAME "svctabcommon_export.h")
|
||||
|
||||
NGL_TARGET_INCLUDE_DIRECTORIES(svcTabCommon
|
||||
PUBLIC
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/stubs
|
||||
)
|
||||
NGL_TARGET_LINK_LIBRARIES(svcTabCommon
|
||||
PUBLIC
|
||||
Qt6::Core
|
||||
$<IF:$<AND:$<BOOL:${QT6_GUI_AVAILABLE}>,$<TARGET_EXISTS:Qt6::Gui>>,Qt6::Gui,>
|
||||
Qt6::Sql
|
||||
Qt6::Network
|
||||
NGLLogger
|
||||
ngldb
|
||||
$<IF:$<TARGET_EXISTS:svcPdmCommon>,svcPdmCommon,>
|
||||
LtsUtilsCoreHeaderOnly
|
||||
)
|
||||
IF(BUILD_RTI)
|
||||
NGL_TARGET_LINK_LIBRARIES(svcTabCommon
|
||||
PRIVATE
|
||||
RTI::nddscpp2
|
||||
PUBLIC
|
||||
ddscore
|
||||
)
|
||||
ENDIF(BUILD_RTI)
|
||||
NGL_INSTALL_TARGET(svcTabCommon)
|
||||
|
||||
#
|
||||
# --- Library svcTabClient --------------------------------------------------------------------------------
|
||||
#
|
||||
# Skip for release builds - DDS-dependent service library
|
||||
IF(NOT RELEASE_BUILD)
|
||||
SET(SRCS_client
|
||||
tab_export.h
|
||||
)
|
||||
|
||||
IF(BUILD_RTI)
|
||||
# generate tab_[d|f]tc_impl.[cpp|h]
|
||||
CODEGEN_CLIENT_TOPICS_IMPL(SRCS_client ${xml_FILE})
|
||||
ENDIF()
|
||||
|
||||
NGL_ADD_LIBRARY2(AAR SV WS HLA svcTabClient SHARED ${SRCS_client})
|
||||
# NGL_ADD_LIBRARY2 (unlike NGL_ADD_LIBRARY) does not define the
|
||||
# MAKE_<SYMBOL>_LIB compile guard, but the generated tab_[d|f]tc_impl.h
|
||||
# headers require MAKE_SVCTABCLIENT_LIB — same situation as
|
||||
# svcCoreClient/ddscore, which define their guards explicitly.
|
||||
TARGET_COMPILE_DEFINITIONS(svcTabClient PRIVATE MAKE_SVCTABCLIENT_LIB)
|
||||
NGL_TARGET_INCLUDE_DIRECTORIES(svcTabClient
|
||||
PUBLIC
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../
|
||||
${CMAKE_CURRENT_BINARY_DIR}/../
|
||||
)
|
||||
|
||||
IF(BUILD_RTI)
|
||||
NGL_TARGET_LINK_LIBRARIES(svcTabClient
|
||||
PRIVATE
|
||||
RTI::nddscpp2
|
||||
ddsconnector
|
||||
PUBLIC
|
||||
svcTabCommon
|
||||
ddsftc
|
||||
)
|
||||
ENDIF(BUILD_RTI)
|
||||
NGL_INSTALL_TARGET(svcTabClient)
|
||||
ENDIF() # NOT RELEASE_BUILD
|
||||
|
||||
#
|
||||
# --- Library svcTabServer --------------------------------------------------------------------------------
|
||||
#
|
||||
# Skip for release builds - DDS-dependent service library
|
||||
IF(NOT RELEASE_BUILD)
|
||||
SET(SRCS_server
|
||||
tx_mixin.cpp
|
||||
tx_mixin.h
|
||||
)
|
||||
|
||||
IF(BUILD_RTI)
|
||||
# generate tab_[d|f]ts.h, tab_[d|f]ts_impl.[cpp|h]
|
||||
CODEGEN_SERVER_TOPICS(SRCS_server ${xml_FILE})
|
||||
ENDIF()
|
||||
|
||||
NGL_ADD_LIBRARY2(AAR HLA SV svcTabServer SHARED ${SRCS_server}) # NGL_ADD_LIBRARY2 won't work here - no time for investigations
|
||||
# Generated tab_[d|f]ts_impl.h require MAKE_SVCTABSERVER_LIB (see svcTabClient above).
|
||||
TARGET_COMPILE_DEFINITIONS(svcTabServer PRIVATE MAKE_SVCTABSERVER_LIB)
|
||||
if(BUILD_SV OR BUILD_HLA)
|
||||
GENERATE_EXPORT_HEADER(svcTabServer) # FIXME: quick workaround
|
||||
endif()
|
||||
NGL_TARGET_INCLUDE_DIRECTORIES(svcTabServer
|
||||
PUBLIC
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../
|
||||
${CMAKE_CURRENT_BINARY_DIR}/../
|
||||
)
|
||||
|
||||
NGL_TARGET_LINK_LIBRARIES(svcTabServer
|
||||
PUBLIC
|
||||
svcTabCommon
|
||||
ngldb
|
||||
${_QT_CORE_TARGET}
|
||||
$<IF:$<AND:$<BOOL:${QT6_GUI_AVAILABLE}>,$<TARGET_EXISTS:Qt6::Gui>>,Qt6::Gui,>
|
||||
${_QT_NETWORK_TARGET}
|
||||
)
|
||||
IF(BUILD_RTI)
|
||||
NGL_TARGET_LINK_LIBRARIES(svcTabServer
|
||||
PRIVATE
|
||||
RTI::nddscpp2
|
||||
ddsconnector
|
||||
ddsfts
|
||||
)
|
||||
ENDIF(BUILD_RTI)
|
||||
NGL_INSTALL_TARGET(svcTabServer)
|
||||
|
||||
#
|
||||
# --- Topic Type Plugin --------------------------------------------------------------
|
||||
#
|
||||
IF(BUILD_RTI)
|
||||
CREATE_TOPIC_TYPE_PLUGIN(${xml_FILE})
|
||||
ENDIF()
|
||||
|
||||
#
|
||||
# --- RecordReplayPlugin --------------------------------------------------------------
|
||||
#
|
||||
IF(BUILD_RTI)
|
||||
CREATE_RECORD_REPLAY_PLUGIN_SHARED(${xml_FILE})
|
||||
IF (TARGET tabRecordReplayPlugin)
|
||||
TARGET_SOURCES(tabRecordReplayPlugin
|
||||
PRIVATE
|
||||
tab_record_replay_plugin_custom.cpp
|
||||
tab_record_replay_plugin_custom.h
|
||||
)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
#
|
||||
# --- Executable svcTrainingAreaBase (sTAB) -------------------------------------------------
|
||||
#
|
||||
# Skip for release builds - DDS-dependent executable
|
||||
IF(NOT RELEASE_BUILD)
|
||||
SET(SRCS_exe
|
||||
dds_handler.cpp
|
||||
dds_handler.h
|
||||
exm_handler.cpp
|
||||
exm_handler.h
|
||||
ism_handler.cpp
|
||||
ism_handler.h
|
||||
main.cpp
|
||||
main_handler.cpp
|
||||
main_handler.h
|
||||
pdm_handler.cpp
|
||||
pdm_handler.h
|
||||
ppm_handler.cpp
|
||||
ppm_handler.h
|
||||
position_handler.cpp
|
||||
position_handler.h
|
||||
recv_from_dds_aes.cpp
|
||||
recv_from_dds_aes.h
|
||||
recv_from_dds_fts.cpp
|
||||
recv_from_dds_fts.h
|
||||
recv_from_tab.h
|
||||
send_to_dds.cpp
|
||||
send_to_dds.h
|
||||
send_to_tab.h
|
||||
settings.cpp
|
||||
settings.h
|
||||
tab_export.h
|
||||
tab_plugin_interface.h
|
||||
|
||||
WebSocketInterface/data_manager.cpp
|
||||
WebSocketInterface/data_manager.h
|
||||
WebSocketInterface/json_keys.h
|
||||
WebSocketInterface/websocket_interface_handler.cpp
|
||||
WebSocketInterface/websocket_interface_handler.h
|
||||
WebSocketInterface/Messages/client_message.cpp
|
||||
WebSocketInterface/Messages/client_message.h
|
||||
WebSocketInterface/Messages/reply_message.cpp
|
||||
WebSocketInterface/Messages/reply_message.h
|
||||
# tx_mixin.cpp
|
||||
# tx_mixin.h
|
||||
|
||||
log4cxx_tab.props
|
||||
${xml_FILE}
|
||||
)
|
||||
|
||||
IF(BUILD_RTI)
|
||||
# Generate tab.sql, tab.xml
|
||||
CODEGEN_SQL(SRCS_exe ${xml_FILE})
|
||||
ENDIF()
|
||||
|
||||
NGL_ADD_SVC_ICON(SRCS_exe)
|
||||
NGL_ADD_EXECUTABLE(AAR SV svcTrainingAreaBase ${SRCS_exe})
|
||||
NGL_TARGET_LINK_LIBRARIES(svcTrainingAreaBase
|
||||
Qt6::Core
|
||||
Qt6::Network
|
||||
LtsCoordTrans
|
||||
LtsWebSocketServer
|
||||
LtsCommandLineParser
|
||||
LtsPluginLoader
|
||||
LtsUtilsCoreHeaderOnly
|
||||
LtsUtilsCore
|
||||
svcTabCommon
|
||||
svcTabServer
|
||||
# main_handler.cpp includes the generated <TrainingAreaBase/tab_record_replay_plugin.h>
|
||||
# and directly instantiates TrainingAreaBase::RecordReplayPluginCustom (whose methods
|
||||
# live in the plugin .so). Linking the plugin target (rather than relying on a full
|
||||
# `make all` having generated the header first) makes this a proper build dependency:
|
||||
# the plugin's codegen runs before the exe compiles (so the generated header exists),
|
||||
# the plugin's PUBLIC build-tree include dir is inherited (so the include resolves),
|
||||
# and the plugin .so is linked (so the RecordReplayPluginCustom symbols resolve).
|
||||
$<IF:$<TARGET_EXISTS:tabRecordReplayPlugin>,tabRecordReplayPlugin,>
|
||||
svcNomClient
|
||||
svcAesClient
|
||||
svcOpmClient
|
||||
svcCoreClient
|
||||
svcAsmClient
|
||||
svcExmClient
|
||||
$<IF:$<TARGET_EXISTS:svcIsmClient>,svcIsmClient,>
|
||||
svcPdmClient
|
||||
svcPpmClient
|
||||
$<IF:$<TARGET_EXISTS:ddsconnector>,ddsconnector,>
|
||||
nglsettings
|
||||
ProjectConfig
|
||||
NGLLogger
|
||||
nglcoreapplication
|
||||
ngltools
|
||||
tabTelegrams
|
||||
)
|
||||
NGL_INSTALL_TARGET(svcTrainingAreaBase)
|
||||
NGL_INSTALL(AAR SV FILES log4cxx_tab.props DESTINATION bin)
|
||||
NGL_ADD_TARGET_LINK(svcTrainingAreaBase sTAB)
|
||||
ENDIF() # NOT RELEASE_BUILD
|
||||
|
||||
# clientPluginInterface
|
||||
ADD_LIBRARY(tabPluginInterface INTERFACE)
|
||||
TARGET_SOURCES(tabPluginInterface INTERFACE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/tab_plugin_interface.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/training_area_telegrams.h
|
||||
)
|
||||
TARGET_INCLUDE_DIRECTORIES(tabPluginInterface INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/../)
|
||||
TARGET_LINK_LIBRARIES(tabPluginInterface INTERFACE Qt6::Core $<IF:$<TARGET_EXISTS:svcPdmCommon>,svcPdmCommon,>)
|
||||
+118
@@ -0,0 +1,118 @@
|
||||
#
|
||||
# @RDE_HEADER@
|
||||
# IsmHandler for WirelessLocationSystem
|
||||
# $Id: CMakeLists.txt 62899 2024-05-29 11:08:50Z ewert_j $
|
||||
# $HeadURL: svn://slssvn/TDS/branches/product/features/ufom/Lts/Proxies/TrainingAreaBase/Plugins/UFomHlaJson/CMakeLists.txt $
|
||||
# $Author: ewert_j $
|
||||
# Created by Julius Ewert, ESIM, 2024-03-20
|
||||
#
|
||||
|
||||
# Make ${Qt6_WebSockets} optional
|
||||
if(QT6_GUI_AVAILABLE AND TARGET Qt6::WebSockets)
|
||||
set(Qt6_WebSockets ${Qt6_WebSockets})
|
||||
else()
|
||||
set(Qt6_WebSockets "")
|
||||
endif()
|
||||
|
||||
|
||||
SET(SRCS_SAA
|
||||
telegrams.h
|
||||
telegrams.cpp
|
||||
generatetelegrams.cpp
|
||||
generatetelegrams.h
|
||||
adler_export.h
|
||||
|
||||
)
|
||||
NGL_ADD_LIBRARY2(WS AAR SV HLA saaTelegrams SHARED ${SRCS_SAA})
|
||||
|
||||
NGL_INSTALL_TARGET(saaTelegrams)
|
||||
NGL_TARGET_INCLUDE_DIRECTORIES(saaTelegrams
|
||||
PUBLIC
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../
|
||||
${CMAKE_CURRENT_BINARY_DIR}/../
|
||||
${CMAKE_BINARY_DIR}/Lts/Services
|
||||
)
|
||||
NGL_TARGET_LINK_LIBRARIES(saaTelegrams
|
||||
svcPdmClient # qt5 parity: brings the RTI platform defines (RTI_LINUX etc.)
|
||||
Qt6::Core
|
||||
${Qt6_WebSockets}
|
||||
)
|
||||
|
||||
# Ensure PDM IDL files are generated before building saaTelegrams
|
||||
if(TARGET svcPdmCommon)
|
||||
add_dependencies(saaTelegrams svcPdmCommon)
|
||||
endif()
|
||||
|
||||
SET(SRCS
|
||||
logger.cpp
|
||||
logger.h
|
||||
main_dispatcher.cpp
|
||||
main_dispatcher.h
|
||||
plugin.cpp
|
||||
plugin.h
|
||||
|
||||
json_dispatcher.cpp
|
||||
json_dispatcher.h
|
||||
json_handler_rx.cpp
|
||||
json_handler_rx.h
|
||||
json_handler_tx.cpp
|
||||
json_handler_tx.h
|
||||
ppm_handler.cpp
|
||||
ppm_handler.h
|
||||
pdm_handler.cpp
|
||||
pdm_handler.h
|
||||
flm_handler.cpp
|
||||
flm_handler.h
|
||||
aes_handler.cpp
|
||||
aes_handler.h
|
||||
asm_handler.cpp
|
||||
asm_handler.h
|
||||
|
||||
ws_interface.h
|
||||
ws_handler.h
|
||||
ws_handler.cpp
|
||||
|
||||
saa_interface.h
|
||||
saa_interface.cpp
|
||||
|
||||
settings.cpp
|
||||
settings.h
|
||||
)
|
||||
NGL_ADD_LIBRARY(AAR SV tabPluginAdler MODULE ${SRCS})
|
||||
NGL_INSTALL_TARGET(tabPluginAdler)
|
||||
NGL_TARGET_LINK_LIBRARIES(tabPluginAdler
|
||||
PUBLIC
|
||||
svcTabServer
|
||||
NGLLogger
|
||||
nglsettings
|
||||
ngltools
|
||||
Qt6::Core
|
||||
Qt6::Network
|
||||
${Qt6_WebSockets}
|
||||
tabPluginInterface
|
||||
OpmDataPluginInterface
|
||||
tabTelegrams
|
||||
svcTabCommon
|
||||
svcTabServer
|
||||
svcPpmClient
|
||||
svcAsmClient
|
||||
svcPdmClient
|
||||
svcExmClient
|
||||
svcAesClient
|
||||
svcFlmClient
|
||||
svcCoreClient
|
||||
svcNomClient
|
||||
svcOpmClient
|
||||
$<IF:$<TARGET_EXISTS:ddsconnector>,ddsconnector,>
|
||||
LtsUtilsDds
|
||||
saaTelegrams
|
||||
Trajectory
|
||||
)
|
||||
|
||||
#
|
||||
# --- Tests --------------------------------------------------------------
|
||||
#
|
||||
IF(BUILD_TESTING)
|
||||
ADD_SUBDIRECTORY(ModuleTest)
|
||||
ENDIF()
|
||||
|
||||
+79
@@ -0,0 +1,79 @@
|
||||
c# UFOM HLA Plugin
|
||||
|
||||
This is a small documentation of the UFOM HLA TAB Plugin. This document will cover most of the behaviours of the different Telegrams that are supported.
|
||||
## Change Position
|
||||
This plugin publishes all changes in position from every Participant that is not external. A "MountActionRequest" will be sent out if an external participant mounts an internal participant ( vehicle ).
|
||||
- External Participant Mounts Internal Participant -> **MountActionRequest** will be sent.
|
||||
- External Participant Unmounts from internal participant -> **UnmountActionRequest** will be sent.
|
||||
- Mounted external participant mounts any internal participant -> **MountActionRequest** will be sent.
|
||||
> **Note:** No **UnmountActionRequest** will be sent in this case
|
||||
|
||||
- Mounted external participant mounts any external participant -> **Nothing** will be sent.
|
||||
|
||||
## JSON Telegrams
|
||||
### UFOMHLA_ADD_PARTICIPANT
|
||||
ID: 8100
|
||||
|
||||
### UFOMHLA_REMOVE_PARTICIPANT
|
||||
ID: 8101
|
||||
|
||||
### UFOMHLA_POSITION_CHANGED
|
||||
ID: 8102
|
||||
|
||||
#### Example:
|
||||
|
||||
{
|
||||
"typeId": 8102,
|
||||
"type": "UFomHlaPositionChanged",
|
||||
"data":{
|
||||
"header": {
|
||||
"equipmentNumber": 1234,
|
||||
"timeStamp": 12341234
|
||||
},
|
||||
"lon": 1.2341234,
|
||||
"lat": 1.2341234,
|
||||
"z": 0
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
### UFOMHLA_VULNERABILITY_STATE_CHANGED
|
||||
ID: 8103
|
||||
|
||||
### UFOMHLA_LASER_DESIGNATION
|
||||
ID: 8104
|
||||
|
||||
### UFOMHLA_SEND_CHARGE_TYPES
|
||||
ID: 8105
|
||||
|
||||
### UFOMHLA_PARTICIPANT_MOUNT
|
||||
ID: 8106
|
||||
**mountedOn** : Equipment number of the participant to be mounted
|
||||
#### Example:
|
||||
|
||||
{
|
||||
"typeId": 8101,
|
||||
"type": "UFomHlaParticipantMount",
|
||||
"data":{
|
||||
"header": {
|
||||
"equipmentNumber": 1234,
|
||||
"timeStamp": 12341234
|
||||
},
|
||||
"mountedOn": 123,
|
||||
}
|
||||
}
|
||||
|
||||
### UFOMHLA_PARTICIPANT_UNMOUNT
|
||||
ID: 8107
|
||||
#### Example:
|
||||
|
||||
{
|
||||
"typeId": 8101,
|
||||
"type": "UFomHlaParticipantUnmount",
|
||||
"data":{
|
||||
"header": {
|
||||
"equipmentNumber": 1234,
|
||||
"timeStamp": 12341234
|
||||
}
|
||||
}
|
||||
}
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"data": {
|
||||
"text": "Freier Text"
|
||||
},
|
||||
"reciver": "EXCON@GUEZ.DE",
|
||||
"referenceUuid": "",
|
||||
"sender": "SAA@GUEZ.DE",
|
||||
"timestamp": {
|
||||
"jahr": 2025,
|
||||
"minuten": 27,
|
||||
"monat": 5,
|
||||
"sekunden": 10,
|
||||
"stunden": 13,
|
||||
"tag": 16,
|
||||
"zdm": "ZDM",
|
||||
"zds": "ZDS",
|
||||
"zvz": "ZVz"
|
||||
},
|
||||
"type": "EX-AQ",
|
||||
"typeId": 5001,
|
||||
"uuid": "1f7bcdcf-083e-435f-88b3-6986dcada2b3",
|
||||
"version": ""
|
||||
}
|
||||
+92
@@ -0,0 +1,92 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/schema#",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"data": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"text": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"text"
|
||||
]
|
||||
},
|
||||
"reciver": {
|
||||
"type": "string"
|
||||
},
|
||||
"referenceUuid": {
|
||||
"type": "string"
|
||||
},
|
||||
"sender": {
|
||||
"type": "string"
|
||||
},
|
||||
"timestamp": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"jahr": {
|
||||
"type": "integer"
|
||||
},
|
||||
"minuten": {
|
||||
"type": "integer"
|
||||
},
|
||||
"monat": {
|
||||
"type": "integer"
|
||||
},
|
||||
"sekunden": {
|
||||
"type": "integer"
|
||||
},
|
||||
"stunden": {
|
||||
"type": "integer"
|
||||
},
|
||||
"tag": {
|
||||
"type": "integer"
|
||||
},
|
||||
"zdm": {
|
||||
"type": "string"
|
||||
},
|
||||
"zds": {
|
||||
"type": "string"
|
||||
},
|
||||
"zvz": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"jahr",
|
||||
"minuten",
|
||||
"monat",
|
||||
"sekunden",
|
||||
"stunden",
|
||||
"tag",
|
||||
"zdm",
|
||||
"zds",
|
||||
"zvz"
|
||||
]
|
||||
},
|
||||
"type": {
|
||||
"type": "string"
|
||||
},
|
||||
"typeId": {
|
||||
"type": "integer"
|
||||
},
|
||||
"uuid": {
|
||||
"type": "string"
|
||||
},
|
||||
"version": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"data",
|
||||
"reciver",
|
||||
"referenceUuid",
|
||||
"sender",
|
||||
"timestamp",
|
||||
"type",
|
||||
"typeId",
|
||||
"uuid",
|
||||
"version"
|
||||
]
|
||||
}
|
||||
+56
@@ -0,0 +1,56 @@
|
||||
{
|
||||
"data": {
|
||||
"feuerkommando": {
|
||||
"einheit": 5,
|
||||
"verein": "verein Erkundungsdaten"
|
||||
},
|
||||
"koordinate": {
|
||||
"hoehe": 55,
|
||||
"koordinate": {
|
||||
"latitude": 53.3779,
|
||||
"longitude": 8.758
|
||||
}
|
||||
},
|
||||
"stellungen": {
|
||||
"waffenplaetze": [
|
||||
{
|
||||
"hoehe": 56,
|
||||
"koordinate": {
|
||||
"latitude": 53.37791,
|
||||
"longitude": 8.759
|
||||
}
|
||||
},
|
||||
{
|
||||
"hoehe": 57,
|
||||
"koordinate": {
|
||||
"latitude": 53.37792,
|
||||
"longitude": 8.76
|
||||
}
|
||||
}
|
||||
],
|
||||
"wirkungsbereich": {
|
||||
"grundrichtung": 33,
|
||||
"links": 44,
|
||||
"rechts": 55
|
||||
}
|
||||
}
|
||||
},
|
||||
"reciver": "EXCON@GUEZ.DE",
|
||||
"referenceUuid": "",
|
||||
"sender": "SAA@GUEZ.DE",
|
||||
"timestamp": {
|
||||
"jahr": 2025,
|
||||
"minuten": 18,
|
||||
"monat": 5,
|
||||
"sekunden": 59,
|
||||
"stunden": 13,
|
||||
"tag": 16,
|
||||
"zdm": "ZDM",
|
||||
"zds": "ZDS",
|
||||
"zvz": "ZVz"
|
||||
},
|
||||
"type": "EX-Erkundungsergebnisse",
|
||||
"typeId": 5000,
|
||||
"uuid": "{f8abc4af-5e65-459d-bd49-89f533fdc900}",
|
||||
"version": ""
|
||||
}
|
||||
+191
@@ -0,0 +1,191 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/schema#",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"data": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"feuerkommando": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"einheit": {
|
||||
"type": "integer"
|
||||
},
|
||||
"verein": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"einheit",
|
||||
"verein"
|
||||
]
|
||||
},
|
||||
"koordinate": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"hoehe": {
|
||||
"type": "integer"
|
||||
},
|
||||
"koordinate": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"latitude": {
|
||||
"type": "number"
|
||||
},
|
||||
"longitude": {
|
||||
"type": "number"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"latitude",
|
||||
"longitude"
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"hoehe",
|
||||
"koordinate"
|
||||
]
|
||||
},
|
||||
"stellungen": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"waffenplaetze": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"hoehe": {
|
||||
"type": "integer"
|
||||
},
|
||||
"koordinate": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"latitude": {
|
||||
"type": "number"
|
||||
},
|
||||
"longitude": {
|
||||
"type": "number"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"latitude",
|
||||
"longitude"
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"hoehe",
|
||||
"koordinate"
|
||||
]
|
||||
}
|
||||
},
|
||||
"wirkungsbereich": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"grundrichtung": {
|
||||
"type": "integer"
|
||||
},
|
||||
"links": {
|
||||
"type": "integer"
|
||||
},
|
||||
"rechts": {
|
||||
"type": "integer"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"grundrichtung",
|
||||
"links",
|
||||
"rechts"
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"waffenplaetze",
|
||||
"wirkungsbereich"
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"feuerkommando",
|
||||
"koordinate",
|
||||
"stellungen"
|
||||
]
|
||||
},
|
||||
"reciver": {
|
||||
"type": "string"
|
||||
},
|
||||
"referenceUuid": {
|
||||
"type": "string"
|
||||
},
|
||||
"sender": {
|
||||
"type": "string"
|
||||
},
|
||||
"timestamp": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"jahr": {
|
||||
"type": "integer"
|
||||
},
|
||||
"minuten": {
|
||||
"type": "integer"
|
||||
},
|
||||
"monat": {
|
||||
"type": "integer"
|
||||
},
|
||||
"sekunden": {
|
||||
"type": "integer"
|
||||
},
|
||||
"stunden": {
|
||||
"type": "integer"
|
||||
},
|
||||
"tag": {
|
||||
"type": "integer"
|
||||
},
|
||||
"zdm": {
|
||||
"type": "string"
|
||||
},
|
||||
"zds": {
|
||||
"type": "string"
|
||||
},
|
||||
"zvz": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"jahr",
|
||||
"minuten",
|
||||
"monat",
|
||||
"sekunden",
|
||||
"stunden",
|
||||
"tag",
|
||||
"zdm",
|
||||
"zds",
|
||||
"zvz"
|
||||
]
|
||||
},
|
||||
"type": {
|
||||
"type": "string"
|
||||
},
|
||||
"typeId": {
|
||||
"type": "integer"
|
||||
},
|
||||
"uuid": {
|
||||
"type": "string"
|
||||
},
|
||||
"version": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"data",
|
||||
"reciver",
|
||||
"referenceUuid",
|
||||
"sender",
|
||||
"timestamp",
|
||||
"type",
|
||||
"typeId",
|
||||
"uuid",
|
||||
"version"
|
||||
]
|
||||
}
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"data": {
|
||||
"feuerkampf": "feuerHaltDaten",
|
||||
"kategorie": "FH_E",
|
||||
"koordinate": {
|
||||
"latitude": 53.37791,
|
||||
"longitude": 8.759
|
||||
},
|
||||
"radius": 50,
|
||||
"zpNummer": 5
|
||||
},
|
||||
"reciver": "EXCON@GUEZ.DE",
|
||||
"referenceUuid": "",
|
||||
"sender": "SAA@GUEZ.DE",
|
||||
"timestamp": {
|
||||
"jahr": 2025,
|
||||
"minuten": 18,
|
||||
"monat": 5,
|
||||
"sekunden": 6,
|
||||
"stunden": 13,
|
||||
"tag": 16,
|
||||
"zdm": "ZDM",
|
||||
"zds": "ZDS",
|
||||
"zvz": "ZVz"
|
||||
},
|
||||
"type": "EX-FH",
|
||||
"typeId": 1006,
|
||||
"uuid": "cafed47c-da39-4978-86aa-d126c9d78d8b",
|
||||
"version": ""
|
||||
}
|
||||
+120
@@ -0,0 +1,120 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/schema#",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"data": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"feuerkampf": {
|
||||
"type": "string"
|
||||
},
|
||||
"kategorie": {
|
||||
"type": "string"
|
||||
},
|
||||
"koordinate": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"latitude": {
|
||||
"type": "number"
|
||||
},
|
||||
"longitude": {
|
||||
"type": "number"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"latitude",
|
||||
"longitude"
|
||||
]
|
||||
},
|
||||
"radius": {
|
||||
"type": "integer"
|
||||
},
|
||||
"zpNummer": {
|
||||
"type": "integer"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"feuerkampf",
|
||||
"kategorie",
|
||||
"koordinate",
|
||||
"radius",
|
||||
"zpNummer"
|
||||
]
|
||||
},
|
||||
"reciver": {
|
||||
"type": "string"
|
||||
},
|
||||
"referenceUuid": {
|
||||
"type": "string"
|
||||
},
|
||||
"sender": {
|
||||
"type": "string"
|
||||
},
|
||||
"timestamp": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"jahr": {
|
||||
"type": "integer"
|
||||
},
|
||||
"minuten": {
|
||||
"type": "integer"
|
||||
},
|
||||
"monat": {
|
||||
"type": "integer"
|
||||
},
|
||||
"sekunden": {
|
||||
"type": "integer"
|
||||
},
|
||||
"stunden": {
|
||||
"type": "integer"
|
||||
},
|
||||
"tag": {
|
||||
"type": "integer"
|
||||
},
|
||||
"zdm": {
|
||||
"type": "string"
|
||||
},
|
||||
"zds": {
|
||||
"type": "string"
|
||||
},
|
||||
"zvz": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"jahr",
|
||||
"minuten",
|
||||
"monat",
|
||||
"sekunden",
|
||||
"stunden",
|
||||
"tag",
|
||||
"zdm",
|
||||
"zds",
|
||||
"zvz"
|
||||
]
|
||||
},
|
||||
"type": {
|
||||
"type": "string"
|
||||
},
|
||||
"typeId": {
|
||||
"type": "integer"
|
||||
},
|
||||
"uuid": {
|
||||
"type": "string"
|
||||
},
|
||||
"version": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"data",
|
||||
"reciver",
|
||||
"referenceUuid",
|
||||
"sender",
|
||||
"timestamp",
|
||||
"type",
|
||||
"typeId",
|
||||
"uuid",
|
||||
"version"
|
||||
]
|
||||
}
|
||||
+100
@@ -0,0 +1,100 @@
|
||||
{
|
||||
"data": {
|
||||
"abfeuerungsArt": "A",
|
||||
"dauer": 30,
|
||||
"feuerkampfReferenz": "REF:48271",
|
||||
"feuerkommando": [
|
||||
{
|
||||
"verein": "AB7X",
|
||||
"wirkmittel": [
|
||||
{
|
||||
"auftreffpunkt": {
|
||||
"hoehe": 0,
|
||||
"koordinate": {
|
||||
"latitude": 53.37787,
|
||||
"longitude": 8.7573
|
||||
}
|
||||
},
|
||||
"flugbahnpunkt": [
|
||||
{
|
||||
"xRelativ": 200,
|
||||
"yRelativ": 77,
|
||||
"zRelativ": 300,
|
||||
"zeit": 17
|
||||
},
|
||||
{
|
||||
"xRelativ": 900,
|
||||
"yRelativ": 177,
|
||||
"zRelativ": 700,
|
||||
"zeit": 19
|
||||
}
|
||||
],
|
||||
"flugzeit": 15,
|
||||
"geschoss": {
|
||||
"anzahl": 1,
|
||||
"geschosssorte": "SprengDM121",
|
||||
"intervall": 1,
|
||||
"ladung": "M_DM72",
|
||||
"zuender": "Aufschlag_DM241",
|
||||
"zuenderFunktion": "AZoV",
|
||||
"zuenderZeit": 0
|
||||
},
|
||||
"gipfelhoehe": 377,
|
||||
"kenner": 0,
|
||||
"schussrichtung": 177,
|
||||
"streuung": {
|
||||
"peBurstDeflection": 0.7,
|
||||
"peBurstRange": 0.3,
|
||||
"peDeflection": 0.7,
|
||||
"peRange": 7.7
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"forderung": "VER",
|
||||
"zieldaten": {
|
||||
"breiteRadius": 25,
|
||||
"elemente": 1,
|
||||
"geometrie": "P",
|
||||
"koordinate": {
|
||||
"hoehe": 0,
|
||||
"koordinate": {
|
||||
"latitude": 53.37787,
|
||||
"longitude": 8.7573
|
||||
}
|
||||
},
|
||||
"nummer": 7,
|
||||
"relativKoordinate": {
|
||||
"hoehe": 5,
|
||||
"koordinate": {
|
||||
"latitude": 53.8,
|
||||
"longitude": 8.8
|
||||
}
|
||||
},
|
||||
"subTyp": "APERS",
|
||||
"tiefe": 26,
|
||||
"typ": "EX_L20_PERS",
|
||||
"zielachse": 17,
|
||||
"zog": 7
|
||||
}
|
||||
},
|
||||
"receiver": "EXCON@GUEZ.DE",
|
||||
"referenceUuid": "",
|
||||
"sender": "SAA@GUEZ.DE",
|
||||
"timestamp": {
|
||||
"jahr": 2025,
|
||||
"minuten": 14,
|
||||
"monat": 5,
|
||||
"sekunden": 29,
|
||||
"stunden": 13,
|
||||
"tag": 16,
|
||||
"zdm": "ZDM",
|
||||
"zds": "ZDS",
|
||||
"zvz": "ZVz"
|
||||
},
|
||||
"type": " EX-FQ(BA-BB-FK)",
|
||||
"typeId": 1000,
|
||||
"uuid": "878cda84-c72a-4d57-bb5c-22774856cb22",
|
||||
"version": ""
|
||||
}
|
||||
+361
@@ -0,0 +1,361 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/schema#",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"data": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"abfeuerungsArt": {
|
||||
"type": "string"
|
||||
},
|
||||
"dauer": {
|
||||
"type": "integer"
|
||||
},
|
||||
"feuerkampfReferenz": {
|
||||
"type": "string"
|
||||
},
|
||||
"feuerkommando": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"verein": {
|
||||
"type": "string"
|
||||
},
|
||||
"wirkmittel": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"auftreffpunkt": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"hoehe": {
|
||||
"type": "integer"
|
||||
},
|
||||
"koordinate": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"latitude": {
|
||||
"type": "number"
|
||||
},
|
||||
"longitude": {
|
||||
"type": "number"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"latitude",
|
||||
"longitude"
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"hoehe",
|
||||
"koordinate"
|
||||
]
|
||||
},
|
||||
"flugbahnpunkt": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"xRelativ": {
|
||||
"type": "integer"
|
||||
},
|
||||
"yRelativ": {
|
||||
"type": "integer"
|
||||
},
|
||||
"zRelativ": {
|
||||
"type": "integer"
|
||||
},
|
||||
"zeit": {
|
||||
"type": "integer"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"xRelativ",
|
||||
"yRelativ",
|
||||
"zRelativ",
|
||||
"zeit"
|
||||
]
|
||||
}
|
||||
},
|
||||
"flugzeit": {
|
||||
"type": "integer"
|
||||
},
|
||||
"geschoss": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"anzahl": {
|
||||
"type": "integer"
|
||||
},
|
||||
"geschosssorte": {
|
||||
"type": "string"
|
||||
},
|
||||
"intervall": {
|
||||
"type": "integer"
|
||||
},
|
||||
"ladung": {
|
||||
"type": "string"
|
||||
},
|
||||
"zuender": {
|
||||
"type": "string"
|
||||
},
|
||||
"zuenderFunktion": {
|
||||
"type": "string"
|
||||
},
|
||||
"zuenderZeit": {
|
||||
"type": "integer"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"anzahl",
|
||||
"geschosssorte",
|
||||
"intervall",
|
||||
"ladung",
|
||||
"zuender",
|
||||
"zuenderFunktion",
|
||||
"zuenderZeit"
|
||||
]
|
||||
},
|
||||
"gipfelhoehe": {
|
||||
"type": "integer"
|
||||
},
|
||||
"kenner": {
|
||||
"type": "integer"
|
||||
},
|
||||
"schussrichtung": {
|
||||
"type": "integer"
|
||||
},
|
||||
"streuung": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"peBurstDeflection": {
|
||||
"type": "number"
|
||||
},
|
||||
"peBurstRange": {
|
||||
"type": "number"
|
||||
},
|
||||
"peDeflection": {
|
||||
"type": "number"
|
||||
},
|
||||
"peRange": {
|
||||
"type": "number"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"peBurstDeflection",
|
||||
"peBurstRange",
|
||||
"peDeflection",
|
||||
"peRange"
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"auftreffpunkt",
|
||||
"flugbahnpunkt",
|
||||
"flugzeit",
|
||||
"geschoss",
|
||||
"gipfelhoehe",
|
||||
"kenner",
|
||||
"schussrichtung",
|
||||
"streuung"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"verein",
|
||||
"wirkmittel"
|
||||
]
|
||||
}
|
||||
},
|
||||
"forderung": {
|
||||
"type": "string"
|
||||
},
|
||||
"zieldaten": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"breiteRadius": {
|
||||
"type": "integer"
|
||||
},
|
||||
"elemente": {
|
||||
"type": "integer"
|
||||
},
|
||||
"geometrie": {
|
||||
"type": "string"
|
||||
},
|
||||
"koordinate": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"hoehe": {
|
||||
"type": "integer"
|
||||
},
|
||||
"koordinate": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"latitude": {
|
||||
"type": "number"
|
||||
},
|
||||
"longitude": {
|
||||
"type": "number"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"latitude",
|
||||
"longitude"
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"hoehe",
|
||||
"koordinate"
|
||||
]
|
||||
},
|
||||
"nummer": {
|
||||
"type": "integer"
|
||||
},
|
||||
"relativKoordinate": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"hoehe": {
|
||||
"type": "integer"
|
||||
},
|
||||
"koordinate": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"latitude": {
|
||||
"type": "number"
|
||||
},
|
||||
"longitude": {
|
||||
"type": "number"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"latitude",
|
||||
"longitude"
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"hoehe",
|
||||
"koordinate"
|
||||
]
|
||||
},
|
||||
"subTyp": {
|
||||
"type": "string"
|
||||
},
|
||||
"tiefe": {
|
||||
"type": "integer"
|
||||
},
|
||||
"typ": {
|
||||
"type": "string"
|
||||
},
|
||||
"zielachse": {
|
||||
"type": "integer"
|
||||
},
|
||||
"zog": {
|
||||
"type": "integer"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"breiteRadius",
|
||||
"elemente",
|
||||
"geometrie",
|
||||
"koordinate",
|
||||
"nummer",
|
||||
"relativKoordinate",
|
||||
"subTyp",
|
||||
"tiefe",
|
||||
"typ",
|
||||
"zielachse",
|
||||
"zog"
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"abfeuerungsArt",
|
||||
"dauer",
|
||||
"feuerkampfReferenz",
|
||||
"feuerkommando",
|
||||
"forderung",
|
||||
"zieldaten"
|
||||
]
|
||||
},
|
||||
"reciver": {
|
||||
"type": "string"
|
||||
},
|
||||
"referenceUuid": {
|
||||
"type": "string"
|
||||
},
|
||||
"sender": {
|
||||
"type": "string"
|
||||
},
|
||||
"timestamp": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"jahr": {
|
||||
"type": "integer"
|
||||
},
|
||||
"minuten": {
|
||||
"type": "integer"
|
||||
},
|
||||
"monat": {
|
||||
"type": "integer"
|
||||
},
|
||||
"sekunden": {
|
||||
"type": "integer"
|
||||
},
|
||||
"stunden": {
|
||||
"type": "integer"
|
||||
},
|
||||
"tag": {
|
||||
"type": "integer"
|
||||
},
|
||||
"zdm": {
|
||||
"type": "string"
|
||||
},
|
||||
"zds": {
|
||||
"type": "string"
|
||||
},
|
||||
"zvz": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"jahr",
|
||||
"minuten",
|
||||
"monat",
|
||||
"sekunden",
|
||||
"stunden",
|
||||
"tag",
|
||||
"zdm",
|
||||
"zds",
|
||||
"zvz"
|
||||
]
|
||||
},
|
||||
"type": {
|
||||
"type": "string"
|
||||
},
|
||||
"typeId": {
|
||||
"type": "integer"
|
||||
},
|
||||
"uuid": {
|
||||
"type": "string"
|
||||
},
|
||||
"version": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"data",
|
||||
"reciver",
|
||||
"referenceUuid",
|
||||
"sender",
|
||||
"timestamp",
|
||||
"type",
|
||||
"typeId",
|
||||
"uuid",
|
||||
"version"
|
||||
]
|
||||
}
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"data": {
|
||||
"feuerkampfReferenz": "feuerkampfReferenz 1",
|
||||
"kenner": "C1",
|
||||
"verein": "AB7X 1"
|
||||
},
|
||||
"reciver": "EXCON@GUEZ.DE",
|
||||
"referenceUuid": "",
|
||||
"sender": "SAA@GUEZ.DE",
|
||||
"timestamp": {
|
||||
"jahr": 2025,
|
||||
"minuten": 16,
|
||||
"monat": 5,
|
||||
"sekunden": 40,
|
||||
"stunden": 13,
|
||||
"tag": 16,
|
||||
"zdm": "ZDM",
|
||||
"zds": "ZDS",
|
||||
"zvz": "ZVz"
|
||||
},
|
||||
"type": "EX-FQ(FN)",
|
||||
"typeId": 1003,
|
||||
"uuid": "0a313781-4d47-44d1-824d-e83ea051f5f1",
|
||||
"version": ""
|
||||
}
|
||||
+100
@@ -0,0 +1,100 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/schema#",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"data": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"feuerkampfReferenz": {
|
||||
"type": "string"
|
||||
},
|
||||
"kenner": {
|
||||
"type": "string"
|
||||
},
|
||||
"verein": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"feuerkampfReferenz",
|
||||
"kenner",
|
||||
"verein"
|
||||
]
|
||||
},
|
||||
"reciver": {
|
||||
"type": "string"
|
||||
},
|
||||
"referenceUuid": {
|
||||
"type": "string"
|
||||
},
|
||||
"sender": {
|
||||
"type": "string"
|
||||
},
|
||||
"timestamp": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"jahr": {
|
||||
"type": "integer"
|
||||
},
|
||||
"minuten": {
|
||||
"type": "integer"
|
||||
},
|
||||
"monat": {
|
||||
"type": "integer"
|
||||
},
|
||||
"sekunden": {
|
||||
"type": "integer"
|
||||
},
|
||||
"stunden": {
|
||||
"type": "integer"
|
||||
},
|
||||
"tag": {
|
||||
"type": "integer"
|
||||
},
|
||||
"zdm": {
|
||||
"type": "string"
|
||||
},
|
||||
"zds": {
|
||||
"type": "string"
|
||||
},
|
||||
"zvz": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"jahr",
|
||||
"minuten",
|
||||
"monat",
|
||||
"sekunden",
|
||||
"stunden",
|
||||
"tag",
|
||||
"zdm",
|
||||
"zds",
|
||||
"zvz"
|
||||
]
|
||||
},
|
||||
"type": {
|
||||
"type": "string"
|
||||
},
|
||||
"typeId": {
|
||||
"type": "integer"
|
||||
},
|
||||
"uuid": {
|
||||
"type": "string"
|
||||
},
|
||||
"version": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"data",
|
||||
"reciver",
|
||||
"referenceUuid",
|
||||
"sender",
|
||||
"timestamp",
|
||||
"type",
|
||||
"typeId",
|
||||
"uuid",
|
||||
"version"
|
||||
]
|
||||
}
|
||||
+45
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"data": {
|
||||
"geschoss": {
|
||||
"geschosssorte": "SprengDM121",
|
||||
"ladung": "M_DM72",
|
||||
"zuender": "Aufschlag_DM241",
|
||||
"zuenderFunktion": "AZoV"
|
||||
},
|
||||
"sprenghoehe": 33,
|
||||
"standort": {
|
||||
"hoehe": 55,
|
||||
"koordinate": {
|
||||
"latitude": 53.37787,
|
||||
"longitude": 8.7573
|
||||
}
|
||||
},
|
||||
"waffensystem": "MRS",
|
||||
"winkelgruppe": "Obere",
|
||||
"zielkoordinate": {
|
||||
"hoehe": 56,
|
||||
"koordinate": {
|
||||
"latitude": 53.37788,
|
||||
"longitude": 8.7574
|
||||
}
|
||||
}
|
||||
},
|
||||
"reciver": "EXCON@GUEZ.DE",
|
||||
"referenceUuid": "",
|
||||
"sender": "SAA@GUEZ.DE",
|
||||
"timestamp": {
|
||||
"jahr": 2025,
|
||||
"minuten": 23,
|
||||
"monat": 5,
|
||||
"sekunden": 6,
|
||||
"stunden": 13,
|
||||
"tag": 16,
|
||||
"zdm": "ZDM",
|
||||
"zds": "ZDS",
|
||||
"zvz": "ZVz"
|
||||
},
|
||||
"type": "EX-Flugbahnberechnung",
|
||||
"typeId": 4000,
|
||||
"uuid": "db2de888-d2bd-4778-bcbc-8dd345c35d18",
|
||||
"version": ""
|
||||
}
|
||||
+180
@@ -0,0 +1,180 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/schema#",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"data": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"geschoss": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"geschosssorte": {
|
||||
"type": "string"
|
||||
},
|
||||
"ladung": {
|
||||
"type": "string"
|
||||
},
|
||||
"zuender": {
|
||||
"type": "string"
|
||||
},
|
||||
"zuenderFunktion": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"geschosssorte",
|
||||
"ladung",
|
||||
"zuender",
|
||||
"zuenderFunktion"
|
||||
]
|
||||
},
|
||||
"sprenghoehe": {
|
||||
"type": "integer"
|
||||
},
|
||||
"standort": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"hoehe": {
|
||||
"type": "integer"
|
||||
},
|
||||
"koordinate": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"latitude": {
|
||||
"type": "number"
|
||||
},
|
||||
"longitude": {
|
||||
"type": "number"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"latitude",
|
||||
"longitude"
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"hoehe",
|
||||
"koordinate"
|
||||
]
|
||||
},
|
||||
"waffensystem": {
|
||||
"type": "string"
|
||||
},
|
||||
"winkelgruppe": {
|
||||
"type": "string"
|
||||
},
|
||||
"zielkoordinate": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"hoehe": {
|
||||
"type": "integer"
|
||||
},
|
||||
"koordinate": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"latitude": {
|
||||
"type": "number"
|
||||
},
|
||||
"longitude": {
|
||||
"type": "number"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"latitude",
|
||||
"longitude"
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"hoehe",
|
||||
"koordinate"
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"geschoss",
|
||||
"sprenghoehe",
|
||||
"standort",
|
||||
"waffensystem",
|
||||
"winkelgruppe",
|
||||
"zielkoordinate"
|
||||
]
|
||||
},
|
||||
"reciver": {
|
||||
"type": "string"
|
||||
},
|
||||
"referenceUuid": {
|
||||
"type": "string"
|
||||
},
|
||||
"sender": {
|
||||
"type": "string"
|
||||
},
|
||||
"timestamp": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"jahr": {
|
||||
"type": "integer"
|
||||
},
|
||||
"minuten": {
|
||||
"type": "integer"
|
||||
},
|
||||
"monat": {
|
||||
"type": "integer"
|
||||
},
|
||||
"sekunden": {
|
||||
"type": "integer"
|
||||
},
|
||||
"stunden": {
|
||||
"type": "integer"
|
||||
},
|
||||
"tag": {
|
||||
"type": "integer"
|
||||
},
|
||||
"zdm": {
|
||||
"type": "string"
|
||||
},
|
||||
"zds": {
|
||||
"type": "string"
|
||||
},
|
||||
"zvz": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"jahr",
|
||||
"minuten",
|
||||
"monat",
|
||||
"sekunden",
|
||||
"stunden",
|
||||
"tag",
|
||||
"zdm",
|
||||
"zds",
|
||||
"zvz"
|
||||
]
|
||||
},
|
||||
"type": {
|
||||
"type": "string"
|
||||
},
|
||||
"typeId": {
|
||||
"type": "integer"
|
||||
},
|
||||
"uuid": {
|
||||
"type": "string"
|
||||
},
|
||||
"version": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"data",
|
||||
"reciver",
|
||||
"referenceUuid",
|
||||
"sender",
|
||||
"timestamp",
|
||||
"type",
|
||||
"typeId",
|
||||
"uuid",
|
||||
"version"
|
||||
]
|
||||
}
|
||||
+63
@@ -0,0 +1,63 @@
|
||||
{
|
||||
"data": {
|
||||
"fallwinkel": 55,
|
||||
"fehlercode": "MaximaleEntfernung",
|
||||
"flugbahnpunkt": [
|
||||
{
|
||||
"xRelativ": 2.2,
|
||||
"yRelativ": 3.3,
|
||||
"zRelativ": 4.4,
|
||||
"zeit": 1.1
|
||||
},
|
||||
{
|
||||
"xRelativ": 2.3,
|
||||
"yRelativ": 3.4,
|
||||
"zRelativ": 4.5,
|
||||
"zeit": 1.2
|
||||
}
|
||||
],
|
||||
"flugzeit": 300,
|
||||
"geschoss": {
|
||||
"geschosssorte": "SprengDM121",
|
||||
"ladung": "M_DM72",
|
||||
"ladungsNummer": 5,
|
||||
"zuender": "Aufschlag_DM241",
|
||||
"zuenderFunktion": "AZoV",
|
||||
"zuenderZeit": 1000
|
||||
},
|
||||
"gipfelhoehe": 200,
|
||||
"schussrichtung": 45,
|
||||
"streuung": {
|
||||
"peBurstDeflection": 5.5,
|
||||
"peBurstRange": 4.4,
|
||||
"peDeflection": 3.3,
|
||||
"peRange": 2.2
|
||||
},
|
||||
"typ": "MRS",
|
||||
"zielkoordinate": {
|
||||
"hoehe": 56,
|
||||
"koordinate": {
|
||||
"latitude": 53.37788,
|
||||
"longitude": 8.7574
|
||||
}
|
||||
}
|
||||
},
|
||||
"reciver": "EXCON@GUEZ.DE",
|
||||
"referenceUuid": "",
|
||||
"sender": "SAA@GUEZ.DE",
|
||||
"timestamp": {
|
||||
"jahr": 2025,
|
||||
"minuten": 23,
|
||||
"monat": 5,
|
||||
"sekunden": 48,
|
||||
"stunden": 13,
|
||||
"tag": 16,
|
||||
"zdm": "ZDM",
|
||||
"zds": "ZDS",
|
||||
"zvz": "ZVz"
|
||||
},
|
||||
"type": "EX-Flugbahndaten",
|
||||
"typeId": 4001,
|
||||
"uuid": "{8325a2ee-03fc-4d02-8b35-f6f89f574ca2}",
|
||||
"version": ""
|
||||
}
|
||||
+223
@@ -0,0 +1,223 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/schema#",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"data": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"fallwinkel": {
|
||||
"type": "integer"
|
||||
},
|
||||
"fehlercode": {
|
||||
"type": "string"
|
||||
},
|
||||
"flugbahnpunkt": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"xRelativ": {
|
||||
"type": "number"
|
||||
},
|
||||
"yRelativ": {
|
||||
"type": "number"
|
||||
},
|
||||
"zRelativ": {
|
||||
"type": "number"
|
||||
},
|
||||
"zeit": {
|
||||
"type": "number"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"xRelativ",
|
||||
"yRelativ",
|
||||
"zRelativ",
|
||||
"zeit"
|
||||
]
|
||||
}
|
||||
},
|
||||
"flugzeit": {
|
||||
"type": "integer"
|
||||
},
|
||||
"geschoss": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"geschosssorte": {
|
||||
"type": "string"
|
||||
},
|
||||
"ladung": {
|
||||
"type": "string"
|
||||
},
|
||||
"ladungsNummer": {
|
||||
"type": "integer"
|
||||
},
|
||||
"zuender": {
|
||||
"type": "string"
|
||||
},
|
||||
"zuenderFunktion": {
|
||||
"type": "string"
|
||||
},
|
||||
"zuenderZeit": {
|
||||
"type": "integer"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"geschosssorte",
|
||||
"ladung",
|
||||
"ladungsNummer",
|
||||
"zuender",
|
||||
"zuenderFunktion",
|
||||
"zuenderZeit"
|
||||
]
|
||||
},
|
||||
"gipfelhoehe": {
|
||||
"type": "integer"
|
||||
},
|
||||
"schussrichtung": {
|
||||
"type": "integer"
|
||||
},
|
||||
"streuung": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"peBurstDeflection": {
|
||||
"type": "number"
|
||||
},
|
||||
"peBurstRange": {
|
||||
"type": "number"
|
||||
},
|
||||
"peDeflection": {
|
||||
"type": "number"
|
||||
},
|
||||
"peRange": {
|
||||
"type": "number"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"peBurstDeflection",
|
||||
"peBurstRange",
|
||||
"peDeflection",
|
||||
"peRange"
|
||||
]
|
||||
},
|
||||
"typ": {
|
||||
"type": "string"
|
||||
},
|
||||
"zielkoordinate": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"hoehe": {
|
||||
"type": "integer"
|
||||
},
|
||||
"koordinate": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"latitude": {
|
||||
"type": "number"
|
||||
},
|
||||
"longitude": {
|
||||
"type": "number"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"latitude",
|
||||
"longitude"
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"hoehe",
|
||||
"koordinate"
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"fallwinkel",
|
||||
"fehlercode",
|
||||
"flugbahnpunkt",
|
||||
"flugzeit",
|
||||
"geschoss",
|
||||
"gipfelhoehe",
|
||||
"schussrichtung",
|
||||
"streuung",
|
||||
"typ",
|
||||
"zielkoordinate"
|
||||
]
|
||||
},
|
||||
"reciver": {
|
||||
"type": "string"
|
||||
},
|
||||
"referenceUuid": {
|
||||
"type": "string"
|
||||
},
|
||||
"sender": {
|
||||
"type": "string"
|
||||
},
|
||||
"timestamp": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"jahr": {
|
||||
"type": "integer"
|
||||
},
|
||||
"minuten": {
|
||||
"type": "integer"
|
||||
},
|
||||
"monat": {
|
||||
"type": "integer"
|
||||
},
|
||||
"sekunden": {
|
||||
"type": "integer"
|
||||
},
|
||||
"stunden": {
|
||||
"type": "integer"
|
||||
},
|
||||
"tag": {
|
||||
"type": "integer"
|
||||
},
|
||||
"zdm": {
|
||||
"type": "string"
|
||||
},
|
||||
"zds": {
|
||||
"type": "string"
|
||||
},
|
||||
"zvz": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"jahr",
|
||||
"minuten",
|
||||
"monat",
|
||||
"sekunden",
|
||||
"stunden",
|
||||
"tag",
|
||||
"zdm",
|
||||
"zds",
|
||||
"zvz"
|
||||
]
|
||||
},
|
||||
"type": {
|
||||
"type": "string"
|
||||
},
|
||||
"typeId": {
|
||||
"type": "integer"
|
||||
},
|
||||
"uuid": {
|
||||
"type": "string"
|
||||
},
|
||||
"version": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"data",
|
||||
"reciver",
|
||||
"referenceUuid",
|
||||
"sender",
|
||||
"timestamp",
|
||||
"type",
|
||||
"typeId",
|
||||
"uuid",
|
||||
"version"
|
||||
]
|
||||
}
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
{
|
||||
"data": {
|
||||
"ab": {
|
||||
"jahr": 2025,
|
||||
"minuten": 35,
|
||||
"monat": 11,
|
||||
"sekunden": 55,
|
||||
"stunden": 5,
|
||||
"tag": 12,
|
||||
"zdm": "ZDM",
|
||||
"zds": "ZDS",
|
||||
"zvz": "ZVz"
|
||||
},
|
||||
"art": "AO",
|
||||
"bis": {
|
||||
"jahr": 2025,
|
||||
"minuten": 35,
|
||||
"monat": 11,
|
||||
"sekunden": 55,
|
||||
"stunden": 5,
|
||||
"tag": 13,
|
||||
"zdm": "ZDM",
|
||||
"zds": "ZDS",
|
||||
"zvz": "ZVz"
|
||||
},
|
||||
"koordinaten": [
|
||||
{
|
||||
"latitude": 53.37792,
|
||||
"longitude": 8.76
|
||||
},
|
||||
{
|
||||
"latitude": 53.37793,
|
||||
"longitude": 8.761
|
||||
}
|
||||
],
|
||||
"linkerNachbar": "linker Nachbar",
|
||||
"name": "Name EX-HQ(G) Führungslinien und Grenzen",
|
||||
"rechterNachbar": "rechter Nachbar"
|
||||
},
|
||||
"reciver": "EXCON@GUEZ.LIVE",
|
||||
"referenceUuid": "",
|
||||
"sender": "SAA1@GUEZ.LIVE",
|
||||
"timestamp": {
|
||||
"jahr": 2025,
|
||||
"minuten": 22,
|
||||
"monat": 5,
|
||||
"sekunden": 1,
|
||||
"stunden": 13,
|
||||
"tag": 16,
|
||||
"zdm": "ZDM",
|
||||
"zds": "ZDS",
|
||||
"zvz": "ZVz"
|
||||
},
|
||||
"type": "EX-HQ(G)",
|
||||
"typeId": 3001,
|
||||
"uuid": "{8d3aff1f-78ec-4059-bfa0-4b059119e8fa}",
|
||||
"version": ""
|
||||
}
|
||||
+211
@@ -0,0 +1,211 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/schema#",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"data": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"ab": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"jahr": {
|
||||
"type": "integer"
|
||||
},
|
||||
"minuten": {
|
||||
"type": "integer"
|
||||
},
|
||||
"monat": {
|
||||
"type": "integer"
|
||||
},
|
||||
"sekunden": {
|
||||
"type": "integer"
|
||||
},
|
||||
"stunden": {
|
||||
"type": "integer"
|
||||
},
|
||||
"tag": {
|
||||
"type": "integer"
|
||||
},
|
||||
"zdm": {
|
||||
"type": "string"
|
||||
},
|
||||
"zds": {
|
||||
"type": "string"
|
||||
},
|
||||
"zvz": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"jahr",
|
||||
"minuten",
|
||||
"monat",
|
||||
"sekunden",
|
||||
"stunden",
|
||||
"tag",
|
||||
"zdm",
|
||||
"zds",
|
||||
"zvz"
|
||||
]
|
||||
},
|
||||
"art": {
|
||||
"type": "string"
|
||||
},
|
||||
"bis": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"jahr": {
|
||||
"type": "integer"
|
||||
},
|
||||
"minuten": {
|
||||
"type": "integer"
|
||||
},
|
||||
"monat": {
|
||||
"type": "integer"
|
||||
},
|
||||
"sekunden": {
|
||||
"type": "integer"
|
||||
},
|
||||
"stunden": {
|
||||
"type": "integer"
|
||||
},
|
||||
"tag": {
|
||||
"type": "integer"
|
||||
},
|
||||
"zdm": {
|
||||
"type": "string"
|
||||
},
|
||||
"zds": {
|
||||
"type": "string"
|
||||
},
|
||||
"zvz": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"jahr",
|
||||
"minuten",
|
||||
"monat",
|
||||
"sekunden",
|
||||
"stunden",
|
||||
"tag",
|
||||
"zdm",
|
||||
"zds",
|
||||
"zvz"
|
||||
]
|
||||
},
|
||||
"koordinaten": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"latitude": {
|
||||
"type": "number"
|
||||
},
|
||||
"longitude": {
|
||||
"type": "number"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"latitude",
|
||||
"longitude"
|
||||
]
|
||||
}
|
||||
},
|
||||
"linkerNachbar": {
|
||||
"type": "string"
|
||||
},
|
||||
"name": {
|
||||
"type": "string"
|
||||
},
|
||||
"rechterNachbar": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"ab",
|
||||
"art",
|
||||
"bis",
|
||||
"koordinaten",
|
||||
"linkerNachbar",
|
||||
"name",
|
||||
"rechterNachbar"
|
||||
]
|
||||
},
|
||||
"reciver": {
|
||||
"type": "string"
|
||||
},
|
||||
"referenceUuid": {
|
||||
"type": "string"
|
||||
},
|
||||
"sender": {
|
||||
"type": "string"
|
||||
},
|
||||
"timestamp": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"jahr": {
|
||||
"type": "integer"
|
||||
},
|
||||
"minuten": {
|
||||
"type": "integer"
|
||||
},
|
||||
"monat": {
|
||||
"type": "integer"
|
||||
},
|
||||
"sekunden": {
|
||||
"type": "integer"
|
||||
},
|
||||
"stunden": {
|
||||
"type": "integer"
|
||||
},
|
||||
"tag": {
|
||||
"type": "integer"
|
||||
},
|
||||
"zdm": {
|
||||
"type": "string"
|
||||
},
|
||||
"zds": {
|
||||
"type": "string"
|
||||
},
|
||||
"zvz": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"jahr",
|
||||
"minuten",
|
||||
"monat",
|
||||
"sekunden",
|
||||
"stunden",
|
||||
"tag",
|
||||
"zdm",
|
||||
"zds",
|
||||
"zvz"
|
||||
]
|
||||
},
|
||||
"type": {
|
||||
"type": "string"
|
||||
},
|
||||
"typeId": {
|
||||
"type": "integer"
|
||||
},
|
||||
"uuid": {
|
||||
"type": "string"
|
||||
},
|
||||
"version": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"data",
|
||||
"reciver",
|
||||
"referenceUuid",
|
||||
"sender",
|
||||
"timestamp",
|
||||
"type",
|
||||
"typeId",
|
||||
"uuid",
|
||||
"version"
|
||||
]
|
||||
}
|
||||
+63
@@ -0,0 +1,63 @@
|
||||
{
|
||||
"data": {
|
||||
"ab": {
|
||||
"jahr": 2025,
|
||||
"minuten": 35,
|
||||
"monat": 11,
|
||||
"sekunden": 55,
|
||||
"stunden": 5,
|
||||
"tag": 12,
|
||||
"zdm": "ZDM",
|
||||
"zds": "ZDS",
|
||||
"zvz": "ZVz"
|
||||
},
|
||||
"art": "NFA",
|
||||
"bis": {
|
||||
"jahr": 2025,
|
||||
"minuten": 35,
|
||||
"monat": 11,
|
||||
"sekunden": 55,
|
||||
"stunden": 5,
|
||||
"tag": 13,
|
||||
"zdm": "ZDM",
|
||||
"zds": "ZDS",
|
||||
"zvz": "ZVz"
|
||||
},
|
||||
"koordinaten": [
|
||||
{
|
||||
"latitude": 53.37792,
|
||||
"longitude": 8.76
|
||||
},
|
||||
{
|
||||
"latitude": 53.37793,
|
||||
"longitude": 8.761
|
||||
}
|
||||
],
|
||||
"maxGipfel": 123,
|
||||
"mittelpunkt": {
|
||||
"latitude": 53.37794,
|
||||
"longitude": 8.762
|
||||
},
|
||||
"name": "Name ExHqKoordinierungsmassnahme",
|
||||
"radius": 66,
|
||||
"truppenteil": "Truppenteil ExHqKoordinierungsmassnahme"
|
||||
},
|
||||
"reciver": "EXCON@GUEZ.DE",
|
||||
"referenceUuid": "",
|
||||
"sender": "SAA@GUEZ.DE",
|
||||
"timestamp": {
|
||||
"jahr": 2025,
|
||||
"minuten": 19,
|
||||
"monat": 5,
|
||||
"sekunden": 35,
|
||||
"stunden": 13,
|
||||
"tag": 16,
|
||||
"zdm": "ZDM",
|
||||
"zds": "ZDS",
|
||||
"zvz": "ZVz"
|
||||
},
|
||||
"type": "EX-HQ(K)",
|
||||
"typeId": 20,
|
||||
"uuid": "{55cff8e6-2e85-4b92-971f-87ca7afbd214}",
|
||||
"version": ""
|
||||
}
|
||||
+231
@@ -0,0 +1,231 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/schema#",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"data": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"ab": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"jahr": {
|
||||
"type": "integer"
|
||||
},
|
||||
"minuten": {
|
||||
"type": "integer"
|
||||
},
|
||||
"monat": {
|
||||
"type": "integer"
|
||||
},
|
||||
"sekunden": {
|
||||
"type": "integer"
|
||||
},
|
||||
"stunden": {
|
||||
"type": "integer"
|
||||
},
|
||||
"tag": {
|
||||
"type": "integer"
|
||||
},
|
||||
"zdm": {
|
||||
"type": "string"
|
||||
},
|
||||
"zds": {
|
||||
"type": "string"
|
||||
},
|
||||
"zvz": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"jahr",
|
||||
"minuten",
|
||||
"monat",
|
||||
"sekunden",
|
||||
"stunden",
|
||||
"tag",
|
||||
"zdm",
|
||||
"zds",
|
||||
"zvz"
|
||||
]
|
||||
},
|
||||
"art": {
|
||||
"type": "string"
|
||||
},
|
||||
"bis": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"jahr": {
|
||||
"type": "integer"
|
||||
},
|
||||
"minuten": {
|
||||
"type": "integer"
|
||||
},
|
||||
"monat": {
|
||||
"type": "integer"
|
||||
},
|
||||
"sekunden": {
|
||||
"type": "integer"
|
||||
},
|
||||
"stunden": {
|
||||
"type": "integer"
|
||||
},
|
||||
"tag": {
|
||||
"type": "integer"
|
||||
},
|
||||
"zdm": {
|
||||
"type": "string"
|
||||
},
|
||||
"zds": {
|
||||
"type": "string"
|
||||
},
|
||||
"zvz": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"jahr",
|
||||
"minuten",
|
||||
"monat",
|
||||
"sekunden",
|
||||
"stunden",
|
||||
"tag",
|
||||
"zdm",
|
||||
"zds",
|
||||
"zvz"
|
||||
]
|
||||
},
|
||||
"koordinaten": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"latitude": {
|
||||
"type": "number"
|
||||
},
|
||||
"longitude": {
|
||||
"type": "number"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"latitude",
|
||||
"longitude"
|
||||
]
|
||||
}
|
||||
},
|
||||
"maxGipfel": {
|
||||
"type": "integer"
|
||||
},
|
||||
"mittelpunkt": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"latitude": {
|
||||
"type": "number"
|
||||
},
|
||||
"longitude": {
|
||||
"type": "number"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"latitude",
|
||||
"longitude"
|
||||
]
|
||||
},
|
||||
"name": {
|
||||
"type": "string"
|
||||
},
|
||||
"radius": {
|
||||
"type": "integer"
|
||||
},
|
||||
"truppenteil": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"ab",
|
||||
"art",
|
||||
"bis",
|
||||
"koordinaten",
|
||||
"maxGipfel",
|
||||
"mittelpunkt",
|
||||
"name",
|
||||
"radius",
|
||||
"truppenteil"
|
||||
]
|
||||
},
|
||||
"reciver": {
|
||||
"type": "string"
|
||||
},
|
||||
"referenceUuid": {
|
||||
"type": "string"
|
||||
},
|
||||
"sender": {
|
||||
"type": "string"
|
||||
},
|
||||
"timestamp": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"jahr": {
|
||||
"type": "integer"
|
||||
},
|
||||
"minuten": {
|
||||
"type": "integer"
|
||||
},
|
||||
"monat": {
|
||||
"type": "integer"
|
||||
},
|
||||
"sekunden": {
|
||||
"type": "integer"
|
||||
},
|
||||
"stunden": {
|
||||
"type": "integer"
|
||||
},
|
||||
"tag": {
|
||||
"type": "integer"
|
||||
},
|
||||
"zdm": {
|
||||
"type": "string"
|
||||
},
|
||||
"zds": {
|
||||
"type": "string"
|
||||
},
|
||||
"zvz": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"jahr",
|
||||
"minuten",
|
||||
"monat",
|
||||
"sekunden",
|
||||
"stunden",
|
||||
"tag",
|
||||
"zdm",
|
||||
"zds",
|
||||
"zvz"
|
||||
]
|
||||
},
|
||||
"type": {
|
||||
"type": "string"
|
||||
},
|
||||
"typeId": {
|
||||
"type": "integer"
|
||||
},
|
||||
"uuid": {
|
||||
"type": "string"
|
||||
},
|
||||
"version": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"data",
|
||||
"reciver",
|
||||
"referenceUuid",
|
||||
"sender",
|
||||
"timestamp",
|
||||
"type",
|
||||
"typeId",
|
||||
"uuid",
|
||||
"version"
|
||||
]
|
||||
}
|
||||
+71
@@ -0,0 +1,71 @@
|
||||
{
|
||||
"data": {
|
||||
"einheit": {
|
||||
"oi": "F3",
|
||||
"r": 5,
|
||||
"verein": "verein ExFeuerstellungFS"
|
||||
},
|
||||
"geschosse": [
|
||||
{
|
||||
"anzahl": 6,
|
||||
"geschosssorte": "MineDM72",
|
||||
"ladung": "X_DM82",
|
||||
"zuender": "Doppel_DM183"
|
||||
},
|
||||
{
|
||||
"anzahl": 7,
|
||||
"geschosssorte": "LeuchtDM116",
|
||||
"ladung": "B_L8A1",
|
||||
"zuender": "Aufschlag_BB_DM371"
|
||||
}
|
||||
],
|
||||
"koordinaten": [
|
||||
{
|
||||
"hoehe": 22,
|
||||
"koordinate": {
|
||||
"latitude": 53.37792,
|
||||
"longitude": 8.76
|
||||
}
|
||||
},
|
||||
{
|
||||
"hoehe": 23,
|
||||
"koordinate": {
|
||||
"latitude": 53.37793,
|
||||
"longitude": 8.761
|
||||
}
|
||||
}
|
||||
],
|
||||
"mittelpunkt": {
|
||||
"hoehe": 20,
|
||||
"koordinate": {
|
||||
"latitude": 53.37791,
|
||||
"longitude": 8.759
|
||||
}
|
||||
},
|
||||
"status": "Einsatzbereit",
|
||||
"typ": "MRS",
|
||||
"wirkungsbereich": {
|
||||
"grundrichtung": 935138399,
|
||||
"links": 32765,
|
||||
"rechts": 1788424448
|
||||
}
|
||||
},
|
||||
"reciver": "EXCON@GUEZ.DE",
|
||||
"referenceUuid": "",
|
||||
"sender": "SAA@GUEZ.DE",
|
||||
"timestamp": {
|
||||
"jahr": 2025,
|
||||
"minuten": 24,
|
||||
"monat": 5,
|
||||
"sekunden": 30,
|
||||
"stunden": 13,
|
||||
"tag": 16,
|
||||
"zdm": "ZDM",
|
||||
"zds": "ZDS",
|
||||
"zvz": "ZVz"
|
||||
},
|
||||
"type": "EX-SQ(FS)",
|
||||
"typeId": 2000,
|
||||
"uuid": "823c5ad1-9542-4bdc-83a5-e342bed3c3a7",
|
||||
"version": ""
|
||||
}
|
||||
+222
@@ -0,0 +1,222 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/schema#",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"data": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"einheit": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"oi": {
|
||||
"type": "string"
|
||||
},
|
||||
"r": {
|
||||
"type": "integer"
|
||||
},
|
||||
"verein": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"oi",
|
||||
"r",
|
||||
"verein"
|
||||
]
|
||||
},
|
||||
"geschosse": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"anzahl": {
|
||||
"type": "integer"
|
||||
},
|
||||
"geschosssorte": {
|
||||
"type": "string"
|
||||
},
|
||||
"ladung": {
|
||||
"type": "string"
|
||||
},
|
||||
"zuender": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"anzahl",
|
||||
"geschosssorte",
|
||||
"ladung",
|
||||
"zuender"
|
||||
]
|
||||
}
|
||||
},
|
||||
"koordinaten": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"hoehe": {
|
||||
"type": "integer"
|
||||
},
|
||||
"koordinate": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"latitude": {
|
||||
"type": "number"
|
||||
},
|
||||
"longitude": {
|
||||
"type": "number"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"latitude",
|
||||
"longitude"
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"hoehe",
|
||||
"koordinate"
|
||||
]
|
||||
}
|
||||
},
|
||||
"mittelpunkt": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"hoehe": {
|
||||
"type": "integer"
|
||||
},
|
||||
"koordinate": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"latitude": {
|
||||
"type": "number"
|
||||
},
|
||||
"longitude": {
|
||||
"type": "number"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"latitude",
|
||||
"longitude"
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"hoehe",
|
||||
"koordinate"
|
||||
]
|
||||
},
|
||||
"status": {
|
||||
"type": "string"
|
||||
},
|
||||
"typ": {
|
||||
"type": "string"
|
||||
},
|
||||
"wirkungsbereich": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"grundrichtung": {
|
||||
"type": "integer"
|
||||
},
|
||||
"links": {
|
||||
"type": "integer"
|
||||
},
|
||||
"rechts": {
|
||||
"type": "integer"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"grundrichtung",
|
||||
"links",
|
||||
"rechts"
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"einheit",
|
||||
"geschosse",
|
||||
"koordinaten",
|
||||
"mittelpunkt",
|
||||
"status",
|
||||
"typ",
|
||||
"wirkungsbereich"
|
||||
]
|
||||
},
|
||||
"reciver": {
|
||||
"type": "string"
|
||||
},
|
||||
"referenceUuid": {
|
||||
"type": "string"
|
||||
},
|
||||
"sender": {
|
||||
"type": "string"
|
||||
},
|
||||
"timestamp": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"jahr": {
|
||||
"type": "integer"
|
||||
},
|
||||
"minuten": {
|
||||
"type": "integer"
|
||||
},
|
||||
"monat": {
|
||||
"type": "integer"
|
||||
},
|
||||
"sekunden": {
|
||||
"type": "integer"
|
||||
},
|
||||
"stunden": {
|
||||
"type": "integer"
|
||||
},
|
||||
"tag": {
|
||||
"type": "integer"
|
||||
},
|
||||
"zdm": {
|
||||
"type": "string"
|
||||
},
|
||||
"zds": {
|
||||
"type": "string"
|
||||
},
|
||||
"zvz": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"jahr",
|
||||
"minuten",
|
||||
"monat",
|
||||
"sekunden",
|
||||
"stunden",
|
||||
"tag",
|
||||
"zdm",
|
||||
"zds",
|
||||
"zvz"
|
||||
]
|
||||
},
|
||||
"type": {
|
||||
"type": "string"
|
||||
},
|
||||
"typeId": {
|
||||
"type": "integer"
|
||||
},
|
||||
"uuid": {
|
||||
"type": "string"
|
||||
},
|
||||
"version": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"data",
|
||||
"reciver",
|
||||
"referenceUuid",
|
||||
"sender",
|
||||
"timestamp",
|
||||
"type",
|
||||
"typeId",
|
||||
"uuid",
|
||||
"version"
|
||||
]
|
||||
}
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"data": {
|
||||
"geschosse": [
|
||||
{
|
||||
"anzahl": 6,
|
||||
"geschosssorte": "MineDM72",
|
||||
"ladung": "X_DM82",
|
||||
"zuender": "Doppel_DM183"
|
||||
},
|
||||
{
|
||||
"anzahl": 7,
|
||||
"geschosssorte": "LeuchtDM116",
|
||||
"ladung": "B_L8A1",
|
||||
"zuender": "Aufschlag_BB_DM371"
|
||||
}
|
||||
],
|
||||
"koordinate": {
|
||||
"hoehe": 20,
|
||||
"koordinate": {
|
||||
"latitude": 53.37791,
|
||||
"longitude": 8.759
|
||||
}
|
||||
},
|
||||
"typ": "EX_L20_ASSY"
|
||||
},
|
||||
"reciver": "EXCON@GUEZ.DE",
|
||||
"referenceUuid": "",
|
||||
"sender": "SAA@GUEZ.DE",
|
||||
"timestamp": {
|
||||
"jahr": 2025,
|
||||
"minuten": 26,
|
||||
"monat": 5,
|
||||
"sekunden": 1,
|
||||
"stunden": 13,
|
||||
"tag": 16,
|
||||
"zdm": "ZDM",
|
||||
"zds": "ZDS",
|
||||
"zvz": "ZVz"
|
||||
},
|
||||
"type": "EX-SQ(LP)",
|
||||
"typeId": 2002,
|
||||
"uuid": "{b1969847-e672-4157-ac08-82fdecd52fa3}",
|
||||
"version": ""
|
||||
}
|
||||
+56
@@ -0,0 +1,56 @@
|
||||
{
|
||||
"data": {
|
||||
"einheit": {
|
||||
"oi": "F6",
|
||||
"r": 6,
|
||||
"verein": "verein ExFeuerstellungWS"
|
||||
},
|
||||
"geschosse": [
|
||||
{
|
||||
"anzahl": 6,
|
||||
"geschosssorte": "MineDM72",
|
||||
"ladung": "X_DM82",
|
||||
"zuender": "Doppel_DM183"
|
||||
},
|
||||
{
|
||||
"anzahl": 7,
|
||||
"geschosssorte": "LeuchtDM116",
|
||||
"ladung": "B_L8A1",
|
||||
"zuender": "Aufschlag_BB_DM371"
|
||||
}
|
||||
],
|
||||
"kenner": "B1",
|
||||
"koordinate": {
|
||||
"hoehe": 20,
|
||||
"koordinate": {
|
||||
"latitude": 53.088354,
|
||||
"longitude": 8.853092
|
||||
}
|
||||
},
|
||||
"status": "Nicht einsatzbereit",
|
||||
"typ": "MRS",
|
||||
"wirkungsbereich": {
|
||||
"grundrichtung": 1,
|
||||
"links": 2,
|
||||
"rechts": 3
|
||||
}
|
||||
},
|
||||
"reciver": "EXCON@GUEZ.LIVE",
|
||||
"referenceUuid": "",
|
||||
"sender": "SAA1@GUEZ.LIVE",
|
||||
"timestamp": {
|
||||
"jahr": 2025,
|
||||
"minuten": 25,
|
||||
"monat": 5,
|
||||
"sekunden": 12,
|
||||
"stunden": 13,
|
||||
"tag": 16,
|
||||
"zdm": "ZDM",
|
||||
"zds": "ZDS",
|
||||
"zvz": "ZVz"
|
||||
},
|
||||
"type": "EX-SQ(WS)",
|
||||
"typeId": 2001,
|
||||
"uuid": "{caa9482a-2d1f-4893-b569-fae3d3e3f3cf}",
|
||||
"version": ""
|
||||
}
|
||||
+195
@@ -0,0 +1,195 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/schema#",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"data": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"einheit": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"oi": {
|
||||
"type": "string"
|
||||
},
|
||||
"r": {
|
||||
"type": "integer"
|
||||
},
|
||||
"verein": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"oi",
|
||||
"r",
|
||||
"verein"
|
||||
]
|
||||
},
|
||||
"geschosse": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"anzahl": {
|
||||
"type": "integer"
|
||||
},
|
||||
"geschosssorte": {
|
||||
"type": "string"
|
||||
},
|
||||
"ladung": {
|
||||
"type": "string"
|
||||
},
|
||||
"zuender": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"anzahl",
|
||||
"geschosssorte",
|
||||
"ladung",
|
||||
"zuender"
|
||||
]
|
||||
}
|
||||
},
|
||||
"kenner": {
|
||||
"type": "string"
|
||||
},
|
||||
"koordinate": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"hoehe": {
|
||||
"type": "integer"
|
||||
},
|
||||
"koordinate": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"latitude": {
|
||||
"type": "number"
|
||||
},
|
||||
"longitude": {
|
||||
"type": "number"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"latitude",
|
||||
"longitude"
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"hoehe",
|
||||
"koordinate"
|
||||
]
|
||||
},
|
||||
"status": {
|
||||
"type": "string"
|
||||
},
|
||||
"typ": {
|
||||
"type": "string"
|
||||
},
|
||||
"wirkungsbereich": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"grundrichtung": {
|
||||
"type": "integer"
|
||||
},
|
||||
"links": {
|
||||
"type": "integer"
|
||||
},
|
||||
"rechts": {
|
||||
"type": "integer"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"grundrichtung",
|
||||
"links",
|
||||
"rechts"
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"einheit",
|
||||
"geschosse",
|
||||
"kenner",
|
||||
"koordinate",
|
||||
"status",
|
||||
"typ",
|
||||
"wirkungsbereich"
|
||||
]
|
||||
},
|
||||
"reciver": {
|
||||
"type": "string"
|
||||
},
|
||||
"referenceUuid": {
|
||||
"type": "string"
|
||||
},
|
||||
"sender": {
|
||||
"type": "string"
|
||||
},
|
||||
"timestamp": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"jahr": {
|
||||
"type": "integer"
|
||||
},
|
||||
"minuten": {
|
||||
"type": "integer"
|
||||
},
|
||||
"monat": {
|
||||
"type": "integer"
|
||||
},
|
||||
"sekunden": {
|
||||
"type": "integer"
|
||||
},
|
||||
"stunden": {
|
||||
"type": "integer"
|
||||
},
|
||||
"tag": {
|
||||
"type": "integer"
|
||||
},
|
||||
"zdm": {
|
||||
"type": "string"
|
||||
},
|
||||
"zds": {
|
||||
"type": "string"
|
||||
},
|
||||
"zvz": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"jahr",
|
||||
"minuten",
|
||||
"monat",
|
||||
"sekunden",
|
||||
"stunden",
|
||||
"tag",
|
||||
"zdm",
|
||||
"zds",
|
||||
"zvz"
|
||||
]
|
||||
},
|
||||
"type": {
|
||||
"type": "string"
|
||||
},
|
||||
"typeId": {
|
||||
"type": "integer"
|
||||
},
|
||||
"uuid": {
|
||||
"type": "string"
|
||||
},
|
||||
"version": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"data",
|
||||
"reciver",
|
||||
"referenceUuid",
|
||||
"sender",
|
||||
"timestamp",
|
||||
"type",
|
||||
"typeId",
|
||||
"uuid",
|
||||
"version"
|
||||
]
|
||||
}
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"data": {
|
||||
"status": "Geplant"
|
||||
},
|
||||
"reciver": "EXCON@GUEZ.DE",
|
||||
"referenceUuid": "",
|
||||
"sender": "SAA@GUEZ.DE",
|
||||
"timestamp": {
|
||||
"jahr": 2025,
|
||||
"minuten": 12,
|
||||
"monat": 5,
|
||||
"sekunden": 43,
|
||||
"stunden": 13,
|
||||
"tag": 16,
|
||||
"zdm": "ZDM",
|
||||
"zds": "ZDS",
|
||||
"zvz": "ZVz"
|
||||
},
|
||||
"type": "EX-Status",
|
||||
"typeId": 6010,
|
||||
"uuid": "9c70c8c0-ddc8-4d6f-8385-379faa55d076",
|
||||
"version": ""
|
||||
}
|
||||
+92
@@ -0,0 +1,92 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/schema#",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"data": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"status": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"status"
|
||||
]
|
||||
},
|
||||
"reciver": {
|
||||
"type": "string"
|
||||
},
|
||||
"referenceUuid": {
|
||||
"type": "string"
|
||||
},
|
||||
"sender": {
|
||||
"type": "string"
|
||||
},
|
||||
"timestamp": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"jahr": {
|
||||
"type": "integer"
|
||||
},
|
||||
"minuten": {
|
||||
"type": "integer"
|
||||
},
|
||||
"monat": {
|
||||
"type": "integer"
|
||||
},
|
||||
"sekunden": {
|
||||
"type": "integer"
|
||||
},
|
||||
"stunden": {
|
||||
"type": "integer"
|
||||
},
|
||||
"tag": {
|
||||
"type": "integer"
|
||||
},
|
||||
"zdm": {
|
||||
"type": "string"
|
||||
},
|
||||
"zds": {
|
||||
"type": "string"
|
||||
},
|
||||
"zvz": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"jahr",
|
||||
"minuten",
|
||||
"monat",
|
||||
"sekunden",
|
||||
"stunden",
|
||||
"tag",
|
||||
"zdm",
|
||||
"zds",
|
||||
"zvz"
|
||||
]
|
||||
},
|
||||
"type": {
|
||||
"type": "string"
|
||||
},
|
||||
"typeId": {
|
||||
"type": "integer"
|
||||
},
|
||||
"uuid": {
|
||||
"type": "string"
|
||||
},
|
||||
"version": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"data",
|
||||
"reciver",
|
||||
"referenceUuid",
|
||||
"sender",
|
||||
"timestamp",
|
||||
"type",
|
||||
"typeId",
|
||||
"uuid",
|
||||
"version"
|
||||
]
|
||||
}
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
---------------------------------------
|
||||
--- JSON SCHEMA erzeugen:
|
||||
---------------------------------------
|
||||
pip install genson
|
||||
Defaulting to user installation because normal site-packages is not writeable
|
||||
Collecting genson
|
||||
Downloading genson-1.3.0-py3-none-any.whl (21 kB)
|
||||
Installing collected packages: genson
|
||||
WARNING: The script genson is installed in '/home/ctc/.local/bin' which is not on PATH.
|
||||
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
|
||||
Successfully installed genson-1.3.0
|
||||
---------
|
||||
Aufruf:
|
||||
|
||||
genson Wirkfeldplanung.json > Wirkfeldplanung.schema
|
||||
jq . Wirkfeldplanung.schema > Wirkfeldplanung.schema_formatiert
|
||||
|
||||
genson Wirkfeldplanung.json | jq . > Wirkfeldplanung.schema
|
||||
|
||||
|
||||
genson EX-AQ.json | jq . > EX-AQ.struct
|
||||
genson EX-FH.json | jq . > EX-FH.stuct
|
||||
genson EX-Flugbahndaten.json | jq . > EX-Flugbahndaten.struct
|
||||
genson EX-FQ-FN.json | jq . > EX-FQ-FN.struct
|
||||
genson EX-HQ-K.json | jq . > EX-HQ-K.struct
|
||||
genson EX-SQ-WS.json | jq . > EX-SQ-WS.struct
|
||||
genson EX-Erkundungsergebnisse.json | jq . > EX-Erkundungsergebnisse.struct
|
||||
genson EX-Flugbahnberechnung.json | jq . > EX-Flugbahnberechnung.struct
|
||||
genson EX-FQ-BA-BB-FK.json | jq . > EX-FQ-BA-BB-FK.struct
|
||||
genson EX-HQ-G.json | jq . > EX-HQ-G.struct
|
||||
genson EX-SQ-FS.json | jq . > EX-SQ-FS.struct
|
||||
genson EX-Status.json | jq . > EX-Status.struct
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
pip install jsonschema
|
||||
|
||||
python3 -m jsonschema -i EX-Erkundungsergebnisse.json EX-Erkundungsergebnisse.struct
|
||||
+530
@@ -0,0 +1,530 @@
|
||||
********* Start testing of TestExAnmeldung *********
|
||||
Config: Using QtTest library 5.15.2, Qt 5.15.2 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 7.5.0), opensuse-leap 15.4
|
||||
PASS : TestExAnmeldung::initTestCase()
|
||||
QDEBUG : TestExAnmeldung::testExAnmeldung() ----------------------
|
||||
QDEBUG : TestExAnmeldung::testExAnmeldung() --- EX-Anmeldung ---
|
||||
QSYSTEM: TestExAnmeldung::testExAnmeldung() toJsonInternal
|
||||
QSYSTEM: TestExAnmeldung::testExAnmeldung() zeitangabe_DTGToJson Stunden= 13
|
||||
QSYSTEM: TestExAnmeldung::testExAnmeldung() anmeldedatenfromJson
|
||||
PASS : TestExAnmeldung::testExAnmeldung()
|
||||
PASS : TestExAnmeldung::cleanupTestCase()
|
||||
Totals: 3 passed, 0 failed, 0 skipped, 0 blacklisted, 11ms
|
||||
********* Finished testing of TestExAnmeldung *********
|
||||
********* Start testing of TestExAbmeldung *********
|
||||
Config: Using QtTest library 5.15.2, Qt 5.15.2 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 7.5.0), opensuse-leap 15.4
|
||||
PASS : TestExAbmeldung::initTestCase()
|
||||
QDEBUG : TestExAbmeldung::testExAbmeldung() ----------------------
|
||||
QDEBUG : TestExAbmeldung::testExAbmeldung() --- EX-Abmeldung ---
|
||||
QSYSTEM: TestExAbmeldung::testExAbmeldung() EXDeregistration::toJsonInternal partyId= 2
|
||||
QSYSTEM: TestExAbmeldung::testExAbmeldung() toJsonInternal
|
||||
QSYSTEM: TestExAbmeldung::testExAbmeldung() zeitangabe_DTGToJson Stunden= 13
|
||||
QSYSTEM: TestExAbmeldung::testExAbmeldung() abmeldedatenfromJson
|
||||
PASS : TestExAbmeldung::testExAbmeldung()
|
||||
PASS : TestExAbmeldung::cleanupTestCase()
|
||||
Totals: 3 passed, 0 failed, 0 skipped, 0 blacklisted, 4ms
|
||||
********* Finished testing of TestExAbmeldung *********
|
||||
********* Start testing of TestExAnmeldebestaetigung *********
|
||||
Config: Using QtTest library 5.15.2, Qt 5.15.2 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 7.5.0), opensuse-leap 15.4
|
||||
PASS : TestExAnmeldebestaetigung::initTestCase()
|
||||
QDEBUG : TestExAnmeldebestaetigung::testExAnmeldebestaetuigung() --------------------------------
|
||||
QDEBUG : TestExAnmeldebestaetigung::testExAnmeldebestaetuigung() --- EX-Anmeldebestaetigung ---
|
||||
QDEBUG : TestExAnmeldebestaetigung::testExAnmeldebestaetuigung() In SKD kein data enthalten
|
||||
QSYSTEM: TestExAnmeldebestaetigung::testExAnmeldebestaetuigung() toJsonInternal
|
||||
QSYSTEM: TestExAnmeldebestaetigung::testExAnmeldebestaetuigung() zeitangabe_DTGToJson Stunden= 13
|
||||
PASS : TestExAnmeldebestaetigung::testExAnmeldebestaetuigung()
|
||||
PASS : TestExAnmeldebestaetigung::cleanupTestCase()
|
||||
Totals: 3 passed, 0 failed, 0 skipped, 0 blacklisted, 4ms
|
||||
********* Finished testing of TestExAnmeldebestaetigung *********
|
||||
********* Start testing of TestExFqWirkfeldplanung *********
|
||||
Config: Using QtTest library 5.15.2, Qt 5.15.2 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 7.5.0), opensuse-leap 15.4
|
||||
PASS : TestExFqWirkfeldplanung::initTestCase()
|
||||
QDEBUG : TestExFqWirkfeldplanung::testExFqWirkfeldplanung() ---------------------------------------
|
||||
QDEBUG : TestExFqWirkfeldplanung::testExFqWirkfeldplanung() --- EX-FQ(BA-BB-FK) Wirkfeldplanung ---
|
||||
QSYSTEM: TestExFqWirkfeldplanung::testExFqWirkfeldplanung() toJsonInternal
|
||||
QSYSTEM: TestExFqWirkfeldplanung::testExFqWirkfeldplanung() zeitangabe_DTGToJson Stunden= 13
|
||||
QSYSTEM: TestExFqWirkfeldplanung::testExFqWirkfeldplanung() zieldatenToJson
|
||||
QSYSTEM: TestExFqWirkfeldplanung::testExFqWirkfeldplanung() koordinateToJson longitude= 8.7573 latitude= 53.3779
|
||||
QDEBUG : TestExFqWirkfeldplanung::testExFqWirkfeldplanung() koordinateMitHoeheToJson hoehe= 0
|
||||
QSYSTEM: TestExFqWirkfeldplanung::testExFqWirkfeldplanung() koordinateToJson longitude= 8.8 latitude= 53.8
|
||||
QDEBUG : TestExFqWirkfeldplanung::testExFqWirkfeldplanung() koordinateMitHoeheToJson hoehe= 5
|
||||
QSYSTEM: TestExFqWirkfeldplanung::testExFqWirkfeldplanung() zieldatenToJson = "{\n \"breiteRadius\": 25,\n \"elemente\": 1,\n \"geometrie\": \"P\",\n \"koordinate\": {\n \"hoehe\": 0,\n \"koordinate\": {\n \"latitude\": 53.37787,\n \"longitude\": 8.7573\n }\n },\n \"nummer\": 7,\n \"relativKoordinate\": {\n \"hoehe\": 5,\n \"koordinate\": {\n \"latitude\": 53.8,\n \"longitude\": 8.8\n }\n },\n \"subTyp\": \"APERS\",\n \"tiefe\": 26,\n \"typ\": \"EX_L20_PERS\",\n \"zielachse\": 17,\n \"zog\": 7\n}\n"
|
||||
QSYSTEM: TestExFqWirkfeldplanung::testExFqWirkfeldplanung() koordinateToJson longitude= 8.7573 latitude= 53.3779
|
||||
QDEBUG : TestExFqWirkfeldplanung::testExFqWirkfeldplanung() koordinateMitHoeheToJson hoehe= 0
|
||||
QSYSTEM: TestExFqWirkfeldplanung::testExFqWirkfeldplanung() wirkfeldplanungDataFromJson
|
||||
QSYSTEM: TestExFqWirkfeldplanung::testExFqWirkfeldplanung() wirkfeldplanungData.feuerkampfReferenz= "REF:2078669041"
|
||||
QDEBUG : TestExFqWirkfeldplanung::testExFqWirkfeldplanung() feuerkommandoArray.size()= 1
|
||||
QSYSTEM: TestExFqWirkfeldplanung::testExFqWirkfeldplanung() feuerkommandoFromJson
|
||||
QSYSTEM: TestExFqWirkfeldplanung::testExFqWirkfeldplanung() feuerkommando.verein = "AB7X"
|
||||
QSYSTEM: TestExFqWirkfeldplanung::testExFqWirkfeldplanung() wirkmittelFeuerkommandoFromJson
|
||||
QSYSTEM: TestExFqWirkfeldplanung::testExFqWirkfeldplanung() koordinateMitHoeheFromJson
|
||||
QSYSTEM: TestExFqWirkfeldplanung::testExFqWirkfeldplanung() koordinatefromJson
|
||||
QSYSTEM: TestExFqWirkfeldplanung::testExFqWirkfeldplanung() koordinatefromJson longitude= 8.7573 latitude= 53.3779
|
||||
QSYSTEM: TestExFqWirkfeldplanung::testExFqWirkfeldplanung() koordinateMitHoeheFromJson hoehe= 0
|
||||
QSYSTEM: TestExFqWirkfeldplanung::testExFqWirkfeldplanung() feuerkommandoGeschosseFromJson
|
||||
QSYSTEM: TestExFqWirkfeldplanung::testExFqWirkfeldplanung() flugbahnpunkteFromJson
|
||||
QSYSTEM: TestExFqWirkfeldplanung::testExFqWirkfeldplanung() flugbahnpunktFromJson
|
||||
QSYSTEM: TestExFqWirkfeldplanung::testExFqWirkfeldplanung() flugbahnpunktFromJson zeit= 17 punkt= 200 / 77 / 300
|
||||
QSYSTEM: TestExFqWirkfeldplanung::testExFqWirkfeldplanung() flugbahnpunktFromJson
|
||||
QSYSTEM: TestExFqWirkfeldplanung::testExFqWirkfeldplanung() flugbahnpunktFromJson zeit= 19 punkt= 900 / 177 / 700
|
||||
QSYSTEM: TestExFqWirkfeldplanung::testExFqWirkfeldplanung() streuungsdatenfromJson peDeflection= 0.7 peBurstRange= 0.3 peBurstDeflection= 0.7
|
||||
QSYSTEM: TestExFqWirkfeldplanung::testExFqWirkfeldplanung() wirkmittel
|
||||
QSYSTEM: TestExFqWirkfeldplanung::testExFqWirkfeldplanung() koordinateMitHoeheFromJson
|
||||
QSYSTEM: TestExFqWirkfeldplanung::testExFqWirkfeldplanung() koordinatefromJson
|
||||
QSYSTEM: TestExFqWirkfeldplanung::testExFqWirkfeldplanung() koordinatefromJson longitude= 8.7573 latitude= 53.3779
|
||||
QSYSTEM: TestExFqWirkfeldplanung::testExFqWirkfeldplanung() koordinateMitHoeheFromJson hoehe= 0
|
||||
QSYSTEM: TestExFqWirkfeldplanung::testExFqWirkfeldplanung() koordinateMitHoeheFromJson
|
||||
QSYSTEM: TestExFqWirkfeldplanung::testExFqWirkfeldplanung() koordinatefromJson
|
||||
QSYSTEM: TestExFqWirkfeldplanung::testExFqWirkfeldplanung() koordinatefromJson longitude= 8.8 latitude= 53.8
|
||||
QSYSTEM: TestExFqWirkfeldplanung::testExFqWirkfeldplanung() koordinateMitHoeheFromJson hoehe= 5
|
||||
QSYSTEM: TestExFqWirkfeldplanung::testExFqWirkfeldplanung() zieldatenfromJson nummer= 7
|
||||
QSYSTEM: TestExFqWirkfeldplanung::testExFqWirkfeldplanung() wirkfeldplanungData.abfeuerungsArt= 0
|
||||
QSYSTEM: TestExFqWirkfeldplanung::testExFqWirkfeldplanung() wirkfeldplanungData.forderung= 8
|
||||
QSYSTEM: TestExFqWirkfeldplanung::testExFqWirkfeldplanung() wirkfeldplanungData.dauer= 30
|
||||
QDEBUG : TestExFqWirkfeldplanung::testExFqWirkfeldplanung() --- Begin compareZieldaten EX-L12 ---
|
||||
QDEBUG : TestExFqWirkfeldplanung::testExFqWirkfeldplanung() --- koordinate ---
|
||||
QDEBUG : TestExFqWirkfeldplanung::testExFqWirkfeldplanung() --- relativKoordinate ---
|
||||
QDEBUG : TestExFqWirkfeldplanung::testExFqWirkfeldplanung() --- End compareZieldaten EX-L12 ---
|
||||
QDEBUG : TestExFqWirkfeldplanung::testExFqWirkfeldplanung() --- Feuerkommandos: ---
|
||||
PASS : TestExFqWirkfeldplanung::testExFqWirkfeldplanung()
|
||||
PASS : TestExFqWirkfeldplanung::cleanupTestCase()
|
||||
Totals: 3 passed, 0 failed, 0 skipped, 0 blacklisted, 18ms
|
||||
********* Finished testing of TestExFqWirkfeldplanung *********
|
||||
********* Start testing of TestExMqManuelleQuittung *********
|
||||
Config: Using QtTest library 5.15.2, Qt 5.15.2 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 7.5.0), opensuse-leap 15.4
|
||||
PASS : TestExMqManuelleQuittung::initTestCase()
|
||||
QDEBUG : TestExMqManuelleQuittung::testExMqManuelleQuittung() -------------------------------
|
||||
QDEBUG : TestExMqManuelleQuittung::testExMqManuelleQuittung() --- EX-MQ Manuelle Quittung ---
|
||||
QSYSTEM: TestExMqManuelleQuittung::testExMqManuelleQuittung() toJsonInternal
|
||||
QSYSTEM: TestExMqManuelleQuittung::testExMqManuelleQuittung() zeitangabe_DTGToJson Stunden= 13
|
||||
QSYSTEM: TestExMqManuelleQuittung::testExMqManuelleQuittung() mqManuelleQuittungDatenToJson
|
||||
QDEBUG : TestExMqManuelleQuittung::testExMqManuelleQuittung() EX-MQ Manuelle Quittung= "{\n \"data\": {\n \"text\": \"Manuelle Quittung\"\n },\n \"reciver\": \"EXCON@GUEZ.LIVE\",\n \"referenceUuid\": \"\",\n \"sender\": \"SAA1@GUEZ.LIVE\",\n \"timestamp\": {\n \"jahr\": 2025,\n \"minuten\": 11,\n \"monat\": 5,\n \"sekunden\": 10,\n \"stunden\": 13,\n \"tag\": 16,\n \"zdm\": \"ZDM\",\n \"zds\": \"ZDS\",\n \"zvz\": \"ZVz\"\n },\n \"type\": \"EX-MQ\",\n \"typeId\": 1001,\n \"uuid\": \"{4c3f3a79-adfa-440b-927f-7b3b9822e8d3}\",\n \"version\": \"\"\n}\n"
|
||||
QSYSTEM: TestExMqManuelleQuittung::testExMqManuelleQuittung() mqManuelleQuittungDatenFromJson
|
||||
PASS : TestExMqManuelleQuittung::testExMqManuelleQuittung()
|
||||
PASS : TestExMqManuelleQuittung::cleanupTestCase()
|
||||
Totals: 3 passed, 0 failed, 0 skipped, 0 blacklisted, 3ms
|
||||
********* Finished testing of TestExMqManuelleQuittung *********
|
||||
********* Start testing of TestExFqFeuerbereit *********
|
||||
Config: Using QtTest library 5.15.2, Qt 5.15.2 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 7.5.0), opensuse-leap 15.4
|
||||
PASS : TestExFqFeuerbereit::initTestCase()
|
||||
QDEBUG : TestExFqFeuerbereit::testExFqFeuerbereit() ---------------------------------------
|
||||
QDEBUG : TestExFqFeuerbereit::testExFqFeuerbereit() --- EX-FQ(FB) Feuerbereit ---
|
||||
QSYSTEM: TestExFqFeuerbereit::testExFqFeuerbereit() toJsonInternal
|
||||
QSYSTEM: TestExFqFeuerbereit::testExFqFeuerbereit() zeitangabe_DTGToJson Stunden= 13
|
||||
QDEBUG : TestExFqFeuerbereit::testExFqFeuerbereit() feuerbereitMessage= "{\n \"data\": {\n \"feuerkampfReferenz\": \"feuerkampfReferenz 1\",\n \"kenner\": \"C1\",\n \"verein\": \"AB7X 1\"\n },\n \"reciver\": \"EXCON@GUEZ.LIVE\",\n \"referenceUuid\": \"\",\n \"sender\": \"SAA1@GUEZ.LIVE\",\n \"timestamp\": {\n \"jahr\": 2025,\n \"minuten\": 11,\n \"monat\": 5,\n \"sekunden\": 10,\n \"stunden\": 13,\n \"tag\": 16,\n \"zdm\": \"ZDM\",\n \"zds\": \"ZDS\",\n \"zvz\": \"ZVz\"\n },\n \"type\": \"EX-FQ(FB)\",\n \"typeId\": 1002,\n \"uuid\": \"{af2effb4-e526-4738-aeb6-d8dc47995ce0}\",\n \"version\": \"\"\n}\n"
|
||||
QSYSTEM: TestExFqFeuerbereit::testExFqFeuerbereit() feuerkampfdatenFromJson feuerkampfReferenz= "feuerkampfReferenz 1" verein= "AB7X 1" kenner= 34 ' "C1" '
|
||||
PASS : TestExFqFeuerbereit::testExFqFeuerbereit()
|
||||
PASS : TestExFqFeuerbereit::cleanupTestCase()
|
||||
Totals: 3 passed, 0 failed, 0 skipped, 0 blacklisted, 3ms
|
||||
********* Finished testing of TestExFqFeuerbereit *********
|
||||
********* Start testing of TestExFqFeuern *********
|
||||
Config: Using QtTest library 5.15.2, Qt 5.15.2 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 7.5.0), opensuse-leap 15.4
|
||||
PASS : TestExFqFeuern::initTestCase()
|
||||
QDEBUG : TestExFqFeuern::testExFqFeuern() ---------------------------------------
|
||||
QDEBUG : TestExFqFeuern::testExFqFeuern() --- EX-FQ(FN) Feuern ---
|
||||
QSYSTEM: TestExFqFeuern::testExFqFeuern() toJsonInternal
|
||||
QSYSTEM: TestExFqFeuern::testExFqFeuern() zeitangabe_DTGToJson Stunden= 13
|
||||
QDEBUG : TestExFqFeuern::testExFqFeuern() feuerbereitMessage= "{\n \"data\": {\n \"feuerkampfReferenz\": \"feuerkampfReferenz 1\",\n \"kenner\": \"C1\",\n \"verein\": \"AB7X 1\"\n },\n \"reciver\": \"EXCON@GUEZ.LIVE\",\n \"referenceUuid\": \"\",\n \"sender\": \"SAA1@GUEZ.LIVE\",\n \"timestamp\": {\n \"jahr\": 2025,\n \"minuten\": 11,\n \"monat\": 5,\n \"sekunden\": 10,\n \"stunden\": 13,\n \"tag\": 16,\n \"zdm\": \"ZDM\",\n \"zds\": \"ZDS\",\n \"zvz\": \"ZVz\"\n },\n \"type\": \"EX-FQ(FN)\",\n \"typeId\": 1003,\n \"uuid\": \"{b4400874-c540-4331-8ee7-97e31c1f74b9}\",\n \"version\": \"\"\n}\n"
|
||||
QSYSTEM: TestExFqFeuern::testExFqFeuern() feuerkampfdatenFromJson feuerkampfReferenz= "feuerkampfReferenz 1" verein= "AB7X 1" kenner= 34 ' "C1" '
|
||||
PASS : TestExFqFeuern::testExFqFeuern()
|
||||
PASS : TestExFqFeuern::cleanupTestCase()
|
||||
Totals: 3 passed, 0 failed, 0 skipped, 0 blacklisted, 2ms
|
||||
********* Finished testing of TestExFqFeuern *********
|
||||
********* Start testing of TestExFqAbgefeuert *********
|
||||
Config: Using QtTest library 5.15.2, Qt 5.15.2 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 7.5.0), opensuse-leap 15.4
|
||||
PASS : TestExFqAbgefeuert::initTestCase()
|
||||
QDEBUG : TestExFqAbgefeuert::testExFqAbgefeuert() ---------------------------------------
|
||||
QDEBUG : TestExFqAbgefeuert::testExFqAbgefeuert() --- EX-FQ(AF) Abgefeuert ---
|
||||
QSYSTEM: TestExFqAbgefeuert::testExFqAbgefeuert() toJsonInternal
|
||||
QSYSTEM: TestExFqAbgefeuert::testExFqAbgefeuert() zeitangabe_DTGToJson Stunden= 13
|
||||
QDEBUG : TestExFqAbgefeuert::testExFqAbgefeuert() abgefeuertMessage= "{\n \"data\": {\n \"feuerkampfReferenz\": \"feuerkampfReferenz 1\",\n \"kenner\": \"C1\",\n \"verein\": \"AB7X 1\"\n },\n \"reciver\": \"EXCON@GUEZ.LIVE\",\n \"referenceUuid\": \"\",\n \"sender\": \"SAA1@GUEZ.LIVE\",\n \"timestamp\": {\n \"jahr\": 2025,\n \"minuten\": 11,\n \"monat\": 5,\n \"sekunden\": 10,\n \"stunden\": 13,\n \"tag\": 16,\n \"zdm\": \"ZDM\",\n \"zds\": \"ZDS\",\n \"zvz\": \"ZVz\"\n },\n \"type\": \"EX-FQ(AF)\",\n \"typeId\": 1004,\n \"uuid\": \"{65201036-324f-4f20-ace9-aa12189b2e0d}\",\n \"version\": \"\"\n}\n"
|
||||
QSYSTEM: TestExFqAbgefeuert::testExFqAbgefeuert() feuerkampfdatenFromJson feuerkampfReferenz= "feuerkampfReferenz 1" verein= "AB7X 1" kenner= 34 ' "C1" '
|
||||
PASS : TestExFqAbgefeuert::testExFqAbgefeuert()
|
||||
PASS : TestExFqAbgefeuert::cleanupTestCase()
|
||||
Totals: 3 passed, 0 failed, 0 skipped, 0 blacklisted, 2ms
|
||||
********* Finished testing of TestExFqAbgefeuert *********
|
||||
********* Start testing of TestExFqVollzugsmeldung *********
|
||||
Config: Using QtTest library 5.15.2, Qt 5.15.2 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 7.5.0), opensuse-leap 15.4
|
||||
PASS : TestExFqVollzugsmeldung::initTestCase()
|
||||
QDEBUG : TestExFqVollzugsmeldung::testExFqVollzugsmeldung() ---------------------------------------
|
||||
QDEBUG : TestExFqVollzugsmeldung::testExFqVollzugsmeldung() --- EX-FQ(VM) Vollzugsmeldung ---
|
||||
QSYSTEM: TestExFqVollzugsmeldung::testExFqVollzugsmeldung() toJsonInternal
|
||||
QSYSTEM: TestExFqVollzugsmeldung::testExFqVollzugsmeldung() zeitangabe_DTGToJson Stunden= 13
|
||||
QDEBUG : TestExFqVollzugsmeldung::testExFqVollzugsmeldung() generateVollzugsmeldungMessage= "{\n \"data\": {\n \"feuerkampfReferenz\": \"feuerkampfReferenz 1\",\n \"kenner\": \"C1\",\n \"verein\": \"AB7X 1\"\n },\n \"reciver\": \"EXCON@GUEZ.LIVE\",\n \"referenceUuid\": \"\",\n \"sender\": \"SAA1@GUEZ.LIVE\",\n \"timestamp\": {\n \"jahr\": 2025,\n \"minuten\": 11,\n \"monat\": 5,\n \"sekunden\": 10,\n \"stunden\": 13,\n \"tag\": 16,\n \"zdm\": \"ZDM\",\n \"zds\": \"ZDS\",\n \"zvz\": \"ZVz\"\n },\n \"type\": \"EX-FQ(VM)\",\n \"typeId\": 1005,\n \"uuid\": \"{3fc7bcc0-5e85-4f12-b8f1-1e1043ff6264}\",\n \"version\": \"\"\n}\n"
|
||||
QSYSTEM: TestExFqVollzugsmeldung::testExFqVollzugsmeldung() feuerkampfdatenFromJson feuerkampfReferenz= "feuerkampfReferenz 1" verein= "AB7X 1" kenner= 34 ' "C1" '
|
||||
PASS : TestExFqVollzugsmeldung::testExFqVollzugsmeldung()
|
||||
PASS : TestExFqVollzugsmeldung::cleanupTestCase()
|
||||
Totals: 3 passed, 0 failed, 0 skipped, 0 blacklisted, 2ms
|
||||
********* Finished testing of TestExFqVollzugsmeldung *********
|
||||
********* Start testing of TestExFqFeuerkampf *********
|
||||
Config: Using QtTest library 5.15.2, Qt 5.15.2 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 7.5.0), opensuse-leap 15.4
|
||||
PASS : TestExFqFeuerkampf::initTestCase()
|
||||
QDEBUG : TestExFqFeuerkampf::testExFqFeuerkampf() -------------------------------
|
||||
QDEBUG : TestExFqFeuerkampf::testExFqFeuerkampf() --- EX-FQ(BA-BB) Feuerkampf ---
|
||||
QSYSTEM: TestExFqFeuerkampf::testExFqFeuerkampf() toJsonInternal
|
||||
QSYSTEM: TestExFqFeuerkampf::testExFqFeuerkampf() zeitangabe_DTGToJson Stunden= 13
|
||||
QSYSTEM: TestExFqFeuerkampf::testExFqFeuerkampf()
|
||||
|
||||
zielmeldedatenToJson
|
||||
QSYSTEM: TestExFqFeuerkampf::testExFqFeuerkampf() zieldatenToJson
|
||||
QSYSTEM: TestExFqFeuerkampf::testExFqFeuerkampf() koordinateToJson longitude= 8.7573 latitude= 53.3779
|
||||
QDEBUG : TestExFqFeuerkampf::testExFqFeuerkampf() koordinateMitHoeheToJson hoehe= 0
|
||||
QSYSTEM: TestExFqFeuerkampf::testExFqFeuerkampf() koordinateToJson longitude= 8.8 latitude= 53.8
|
||||
QDEBUG : TestExFqFeuerkampf::testExFqFeuerkampf() koordinateMitHoeheToJson hoehe= 5
|
||||
QSYSTEM: TestExFqFeuerkampf::testExFqFeuerkampf() zieldatenToJson = "{\n \"breiteRadius\": 25,\n \"elemente\": 1,\n \"geometrie\": \"P\",\n \"koordinate\": {\n \"hoehe\": 0,\n \"koordinate\": {\n \"latitude\": 53.37787,\n \"longitude\": 8.7573\n }\n },\n \"nummer\": 7,\n \"relativKoordinate\": {\n \"hoehe\": 5,\n \"koordinate\": {\n \"latitude\": 53.8,\n \"longitude\": 8.8\n }\n },\n \"subTyp\": \"APERS\",\n \"tiefe\": 26,\n \"typ\": \"EX_L20_PERS\",\n \"zielachse\": 17,\n \"zog\": 7\n}\n"
|
||||
QSYSTEM: TestExFqFeuerkampf::testExFqFeuerkampf() data = "{\n \"Gerlinde\": \"Rudolphus\",\n \"zieldaten\": {\n \"breiteRadius\": 25,\n \"elemente\": 1,\n \"geometrie\": \"P\",\n \"koordinate\": {\n \"hoehe\": 0,\n \"koordinate\": {\n \"latitude\": 53.37787,\n \"longitude\": 8.7573\n }\n },\n \"nummer\": 7,\n \"relativKoordinate\": {\n \"hoehe\": 5,\n \"koordinate\": {\n \"latitude\": 53.8,\n \"longitude\": 8.8\n }\n },\n \"subTyp\": \"APERS\",\n \"tiefe\": 26,\n \"typ\": \"EX_L20_PERS\",\n \"zielachse\": 17,\n \"zog\": 7\n }\n}\n"
|
||||
QSYSTEM: TestExFqFeuerkampf::testExFqFeuerkampf() objZieldaten = "{\n \"breiteRadius\": 25,\n \"elemente\": 1,\n \"geometrie\": \"P\",\n \"koordinate\": {\n \"hoehe\": 0,\n \"koordinate\": {\n \"latitude\": 53.37787,\n \"longitude\": 8.7573\n }\n },\n \"nummer\": 7,\n \"relativKoordinate\": {\n \"hoehe\": 5,\n \"koordinate\": {\n \"latitude\": 53.8,\n \"longitude\": 8.8\n }\n },\n \"subTyp\": \"APERS\",\n \"tiefe\": 26,\n \"typ\": \"EX_L20_PERS\",\n \"zielachse\": 17,\n \"zog\": 7\n}\n"
|
||||
QSYSTEM: TestExFqFeuerkampf::testExFqFeuerkampf() koordinateToJson longitude= 8.759 latitude= 53.3779
|
||||
QDEBUG : TestExFqFeuerkampf::testExFqFeuerkampf() koordinateMitHoeheToJson hoehe= 56
|
||||
QDEBUG : TestExFqFeuerkampf::testExFqFeuerkampf() feuerkampfMessage= "{\n \"data\": {\n \"Gerlinde\": \"Rudolphus\",\n \"abfeuerungsArt\": \"F\",\n \"dauer\": 88,\n \"feuerkommando\": [\n {\n \"verein\": \"verein Feuerkommando\",\n \"wirkmittel\": [\n {\n \"auftreffpunkt\": {\n \"hoehe\": 56,\n \"koordinate\": {\n \"latitude\": 53.37791,\n \"longitude\": 8.759\n }\n },\n \"flugbahnpunkt\": [\n {\n \"xRelativ\": 200,\n \"yRelativ\": 77,\n \"zRelativ\": 300,\n \"zeit\": 17\n },\n {\n \"xRelativ\": 900,\n \"yRelativ\": 177,\n \"zRelativ\": 700,\n \"zeit\": 19\n }\n ],\n \"flugzeit\": 77,\n \"geschoss\": {\n \"anzahl\": 1,\n \"geschosssorte\": \"SprengDM121\",\n \"intervall\": 1,\n \"ladung\": \"M_DM72\",\n \"zuender\": \"Aufschlag_DM241\",\n \"zuenderFunktion\": \"AZoV\",\n \"zuenderZeit\": 0\n },\n \"gipfelhoehe\": 78,\n \"kenner\": 35,\n \"schussrichtung\": 79,\n \"streuung\": {\n \"peBurstDeflection\": 4.9754626068813906e-295,\n \"peBurstRange\": 0,\n \"peDeflection\": 0,\n \"peRange\": 0\n }\n }\n ]\n }\n ],\n \"forderung\": \"BEL\",\n \"zieldaten\": {\n \"breiteRadius\": 25,\n \"elemente\": 1,\n \"geometrie\": \"P\",\n \"koordinate\": {\n \"hoehe\": 0,\n \"koordinate\": {\n \"latitude\": 53.37787,\n \"longitude\": 8.7573\n }\n },\n \"nummer\": 7,\n \"relativKoordinate\": {\n \"hoehe\": 5,\n \"koordinate\": {\n \"latitude\": 53.8,\n \"longitude\": 8.8\n }\n },\n \"subTyp\": \"APERS\",\n \"tiefe\": 26,\n \"typ\": \"EX_L20_PERS\",\n \"zielachse\": 17,\n \"zog\": 7\n }\n },\n \"reciver\": \"EXCON@GUEZ.LIVE\",\n \"referenceUuid\": \"\",\n \"sender\": \"SAA1@GUEZ.LIVE\",\n \"timestamp\": {\n \"jahr\": 2025,\n \"minuten\": 11,\n \"monat\": 5,\n \"sekunden\": 10,\n \"stunden\": 13,\n \"tag\": 16,\n \"zdm\": \"ZDM\",\n \"zds\": \"ZDS\",\n \"zvz\": \"ZVz\"\n },\n \"type\": \"EX-FQ(BA-BB)\",\n \"typeId\": 19,\n \"uuid\": \"{c49b453f-b389-4db5-88fc-f33b67248497}\",\n \"version\": \"\"\n}\n"
|
||||
QSYSTEM: TestExFqFeuerkampf::testExFqFeuerkampf() zielmeldedatenFromJson
|
||||
QSYSTEM: TestExFqFeuerkampf::testExFqFeuerkampf() koordinateMitHoeheFromJson
|
||||
QSYSTEM: TestExFqFeuerkampf::testExFqFeuerkampf() koordinatefromJson
|
||||
QSYSTEM: TestExFqFeuerkampf::testExFqFeuerkampf() koordinatefromJson longitude= 8.7573 latitude= 53.3779
|
||||
QSYSTEM: TestExFqFeuerkampf::testExFqFeuerkampf() koordinateMitHoeheFromJson hoehe= 0
|
||||
QSYSTEM: TestExFqFeuerkampf::testExFqFeuerkampf() koordinateMitHoeheFromJson
|
||||
QSYSTEM: TestExFqFeuerkampf::testExFqFeuerkampf() koordinatefromJson
|
||||
QSYSTEM: TestExFqFeuerkampf::testExFqFeuerkampf() koordinatefromJson longitude= 8.8 latitude= 53.8
|
||||
QSYSTEM: TestExFqFeuerkampf::testExFqFeuerkampf() koordinateMitHoeheFromJson hoehe= 5
|
||||
QSYSTEM: TestExFqFeuerkampf::testExFqFeuerkampf() zieldatenfromJson nummer= 7
|
||||
QSYSTEM: TestExFqFeuerkampf::testExFqFeuerkampf() feuerkommandoFromJson
|
||||
QSYSTEM: TestExFqFeuerkampf::testExFqFeuerkampf() feuerkommando.verein = "verein Feuerkommando"
|
||||
QSYSTEM: TestExFqFeuerkampf::testExFqFeuerkampf() wirkmittelFeuerkommandoFromJson
|
||||
QSYSTEM: TestExFqFeuerkampf::testExFqFeuerkampf() koordinateMitHoeheFromJson
|
||||
QSYSTEM: TestExFqFeuerkampf::testExFqFeuerkampf() koordinatefromJson
|
||||
QSYSTEM: TestExFqFeuerkampf::testExFqFeuerkampf() koordinatefromJson longitude= 8.759 latitude= 53.3779
|
||||
QSYSTEM: TestExFqFeuerkampf::testExFqFeuerkampf() koordinateMitHoeheFromJson hoehe= 56
|
||||
QSYSTEM: TestExFqFeuerkampf::testExFqFeuerkampf() feuerkommandoGeschosseFromJson
|
||||
QSYSTEM: TestExFqFeuerkampf::testExFqFeuerkampf() flugbahnpunkteFromJson
|
||||
QSYSTEM: TestExFqFeuerkampf::testExFqFeuerkampf() flugbahnpunktFromJson
|
||||
QSYSTEM: TestExFqFeuerkampf::testExFqFeuerkampf() flugbahnpunktFromJson zeit= 17 punkt= 200 / 77 / 300
|
||||
QSYSTEM: TestExFqFeuerkampf::testExFqFeuerkampf() flugbahnpunktFromJson
|
||||
QSYSTEM: TestExFqFeuerkampf::testExFqFeuerkampf() flugbahnpunktFromJson zeit= 19 punkt= 900 / 177 / 700
|
||||
QSYSTEM: TestExFqFeuerkampf::testExFqFeuerkampf() streuungsdatenfromJson peDeflection= 0 peBurstRange= 0 peBurstDeflection= 4.97546e-295
|
||||
QSYSTEM: TestExFqFeuerkampf::testExFqFeuerkampf() wirkmittel
|
||||
QSYSTEM: TestExFqFeuerkampf::testExFqFeuerkampf() wirkmittel
|
||||
QDEBUG : TestExFqFeuerkampf::testExFqFeuerkampf() --- Compare EX-Zielmeldedaten ---
|
||||
QDEBUG : TestExFqFeuerkampf::testExFqFeuerkampf() --- Begin compareZieldaten EX-L12 ---
|
||||
QDEBUG : TestExFqFeuerkampf::testExFqFeuerkampf() --- koordinate ---
|
||||
QDEBUG : TestExFqFeuerkampf::testExFqFeuerkampf() --- relativKoordinate ---
|
||||
QDEBUG : TestExFqFeuerkampf::testExFqFeuerkampf() --- End compareZieldaten EX-L12 ---
|
||||
PASS : TestExFqFeuerkampf::testExFqFeuerkampf()
|
||||
PASS : TestExFqFeuerkampf::cleanupTestCase()
|
||||
Totals: 3 passed, 0 failed, 0 skipped, 0 blacklisted, 7ms
|
||||
********* Finished testing of TestExFqFeuerkampf *********
|
||||
********* Start testing of TestExFeuerhalt *********
|
||||
Config: Using QtTest library 5.15.2, Qt 5.15.2 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 7.5.0), opensuse-leap 15.4
|
||||
PASS : TestExFeuerhalt::initTestCase()
|
||||
QDEBUG : TestExFeuerhalt::testExFeuerhalt() ------------------------
|
||||
QDEBUG : TestExFeuerhalt::testExFeuerhalt() --- EX-FH Feuer HALT ---
|
||||
QSYSTEM: TestExFeuerhalt::testExFeuerhalt() toJsonInternal
|
||||
QSYSTEM: TestExFeuerhalt::testExFeuerhalt() zeitangabe_DTGToJson Stunden= 13
|
||||
QSYSTEM: TestExFeuerhalt::testExFeuerhalt() feuerHaltDatenToJson
|
||||
QSYSTEM: TestExFeuerhalt::testExFeuerhalt() koordinateToJson longitude= 8.759 latitude= 53.3779
|
||||
QDEBUG : TestExFeuerhalt::testExFeuerhalt() feuerhaltMessage= "{\n \"data\": {\n \"feuerkampf\": \"feuerHaltDaten\",\n \"kategorie\": \"FH_E\",\n \"koordinate\": {\n \"latitude\": 53.37791,\n \"longitude\": 8.759\n },\n \"radius\": 50,\n \"zpNummer\": 5\n },\n \"reciver\": \"EXCON@GUEZ.LIVE\",\n \"referenceUuid\": \"\",\n \"sender\": \"SAA1@GUEZ.LIVE\",\n \"timestamp\": {\n \"jahr\": 2025,\n \"minuten\": 11,\n \"monat\": 5,\n \"sekunden\": 10,\n \"stunden\": 13,\n \"tag\": 16,\n \"zdm\": \"ZDM\",\n \"zds\": \"ZDS\",\n \"zvz\": \"ZVz\"\n },\n \"type\": \"EX-FH\",\n \"typeId\": 1006,\n \"uuid\": \"{c4ea1b11-c132-4a9f-a4e8-2332d0f831f9}\",\n \"version\": \"\"\n}\n"
|
||||
QSYSTEM: TestExFeuerhalt::testExFeuerhalt() feuerHaltDatenFromJson
|
||||
QSYSTEM: TestExFeuerhalt::testExFeuerhalt() koordinatefromJson
|
||||
QSYSTEM: TestExFeuerhalt::testExFeuerhalt() koordinatefromJson longitude= 8.759 latitude= 53.3779
|
||||
PASS : TestExFeuerhalt::testExFeuerhalt()
|
||||
PASS : TestExFeuerhalt::cleanupTestCase()
|
||||
Totals: 3 passed, 0 failed, 0 skipped, 0 blacklisted, 2ms
|
||||
********* Finished testing of TestExFeuerhalt *********
|
||||
********* Start testing of TestExStellungsmeldungFS *********
|
||||
Config: Using QtTest library 5.15.2, Qt 5.15.2 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 7.5.0), opensuse-leap 15.4
|
||||
PASS : TestExStellungsmeldungFS::initTestCase()
|
||||
QDEBUG : TestExStellungsmeldungFS::testExStellungsmeldungFS() ------------------------------------------------
|
||||
QDEBUG : TestExStellungsmeldungFS::testExStellungsmeldungFS() --- EX-SQ(FS) Stellungsmeldung Feuerstellung ---
|
||||
QSYSTEM: TestExStellungsmeldungFS::testExStellungsmeldungFS() toJsonInternal
|
||||
QSYSTEM: TestExStellungsmeldungFS::testExStellungsmeldungFS() zeitangabe_DTGToJson Stunden= 13
|
||||
QSYSTEM: TestExStellungsmeldungFS::testExStellungsmeldungFS() feuerstellungsdatenToJson
|
||||
QSYSTEM: TestExStellungsmeldungFS::testExStellungsmeldungFS() einheitToJson einheit.oi= 3
|
||||
QSYSTEM: TestExStellungsmeldungFS::testExStellungsmeldungFS() koordinateToJson longitude= 8.759 latitude= 53.3779
|
||||
QDEBUG : TestExStellungsmeldungFS::testExStellungsmeldungFS() koordinateMitHoeheToJson hoehe= 20
|
||||
QSYSTEM: TestExStellungsmeldungFS::testExStellungsmeldungFS() koordinateToJson longitude= 8.76 latitude= 53.3779
|
||||
QDEBUG : TestExStellungsmeldungFS::testExStellungsmeldungFS() koordinateMitHoeheToJson hoehe= 22
|
||||
QSYSTEM: TestExStellungsmeldungFS::testExStellungsmeldungFS() koordinateToJson longitude= 8.761 latitude= 53.3779
|
||||
QDEBUG : TestExStellungsmeldungFS::testExStellungsmeldungFS() koordinateMitHoeheToJson hoehe= 23
|
||||
QSYSTEM: TestExStellungsmeldungFS::testExStellungsmeldungFS() geschossToJson geschosssorte= 17 ladung= 2 zuender= 10 anzahl= 6
|
||||
QSYSTEM: TestExStellungsmeldungFS::testExStellungsmeldungFS() geschossToJson geschosssorte= 1 ladung= 0 zuender= 2 anzahl= 7
|
||||
QDEBUG : TestExStellungsmeldungFS::testExStellungsmeldungFS() EX-SQ(FS) Stellungsmeldung Feuerstellung= "{\n \"data\": {\n \"einheit\": {\n \"oi\": \"F3\",\n \"r\": 5,\n \"verein\": \"verein ExFeuerstellungFS\"\n },\n \"geschosse\": [\n {\n \"anzahl\": 6,\n \"geschosssorte\": \"MineDM72\",\n \"ladung\": \"X_DM82\",\n \"zuender\": \"Doppel_DM183\"\n },\n {\n \"anzahl\": 7,\n \"geschosssorte\": \"LeuchtDM116\",\n \"ladung\": \"B_L8A1\",\n \"zuender\": \"Aufschlag_BB_DM371\"\n }\n ],\n \"koordinaten\": [\n {\n \"hoehe\": 22,\n \"koordinate\": {\n \"latitude\": 53.37792,\n \"longitude\": 8.76\n }\n },\n {\n \"hoehe\": 23,\n \"koordinate\": {\n \"latitude\": 53.37793,\n \"longitude\": 8.761\n }\n }\n ],\n \"mittelpunkt\": {\n \"hoehe\": 20,\n \"koordinate\": {\n \"latitude\": 53.37791,\n \"longitude\": 8.759\n }\n },\n \"status\": \"Einsatzbereit\",\n \"typ\": \"MRS\",\n \"wirkungsbereich\": {\n \"grundrichtung\": 6868481,\n \"links\": 0,\n \"rechts\": 4240192\n }\n },\n \"reciver\": \"EXCON@GUEZ.LIVE\",\n \"referenceUuid\": \"\",\n \"sender\": \"SAA1@GUEZ.LIVE\",\n \"timestamp\": {\n \"jahr\": 2025,\n \"minuten\": 11,\n \"monat\": 5,\n \"sekunden\": 10,\n \"stunden\": 13,\n \"tag\": 16,\n \"zdm\": \"ZDM\",\n \"zds\": \"ZDS\",\n \"zvz\": \"ZVz\"\n },\n \"type\": \"EX-SQ(FS)\",\n \"typeId\": 2000,\n \"uuid\": \"{0556fcc8-7126-4778-b4ce-acb6ffcbf5f2}\",\n \"version\": \"\"\n}\n"
|
||||
QSYSTEM: TestExStellungsmeldungFS::testExStellungsmeldungFS() feuerstellungsdatenFromJson
|
||||
QSYSTEM: TestExStellungsmeldungFS::testExStellungsmeldungFS() einheitfromJson
|
||||
QSYSTEM: TestExStellungsmeldungFS::testExStellungsmeldungFS() koordinateMitHoeheFromJson
|
||||
QSYSTEM: TestExStellungsmeldungFS::testExStellungsmeldungFS() koordinatefromJson
|
||||
QSYSTEM: TestExStellungsmeldungFS::testExStellungsmeldungFS() koordinatefromJson longitude= 8.759 latitude= 53.3779
|
||||
QSYSTEM: TestExStellungsmeldungFS::testExStellungsmeldungFS() koordinateMitHoeheFromJson hoehe= 20
|
||||
QSYSTEM: TestExStellungsmeldungFS::testExStellungsmeldungFS() koordinateMitHoeheFromJson
|
||||
QSYSTEM: TestExStellungsmeldungFS::testExStellungsmeldungFS() koordinatefromJson
|
||||
QSYSTEM: TestExStellungsmeldungFS::testExStellungsmeldungFS() koordinatefromJson longitude= 8.76 latitude= 53.3779
|
||||
QSYSTEM: TestExStellungsmeldungFS::testExStellungsmeldungFS() koordinateMitHoeheFromJson hoehe= 22
|
||||
QSYSTEM: TestExStellungsmeldungFS::testExStellungsmeldungFS() koordinateMitHoeheFromJson
|
||||
QSYSTEM: TestExStellungsmeldungFS::testExStellungsmeldungFS() koordinatefromJson
|
||||
QSYSTEM: TestExStellungsmeldungFS::testExStellungsmeldungFS() koordinatefromJson longitude= 8.761 latitude= 53.3779
|
||||
QSYSTEM: TestExStellungsmeldungFS::testExStellungsmeldungFS() koordinateMitHoeheFromJson hoehe= 23
|
||||
QSYSTEM: TestExStellungsmeldungFS::testExStellungsmeldungFS() geschossefromJson
|
||||
QSYSTEM: TestExStellungsmeldungFS::testExStellungsmeldungFS() geschosssorte= ' QJsonValue(string, "MineDM72") '
|
||||
QSYSTEM: TestExStellungsmeldungFS::testExStellungsmeldungFS() geschossefromJson geschosssorte= 17 ladung= 2 zuender= 10 anzahl= 6
|
||||
QSYSTEM: TestExStellungsmeldungFS::testExStellungsmeldungFS() geschossefromJson
|
||||
QSYSTEM: TestExStellungsmeldungFS::testExStellungsmeldungFS() geschosssorte= ' QJsonValue(string, "LeuchtDM116") '
|
||||
QSYSTEM: TestExStellungsmeldungFS::testExStellungsmeldungFS() geschossefromJson geschosssorte= 1 ladung= 0 zuender= 2 anzahl= 7
|
||||
QSYSTEM: TestExStellungsmeldungFS::testExStellungsmeldungFS() wirkungsbereichFromJson
|
||||
PASS : TestExStellungsmeldungFS::testExStellungsmeldungFS()
|
||||
PASS : TestExStellungsmeldungFS::cleanupTestCase()
|
||||
Totals: 3 passed, 0 failed, 0 skipped, 0 blacklisted, 7ms
|
||||
********* Finished testing of TestExStellungsmeldungFS *********
|
||||
********* Start testing of TestExStellungsmeldungWS *********
|
||||
Config: Using QtTest library 5.15.2, Qt 5.15.2 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 7.5.0), opensuse-leap 15.4
|
||||
PASS : TestExStellungsmeldungWS::initTestCase()
|
||||
QDEBUG : TestExStellungsmeldungWS::testExStellungsmeldungWS() ------------------------------------------------
|
||||
QDEBUG : TestExStellungsmeldungWS::testExStellungsmeldungWS() --- EX-SQ(WS) Stellungsmeldung Waffensystem ---
|
||||
QSYSTEM: TestExStellungsmeldungWS::testExStellungsmeldungWS() toJsonInternal
|
||||
QSYSTEM: TestExStellungsmeldungWS::testExStellungsmeldungWS() zeitangabe_DTGToJson Stunden= 13
|
||||
QSYSTEM: TestExStellungsmeldungWS::testExStellungsmeldungWS() TODO waffensystemdatenToJson
|
||||
QSYSTEM: TestExStellungsmeldungWS::testExStellungsmeldungWS() einheitToJson einheit.oi= 6
|
||||
QSYSTEM: TestExStellungsmeldungWS::testExStellungsmeldungWS() geschossToJson geschosssorte= 17 ladung= 2 zuender= 10 anzahl= 6
|
||||
QSYSTEM: TestExStellungsmeldungWS::testExStellungsmeldungWS() geschossToJson geschosssorte= 1 ladung= 0 zuender= 2 anzahl= 7
|
||||
QSYSTEM: TestExStellungsmeldungWS::testExStellungsmeldungWS() koordinateToJson longitude= 8.759 latitude= 53.3779
|
||||
QDEBUG : TestExStellungsmeldungWS::testExStellungsmeldungWS() koordinateMitHoeheToJson hoehe= 20
|
||||
QDEBUG : TestExStellungsmeldungWS::testExStellungsmeldungWS() EX-SQ(WS) Stellungsmeldung Waffensystem= "{\n \"data\": {\n \"einheit\": {\n \"oi\": \"F6\",\n \"r\": 6,\n \"verein\": \"verein ExFeuerstellungWS\"\n },\n \"geschosse\": [\n {\n \"anzahl\": 6,\n \"geschosssorte\": \"MineDM72\",\n \"ladung\": \"X_DM82\",\n \"zuender\": \"Doppel_DM183\"\n },\n {\n \"anzahl\": 7,\n \"geschosssorte\": \"LeuchtDM116\",\n \"ladung\": \"B_L8A1\",\n \"zuender\": \"Aufschlag_BB_DM371\"\n }\n ],\n \"kenner\": \"B1\",\n \"koordinate\": {\n \"hoehe\": 20,\n \"koordinate\": {\n \"latitude\": 53.37791,\n \"longitude\": 8.759\n }\n },\n \"status\": \"Nicht einsatzbereit\",\n \"typ\": \"MRS\",\n \"wirkungsbereich\": {\n \"grundrichtung\": 1,\n \"links\": 2,\n \"rechts\": 3\n }\n },\n \"reciver\": \"EXCON@GUEZ.LIVE\",\n \"referenceUuid\": \"\",\n \"sender\": \"SAA1@GUEZ.LIVE\",\n \"timestamp\": {\n \"jahr\": 2025,\n \"minuten\": 11,\n \"monat\": 5,\n \"sekunden\": 10,\n \"stunden\": 13,\n \"tag\": 16,\n \"zdm\": \"ZDM\",\n \"zds\": \"ZDS\",\n \"zvz\": \"ZVz\"\n },\n \"type\": \"EX-SQ(WS)\",\n \"typeId\": 2001,\n \"uuid\": \"{546479bc-d439-46af-bbb8-8ab4bfb1f2cb}\",\n \"version\": \"\"\n}\n"
|
||||
QSYSTEM: TestExStellungsmeldungWS::testExStellungsmeldungWS() waffensystemdatenFromJson
|
||||
QSYSTEM: TestExStellungsmeldungWS::testExStellungsmeldungWS() einheitfromJson
|
||||
QSYSTEM: TestExStellungsmeldungWS::testExStellungsmeldungWS() geschossefromJson
|
||||
QSYSTEM: TestExStellungsmeldungWS::testExStellungsmeldungWS() geschosssorte= ' QJsonValue(string, "MineDM72") '
|
||||
QSYSTEM: TestExStellungsmeldungWS::testExStellungsmeldungWS() geschossefromJson geschosssorte= 17 ladung= 2 zuender= 10 anzahl= 6
|
||||
QSYSTEM: TestExStellungsmeldungWS::testExStellungsmeldungWS() geschossefromJson
|
||||
QSYSTEM: TestExStellungsmeldungWS::testExStellungsmeldungWS() geschosssorte= ' QJsonValue(string, "LeuchtDM116") '
|
||||
QSYSTEM: TestExStellungsmeldungWS::testExStellungsmeldungWS() geschossefromJson geschosssorte= 1 ladung= 0 zuender= 2 anzahl= 7
|
||||
QSYSTEM: TestExStellungsmeldungWS::testExStellungsmeldungWS() koordinateMitHoeheFromJson
|
||||
QSYSTEM: TestExStellungsmeldungWS::testExStellungsmeldungWS() koordinatefromJson
|
||||
QSYSTEM: TestExStellungsmeldungWS::testExStellungsmeldungWS() koordinatefromJson longitude= 8.759 latitude= 53.3779
|
||||
QSYSTEM: TestExStellungsmeldungWS::testExStellungsmeldungWS() koordinateMitHoeheFromJson hoehe= 20
|
||||
QSYSTEM: TestExStellungsmeldungWS::testExStellungsmeldungWS() wirkungsbereichFromJson
|
||||
PASS : TestExStellungsmeldungWS::testExStellungsmeldungWS()
|
||||
PASS : TestExStellungsmeldungWS::cleanupTestCase()
|
||||
Totals: 3 passed, 0 failed, 0 skipped, 0 blacklisted, 4ms
|
||||
********* Finished testing of TestExStellungsmeldungWS *********
|
||||
********* Start testing of TestExStellungsmeldungLP *********
|
||||
Config: Using QtTest library 5.15.2, Qt 5.15.2 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 7.5.0), opensuse-leap 15.4
|
||||
PASS : TestExStellungsmeldungLP::initTestCase()
|
||||
QDEBUG : TestExStellungsmeldungLP::testExStellungsmeldungLP() --------------------------------------------
|
||||
QDEBUG : TestExStellungsmeldungLP::testExStellungsmeldungLP() --- EX-SQ(LP) Stellungsmeldung Ladeplatz ---
|
||||
QSYSTEM: TestExStellungsmeldungLP::testExStellungsmeldungLP() toJsonInternal
|
||||
QSYSTEM: TestExStellungsmeldungLP::testExStellungsmeldungLP() zeitangabe_DTGToJson Stunden= 13
|
||||
QSYSTEM: TestExStellungsmeldungLP::testExStellungsmeldungLP() TODO ladeplatzdatenToJson
|
||||
QSYSTEM: TestExStellungsmeldungLP::testExStellungsmeldungLP() geschossToJson geschosssorte= 17 ladung= 2 zuender= 10 anzahl= 6
|
||||
QSYSTEM: TestExStellungsmeldungLP::testExStellungsmeldungLP() geschossToJson geschosssorte= 1 ladung= 0 zuender= 2 anzahl= 7
|
||||
QSYSTEM: TestExStellungsmeldungLP::testExStellungsmeldungLP() koordinateToJson longitude= 8.759 latitude= 53.3779
|
||||
QDEBUG : TestExStellungsmeldungLP::testExStellungsmeldungLP() koordinateMitHoeheToJson hoehe= 20
|
||||
QDEBUG : TestExStellungsmeldungLP::testExStellungsmeldungLP() EX-SQ(LP) Stellungsmeldung Ladeplatz= "{\n \"data\": {\n \"geschosse\": [\n {\n \"anzahl\": 6,\n \"geschosssorte\": \"MineDM72\",\n \"ladung\": \"X_DM82\",\n \"zuender\": \"Doppel_DM183\"\n },\n {\n \"anzahl\": 7,\n \"geschosssorte\": \"LeuchtDM116\",\n \"ladung\": \"B_L8A1\",\n \"zuender\": \"Aufschlag_BB_DM371\"\n }\n ],\n \"koordinate\": {\n \"hoehe\": 20,\n \"koordinate\": {\n \"latitude\": 53.37791,\n \"longitude\": 8.759\n }\n },\n \"typ\": \"EX_L20_ASSY\"\n },\n \"reciver\": \"EXCON@GUEZ.LIVE\",\n \"referenceUuid\": \"\",\n \"sender\": \"SAA1@GUEZ.LIVE\",\n \"timestamp\": {\n \"jahr\": 2025,\n \"minuten\": 11,\n \"monat\": 5,\n \"sekunden\": 10,\n \"stunden\": 13,\n \"tag\": 16,\n \"zdm\": \"ZDM\",\n \"zds\": \"ZDS\",\n \"zvz\": \"ZVz\"\n },\n \"type\": \"EX-SQ(LP)\",\n \"typeId\": 2002,\n \"uuid\": \"{eb9ec2e2-5a63-4c90-a17d-b6273bbcd00c}\",\n \"version\": \"\"\n}\n"
|
||||
QSYSTEM: TestExStellungsmeldungLP::testExStellungsmeldungLP() ladeplatzdatenFromJson
|
||||
QSYSTEM: TestExStellungsmeldungLP::testExStellungsmeldungLP() koordinateMitHoeheFromJson
|
||||
QSYSTEM: TestExStellungsmeldungLP::testExStellungsmeldungLP() koordinatefromJson
|
||||
QSYSTEM: TestExStellungsmeldungLP::testExStellungsmeldungLP() koordinatefromJson longitude= 8.759 latitude= 53.3779
|
||||
QSYSTEM: TestExStellungsmeldungLP::testExStellungsmeldungLP() koordinateMitHoeheFromJson hoehe= 20
|
||||
QSYSTEM: TestExStellungsmeldungLP::testExStellungsmeldungLP() geschossefromJson
|
||||
QSYSTEM: TestExStellungsmeldungLP::testExStellungsmeldungLP() geschosssorte= ' QJsonValue(string, "MineDM72") '
|
||||
QSYSTEM: TestExStellungsmeldungLP::testExStellungsmeldungLP() geschossefromJson geschosssorte= 17 ladung= 2 zuender= 10 anzahl= 6
|
||||
QSYSTEM: TestExStellungsmeldungLP::testExStellungsmeldungLP() geschossefromJson
|
||||
QSYSTEM: TestExStellungsmeldungLP::testExStellungsmeldungLP() geschosssorte= ' QJsonValue(string, "LeuchtDM116") '
|
||||
QSYSTEM: TestExStellungsmeldungLP::testExStellungsmeldungLP() geschossefromJson geschosssorte= 1 ladung= 0 zuender= 2 anzahl= 7
|
||||
PASS : TestExStellungsmeldungLP::testExStellungsmeldungLP()
|
||||
PASS : TestExStellungsmeldungLP::cleanupTestCase()
|
||||
Totals: 3 passed, 0 failed, 0 skipped, 0 blacklisted, 4ms
|
||||
********* Finished testing of TestExStellungsmeldungLP *********
|
||||
********* Start testing of TestExErkundungsergebnisse *********
|
||||
Config: Using QtTest library 5.15.2, Qt 5.15.2 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 7.5.0), opensuse-leap 15.4
|
||||
PASS : TestExErkundungsergebnisse::initTestCase()
|
||||
QDEBUG : TestExErkundungsergebnisse::testExErkundungsergebnisse() -------------------------------------------------------------
|
||||
QDEBUG : TestExErkundungsergebnisse::testExErkundungsergebnisse() --- EX-Erkundungsergebnisse - Senden Erkundungsergebnisse ---
|
||||
QSYSTEM: TestExErkundungsergebnisse::testExErkundungsergebnisse() toJsonInternal
|
||||
QSYSTEM: TestExErkundungsergebnisse::testExErkundungsergebnisse() zeitangabe_DTGToJson Stunden= 13
|
||||
QSYSTEM: TestExErkundungsergebnisse::testExErkundungsergebnisse() erkundungsdatenToJson
|
||||
QSYSTEM: TestExErkundungsergebnisse::testExErkundungsergebnisse() erkundungseinheitToJson verein= "verein Erkundungsdaten" r= 5
|
||||
QSYSTEM: TestExErkundungsergebnisse::testExErkundungsergebnisse() koordinateToJson longitude= 8.758 latitude= 53.3779
|
||||
QDEBUG : TestExErkundungsergebnisse::testExErkundungsergebnisse() koordinateMitHoeheToJson hoehe= 55
|
||||
QSYSTEM: TestExErkundungsergebnisse::testExErkundungsergebnisse() erkundungsstellungenToJson
|
||||
QSYSTEM: TestExErkundungsergebnisse::testExErkundungsergebnisse() koordinateToJson longitude= 8.759 latitude= 53.3779
|
||||
QDEBUG : TestExErkundungsergebnisse::testExErkundungsergebnisse() koordinateMitHoeheToJson hoehe= 56
|
||||
QSYSTEM: TestExErkundungsergebnisse::testExErkundungsergebnisse() koordinateToJson longitude= 8.76 latitude= 53.3779
|
||||
QDEBUG : TestExErkundungsergebnisse::testExErkundungsergebnisse() koordinateMitHoeheToJson hoehe= 57
|
||||
QDEBUG : TestExErkundungsergebnisse::testExErkundungsergebnisse() erkundungsergebnisseMessage= "{\n \"data\": {\n \"feuerkommando\": {\n \"einheit\": 5,\n \"verein\": \"verein Erkundungsdaten\"\n },\n \"koordinate\": {\n \"hoehe\": 55,\n \"koordinate\": {\n \"latitude\": 53.3779,\n \"longitude\": 8.758\n }\n },\n \"stellungen\": {\n \"waffenplaetze\": [\n {\n \"hoehe\": 56,\n \"koordinate\": {\n \"latitude\": 53.37791,\n \"longitude\": 8.759\n }\n },\n {\n \"hoehe\": 57,\n \"koordinate\": {\n \"latitude\": 53.37792,\n \"longitude\": 8.76\n }\n }\n ],\n \"wirkungsbereich\": {\n \"grundrichtung\": 33,\n \"links\": 44,\n \"rechts\": 55\n }\n }\n },\n \"reciver\": \"EXCON@GUEZ.LIVE\",\n \"referenceUuid\": \"\",\n \"sender\": \"SAA1@GUEZ.LIVE\",\n \"timestamp\": {\n \"jahr\": 2025,\n \"minuten\": 11,\n \"monat\": 5,\n \"sekunden\": 10,\n \"stunden\": 13,\n \"tag\": 16,\n \"zdm\": \"ZDM\",\n \"zds\": \"ZDS\",\n \"zvz\": \"ZVz\"\n },\n \"type\": \"EX-Erkundungsergebnisse\",\n \"typeId\": 5000,\n \"uuid\": \"{591a0103-e504-4a42-9c87-a755c6600018}\",\n \"version\": \"\"\n}\n"
|
||||
QSYSTEM: TestExErkundungsergebnisse::testExErkundungsergebnisse() START erkundungsdatenFromJson
|
||||
QSYSTEM: TestExErkundungsergebnisse::testExErkundungsergebnisse() erkundungseinheitFromJson verein= "verein Erkundungsdaten" r= 5
|
||||
QSYSTEM: TestExErkundungsergebnisse::testExErkundungsergebnisse() koordinateMitHoeheFromJson
|
||||
QSYSTEM: TestExErkundungsergebnisse::testExErkundungsergebnisse() koordinatefromJson
|
||||
QSYSTEM: TestExErkundungsergebnisse::testExErkundungsergebnisse() koordinatefromJson longitude= 8.758 latitude= 53.3779
|
||||
QSYSTEM: TestExErkundungsergebnisse::testExErkundungsergebnisse() koordinateMitHoeheFromJson hoehe= 55
|
||||
QSYSTEM: TestExErkundungsergebnisse::testExErkundungsergebnisse() erkundungsstellungenFromJson
|
||||
QSYSTEM: TestExErkundungsergebnisse::testExErkundungsergebnisse() waffenplaetzeArray.size() 2
|
||||
QSYSTEM: TestExErkundungsergebnisse::testExErkundungsergebnisse() koordinateMitHoeheFromJson
|
||||
QSYSTEM: TestExErkundungsergebnisse::testExErkundungsergebnisse() koordinatefromJson
|
||||
QSYSTEM: TestExErkundungsergebnisse::testExErkundungsergebnisse() koordinatefromJson longitude= 8.759 latitude= 53.3779
|
||||
QSYSTEM: TestExErkundungsergebnisse::testExErkundungsergebnisse() koordinateMitHoeheFromJson hoehe= 56
|
||||
QSYSTEM: TestExErkundungsergebnisse::testExErkundungsergebnisse() koordinateMitHoeheFromJson
|
||||
QSYSTEM: TestExErkundungsergebnisse::testExErkundungsergebnisse() koordinatefromJson
|
||||
QSYSTEM: TestExErkundungsergebnisse::testExErkundungsergebnisse() koordinatefromJson longitude= 8.76 latitude= 53.3779
|
||||
QSYSTEM: TestExErkundungsergebnisse::testExErkundungsergebnisse() koordinateMitHoeheFromJson hoehe= 57
|
||||
QSYSTEM: TestExErkundungsergebnisse::testExErkundungsergebnisse() wirkungsbereichFromJson
|
||||
QSYSTEM: TestExErkundungsergebnisse::testExErkundungsergebnisse() Ende erkundungsstellungenFromJson
|
||||
PASS : TestExErkundungsergebnisse::testExErkundungsergebnisse()
|
||||
PASS : TestExErkundungsergebnisse::cleanupTestCase()
|
||||
Totals: 3 passed, 0 failed, 0 skipped, 0 blacklisted, 5ms
|
||||
********* Finished testing of TestExErkundungsergebnisse *********
|
||||
********* Start testing of TestExStellungswechsel *********
|
||||
Config: Using QtTest library 5.15.2, Qt 5.15.2 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 7.5.0), opensuse-leap 15.4
|
||||
PASS : TestExStellungswechsel::initTestCase()
|
||||
QDEBUG : TestExStellungswechsel::testExStellungswechsel() ---------------------------
|
||||
QDEBUG : TestExStellungswechsel::testExStellungswechsel() --- EX-Stellungswechsel ---
|
||||
QSYSTEM: TestExStellungswechsel::testExStellungswechsel() toJsonInternal
|
||||
QSYSTEM: TestExStellungswechsel::testExStellungswechsel() zeitangabe_DTGToJson Stunden= 13
|
||||
QDEBUG : TestExStellungswechsel::testExStellungswechsel() EX-Stellungswechsel= "{\n \"data\": {\n \"oi\": \"F3\",\n \"r\": 5,\n \"verein\": \"verein ExStellungswechsel\"\n },\n \"reciver\": \"EXCON@GUEZ.LIVE\",\n \"referenceUuid\": \"\",\n \"sender\": \"SAA1@GUEZ.LIVE\",\n \"timestamp\": {\n \"jahr\": 2025,\n \"minuten\": 11,\n \"monat\": 5,\n \"sekunden\": 10,\n \"stunden\": 13,\n \"tag\": 16,\n \"zdm\": \"ZDM\",\n \"zds\": \"ZDS\",\n \"zvz\": \"ZVz\"\n },\n \"type\": \"EX-Stellungswechsel\",\n \"typeId\": 20,\n \"uuid\": \"{31f1ed16-59fc-49bd-ab26-9a7b47f3343c}\",\n \"version\": \"\"\n}\n"
|
||||
QSYSTEM: TestExStellungswechsel::testExStellungswechsel() stellungswechseldatenFromJson
|
||||
PASS : TestExStellungswechsel::testExStellungswechsel()
|
||||
PASS : TestExStellungswechsel::cleanupTestCase()
|
||||
Totals: 3 passed, 0 failed, 0 skipped, 0 blacklisted, 3ms
|
||||
********* Finished testing of TestExStellungswechsel *********
|
||||
********* Start testing of TestExHqKoordinierungsmassnahmen *********
|
||||
Config: Using QtTest library 5.15.2, Qt 5.15.2 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 7.5.0), opensuse-leap 15.4
|
||||
PASS : TestExHqKoordinierungsmassnahmen::initTestCase()
|
||||
QDEBUG : TestExHqKoordinierungsmassnahmen::testExHqKoordinierungsmassnahmen() -----------------------------------------
|
||||
QDEBUG : TestExHqKoordinierungsmassnahmen::testExHqKoordinierungsmassnahmen() --- EX-HQ(K) Koordinierungsmassnahmen ---
|
||||
QSYSTEM: TestExHqKoordinierungsmassnahmen::testExHqKoordinierungsmassnahmen() toJsonInternal
|
||||
QSYSTEM: TestExHqKoordinierungsmassnahmen::testExHqKoordinierungsmassnahmen() zeitangabe_DTGToJson Stunden= 13
|
||||
QSYSTEM: TestExHqKoordinierungsmassnahmen::testExHqKoordinierungsmassnahmen() koordinierungsdatenToJson
|
||||
QSYSTEM: TestExHqKoordinierungsmassnahmen::testExHqKoordinierungsmassnahmen() zeitangabe_DTGToJson Stunden= 5
|
||||
QSYSTEM: TestExHqKoordinierungsmassnahmen::testExHqKoordinierungsmassnahmen() zeitangabe_DTGToJson Stunden= 5
|
||||
QSYSTEM: TestExHqKoordinierungsmassnahmen::testExHqKoordinierungsmassnahmen() koordinateToJson longitude= 8.76 latitude= 53.3779
|
||||
QSYSTEM: TestExHqKoordinierungsmassnahmen::testExHqKoordinierungsmassnahmen() koordinateToJson longitude= 8.761 latitude= 53.3779
|
||||
QSYSTEM: TestExHqKoordinierungsmassnahmen::testExHqKoordinierungsmassnahmen() koordinateToJson longitude= 8.762 latitude= 53.3779
|
||||
QDEBUG : TestExHqKoordinierungsmassnahmen::testExHqKoordinierungsmassnahmen() EX-HQ(K) Koordinierungsmassnahmen= "{\n \"data\": {\n \"ab\": {\n \"jahr\": 2025,\n \"minuten\": 35,\n \"monat\": 11,\n \"sekunden\": 55,\n \"stunden\": 5,\n \"tag\": 12,\n \"zdm\": \"ZDM\",\n \"zds\": \"ZDS\",\n \"zvz\": \"ZVz\"\n },\n \"art\": \"NFA\",\n \"bis\": {\n \"jahr\": 2025,\n \"minuten\": 35,\n \"monat\": 11,\n \"sekunden\": 55,\n \"stunden\": 5,\n \"tag\": 13,\n \"zdm\": \"ZDM\",\n \"zds\": \"ZDS\",\n \"zvz\": \"ZVz\"\n },\n \"koordinaten\": [\n {\n \"latitude\": 53.37792,\n \"longitude\": 8.76\n },\n {\n \"latitude\": 53.37793,\n \"longitude\": 8.761\n }\n ],\n \"maxGipfel\": 123,\n \"mittelpunkt\": {\n \"latitude\": 53.37794,\n \"longitude\": 8.762\n },\n \"name\": \"Name ExHqKoordinierungsmassnahme\",\n \"radius\": 66,\n \"truppenteil\": \"Truppenteil ExHqKoordinierungsmassnahme\"\n },\n \"reciver\": \"EXCON@GUEZ.LIVE\",\n \"referenceUuid\": \"\",\n \"sender\": \"SAA1@GUEZ.LIVE\",\n \"timestamp\": {\n \"jahr\": 2025,\n \"minuten\": 11,\n \"monat\": 5,\n \"sekunden\": 10,\n \"stunden\": 13,\n \"tag\": 16,\n \"zdm\": \"ZDM\",\n \"zds\": \"ZDS\",\n \"zvz\": \"ZVz\"\n },\n \"type\": \"EX-HQ(K)\",\n \"typeId\": 20,\n \"uuid\": \"{321f5053-6c92-497d-b044-835a2242e750}\",\n \"version\": \"\"\n}\n"
|
||||
QSYSTEM: TestExHqKoordinierungsmassnahmen::testExHqKoordinierungsmassnahmen() koordinierungsdatenFromJson
|
||||
QSYSTEM: TestExHqKoordinierungsmassnahmen::testExHqKoordinierungsmassnahmen() zeitangabe_DTGFromJson Stunden= -1065143760
|
||||
QSYSTEM: TestExHqKoordinierungsmassnahmen::testExHqKoordinierungsmassnahmen() zeitangabe_DTGFromJson Stunden= -1065142288
|
||||
QSYSTEM: TestExHqKoordinierungsmassnahmen::testExHqKoordinierungsmassnahmen() koordinatefromJson
|
||||
QSYSTEM: TestExHqKoordinierungsmassnahmen::testExHqKoordinierungsmassnahmen() koordinatefromJson longitude= 8.76 latitude= 53.3779
|
||||
QSYSTEM: TestExHqKoordinierungsmassnahmen::testExHqKoordinierungsmassnahmen() koordinatefromJson
|
||||
QSYSTEM: TestExHqKoordinierungsmassnahmen::testExHqKoordinierungsmassnahmen() koordinatefromJson longitude= 8.761 latitude= 53.3779
|
||||
QSYSTEM: TestExHqKoordinierungsmassnahmen::testExHqKoordinierungsmassnahmen() koordinatefromJson
|
||||
QSYSTEM: TestExHqKoordinierungsmassnahmen::testExHqKoordinierungsmassnahmen() koordinatefromJson longitude= 8.762 latitude= 53.3779
|
||||
PASS : TestExHqKoordinierungsmassnahmen::testExHqKoordinierungsmassnahmen()
|
||||
PASS : TestExHqKoordinierungsmassnahmen::cleanupTestCase()
|
||||
Totals: 3 passed, 0 failed, 0 skipped, 0 blacklisted, 4ms
|
||||
********* Finished testing of TestExHqKoordinierungsmassnahmen *********
|
||||
********* Start testing of TestExHqFuehrungslinien *********
|
||||
Config: Using QtTest library 5.15.2, Qt 5.15.2 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 7.5.0), opensuse-leap 15.4
|
||||
PASS : TestExHqFuehrungslinien::initTestCase()
|
||||
QDEBUG : TestExHqFuehrungslinien::testExHqFuehrungslinien() -------------------------------------------
|
||||
QDEBUG : TestExHqFuehrungslinien::testExHqFuehrungslinien() --- EX-HQ(G) Fuehrungslinien und Grenzen ---
|
||||
QSYSTEM: TestExHqFuehrungslinien::testExHqFuehrungslinien() toJsonInternal
|
||||
QSYSTEM: TestExHqFuehrungslinien::testExHqFuehrungslinien() zeitangabe_DTGToJson Stunden= 13
|
||||
QSYSTEM: TestExHqFuehrungslinien::testExHqFuehrungslinien() fuehrungsdatenToJson
|
||||
QSYSTEM: TestExHqFuehrungslinien::testExHqFuehrungslinien() zeitangabe_DTGToJson Stunden= 5
|
||||
QSYSTEM: TestExHqFuehrungslinien::testExHqFuehrungslinien() zeitangabe_DTGToJson Stunden= 5
|
||||
QSYSTEM: TestExHqFuehrungslinien::testExHqFuehrungslinien() koordinateToJson longitude= 8.76 latitude= 53.3779
|
||||
QSYSTEM: TestExHqFuehrungslinien::testExHqFuehrungslinien() fuehrungsdatenToJson koordinate= 8.76 / 53.3779
|
||||
QSYSTEM: TestExHqFuehrungslinien::testExHqFuehrungslinien() koordinateToJson longitude= 8.761 latitude= 53.3779
|
||||
QSYSTEM: TestExHqFuehrungslinien::testExHqFuehrungslinien() fuehrungsdatenToJson koordinate= 8.761 / 53.3779
|
||||
QDEBUG : TestExHqFuehrungslinien::testExHqFuehrungslinien() EX-HQ(G) Fuehrungslinien und Grenzen= "{\n \"data\": {\n \"ab\": {\n \"jahr\": 2025,\n \"minuten\": 35,\n \"monat\": 11,\n \"sekunden\": 55,\n \"stunden\": 5,\n \"tag\": 12,\n \"zdm\": \"ZDM\",\n \"zds\": \"ZDS\",\n \"zvz\": \"ZVz\"\n },\n \"art\": \"AO\",\n \"bis\": {\n \"jahr\": 2025,\n \"minuten\": 35,\n \"monat\": 11,\n \"sekunden\": 55,\n \"stunden\": 5,\n \"tag\": 13,\n \"zdm\": \"ZDM\",\n \"zds\": \"ZDS\",\n \"zvz\": \"ZVz\"\n },\n \"koordinaten\": [\n {\n \"latitude\": 53.37792,\n \"longitude\": 8.76\n },\n {\n \"latitude\": 53.37793,\n \"longitude\": 8.761\n }\n ],\n \"linkerNachbar\": \"linker Nachbar\",\n \"name\": \"Name EX-HQ(G) Führungslinien und Grenzen\",\n \"rechterNachbar\": \"rechter Nachbar\"\n },\n \"reciver\": \"EXCON@GUEZ.LIVE\",\n \"referenceUuid\": \"\",\n \"sender\": \"SAA1@GUEZ.LIVE\",\n \"timestamp\": {\n \"jahr\": 2025,\n \"minuten\": 11,\n \"monat\": 5,\n \"sekunden\": 10,\n \"stunden\": 13,\n \"tag\": 16,\n \"zdm\": \"ZDM\",\n \"zds\": \"ZDS\",\n \"zvz\": \"ZVz\"\n },\n \"type\": \"EX-HQ(G)\",\n \"typeId\": 3001,\n \"uuid\": \"{15661f37-df99-4ce1-be00-cef043a8a01b}\",\n \"version\": \"\"\n}\n"
|
||||
QSYSTEM: TestExHqFuehrungslinien::testExHqFuehrungslinien() fuehrungsdatenfromJson
|
||||
QSYSTEM: TestExHqFuehrungslinien::testExHqFuehrungslinien() zeitangabe_DTGFromJson Stunden= 2
|
||||
QSYSTEM: TestExHqFuehrungslinien::testExHqFuehrungslinien() zeitangabe_DTGFromJson Stunden= -1065142288
|
||||
QSYSTEM: TestExHqFuehrungslinien::testExHqFuehrungslinien() koordinatefromJson
|
||||
QSYSTEM: TestExHqFuehrungslinien::testExHqFuehrungslinien() koordinatefromJson longitude= 8.76 latitude= 53.3779
|
||||
QSYSTEM: TestExHqFuehrungslinien::testExHqFuehrungslinien() fuehrungsdatenfromJson koordinate= 8.76 / 53.3779
|
||||
QSYSTEM: TestExHqFuehrungslinien::testExHqFuehrungslinien() koordinatefromJson
|
||||
QSYSTEM: TestExHqFuehrungslinien::testExHqFuehrungslinien() koordinatefromJson longitude= 8.761 latitude= 53.3779
|
||||
QSYSTEM: TestExHqFuehrungslinien::testExHqFuehrungslinien() fuehrungsdatenfromJson koordinate= 8.761 / 53.3779
|
||||
PASS : TestExHqFuehrungslinien::testExHqFuehrungslinien()
|
||||
PASS : TestExHqFuehrungslinien::cleanupTestCase()
|
||||
Totals: 3 passed, 0 failed, 0 skipped, 0 blacklisted, 4ms
|
||||
********* Finished testing of TestExHqFuehrungslinien *********
|
||||
********* Start testing of TestExTqTechnischeQuittung *********
|
||||
Config: Using QtTest library 5.15.2, Qt 5.15.2 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 7.5.0), opensuse-leap 15.4
|
||||
PASS : TestExTqTechnischeQuittung::initTestCase()
|
||||
QDEBUG : TestExTqTechnischeQuittung::testExTqTechnischeQuittung() ------------------------------------
|
||||
QDEBUG : TestExTqTechnischeQuittung::testExTqTechnischeQuittung() --- EX-TQ Technische Quittierung ---
|
||||
QSYSTEM: TestExTqTechnischeQuittung::testExTqTechnischeQuittung() toJsonInternal
|
||||
QSYSTEM: TestExTqTechnischeQuittung::testExTqTechnischeQuittung() zeitangabe_DTGToJson Stunden= 13
|
||||
QSYSTEM: TestExTqTechnischeQuittung::testExTqTechnischeQuittung() technischeDatenToJson
|
||||
QDEBUG : TestExTqTechnischeQuittung::testExTqTechnischeQuittung() EX-TQ Technische Quittierung= "{\n \"data\": {\n \"beschreibung\": \"Beschreibung technischer Status\",\n \"status\": \"INV\"\n },\n \"reciver\": \"EXCON@GUEZ.LIVE\",\n \"referenceUuid\": \"\",\n \"sender\": \"SAA1@GUEZ.LIVE\",\n \"timestamp\": {\n \"jahr\": 2025,\n \"minuten\": 11,\n \"monat\": 5,\n \"sekunden\": 10,\n \"stunden\": 13,\n \"tag\": 16,\n \"zdm\": \"ZDM\",\n \"zds\": \"ZDS\",\n \"zvz\": \"ZVz\"\n },\n \"type\": \"EX-TQ\",\n \"typeId\": 6013,\n \"uuid\": \"{5b6c08ea-448a-47aa-bddb-a775c2cf9537}\",\n \"version\": \"\"\n}\n"
|
||||
QSYSTEM: TestExTqTechnischeQuittung::testExTqTechnischeQuittung() technischeDatenFromJson
|
||||
PASS : TestExTqTechnischeQuittung::testExTqTechnischeQuittung()
|
||||
PASS : TestExTqTechnischeQuittung::cleanupTestCase()
|
||||
Totals: 3 passed, 0 failed, 0 skipped, 0 blacklisted, 3ms
|
||||
********* Finished testing of TestExTqTechnischeQuittung *********
|
||||
********* Start testing of TestExAqFreitextmeldung *********
|
||||
Config: Using QtTest library 5.15.2, Qt 5.15.2 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 7.5.0), opensuse-leap 15.4
|
||||
PASS : TestExAqFreitextmeldung::initTestCase()
|
||||
QDEBUG : TestExAqFreitextmeldung::testExAqFreitextmeldung() -----------------------------
|
||||
QDEBUG : TestExAqFreitextmeldung::testExAqFreitextmeldung() --- EX-AQ Freitextmeldung ---
|
||||
QSYSTEM: TestExAqFreitextmeldung::testExAqFreitextmeldung() toJsonInternal
|
||||
QSYSTEM: TestExAqFreitextmeldung::testExAqFreitextmeldung() zeitangabe_DTGToJson Stunden= 13
|
||||
QSYSTEM: TestExAqFreitextmeldung::testExAqFreitextmeldung() freitextdatenToJson
|
||||
QDEBUG : TestExAqFreitextmeldung::testExAqFreitextmeldung() EX-AQ Freitextmeldung= "{\n \"data\": {\n \"text\": \"Freier Text\"\n },\n \"reciver\": \"EXCON@GUEZ.LIVE\",\n \"referenceUuid\": \"\",\n \"sender\": \"SAA1@GUEZ.LIVE\",\n \"timestamp\": {\n \"jahr\": 2025,\n \"minuten\": 11,\n \"monat\": 5,\n \"sekunden\": 10,\n \"stunden\": 13,\n \"tag\": 16,\n \"zdm\": \"ZDM\",\n \"zds\": \"ZDS\",\n \"zvz\": \"ZVz\"\n },\n \"type\": \"EX-AQ\",\n \"typeId\": 5001,\n \"uuid\": \"{2f05b52d-7a25-41fa-80da-8d95f81e3933}\",\n \"version\": \"\"\n}\n"
|
||||
QSYSTEM: TestExAqFreitextmeldung::testExAqFreitextmeldung() freitextdatenToJson
|
||||
PASS : TestExAqFreitextmeldung::testExAqFreitextmeldung()
|
||||
PASS : TestExAqFreitextmeldung::cleanupTestCase()
|
||||
Totals: 3 passed, 0 failed, 0 skipped, 0 blacklisted, 2ms
|
||||
********* Finished testing of TestExAqFreitextmeldung *********
|
||||
********* Start testing of TestExFlugbahnberechnung *********
|
||||
Config: Using QtTest library 5.15.2, Qt 5.15.2 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 7.5.0), opensuse-leap 15.4
|
||||
PASS : TestExFlugbahnberechnung::initTestCase()
|
||||
QDEBUG : TestExFlugbahnberechnung::testExFlugbahnberechnung() -----------------------------
|
||||
QDEBUG : TestExFlugbahnberechnung::testExFlugbahnberechnung() --- EX-Flugbahnberechnung ---
|
||||
QSYSTEM: TestExFlugbahnberechnung::testExFlugbahnberechnung() toJsonInternal
|
||||
QSYSTEM: TestExFlugbahnberechnung::testExFlugbahnberechnung() zeitangabe_DTGToJson Stunden= 13
|
||||
QSYSTEM: TestExFlugbahnberechnung::testExFlugbahnberechnung() exFlugbahnberechnungDatenToJson
|
||||
QSYSTEM: TestExFlugbahnberechnung::testExFlugbahnberechnung() koordinateToJson longitude= 8.7573 latitude= 53.3779
|
||||
QDEBUG : TestExFlugbahnberechnung::testExFlugbahnberechnung() koordinateMitHoeheToJson hoehe= 55
|
||||
QSYSTEM: TestExFlugbahnberechnung::testExFlugbahnberechnung() koordinateToJson longitude= 8.7574 latitude= 53.3779
|
||||
QDEBUG : TestExFlugbahnberechnung::testExFlugbahnberechnung() koordinateMitHoeheToJson hoehe= 56
|
||||
QSYSTEM: TestExFlugbahnberechnung::testExFlugbahnberechnung() FlugbahnberechnungGeschosseToJson
|
||||
QDEBUG : TestExFlugbahnberechnung::testExFlugbahnberechnung() EX-Flugbahnberechnung= "{\n \"data\": {\n \"geschoss\": {\n \"geschosssorte\": \"SprengDM121\",\n \"ladung\": \"M_DM72\",\n \"zuender\": \"Aufschlag_DM241\",\n \"zuenderFunktion\": \"AZoV\"\n },\n \"sprenghoehe\": 33,\n \"standort\": {\n \"hoehe\": 55,\n \"koordinate\": {\n \"latitude\": 53.37787,\n \"longitude\": 8.7573\n }\n },\n \"waffensystem\": \"MRS\",\n \"winkelgruppe\": \"Obere\",\n \"zielkoordinate\": {\n \"hoehe\": 56,\n \"koordinate\": {\n \"latitude\": 53.37788,\n \"longitude\": 8.7574\n }\n }\n },\n \"reciver\": \"EXCON@GUEZ.LIVE\",\n \"referenceUuid\": \"\",\n \"sender\": \"SAA1@GUEZ.LIVE\",\n \"timestamp\": {\n \"jahr\": 2025,\n \"minuten\": 11,\n \"monat\": 5,\n \"sekunden\": 10,\n \"stunden\": 13,\n \"tag\": 16,\n \"zdm\": \"ZDM\",\n \"zds\": \"ZDS\",\n \"zvz\": \"ZVz\"\n },\n \"type\": \"EX-Flugbahnberechnung\",\n \"typeId\": 4000,\n \"uuid\": \"{f3a7a892-4431-4136-b7de-f8ab46e9b915}\",\n \"version\": \"\"\n}\n"
|
||||
QSYSTEM: TestExFlugbahnberechnung::testExFlugbahnberechnung() exFlugbahnberechnungDatenFromJson
|
||||
QSYSTEM: TestExFlugbahnberechnung::testExFlugbahnberechnung() koordinateMitHoeheFromJson
|
||||
QSYSTEM: TestExFlugbahnberechnung::testExFlugbahnberechnung() koordinatefromJson
|
||||
QSYSTEM: TestExFlugbahnberechnung::testExFlugbahnberechnung() koordinatefromJson longitude= 8.7573 latitude= 53.3779
|
||||
QSYSTEM: TestExFlugbahnberechnung::testExFlugbahnberechnung() koordinateMitHoeheFromJson hoehe= 55
|
||||
QSYSTEM: TestExFlugbahnberechnung::testExFlugbahnberechnung() koordinateMitHoeheFromJson
|
||||
QSYSTEM: TestExFlugbahnberechnung::testExFlugbahnberechnung() koordinatefromJson
|
||||
QSYSTEM: TestExFlugbahnberechnung::testExFlugbahnberechnung() koordinatefromJson longitude= 8.7574 latitude= 53.3779
|
||||
QSYSTEM: TestExFlugbahnberechnung::testExFlugbahnberechnung() koordinateMitHoeheFromJson hoehe= 56
|
||||
QSYSTEM: TestExFlugbahnberechnung::testExFlugbahnberechnung() flugbahnberechnungGeschosseFromJson
|
||||
QSYSTEM: TestExFlugbahnberechnung::testExFlugbahnberechnung() geschosssorte= "" int: -1065142592
|
||||
FAIL! : TestExFlugbahnberechnung::testExFlugbahnberechnung() Compared values are not the same
|
||||
Actual (flugbahnberechnungDaten.geschoss.ladungsNummer): 2
|
||||
Expected (5) : 5
|
||||
Loc: [/mnt/24_adler/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/ModuleTest/msgcompares.cpp(264)]
|
||||
PASS : TestExFlugbahnberechnung::cleanupTestCase()
|
||||
Totals: 2 passed, 1 failed, 0 skipped, 0 blacklisted, 3ms
|
||||
********* Finished testing of TestExFlugbahnberechnung *********
|
||||
********* Start testing of TestExFlugbahndaten *********
|
||||
Config: Using QtTest library 5.15.2, Qt 5.15.2 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 7.5.0), opensuse-leap 15.4
|
||||
PASS : TestExFlugbahndaten::initTestCase()
|
||||
QDEBUG : TestExFlugbahndaten::testExFlugbahndaten() -----------------------------
|
||||
QDEBUG : TestExFlugbahndaten::testExFlugbahndaten() --- EX-Flugbahndaten ---
|
||||
QDEBUG : TestExFlugbahndaten::testExFlugbahndaten() -------------------------------
|
||||
QDEBUG : TestExFlugbahndaten::testExFlugbahndaten() --- ExFlugbahndaten::toJson ---
|
||||
QSYSTEM: TestExFlugbahndaten::testExFlugbahndaten() toJsonInternal
|
||||
QSYSTEM: TestExFlugbahndaten::testExFlugbahndaten() zeitangabe_DTGToJson Stunden= 13
|
||||
QSYSTEM: TestExFlugbahndaten::testExFlugbahndaten() TODO flugbahndatenToJson
|
||||
QSYSTEM: TestExFlugbahndaten::testExFlugbahndaten() koordinateToJson longitude= 8.7574 latitude= 53.3779
|
||||
QDEBUG : TestExFlugbahndaten::testExFlugbahndaten() koordinateMitHoeheToJson hoehe= 56
|
||||
QSYSTEM: TestExFlugbahndaten::testExFlugbahndaten() FlugbahndatenGeschosseToJson
|
||||
QDEBUG : TestExFlugbahndaten::testExFlugbahndaten() EX-Flugbahndaten= "{\n \"data\": {\n \"fallwinkel\": 55,\n \"fehlercode\": \"MaximaleEntfernung\",\n \"flugbahnpunkt\": [\n {\n \"xRelativ\": 2.2,\n \"yRelativ\": 3.3,\n \"zRelativ\": 4.4,\n \"zeit\": 1.1\n },\n {\n \"xRelativ\": 2.3,\n \"yRelativ\": 3.4,\n \"zRelativ\": 4.5,\n \"zeit\": 1.2\n }\n ],\n \"flugzeit\": 300,\n \"geschoss\": {\n \"geschosssorte\": \"SprengDM121\",\n \"ladung\": \"M_DM72\",\n \"ladungsNummer\": 5,\n \"zuender\": \"Aufschlag_DM241\",\n \"zuenderFunktion\": \"AZoV\",\n \"zuenderZeit\": 1000\n },\n \"gipfelhoehe\": 200,\n \"schussrichtung\": 45,\n \"streuung\": {\n \"peBurstDeflection\": 5.5,\n \"peBurstRange\": 4.4,\n \"peDeflection\": 3.3,\n \"peRange\": 2.2\n },\n \"typ\": \"MRS\",\n \"zielkoordinate\": {\n \"hoehe\": 56,\n \"koordinate\": {\n \"latitude\": 53.37788,\n \"longitude\": 8.7574\n }\n }\n },\n \"reciver\": \"EXCON@GUEZ.LIVE\",\n \"referenceUuid\": \"\",\n \"sender\": \"SAA1@GUEZ.LIVE\",\n \"timestamp\": {\n \"jahr\": 2025,\n \"minuten\": 11,\n \"monat\": 5,\n \"sekunden\": 10,\n \"stunden\": 13,\n \"tag\": 16,\n \"zdm\": \"ZDM\",\n \"zds\": \"ZDS\",\n \"zvz\": \"ZVz\"\n },\n \"type\": \"EX-Flugbahndaten\",\n \"typeId\": 4001,\n \"uuid\": \"{1ee580e9-d659-4861-ab01-edc529f27950}\",\n \"version\": \"\"\n}\n"
|
||||
QSYSTEM: TestExFlugbahndaten::testExFlugbahndaten() flugbahndatenDatenFromJson
|
||||
QSYSTEM: TestExFlugbahndaten::testExFlugbahndaten() koordinateMitHoeheFromJson
|
||||
QSYSTEM: TestExFlugbahndaten::testExFlugbahndaten() koordinatefromJson
|
||||
QSYSTEM: TestExFlugbahndaten::testExFlugbahndaten() koordinatefromJson longitude= 8.7574 latitude= 53.3779
|
||||
QSYSTEM: TestExFlugbahndaten::testExFlugbahndaten() koordinateMitHoeheFromJson hoehe= 56
|
||||
QSYSTEM: TestExFlugbahndaten::testExFlugbahndaten() flugbahnpunktFromJson
|
||||
QSYSTEM: TestExFlugbahndaten::testExFlugbahndaten() flugbahnpunktFromJson zeit= 1.1 punkt= 2.2 / 3.3 / 4.4
|
||||
QSYSTEM: TestExFlugbahndaten::testExFlugbahndaten() fuehrungsdatenfromJson flugbahnpunkt= 1.1 / 2.2 / 3.3 / 4.4
|
||||
QSYSTEM: TestExFlugbahndaten::testExFlugbahndaten() flugbahnpunktFromJson
|
||||
QSYSTEM: TestExFlugbahndaten::testExFlugbahndaten() flugbahnpunktFromJson zeit= 1.2 punkt= 2.3 / 3.4 / 4.5
|
||||
QSYSTEM: TestExFlugbahndaten::testExFlugbahndaten() fuehrungsdatenfromJson flugbahnpunkt= 1.2 / 2.3 / 3.4 / 4.5
|
||||
QSYSTEM: TestExFlugbahndaten::testExFlugbahndaten() streuungsdatenfromJson peDeflection= 3.3 peBurstRange= 4.4 peBurstDeflection= 5.5
|
||||
QSYSTEM: TestExFlugbahndaten::testExFlugbahndaten() FlugbahndatenGeschosseFromJson
|
||||
PASS : TestExFlugbahndaten::testExFlugbahndaten()
|
||||
PASS : TestExFlugbahndaten::cleanupTestCase()
|
||||
Totals: 3 passed, 0 failed, 0 skipped, 0 blacklisted, 4ms
|
||||
********* Finished testing of TestExFlugbahndaten *********
|
||||
+85
@@ -0,0 +1,85 @@
|
||||
#
|
||||
# @RDE_HEADER@
|
||||
# $Id: CMakeLists.txt 64525 2025-02-14 12:35:41Z fritsche_h $
|
||||
# $HeadURL: svn://slssvn/TDS/branches/product/features/24_adler/Lts/Services/AreaEffectSimulation/ModuleTest_ExplosionCluster/CMakeLists.txt $
|
||||
# $Author: fritsche_h $
|
||||
#
|
||||
|
||||
# Make ${Qt6_WebSockets} optional
|
||||
if(QT6_GUI_AVAILABLE AND TARGET Qt6::WebSockets)
|
||||
set(Qt6_WebSockets ${Qt6_WebSockets})
|
||||
else()
|
||||
set(Qt6_WebSockets "")
|
||||
endif()
|
||||
|
||||
|
||||
SET(UnitTestSources
|
||||
test_telegram_decoding.cpp
|
||||
ex_anmeldung.cpp
|
||||
ex_anmeldung.h
|
||||
ex_abmeldung.cpp
|
||||
ex_abmeldung.h
|
||||
ex_anmeldebestaetigung.cpp
|
||||
ex_anmeldebestaetigung.h
|
||||
ex_status.cpp
|
||||
ex_status.h
|
||||
ex_fq_wirkfeldplanung.cpp
|
||||
ex_fq_wirkfeldplanung.h
|
||||
ex_fq_feuerbereit.cpp
|
||||
ex_fq_feuerbereit.h
|
||||
ex_fq_feuern.cpp
|
||||
ex_fq_feuern.h
|
||||
ex_fq_abgefeuert.cpp
|
||||
ex_fq_abgefeuert.h
|
||||
ex_fq_vollzugsmeldung.cpp
|
||||
ex_fq_vollzugsmeldung.h
|
||||
# ex_erkundungsanfrage.cpp
|
||||
# ex_erkundungsanfrage.h
|
||||
ex_erkundungsergebnisse.cpp
|
||||
ex_erkundungsergebnisse.h
|
||||
ex_fq_feuerkampf.cpp
|
||||
ex_fq_feuerkampf.h
|
||||
ex_fh_feuerhalt.cpp
|
||||
ex_fh_feuerhalt.h
|
||||
ex_sq_stellungsmeldung_fs.cpp
|
||||
ex_sq_stellungsmeldung_fs.h
|
||||
ex_sq_stellungsmeldung_ws.cpp
|
||||
ex_sq_stellungsmeldung_ws.h
|
||||
ex_sq_stellungsmeldung_lp.cpp
|
||||
ex_sq_stellungsmeldung_lp.h
|
||||
ex_sq_stellungswechsel.cpp
|
||||
ex_sq_stellungswechsel.h
|
||||
ex_hq_koordinierungsmassnahmen.cpp
|
||||
ex_hq_koordinierungsmassnahmen.h
|
||||
ex_hq_fuehrungslinien.cpp
|
||||
ex_hq_fuehrungslinien.h
|
||||
ex_tq_technische_quittung.cpp
|
||||
ex_tq_technische_quittung.h
|
||||
ex_aq_freitext.cpp
|
||||
ex_aq_freitext.h
|
||||
ex_mq_manuelle_quittung.cpp
|
||||
ex_mq_manuelle_quittung.h
|
||||
ex_flugbahnberechnung.cpp
|
||||
ex_flugbahnberechnung.h
|
||||
ex_flugbahndaten.cpp
|
||||
ex_flugbahndaten.h
|
||||
)
|
||||
|
||||
IF(BUILD_TESTING)
|
||||
ADD_EXECUTABLE(tabModuleTestAdler ${LinkedSources} ${UnitTestSources}
|
||||
msgcompares.h msgcompares.cpp)
|
||||
|
||||
|
||||
TARGET_LINK_LIBRARIES(tabModuleTestAdler
|
||||
NGLLogger
|
||||
LtsCommandLineParser
|
||||
nglsettings
|
||||
nglapplication
|
||||
saaTelegrams
|
||||
Qt6::Network
|
||||
${Qt6_WebSockets}
|
||||
Qt6::Test
|
||||
)
|
||||
|
||||
# ADD_TEST(NAME tabModuleTestAdler COMMAND $<TARGET_FILE:aesUnitTestTneAlgorithmen>)
|
||||
ENDIF()
|
||||
+66
@@ -0,0 +1,66 @@
|
||||
#include "ex_abmeldung.h"
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <QtTest/QTest>
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <AdlerJson/telegrams.h>
|
||||
#include <AdlerJson/generatetelegrams.h>
|
||||
|
||||
TestExAbmeldung::TestExAbmeldung()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
QString TestExAbmeldung::generateDisconnectMessage()
|
||||
{
|
||||
AdlerJson::EXDeregistration req;
|
||||
GenerateTelegrams::addHeaderData(req, m_partyId);
|
||||
GenerateTelegrams::generateAbmeldung(req);
|
||||
|
||||
QJsonObject messageObj =req.toJson();
|
||||
QString message = QString::fromUtf8(QJsonDocument(messageObj).toJson());
|
||||
return message;
|
||||
}
|
||||
|
||||
void TestExAbmeldung::testExAbmeldung()
|
||||
{
|
||||
qDebug() << "----------------------";
|
||||
qDebug() << "--- EX-Abmeldung ---";
|
||||
QString disconnectMessage = generateDisconnectMessage();
|
||||
QJsonDocument jsonDoc = QJsonDocument::fromJson(disconnectMessage.toUtf8());
|
||||
const QJsonObject jsonObj = jsonDoc.object();
|
||||
QJsonObject dataObj = jsonObj[AdlerJson::JsonKeys::DATA()].toObject();
|
||||
|
||||
AdlerJson::Abmeldedaten abmeldedaten;
|
||||
bool bOk;
|
||||
|
||||
|
||||
AdlerJson::abmeldedatenFromJson(dataObj, abmeldedaten, bOk);
|
||||
|
||||
QCOMPARE(abmeldedaten.partyId, m_partyId );
|
||||
|
||||
}
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
#pragma once
|
||||
|
||||
#include <QtCore/QString>
|
||||
#include <QtTest/QTest>
|
||||
|
||||
namespace AdlerJson {
|
||||
struct EXTelegramBase;
|
||||
enum class Szenarstatus;
|
||||
}
|
||||
|
||||
class TestExAbmeldung : public QObject {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
TestExAbmeldung();
|
||||
QString generateDisconnectMessage();
|
||||
|
||||
private slots:
|
||||
void testExAbmeldung();
|
||||
|
||||
private:
|
||||
int m_partyId {2};
|
||||
};
|
||||
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
#include "ex_anmeldebestaetigung.h"
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <QtTest/QTest>
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <AdlerJson/telegrams.h>
|
||||
#include <AdlerJson/generatetelegrams.h>
|
||||
|
||||
TestExAnmeldebestaetigung::TestExAnmeldebestaetigung()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
QString TestExAnmeldebestaetigung::generateAnmeldebestaetigung()
|
||||
{
|
||||
AdlerJson::ExAnmeldebestaetigung req;
|
||||
|
||||
GenerateTelegrams::addHeaderData(req, m_partyId);
|
||||
GenerateTelegrams::generateConnectResponseMessage(req);
|
||||
|
||||
QJsonObject messageObj =req.toJson();
|
||||
QString message = QString::fromUtf8(QJsonDocument(messageObj).toJson());
|
||||
return message;
|
||||
}
|
||||
|
||||
void TestExAnmeldebestaetigung::testExAnmeldebestaetigung()
|
||||
{
|
||||
qDebug() << "--------------------------------";
|
||||
qDebug() << "--- EX-Anmeldebestaetigung ---";
|
||||
QString connectMessage = generateAnmeldebestaetigung();
|
||||
qDebug() << connectMessage;
|
||||
QJsonDocument jsonDoc = QJsonDocument::fromJson(connectMessage.toUtf8());
|
||||
const QJsonObject jsonObj = jsonDoc.object();
|
||||
QJsonObject dataObj = jsonObj[AdlerJson::JsonKeys::DATA()].toObject();
|
||||
|
||||
// WIP: parsed from dataObj once the test body is completed
|
||||
AdlerJson::AnBestaetigungsdaten anBestaetigungsdaten;
|
||||
Q_UNUSED(anBestaetigungsdaten);
|
||||
}
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
#pragma once
|
||||
|
||||
#include <QtCore/QString>
|
||||
#include <QtTest/QTest>
|
||||
|
||||
namespace AdlerJson {
|
||||
struct EXTelegramBase;
|
||||
enum class Szenarstatus;
|
||||
}
|
||||
|
||||
class TestExAnmeldebestaetigung : public QObject {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
TestExAnmeldebestaetigung();
|
||||
QString generateAnmeldebestaetigung();
|
||||
|
||||
private slots:
|
||||
void testExAnmeldebestaetigung();
|
||||
|
||||
private:
|
||||
|
||||
|
||||
int m_partyId {0};
|
||||
int m_saaId {0};
|
||||
};
|
||||
|
||||
+72
@@ -0,0 +1,72 @@
|
||||
#include "ex_anmeldung.h"
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <QtTest/QTest>
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <AdlerJson/telegrams.h>
|
||||
|
||||
#include <AdlerJson/generatetelegrams.h>
|
||||
|
||||
TestExAnmeldung::TestExAnmeldung()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
QString TestExAnmeldung::generateConnectMessage()
|
||||
{
|
||||
AdlerJson::EXRegistration req;
|
||||
|
||||
GenerateTelegrams::addHeaderData(req, m_saaId);
|
||||
GenerateTelegrams::generateConnectMessage(req, m_partyId);
|
||||
|
||||
QJsonObject messageObj =req.toJson();
|
||||
QString message = QString::fromUtf8(QJsonDocument(messageObj).toJson());
|
||||
return message;
|
||||
}
|
||||
|
||||
void TestExAnmeldung::testExAnmeldung()
|
||||
{
|
||||
qDebug() << "----------------------";
|
||||
qDebug() << "--- EX-Anmeldung ---";
|
||||
QString connectMessage = generateConnectMessage();
|
||||
QJsonDocument jsonDoc = QJsonDocument::fromJson(connectMessage.toUtf8());
|
||||
const QJsonObject jsonObj = jsonDoc.object();
|
||||
QJsonObject dataObj = jsonObj[AdlerJson::JsonKeys::DATA()].toObject();
|
||||
|
||||
AdlerJson::Anmeldedaten anmeldedaten;
|
||||
bool bOk;
|
||||
|
||||
|
||||
AdlerJson::anmeldedatenFromJson(dataObj, anmeldedaten, bOk);
|
||||
|
||||
QCOMPARE(anmeldedaten.partyId, m_partyId );
|
||||
QCOMPARE(anmeldedaten.adlerVerbund, true);
|
||||
QCOMPARE(anmeldedaten.szenar, QStringLiteral("UI Test") );
|
||||
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
#pragma once
|
||||
|
||||
#include <QtCore/QString>
|
||||
#include <QtTest/QTest>
|
||||
|
||||
namespace AdlerJson {
|
||||
struct EXTelegramBase;
|
||||
enum class Szenarstatus;
|
||||
}
|
||||
|
||||
class TestExAnmeldung : public QObject {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
TestExAnmeldung();
|
||||
QString generateConnectMessage();
|
||||
|
||||
private slots:
|
||||
void testExAnmeldung();
|
||||
|
||||
private:
|
||||
|
||||
int m_partyId {0};
|
||||
int m_saaId {1};
|
||||
};
|
||||
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
#include "ex_aq_freitext.h"
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <QtTest/QTest>
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <AdlerJson/telegrams.h>
|
||||
#include "msgcompares.h"
|
||||
|
||||
#include <AdlerJson/generatetelegrams.h>
|
||||
|
||||
TestExAqFreitextmeldung::TestExAqFreitextmeldung()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
QString TestExAqFreitextmeldung::generateFreitextmeldung()
|
||||
{
|
||||
AdlerJson::ExAqFreitextmeldung req;
|
||||
|
||||
GenerateTelegrams::addHeaderData(req, m_saaId);
|
||||
GenerateTelegrams::generateFreitextmeldung(req);
|
||||
|
||||
QJsonObject messageObj =req.toJson();
|
||||
QString message = QString::fromUtf8(QJsonDocument(messageObj).toJson());
|
||||
return message;
|
||||
}
|
||||
|
||||
void TestExAqFreitextmeldung::testExAqFreitextmeldung()
|
||||
{
|
||||
qDebug() << "-----------------------------";
|
||||
qDebug() << "--- EX-AQ Freitextmeldung ---";
|
||||
QString freitextMessage = generateFreitextmeldung();
|
||||
qDebug() << "EX-AQ Freitextmeldung=" << freitextMessage;
|
||||
QJsonDocument jsonDoc = QJsonDocument::fromJson(freitextMessage.toUtf8());
|
||||
const QJsonObject jsonObj = jsonDoc.object();
|
||||
QJsonObject dataObj = jsonObj[AdlerJson::JsonKeys::DATA()].toObject();
|
||||
|
||||
AdlerJson::ExAqFreitextmeldung exAqFreitextmeldung;
|
||||
|
||||
bool bOk;
|
||||
|
||||
AdlerJson::FreitextDatenFromJson(dataObj, exAqFreitextmeldung.freitextDaten, bOk);
|
||||
MsgCompares::compareFreitextDaten(exAqFreitextmeldung.freitextDaten);
|
||||
|
||||
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
#pragma once
|
||||
|
||||
#include <QtCore/QString>
|
||||
#include <QtTest/QTest>
|
||||
|
||||
namespace AdlerJson {
|
||||
struct EXTelegramBase;
|
||||
enum class Szenarstatus;
|
||||
}
|
||||
|
||||
class TestExAqFreitextmeldung : public QObject {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
TestExAqFreitextmeldung();
|
||||
QString generateFreitextmeldung();
|
||||
|
||||
private slots:
|
||||
void testExAqFreitextmeldung();
|
||||
|
||||
private:
|
||||
|
||||
int m_partyId {0};
|
||||
int m_saaId {1};
|
||||
};
|
||||
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
#include "ex_erkundungsanfrage.h"
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <QtTest/QTest>
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <AdlerJson/telegrams.h>
|
||||
|
||||
#include <AdlerJson/generatetelegrams.h>
|
||||
|
||||
TestExFqErkundungsanfrage::TestExFqErkundungsanfrage()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
QString TestExFqErkundungsanfrage::generateErkundungsanfrage()
|
||||
{
|
||||
AdlerJson::ExErkundungsanfrage req;
|
||||
|
||||
GenerateTelegrams::addHeaderData(req, m_saaId);
|
||||
GenerateTelegrams::generateErkundungsanfrage(req);
|
||||
|
||||
QJsonObject messageObj =req.toJson();
|
||||
QString message = QString::fromUtf8(QJsonDocument(messageObj).toJson());
|
||||
return message;
|
||||
}
|
||||
|
||||
void TestExFqErkundungsanfrage::testExFqErkundungsanfrage()
|
||||
{
|
||||
qDebug() << "-----------------------------------------------------------";
|
||||
qDebug() << "--- EX-Erkundungsanfrage - Anfrage Erkundungsergebnisse ---";
|
||||
QString erkundungsanfrageMessage = generateErkundungsanfrage();
|
||||
qDebug() << "generateErkundungsanfrage=" << erkundungsanfrageMessage;
|
||||
QJsonDocument jsonDoc = QJsonDocument::fromJson(erkundungsanfrageMessage.toUtf8());
|
||||
const QJsonObject jsonObj = jsonDoc.object();
|
||||
QJsonObject dataObj = jsonObj[AdlerJson::JsonKeys::DATA()].toObject();
|
||||
|
||||
AdlerJson::Feuerkampfdaten feuerkampfdaten;
|
||||
qDebug() << "Nur Header, kein Data-Bereich => keine Q-Compares fuer den Data-Bereich";
|
||||
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
#pragma once
|
||||
|
||||
#include <QtCore/QString>
|
||||
#include <QtTest/QTest>
|
||||
|
||||
namespace AdlerJson {
|
||||
struct EXTelegramBase;
|
||||
|
||||
}
|
||||
|
||||
class TestExFqErkundungsanfrage : public QObject {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
TestExFqErkundungsanfrage();
|
||||
QString generateErkundungsanfrage();
|
||||
|
||||
private slots:
|
||||
void testExFqErkundungsanfrage();
|
||||
|
||||
private:
|
||||
|
||||
int m_partyId {0};
|
||||
int m_saaId {1};
|
||||
};
|
||||
|
||||
+59
@@ -0,0 +1,59 @@
|
||||
#include "ex_erkundungsergebnisse.h"
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <QtTest/QTest>
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <AdlerJson/telegrams.h>
|
||||
|
||||
#include <AdlerJson/generatetelegrams.h>
|
||||
|
||||
TestExErkundungsergebnisse::TestExErkundungsergebnisse()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
QString TestExErkundungsergebnisse::generateErkundungsergebnisse()
|
||||
{
|
||||
AdlerJson::ExErkundungsergebnisse req;
|
||||
|
||||
GenerateTelegrams::addHeaderData(req, m_saaId);
|
||||
GenerateTelegrams::generateErkundungsergebnisse(req);
|
||||
|
||||
QJsonObject messageObj =req.toJson();
|
||||
QString message = QString::fromUtf8(QJsonDocument(messageObj).toJson());
|
||||
return message;
|
||||
}
|
||||
|
||||
void TestExErkundungsergebnisse::testExErkundungsergebnisse()
|
||||
{
|
||||
qDebug() << "-------------------------------------------------------------";
|
||||
qDebug() << "--- EX-Erkundungsergebnisse - Senden Erkundungsergebnisse ---";
|
||||
QString erkundungsergebnisseMessage = generateErkundungsergebnisse();
|
||||
qDebug() << "erkundungsergebnisseMessage=" << erkundungsergebnisseMessage;
|
||||
QJsonDocument jsonDoc = QJsonDocument::fromJson(erkundungsergebnisseMessage.toUtf8());
|
||||
const QJsonObject jsonObj = jsonDoc.object();
|
||||
QJsonObject dataObj = jsonObj[AdlerJson::JsonKeys::DATA()].toObject();
|
||||
|
||||
AdlerJson::ExErkundungsergebnisse erkundungsergebnisse;
|
||||
bool bOk;
|
||||
|
||||
|
||||
AdlerJson::erkundungsdatenFromJson(dataObj, erkundungsergebnisse.erkundungsdaten, bOk);
|
||||
|
||||
QCOMPARE(erkundungsergebnisse.erkundungsdaten.einheit.r,5);
|
||||
QCOMPARE(erkundungsergebnisse.erkundungsdaten.einheit.verein, QStringLiteral("verein Erkundungsdaten"));
|
||||
QCOMPARE(erkundungsergebnisse.erkundungsdaten.ladeplatz.hoehe, 55);
|
||||
QCOMPARE(erkundungsergebnisse.erkundungsdaten.ladeplatz.koordinate.latitude, 53.37790);
|
||||
QCOMPARE(erkundungsergebnisse.erkundungsdaten.ladeplatz.koordinate.longitude, 8.758);
|
||||
QCOMPARE(erkundungsergebnisse.erkundungsdaten.stellungen.waffenplaetze.size(), 2);
|
||||
QCOMPARE(erkundungsergebnisse.erkundungsdaten.stellungen.waffenplaetze[0].hoehe, 56);
|
||||
QCOMPARE(erkundungsergebnisse.erkundungsdaten.stellungen.waffenplaetze[0].koordinate.longitude, 8.759);
|
||||
QCOMPARE(erkundungsergebnisse.erkundungsdaten.stellungen.waffenplaetze[0].koordinate.latitude, 53.37791);
|
||||
QCOMPARE(erkundungsergebnisse.erkundungsdaten.stellungen.waffenplaetze[1].hoehe, 57);
|
||||
QCOMPARE(erkundungsergebnisse.erkundungsdaten.stellungen.waffenplaetze[1].koordinate.longitude, 8.760);
|
||||
QCOMPARE(erkundungsergebnisse.erkundungsdaten.stellungen.waffenplaetze[1].koordinate.latitude, 53.37792);
|
||||
QCOMPARE(erkundungsergebnisse.erkundungsdaten.stellungen.wirkungsbereich.grundrichtung, 33);
|
||||
QCOMPARE(erkundungsergebnisse.erkundungsdaten.stellungen.wirkungsbereich.links, 44);
|
||||
QCOMPARE(erkundungsergebnisse.erkundungsdaten.stellungen.wirkungsbereich.rechts, 55);
|
||||
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
#pragma once
|
||||
|
||||
#include <QtCore/QString>
|
||||
#include <QtTest/QTest>
|
||||
|
||||
namespace AdlerJson {
|
||||
struct EXTelegramBase;
|
||||
enum class Szenarstatus;
|
||||
}
|
||||
|
||||
class TestExErkundungsergebnisse : public QObject {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
TestExErkundungsergebnisse();
|
||||
QString generateErkundungsergebnisse();
|
||||
|
||||
private slots:
|
||||
void testExErkundungsergebnisse();
|
||||
|
||||
private:
|
||||
|
||||
int m_partyId {0};
|
||||
int m_saaId {1};
|
||||
};
|
||||
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
#include "ex_fh_feuerhalt.h"
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <QtTest/QTest>
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <AdlerJson/telegrams.h>
|
||||
#include "msgcompares.h"
|
||||
|
||||
#include <AdlerJson/generatetelegrams.h>
|
||||
|
||||
TestExFeuerhalt::TestExFeuerhalt()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
QString TestExFeuerhalt::generateFeuerhalt()
|
||||
{
|
||||
AdlerJson::ExFeuerhalt req;
|
||||
|
||||
GenerateTelegrams::addHeaderData(req, m_saaId);
|
||||
GenerateTelegrams::generateFeuerhalt(req);
|
||||
|
||||
QJsonObject messageObj =req.toJson();
|
||||
QString message = QString::fromUtf8(QJsonDocument(messageObj).toJson());
|
||||
return message;
|
||||
}
|
||||
|
||||
void TestExFeuerhalt::testExFeuerhalt()
|
||||
{
|
||||
qDebug() << "------------------------";
|
||||
qDebug() << "--- EX-FH Feuer HALT ---";
|
||||
QString feuerhaltMessage = generateFeuerhalt();
|
||||
qDebug() << "feuerhaltMessage=" << feuerhaltMessage;
|
||||
QJsonDocument jsonDoc = QJsonDocument::fromJson(feuerhaltMessage.toUtf8());
|
||||
const QJsonObject jsonObj = jsonDoc.object();
|
||||
QJsonObject dataObj = jsonObj[AdlerJson::JsonKeys::DATA()].toObject();
|
||||
|
||||
AdlerJson::FeuerHaltDaten feuerHaltDaten;
|
||||
bool bOk;
|
||||
|
||||
|
||||
AdlerJson::feuerHaltDatenFromJson(dataObj, feuerHaltDaten, bOk);
|
||||
MsgCompares::compareFeuerHaltDaten(feuerHaltDaten);
|
||||
|
||||
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
#pragma once
|
||||
|
||||
#include <QtCore/QString>
|
||||
#include <QtTest/QTest>
|
||||
|
||||
namespace AdlerJson {
|
||||
struct EXTelegramBase;
|
||||
enum class Szenarstatus;
|
||||
}
|
||||
|
||||
class TestExFeuerhalt : public QObject {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
TestExFeuerhalt();
|
||||
QString generateFeuerhalt();
|
||||
|
||||
private slots:
|
||||
void testExFeuerhalt();
|
||||
|
||||
private:
|
||||
|
||||
int m_partyId {0};
|
||||
int m_saaId {1};
|
||||
};
|
||||
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
#include "ex_flugbahnberechnung.h"
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <QtTest/QTest>
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <AdlerJson/telegrams.h>
|
||||
#include "msgcompares.h"
|
||||
|
||||
#include <AdlerJson/generatetelegrams.h>
|
||||
|
||||
TestExFlugbahnberechnung::TestExFlugbahnberechnung()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
QString TestExFlugbahnberechnung::generateFlugbahnberechnung()
|
||||
{
|
||||
AdlerJson::ExFlugbahnberechnung req;
|
||||
|
||||
GenerateTelegrams::addHeaderData(req, m_saaId);
|
||||
GenerateTelegrams::generateFlugbahnberechnung(req);
|
||||
|
||||
QJsonObject messageObj =req.toJson();
|
||||
QString message = QString::fromUtf8(QJsonDocument(messageObj).toJson());
|
||||
return message;
|
||||
}
|
||||
|
||||
void TestExFlugbahnberechnung::testExFlugbahnberechnung()
|
||||
{
|
||||
qDebug() << "-----------------------------";
|
||||
qDebug() << "--- EX-Flugbahnberechnung ---";
|
||||
QString flugbahnberechnungMessage = generateFlugbahnberechnung();
|
||||
qDebug() << "EX-Flugbahnberechnung=" << flugbahnberechnungMessage;
|
||||
QJsonDocument jsonDoc = QJsonDocument::fromJson(flugbahnberechnungMessage.toUtf8());
|
||||
const QJsonObject jsonObj = jsonDoc.object();
|
||||
QJsonObject dataObj = jsonObj[AdlerJson::JsonKeys::DATA()].toObject();
|
||||
|
||||
AdlerJson::ExFlugbahnberechnung exFlugbahnberechnung;
|
||||
|
||||
bool bOk;
|
||||
|
||||
AdlerJson::exFlugbahnberechnungDatenFromJson(dataObj, exFlugbahnberechnung.flugbahnberechnungDaten, bOk);
|
||||
MsgCompares::compareFlugbahnberechnungDaten(exFlugbahnberechnung.flugbahnberechnungDaten);
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
#pragma once
|
||||
|
||||
#include <QtCore/QString>
|
||||
#include <QtTest/QTest>
|
||||
|
||||
namespace AdlerJson {
|
||||
struct EXTelegramBase;
|
||||
|
||||
}
|
||||
|
||||
class TestExFlugbahnberechnung : public QObject {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
TestExFlugbahnberechnung();
|
||||
QString generateFlugbahnberechnung();
|
||||
|
||||
private slots:
|
||||
void testExFlugbahnberechnung();
|
||||
|
||||
private:
|
||||
|
||||
int m_partyId {0};
|
||||
int m_saaId {1};
|
||||
};
|
||||
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
#include "ex_flugbahndaten.h"
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <QtTest/QTest>
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <AdlerJson/telegrams.h>
|
||||
#include "msgcompares.h"
|
||||
|
||||
#include <AdlerJson/generatetelegrams.h>
|
||||
|
||||
TestExFlugbahndaten::TestExFlugbahndaten()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
QString TestExFlugbahndaten::generateFlugbahndaten()
|
||||
{
|
||||
AdlerJson::ExFlugbahndaten req;
|
||||
|
||||
GenerateTelegrams::addHeaderData(req, m_saaId);
|
||||
GenerateTelegrams::generateFlugbahndaten(req);
|
||||
|
||||
QJsonObject messageObj =req.toJson();
|
||||
QString message = QString::fromUtf8(QJsonDocument(messageObj).toJson());
|
||||
return message;
|
||||
}
|
||||
|
||||
void TestExFlugbahndaten::testExFlugbahndaten()
|
||||
{
|
||||
qDebug() << "-----------------------------";
|
||||
qDebug() << "--- EX-Flugbahndaten ---";
|
||||
QString flugbahndatenMessage = generateFlugbahndaten();
|
||||
qDebug() << "EX-Flugbahndaten=" << flugbahndatenMessage;
|
||||
QJsonDocument jsonDoc = QJsonDocument::fromJson(flugbahndatenMessage.toUtf8());
|
||||
const QJsonObject jsonObj = jsonDoc.object();
|
||||
QJsonObject dataObj = jsonObj[AdlerJson::JsonKeys::DATA()].toObject();
|
||||
|
||||
AdlerJson::ExFlugbahndaten exFlugbahndaten;
|
||||
|
||||
bool bOk;
|
||||
|
||||
AdlerJson::flugbahndatenFromJson(dataObj, exFlugbahndaten.flugbahndaten, bOk);
|
||||
MsgCompares::compareFlugbahndaten(exFlugbahndaten.flugbahndaten);
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
#pragma once
|
||||
|
||||
#include <QtCore/QString>
|
||||
#include <QtTest/QTest>
|
||||
|
||||
namespace AdlerJson {
|
||||
struct EXTelegramBase;
|
||||
|
||||
}
|
||||
|
||||
class TestExFlugbahndaten : public QObject {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
TestExFlugbahndaten();
|
||||
QString generateFlugbahndaten();
|
||||
|
||||
private slots:
|
||||
void testExFlugbahndaten();
|
||||
|
||||
private:
|
||||
|
||||
int m_partyId {0};
|
||||
int m_saaId {1};
|
||||
};
|
||||
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
#include "ex_fq_abgefeuert.h"
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <QtTest/QTest>
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <AdlerJson/telegrams.h>
|
||||
|
||||
#include <AdlerJson/generatetelegrams.h>
|
||||
|
||||
TestExFqAbgefeuert::TestExFqAbgefeuert()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
QString TestExFqAbgefeuert::generateAbgefeuertMessage()
|
||||
{
|
||||
AdlerJson::ExAbgefeuert req;
|
||||
|
||||
GenerateTelegrams::addHeaderData(req, m_saaId);
|
||||
GenerateTelegrams::generateAbgefeuert(req);
|
||||
|
||||
QJsonObject messageObj =req.toJson();
|
||||
QString message = QString::fromUtf8(QJsonDocument(messageObj).toJson());
|
||||
return message;
|
||||
}
|
||||
|
||||
void TestExFqAbgefeuert::testExFqAbgefeuert()
|
||||
{
|
||||
qDebug() << "---------------------------------------";
|
||||
qDebug() << "--- EX-FQ(AF) Abgefeuert ---";
|
||||
QString abgefeuertMessage = generateAbgefeuertMessage();
|
||||
qDebug() << "abgefeuertMessage=" << abgefeuertMessage;
|
||||
QJsonDocument jsonDoc = QJsonDocument::fromJson(abgefeuertMessage.toUtf8());
|
||||
const QJsonObject jsonObj = jsonDoc.object();
|
||||
QJsonObject dataObj = jsonObj[AdlerJson::JsonKeys::DATA()].toObject();
|
||||
|
||||
AdlerJson::Feuerkampfdaten feuerkampfdaten;
|
||||
bool bOk;
|
||||
|
||||
|
||||
AdlerJson::feuerkampfdatenFromJson(dataObj, feuerkampfdaten, bOk);
|
||||
|
||||
QCOMPARE(feuerkampfdaten.feuerkampfReferenz, QStringLiteral("feuerkampfReferenz 1"));
|
||||
QCOMPARE(feuerkampfdaten.verein, QStringLiteral("AB7X"));
|
||||
QCOMPARE(feuerkampfdaten.kenner, ProjectDataManagement::L27_EffectorId::B1);
|
||||
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
#pragma once
|
||||
|
||||
#include <QtCore/QString>
|
||||
#include <QtTest/QTest>
|
||||
|
||||
namespace AdlerJson {
|
||||
struct EXTelegramBase;
|
||||
enum class Szenarstatus;
|
||||
}
|
||||
|
||||
class TestExFqAbgefeuert : public QObject {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
TestExFqAbgefeuert();
|
||||
QString generateAbgefeuertMessage();
|
||||
|
||||
private slots:
|
||||
void testExFqAbgefeuert();
|
||||
|
||||
private:
|
||||
|
||||
int m_partyId {0};
|
||||
int m_saaId {1};
|
||||
};
|
||||
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
#include "ex_fq_feuerbereit.h"
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <QtTest/QTest>
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <AdlerJson/telegrams.h>
|
||||
|
||||
#include <AdlerJson/generatetelegrams.h>
|
||||
|
||||
TestExFqFeuerbereit::TestExFqFeuerbereit()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
QString TestExFqFeuerbereit::generateFeuerbereitMessage()
|
||||
{
|
||||
AdlerJson::ExFeuerbereit req;
|
||||
|
||||
GenerateTelegrams::addHeaderData(req, m_saaId);
|
||||
GenerateTelegrams::generateFeuerbereit(req);
|
||||
|
||||
QJsonObject messageObj =req.toJson();
|
||||
QString message = QString::fromUtf8(QJsonDocument(messageObj).toJson());
|
||||
return message;
|
||||
}
|
||||
|
||||
void TestExFqFeuerbereit::testExFqFeuerbereit()
|
||||
{
|
||||
qDebug() << "---------------------------------------";
|
||||
qDebug() << "--- EX-FQ(FB) Feuerbereit ---";
|
||||
QString feuerbereitMessage = generateFeuerbereitMessage();
|
||||
qDebug() << "feuerbereitMessage=" << feuerbereitMessage;
|
||||
QJsonDocument jsonDoc = QJsonDocument::fromJson(feuerbereitMessage.toUtf8());
|
||||
const QJsonObject jsonObj = jsonDoc.object();
|
||||
QJsonObject dataObj = jsonObj[AdlerJson::JsonKeys::DATA()].toObject();
|
||||
|
||||
AdlerJson::Feuerkampfdaten feuerkampfdaten;
|
||||
bool bOk;
|
||||
|
||||
|
||||
AdlerJson::feuerkampfdatenFromJson(dataObj, feuerkampfdaten, bOk);
|
||||
|
||||
QCOMPARE(feuerkampfdaten.feuerkampfReferenz, QStringLiteral("feuerkampfReferenz 1"));
|
||||
QCOMPARE(feuerkampfdaten.verein, QStringLiteral("AB7X"));
|
||||
QCOMPARE(feuerkampfdaten.kenner, ProjectDataManagement::L27_EffectorId::B1);
|
||||
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
#pragma once
|
||||
|
||||
#include <QtCore/QString>
|
||||
#include <QtTest/QTest>
|
||||
|
||||
namespace AdlerJson {
|
||||
struct EXTelegramBase;
|
||||
enum class Szenarstatus;
|
||||
}
|
||||
|
||||
class TestExFqFeuerbereit : public QObject {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
TestExFqFeuerbereit();
|
||||
QString generateFeuerbereitMessage();
|
||||
|
||||
private slots:
|
||||
void testExFqFeuerbereit();
|
||||
|
||||
private:
|
||||
|
||||
int m_partyId {0};
|
||||
int m_saaId {1};
|
||||
};
|
||||
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
#include "ex_fq_feuerkampf.h"
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <QtTest/QTest>
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <AdlerJson/telegrams.h>
|
||||
#include "msgcompares.h"
|
||||
|
||||
#include <AdlerJson/generatetelegrams.h>
|
||||
|
||||
TestExFqFeuerkampf::TestExFqFeuerkampf()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
QString TestExFqFeuerkampf::generateFeuerkampf()
|
||||
{
|
||||
AdlerJson::ExFeuerkampf req;
|
||||
|
||||
GenerateTelegrams::addHeaderData(req, m_saaId);
|
||||
GenerateTelegrams::generateFeuerkampf(req);
|
||||
|
||||
QJsonObject messageObj =req.toJson();
|
||||
QString message = QString::fromUtf8(QJsonDocument(messageObj).toJson());
|
||||
return message;
|
||||
}
|
||||
|
||||
void TestExFqFeuerkampf::testExFqFeuerkampf()
|
||||
{
|
||||
qDebug() << "-------------------------------";
|
||||
qDebug() << "--- EX-FQ(BA-BB) Feuerkampf ---";
|
||||
QString feuerkampfMessage = generateFeuerkampf();
|
||||
qDebug() << "feuerkampfMessage=" << feuerkampfMessage;
|
||||
QJsonDocument jsonDoc = QJsonDocument::fromJson(feuerkampfMessage.toUtf8());
|
||||
const QJsonObject jsonObj = jsonDoc.object();
|
||||
QJsonObject dataObj = jsonObj[AdlerJson::JsonKeys::DATA()].toObject();
|
||||
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
#pragma once
|
||||
|
||||
#include <QtCore/QString>
|
||||
#include <QtTest/QTest>
|
||||
|
||||
namespace AdlerJson {
|
||||
struct EXTelegramBase;
|
||||
enum class Szenarstatus;
|
||||
}
|
||||
|
||||
class TestExFqFeuerkampf : public QObject {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
TestExFqFeuerkampf();
|
||||
QString generateFeuerkampf();
|
||||
|
||||
private slots:
|
||||
void testExFqFeuerkampf();
|
||||
|
||||
private:
|
||||
|
||||
int m_partyId {0};
|
||||
int m_saaId {1};
|
||||
};
|
||||
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
#include "ex_fq_feuern.h"
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <QtTest/QTest>
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <AdlerJson/telegrams.h>
|
||||
|
||||
#include <AdlerJson/generatetelegrams.h>
|
||||
|
||||
TestExFqFeuern::TestExFqFeuern()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
QString TestExFqFeuern::generateFeuernMessage()
|
||||
{
|
||||
AdlerJson::ExFeuern req;
|
||||
|
||||
GenerateTelegrams::addHeaderData(req, m_saaId);
|
||||
GenerateTelegrams::generateFeuern(req);
|
||||
|
||||
QJsonObject messageObj =req.toJson();
|
||||
QString message = QString::fromUtf8(QJsonDocument(messageObj).toJson());
|
||||
return message;
|
||||
}
|
||||
|
||||
void TestExFqFeuern::testExFqFeuern()
|
||||
{
|
||||
qDebug() << "---------------------------------------";
|
||||
qDebug() << "--- EX-FQ(FN) Feuern ---";
|
||||
QString feuernMessage = generateFeuernMessage();
|
||||
qDebug() << "feuerbereitMessage=" << feuernMessage;
|
||||
QJsonDocument jsonDoc = QJsonDocument::fromJson(feuernMessage.toUtf8());
|
||||
const QJsonObject jsonObj = jsonDoc.object();
|
||||
QJsonObject dataObj = jsonObj[AdlerJson::JsonKeys::DATA()].toObject();
|
||||
|
||||
AdlerJson::Feuerkampfdaten feuerkampfdaten;
|
||||
bool bOk;
|
||||
|
||||
|
||||
AdlerJson::feuerkampfdatenFromJson(dataObj, feuerkampfdaten, bOk);
|
||||
|
||||
QCOMPARE(feuerkampfdaten.feuerkampfReferenz, QStringLiteral("feuerkampfReferenz 1"));
|
||||
QCOMPARE(feuerkampfdaten.verein, QStringLiteral("AB7X"));
|
||||
QCOMPARE(feuerkampfdaten.kenner, ProjectDataManagement::L27_EffectorId::B1);
|
||||
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
#pragma once
|
||||
|
||||
#include <QtCore/QString>
|
||||
#include <QtTest/QTest>
|
||||
|
||||
namespace AdlerJson {
|
||||
struct EXTelegramBase;
|
||||
enum class Szenarstatus;
|
||||
}
|
||||
|
||||
class TestExFqFeuern : public QObject {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
TestExFqFeuern();
|
||||
QString generateFeuernMessage();
|
||||
|
||||
private slots:
|
||||
void testExFqFeuern();
|
||||
|
||||
private:
|
||||
|
||||
int m_partyId {0};
|
||||
int m_saaId {1};
|
||||
};
|
||||
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
#include "ex_fq_vollzugsmeldung.h"
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <QtTest/QTest>
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <AdlerJson/telegrams.h>
|
||||
|
||||
#include <AdlerJson/generatetelegrams.h>
|
||||
|
||||
TestExFqVollzugsmeldung::TestExFqVollzugsmeldung()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
QString TestExFqVollzugsmeldung::generateVollzugsmeldungMessage()
|
||||
{
|
||||
AdlerJson::ExVollzugsmeldung req;
|
||||
|
||||
GenerateTelegrams::addHeaderData(req, m_saaId);
|
||||
GenerateTelegrams::generateVollzugsmeldung(req);
|
||||
|
||||
QJsonObject messageObj =req.toJson();
|
||||
QString message = QString::fromUtf8(QJsonDocument(messageObj).toJson());
|
||||
return message;
|
||||
}
|
||||
|
||||
void TestExFqVollzugsmeldung::testExFqVollzugsmeldung()
|
||||
{
|
||||
qDebug() << "---------------------------------------";
|
||||
qDebug() << "--- EX-FQ(VM) Vollzugsmeldung ---";
|
||||
QString vollzugsmeldungMessage = generateVollzugsmeldungMessage();
|
||||
qDebug() << "generateVollzugsmeldungMessage=" << vollzugsmeldungMessage;
|
||||
QJsonDocument jsonDoc = QJsonDocument::fromJson(vollzugsmeldungMessage.toUtf8());
|
||||
const QJsonObject jsonObj = jsonDoc.object();
|
||||
QJsonObject dataObj = jsonObj[AdlerJson::JsonKeys::DATA()].toObject();
|
||||
|
||||
AdlerJson::Feuerkampfdaten feuerkampfdaten;
|
||||
bool bOk;
|
||||
|
||||
|
||||
AdlerJson::feuerkampfdatenFromJson(dataObj, feuerkampfdaten, bOk);
|
||||
|
||||
QCOMPARE(feuerkampfdaten.feuerkampfReferenz, QStringLiteral("feuerkampfReferenz 1"));
|
||||
QCOMPARE(feuerkampfdaten.verein, QStringLiteral("AB7X"));
|
||||
qDebug() << "L27_EffectorId=" << AdlerJson::waffensystemkennerMap.key(feuerkampfdaten.kenner);
|
||||
QCOMPARE(feuerkampfdaten.kenner, ProjectDataManagement::L27_EffectorId::B1);
|
||||
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
#pragma once
|
||||
|
||||
#include <QtCore/QString>
|
||||
#include <QtTest/QTest>
|
||||
|
||||
namespace AdlerJson {
|
||||
struct EXTelegramBase;
|
||||
enum class Szenarstatus;
|
||||
}
|
||||
|
||||
class TestExFqVollzugsmeldung : public QObject {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
TestExFqVollzugsmeldung();
|
||||
QString generateVollzugsmeldungMessage();
|
||||
|
||||
private slots:
|
||||
void testExFqVollzugsmeldung();
|
||||
|
||||
private:
|
||||
|
||||
int m_partyId {0};
|
||||
int m_saaId {1};
|
||||
};
|
||||
|
||||
+59
@@ -0,0 +1,59 @@
|
||||
#include "ex_fq_wirkfeldplanung.h"
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <QtTest/QTest>
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <AdlerJson/telegrams.h>
|
||||
#include "msgcompares.h"
|
||||
|
||||
#include <AdlerJson/generatetelegrams.h>
|
||||
|
||||
TestExFqWirkfeldplanung::TestExFqWirkfeldplanung()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
QString TestExFqWirkfeldplanung::generateWirkfeldplanungMessage()
|
||||
{
|
||||
AdlerJson::ExAwesPlanning req;
|
||||
|
||||
GenerateTelegrams::addHeaderData(req, m_saaId);
|
||||
GenerateTelegrams::generateEXFQBABBFK(req);
|
||||
req.wirkfeldplanungData.feuerkampfReferenz = QStringLiteral("REF:2078669041");
|
||||
|
||||
QJsonObject messageObj =req.toJson();
|
||||
QString message = QString::fromUtf8(QJsonDocument(messageObj).toJson());
|
||||
return message;
|
||||
}
|
||||
|
||||
void TestExFqWirkfeldplanung::testExFqWirkfeldplanung()
|
||||
{
|
||||
qDebug() << "---------------------------------------";
|
||||
qDebug() << "--- EX-FQ(BA-BB-FK) Wirkfeldplanung ---";
|
||||
QString wirkfeldplanungMessage = generateWirkfeldplanungMessage();
|
||||
qDebug() << "wirkfeldplanungMessage= " << wirkfeldplanungMessage;
|
||||
QJsonDocument jsonDoc = QJsonDocument::fromJson(wirkfeldplanungMessage.toUtf8());
|
||||
const QJsonObject jsonObj = jsonDoc.object();
|
||||
QJsonObject dataObj = jsonObj[AdlerJson::JsonKeys::DATA()].toObject();
|
||||
|
||||
AdlerJson::WirkfeldplanungData wirkfeldplanungData;
|
||||
bool bOk;
|
||||
|
||||
|
||||
AdlerJson::wirkfeldplanungDataFromJson(dataObj, wirkfeldplanungData, bOk);
|
||||
|
||||
QString messageFromJson = QString::fromUtf8(QJsonDocument(dataObj).toJson());
|
||||
qDebug() << "wirkfeldplanungMessage From Json= " << messageFromJson;
|
||||
|
||||
QCOMPARE(wirkfeldplanungData.feuerkampfReferenz, QStringLiteral("REF:2078669041") );
|
||||
|
||||
MsgCompares::compareZieldaten(wirkfeldplanungData.zieldaten);
|
||||
|
||||
QCOMPARE(wirkfeldplanungData.abfeuerungsArt, AdlerJson::Abfeuerungsart::A);
|
||||
QCOMPARE(wirkfeldplanungData.forderung, ProjectDataManagement::L7_Request::VER);
|
||||
QCOMPARE(wirkfeldplanungData.dauer, 30);
|
||||
|
||||
qDebug() << "--- Feuerkommandos: ---";
|
||||
MsgCompares::compareFeuerkommando(wirkfeldplanungData.feuerkommando);
|
||||
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
#pragma once
|
||||
|
||||
#include <QtCore/QString>
|
||||
#include <QtTest/QTest>
|
||||
|
||||
namespace AdlerJson {
|
||||
struct EXTelegramBase;
|
||||
enum class Szenarstatus;
|
||||
}
|
||||
|
||||
class TestExFqWirkfeldplanung : public QObject {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
TestExFqWirkfeldplanung();
|
||||
QString generateWirkfeldplanungMessage();
|
||||
|
||||
private slots:
|
||||
void testExFqWirkfeldplanung();
|
||||
|
||||
private:
|
||||
|
||||
int m_partyId {0};
|
||||
int m_saaId {1};
|
||||
};
|
||||
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
#include "ex_hq_fuehrungslinien.h"
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <QtTest/QTest>
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <AdlerJson/telegrams.h>
|
||||
#include "msgcompares.h"
|
||||
|
||||
#include <AdlerJson/generatetelegrams.h>
|
||||
|
||||
TestExHqFuehrungslinien::TestExHqFuehrungslinien()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
QString TestExHqFuehrungslinien::generateFuehrungslinien()
|
||||
{
|
||||
AdlerJson::ExHqFuehrungslinien req;
|
||||
|
||||
GenerateTelegrams::addHeaderData(req, m_saaId);
|
||||
GenerateTelegrams::generateFuehrungslinien(req);
|
||||
|
||||
QJsonObject messageObj =req.toJson();
|
||||
QString message = QString::fromUtf8(QJsonDocument(messageObj).toJson());
|
||||
return message;
|
||||
}
|
||||
|
||||
void TestExHqFuehrungslinien::testExHqFuehrungslinien()
|
||||
{
|
||||
qDebug() << "-------------------------------------------";
|
||||
qDebug() << "--- EX-HQ(G) Fuehrungslinien und Grenzen ---";
|
||||
QString fuehrungslinienMessage = generateFuehrungslinien();
|
||||
qDebug() << "EX-HQ(G) Fuehrungslinien und Grenzen=" << fuehrungslinienMessage;
|
||||
QJsonDocument jsonDoc = QJsonDocument::fromJson(fuehrungslinienMessage.toUtf8());
|
||||
const QJsonObject jsonObj = jsonDoc.object();
|
||||
QJsonObject dataObj = jsonObj[AdlerJson::JsonKeys::DATA()].toObject();
|
||||
|
||||
AdlerJson::ExHqFuehrungslinien exHqFuehrungslinien;
|
||||
|
||||
bool bOk;
|
||||
|
||||
AdlerJson::fuehrungsdatenFromJson(dataObj, exHqFuehrungslinien.fuehrungsdaten, bOk);
|
||||
MsgCompares::compareFuehrungsdaten(exHqFuehrungslinien.fuehrungsdaten);
|
||||
|
||||
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
#pragma once
|
||||
|
||||
#include <QtCore/QString>
|
||||
#include <QtTest/QTest>
|
||||
|
||||
namespace AdlerJson {
|
||||
struct EXTelegramBase;
|
||||
|
||||
}
|
||||
|
||||
class TestExHqFuehrungslinien : public QObject {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
TestExHqFuehrungslinien();
|
||||
QString generateFuehrungslinien();
|
||||
|
||||
private slots:
|
||||
void testExHqFuehrungslinien();
|
||||
|
||||
private:
|
||||
|
||||
int m_partyId {0};
|
||||
int m_saaId {1};
|
||||
};
|
||||
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
#include "ex_hq_koordinierungsmassnahmen.h"
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <QtTest/QTest>
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <AdlerJson/telegrams.h>
|
||||
#include "msgcompares.h"
|
||||
|
||||
#include <AdlerJson/generatetelegrams.h>
|
||||
|
||||
TestExHqKoordinierungsmassnahmen::TestExHqKoordinierungsmassnahmen()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
QString TestExHqKoordinierungsmassnahmen::generateKoordinierungsmassnahmen()
|
||||
{
|
||||
AdlerJson::ExHqKoordinierungsmassnahmen req;
|
||||
|
||||
GenerateTelegrams::addHeaderData(req, m_saaId);
|
||||
GenerateTelegrams::generateKoordinierungsmassnahmen(req);
|
||||
|
||||
QJsonObject messageObj =req.toJson();
|
||||
QString message = QString::fromUtf8(QJsonDocument(messageObj).toJson());
|
||||
return message;
|
||||
}
|
||||
|
||||
void TestExHqKoordinierungsmassnahmen::testExHqKoordinierungsmassnahmen()
|
||||
{
|
||||
qDebug() << "-----------------------------------------";
|
||||
qDebug() << "--- EX-HQ(K) Koordinierungsmassnahmen ---";
|
||||
QString koordinierungsmassnahmenMessage = generateKoordinierungsmassnahmen();
|
||||
qDebug() << "EX-HQ(K) Koordinierungsmassnahmen=" << koordinierungsmassnahmenMessage;
|
||||
QJsonDocument jsonDoc = QJsonDocument::fromJson(koordinierungsmassnahmenMessage.toUtf8());
|
||||
const QJsonObject jsonObj = jsonDoc.object();
|
||||
QJsonObject dataObj = jsonObj[AdlerJson::JsonKeys::DATA()].toObject();
|
||||
|
||||
AdlerJson::ExHqKoordinierungsmassnahmen exHqKoordinierungsmassnahmen;
|
||||
|
||||
bool bOk;
|
||||
|
||||
AdlerJson::koordinierungsdatenFromJson(dataObj, exHqKoordinierungsmassnahmen.koordinierungsdaten, bOk);
|
||||
MsgCompares::compareKoordinierungsdaten(exHqKoordinierungsmassnahmen.koordinierungsdaten);
|
||||
|
||||
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
#pragma once
|
||||
|
||||
#include <QtCore/QString>
|
||||
#include <QtTest/QTest>
|
||||
|
||||
namespace AdlerJson {
|
||||
struct EXTelegramBase;
|
||||
enum class Szenarstatus;
|
||||
}
|
||||
|
||||
class TestExHqKoordinierungsmassnahmen : public QObject {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
TestExHqKoordinierungsmassnahmen();
|
||||
QString generateKoordinierungsmassnahmen();
|
||||
|
||||
private slots:
|
||||
void testExHqKoordinierungsmassnahmen();
|
||||
|
||||
private:
|
||||
|
||||
int m_partyId {0};
|
||||
int m_saaId {1};
|
||||
};
|
||||
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
#include "ex_mq_manuelle_quittung.h"
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <QtTest/QTest>
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <AdlerJson/telegrams.h>
|
||||
#include "msgcompares.h"
|
||||
|
||||
#include <AdlerJson/generatetelegrams.h>
|
||||
|
||||
TestExMqManuelleQuittung::TestExMqManuelleQuittung()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
QString TestExMqManuelleQuittung::generateManuelleQuittung()
|
||||
{
|
||||
AdlerJson::ExMqManuelleQuittung req;
|
||||
|
||||
GenerateTelegrams::addHeaderData(req, m_saaId);
|
||||
GenerateTelegrams::generateManuelleQuittung(req);
|
||||
|
||||
QJsonObject messageObj =req.toJson();
|
||||
QString message = QString::fromUtf8(QJsonDocument(messageObj).toJson());
|
||||
return message;
|
||||
}
|
||||
|
||||
void TestExMqManuelleQuittung::testExMqManuelleQuittung()
|
||||
{
|
||||
qDebug() << "-------------------------------";
|
||||
qDebug() << "--- EX-MQ Manuelle Quittung ---";
|
||||
QString manuelleQuittungMessage = generateManuelleQuittung();
|
||||
qDebug() << "EX-MQ Manuelle Quittung=" << manuelleQuittungMessage;
|
||||
QJsonDocument jsonDoc = QJsonDocument::fromJson(manuelleQuittungMessage.toUtf8());
|
||||
const QJsonObject jsonObj = jsonDoc.object();
|
||||
QJsonObject dataObj = jsonObj[AdlerJson::JsonKeys::DATA()].toObject();
|
||||
|
||||
AdlerJson::ExMqManuelleQuittung exMqManuelleQuittung;
|
||||
|
||||
bool bOk;
|
||||
|
||||
AdlerJson::mqManuelleQuittungDatenFromJson(dataObj, exMqManuelleQuittung.mqManuelleQuittungDaten, bOk);
|
||||
MsgCompares::compareManuelleQuittungDaten(exMqManuelleQuittung.mqManuelleQuittungDaten);
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
#pragma once
|
||||
|
||||
#include <QtCore/QString>
|
||||
#include <QtTest/QTest>
|
||||
|
||||
namespace AdlerJson {
|
||||
struct EXTelegramBase;
|
||||
|
||||
}
|
||||
|
||||
class TestExMqManuelleQuittung : public QObject {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
TestExMqManuelleQuittung();
|
||||
QString generateManuelleQuittung();
|
||||
|
||||
private slots:
|
||||
void testExMqManuelleQuittung();
|
||||
|
||||
private:
|
||||
|
||||
int m_partyId {0};
|
||||
int m_saaId {1};
|
||||
};
|
||||
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
#include "ex_sq_stellungsmeldung_fs.h"
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <QtTest/QTest>
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <AdlerJson/telegrams.h>
|
||||
#include "msgcompares.h"
|
||||
|
||||
#include <AdlerJson/generatetelegrams.h>
|
||||
|
||||
TestExStellungsmeldungFS::TestExStellungsmeldungFS()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
QString TestExStellungsmeldungFS::generateStellungFS()
|
||||
{
|
||||
AdlerJson::ExFeuerstellungFS req;
|
||||
|
||||
GenerateTelegrams::addHeaderData(req, m_saaId);
|
||||
GenerateTelegrams::generateStellungsmeldungFS(req);
|
||||
|
||||
QJsonObject messageObj =req.toJson();
|
||||
QString message = QString::fromUtf8(QJsonDocument(messageObj).toJson());
|
||||
return message;
|
||||
}
|
||||
|
||||
void TestExStellungsmeldungFS::testExStellungsmeldungFS()
|
||||
{
|
||||
qDebug() << "------------------------------------------------";
|
||||
qDebug() << "--- EX-SQ(FS) Stellungsmeldung Feuerstellung ---";
|
||||
QString stellungFSMessage = generateStellungFS();
|
||||
qDebug() << "EX-SQ(FS) Stellungsmeldung Feuerstellung=" << stellungFSMessage;
|
||||
QJsonDocument jsonDoc = QJsonDocument::fromJson(stellungFSMessage.toUtf8());
|
||||
const QJsonObject jsonObj = jsonDoc.object();
|
||||
QJsonObject dataObj = jsonObj[AdlerJson::JsonKeys::DATA()].toObject();
|
||||
|
||||
AdlerJson::Feuerstellungsdaten feuerstellungsdaten;
|
||||
bool bOk;
|
||||
|
||||
|
||||
AdlerJson::feuerstellungsdatenFromJson(dataObj, feuerstellungsdaten, bOk);
|
||||
MsgCompares::compareFeuerstellungsdaten(feuerstellungsdaten);
|
||||
|
||||
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
#pragma once
|
||||
|
||||
#include <QtCore/QString>
|
||||
#include <QtTest/QTest>
|
||||
|
||||
namespace AdlerJson {
|
||||
struct EXTelegramBase;
|
||||
enum class Szenarstatus;
|
||||
}
|
||||
|
||||
class TestExStellungsmeldungFS : public QObject {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
TestExStellungsmeldungFS();
|
||||
QString generateStellungFS();
|
||||
|
||||
private slots:
|
||||
void testExStellungsmeldungFS();
|
||||
|
||||
private:
|
||||
|
||||
int m_partyId {0};
|
||||
int m_saaId {1};
|
||||
};
|
||||
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
#include "ex_sq_stellungsmeldung_lp.h"
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <QtTest/QTest>
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <AdlerJson/telegrams.h>
|
||||
#include "msgcompares.h"
|
||||
|
||||
#include <AdlerJson/generatetelegrams.h>
|
||||
|
||||
TestExStellungsmeldungLP::TestExStellungsmeldungLP()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
QString TestExStellungsmeldungLP::generateStellungLP()
|
||||
{
|
||||
AdlerJson::ExFeuerstellungLP req;
|
||||
|
||||
GenerateTelegrams::addHeaderData(req, m_saaId);
|
||||
GenerateTelegrams::generateStellungsmeldungLP(req);
|
||||
|
||||
QJsonObject messageObj =req.toJson();
|
||||
QString message = QString::fromUtf8(QJsonDocument(messageObj).toJson());
|
||||
return message;
|
||||
}
|
||||
|
||||
void TestExStellungsmeldungLP::testExStellungsmeldungLP()
|
||||
{
|
||||
qDebug() << "--------------------------------------------";
|
||||
qDebug() << "--- EX-SQ(LP) Stellungsmeldung Ladeplatz ---";
|
||||
QString stellungLPMessage = generateStellungLP();
|
||||
qDebug() << "EX-SQ(LP) Stellungsmeldung Ladeplatz=" << stellungLPMessage;
|
||||
QJsonDocument jsonDoc = QJsonDocument::fromJson(stellungLPMessage.toUtf8());
|
||||
const QJsonObject jsonObj = jsonDoc.object();
|
||||
QJsonObject dataObj = jsonObj[AdlerJson::JsonKeys::DATA()].toObject();
|
||||
|
||||
AdlerJson::Ladeplatzdaten ladeplatzdaten;
|
||||
bool bOk;
|
||||
|
||||
|
||||
AdlerJson::ladeplatzdatenFromJson(dataObj, ladeplatzdaten, bOk);
|
||||
MsgCompares::compareLadeplatzdaten(ladeplatzdaten);
|
||||
|
||||
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
#pragma once
|
||||
|
||||
#include <QtCore/QString>
|
||||
#include <QtTest/QTest>
|
||||
|
||||
namespace AdlerJson {
|
||||
struct EXTelegramBase;
|
||||
enum class Szenarstatus;
|
||||
}
|
||||
|
||||
class TestExStellungsmeldungLP : public QObject {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
TestExStellungsmeldungLP();
|
||||
QString generateStellungLP();
|
||||
|
||||
private slots:
|
||||
void testExStellungsmeldungLP();
|
||||
|
||||
private:
|
||||
|
||||
int m_partyId {0};
|
||||
int m_saaId {1};
|
||||
};
|
||||
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
#include "ex_sq_stellungsmeldung_ws.h"
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <QtTest/QTest>
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <AdlerJson/telegrams.h>
|
||||
#include "msgcompares.h"
|
||||
|
||||
#include <AdlerJson/generatetelegrams.h>
|
||||
|
||||
TestExStellungsmeldungWS::TestExStellungsmeldungWS()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
QString TestExStellungsmeldungWS::generateStellungWS()
|
||||
{
|
||||
AdlerJson::ExFeuerstellungWS req;
|
||||
|
||||
GenerateTelegrams::addHeaderData(req, m_saaId);
|
||||
GenerateTelegrams::generateStellungsmeldungWS(req);
|
||||
|
||||
QJsonObject messageObj =req.toJson();
|
||||
QString message = QString::fromUtf8(QJsonDocument(messageObj).toJson());
|
||||
return message;
|
||||
}
|
||||
|
||||
void TestExStellungsmeldungWS::testExStellungsmeldungWS()
|
||||
{
|
||||
qDebug() << "------------------------------------------------";
|
||||
qDebug() << "--- EX-SQ(WS) Stellungsmeldung Waffensystem ---";
|
||||
QString stellungWSMessage = generateStellungWS();
|
||||
qDebug() << "EX-SQ(WS) Stellungsmeldung Waffensystem=" << stellungWSMessage;
|
||||
QJsonDocument jsonDoc = QJsonDocument::fromJson(stellungWSMessage.toUtf8());
|
||||
const QJsonObject jsonObj = jsonDoc.object();
|
||||
QJsonObject dataObj = jsonObj[AdlerJson::JsonKeys::DATA()].toObject();
|
||||
|
||||
AdlerJson::Waffensystemdaten waffensystemdaten;
|
||||
bool bOk;
|
||||
|
||||
|
||||
AdlerJson::waffensystemdatenFromJson(dataObj, waffensystemdaten, bOk);
|
||||
MsgCompares::compareWaffensystemdaten(waffensystemdaten);
|
||||
|
||||
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
#pragma once
|
||||
|
||||
#include <QtCore/QString>
|
||||
#include <QtTest/QTest>
|
||||
|
||||
namespace AdlerJson {
|
||||
struct EXTelegramBase;
|
||||
enum class Szenarstatus;
|
||||
}
|
||||
|
||||
class TestExStellungsmeldungWS : public QObject {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
TestExStellungsmeldungWS();
|
||||
QString generateStellungWS();
|
||||
|
||||
private slots:
|
||||
void testExStellungsmeldungWS();
|
||||
|
||||
private:
|
||||
|
||||
int m_partyId {0};
|
||||
int m_saaId {1};
|
||||
};
|
||||
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
#include "ex_sq_stellungswechsel.h"
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <QtTest/QTest>
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <AdlerJson/telegrams.h>
|
||||
#include "msgcompares.h"
|
||||
|
||||
#include <AdlerJson/generatetelegrams.h>
|
||||
|
||||
TestExStellungswechsel::TestExStellungswechsel()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
QString TestExStellungswechsel::generateStellungswechsel()
|
||||
{
|
||||
AdlerJson::ExStellungswechsel req;
|
||||
|
||||
GenerateTelegrams::addHeaderData(req, m_saaId);
|
||||
GenerateTelegrams::generateStellungswechsel(req);
|
||||
|
||||
QJsonObject messageObj =req.toJson();
|
||||
QString message = QString::fromUtf8(QJsonDocument(messageObj).toJson());
|
||||
return message;
|
||||
}
|
||||
|
||||
void TestExStellungswechsel::testExStellungswechsel()
|
||||
{
|
||||
qDebug() << "---------------------------";
|
||||
qDebug() << "--- EX-Stellungswechsel ---";
|
||||
QString stellungswechselMessage = generateStellungswechsel();
|
||||
qDebug() << "EX-Stellungswechsel=" << stellungswechselMessage;
|
||||
QJsonDocument jsonDoc = QJsonDocument::fromJson(stellungswechselMessage.toUtf8());
|
||||
const QJsonObject jsonObj = jsonDoc.object();
|
||||
QJsonObject dataObj = jsonObj[AdlerJson::JsonKeys::DATA()].toObject();
|
||||
|
||||
AdlerJson::Stellungswechseldaten stellungswechseldaten;
|
||||
|
||||
bool bOk;
|
||||
|
||||
|
||||
AdlerJson::stellungswechseldatenFromJson(dataObj, stellungswechseldaten, bOk);
|
||||
MsgCompares::compareStellungswechseldaten(stellungswechseldaten);
|
||||
|
||||
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
#pragma once
|
||||
|
||||
#include <QtCore/QString>
|
||||
#include <QtTest/QTest>
|
||||
|
||||
namespace AdlerJson {
|
||||
struct EXTelegramBase;
|
||||
enum class Szenarstatus;
|
||||
}
|
||||
|
||||
class TestExStellungswechsel : public QObject {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
TestExStellungswechsel();
|
||||
QString generateStellungswechsel();
|
||||
|
||||
private slots:
|
||||
void testExStellungswechsel();
|
||||
|
||||
private:
|
||||
|
||||
int m_partyId {0};
|
||||
int m_saaId {1};
|
||||
};
|
||||
|
||||
+70
@@ -0,0 +1,70 @@
|
||||
#include "ex_status.h"
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <QtTest/QTest>
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <AdlerJson/telegrams.h>
|
||||
#include <AdlerJson/generatetelegrams.h>
|
||||
|
||||
|
||||
TestExStatus::TestExStatus()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
QString TestExStatus::generateStatusMessage()
|
||||
{
|
||||
AdlerJson::EXStatus req;
|
||||
|
||||
GenerateTelegrams::addHeaderData(req, m_saaId);
|
||||
GenerateTelegrams::generateStatusMessage(req, AdlerJson::Szenarstatus::Aktiv);
|
||||
|
||||
QJsonObject messageObj =req.toJson();
|
||||
QString message = QString::fromUtf8(QJsonDocument(messageObj).toJson());
|
||||
qDebug() << "message=" << message;
|
||||
qCritical().noquote() << "message=" << message;
|
||||
return message;
|
||||
}
|
||||
|
||||
void TestExStatus::testExStatus()
|
||||
{
|
||||
qDebug() << "----------------------------";
|
||||
qDebug() << "--- EX-Status ---";
|
||||
QString statusMessage = generateStatusMessage();
|
||||
QJsonDocument jsonDoc = QJsonDocument::fromJson(statusMessage.toUtf8());
|
||||
const QJsonObject jsonObj = jsonDoc.object();
|
||||
QJsonObject dataObj = jsonObj[AdlerJson::JsonKeys::DATA()].toObject();
|
||||
|
||||
AdlerJson::EXStatus status;
|
||||
bool bOk;
|
||||
|
||||
|
||||
AdlerJson::statusFromJson(dataObj, status, bOk);
|
||||
QCOMPARE(status.status, AdlerJson::Szenarstatus::Aktiv );
|
||||
}
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
#pragma once
|
||||
|
||||
#include <QtCore/QString>
|
||||
#include <QtTest/QTest>
|
||||
|
||||
namespace AdlerJson {
|
||||
struct EXTelegramBase;
|
||||
enum class Szenarstatus;
|
||||
}
|
||||
|
||||
class TestExStatus : public QObject {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
TestExStatus();
|
||||
QString generateStatusMessage();
|
||||
|
||||
private slots:
|
||||
void testExStatus();
|
||||
|
||||
private:
|
||||
int m_saaId {0};
|
||||
};
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
#include "ex_tq_technische_quittung.h"
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <QtTest/QTest>
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <AdlerJson/telegrams.h>
|
||||
#include "msgcompares.h"
|
||||
|
||||
#include <AdlerJson/generatetelegrams.h>
|
||||
|
||||
TestExTqTechnischeQuittung::TestExTqTechnischeQuittung()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
QString TestExTqTechnischeQuittung::generateTechnischeQuittung()
|
||||
{
|
||||
AdlerJson::ExTqTechnischeQuittung req;
|
||||
|
||||
GenerateTelegrams::addHeaderData(req, m_saaId);
|
||||
GenerateTelegrams::generateTechnischeQuittung(req);
|
||||
|
||||
QJsonObject messageObj =req.toJson();
|
||||
QString message = QString::fromUtf8(QJsonDocument(messageObj).toJson());
|
||||
return message;
|
||||
}
|
||||
|
||||
void TestExTqTechnischeQuittung::testExTqTechnischeQuittung()
|
||||
{
|
||||
qDebug() << "------------------------------------";
|
||||
qDebug() << "--- EX-TQ Technische Quittierung ---";
|
||||
QString fuehrungslinienMessage = generateTechnischeQuittung();
|
||||
qDebug() << "EX-TQ Technische Quittierung=" << fuehrungslinienMessage;
|
||||
QJsonDocument jsonDoc = QJsonDocument::fromJson(fuehrungslinienMessage.toUtf8());
|
||||
const QJsonObject jsonObj = jsonDoc.object();
|
||||
QJsonObject dataObj = jsonObj[AdlerJson::JsonKeys::DATA()].toObject();
|
||||
|
||||
AdlerJson::ExTqTechnischeQuittung exTqTechnischeQuittung;
|
||||
|
||||
bool bOk;
|
||||
|
||||
AdlerJson::technischeDatenFromJson(dataObj, exTqTechnischeQuittung.technischeDaten, bOk);
|
||||
MsgCompares::compareTechnischeDaten(exTqTechnischeQuittung.technischeDaten);
|
||||
|
||||
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
#pragma once
|
||||
|
||||
#include <QtCore/QString>
|
||||
#include <QtTest/QTest>
|
||||
|
||||
namespace AdlerJson {
|
||||
struct EXTelegramBase;
|
||||
|
||||
}
|
||||
|
||||
class TestExTqTechnischeQuittung : public QObject {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
TestExTqTechnischeQuittung();
|
||||
QString generateTechnischeQuittung();
|
||||
|
||||
private slots:
|
||||
void testExTqTechnischeQuittung();
|
||||
|
||||
private:
|
||||
|
||||
int m_partyId {0};
|
||||
int m_saaId {1};
|
||||
};
|
||||
|
||||
+328
@@ -0,0 +1,328 @@
|
||||
#include "msgcompares.h"
|
||||
|
||||
#include <QtTest/QTest>
|
||||
|
||||
MsgCompares::MsgCompares()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void MsgCompares::compareZieldaten(const AdlerJson::Zieldaten& zieldaten)
|
||||
{
|
||||
qDebug() << "--- Begin compareZieldaten EX-L12 ---";
|
||||
QCOMPARE(zieldaten.nummer, 7);
|
||||
QCOMPARE(zieldaten.geometrie, ProjectDataManagement::L4_TargetGeometry::Point);
|
||||
qDebug() << "--- koordinate ---";
|
||||
QCOMPARE(zieldaten.koordinate.hoehe, 0);
|
||||
QCOMPARE(zieldaten.koordinate.koordinate.latitude, 53.0672);
|
||||
QCOMPARE(zieldaten.koordinate.koordinate.longitude, 8.86687);
|
||||
qDebug() << "--- relativKoordinate ---";
|
||||
QCOMPARE(zieldaten.relativKoordinate.hoehe, 5);
|
||||
QCOMPARE(zieldaten.relativKoordinate.koordinate.latitude, 53.8);
|
||||
QCOMPARE(zieldaten.relativKoordinate.koordinate.longitude, 8.8);
|
||||
|
||||
QCOMPARE(zieldaten.breiteRadius, 25);
|
||||
QCOMPARE(zieldaten.tiefe, 26);
|
||||
QCOMPARE(zieldaten.zielachse, 17);
|
||||
QCOMPARE(zieldaten.zog, 7);
|
||||
QCOMPARE(zieldaten.elemente, 1);
|
||||
QCOMPARE(zieldaten.typ, QStringLiteral("PERS"));
|
||||
QCOMPARE(zieldaten.subTyp, QStringLiteral("APERS"));
|
||||
qDebug() << "--- End compareZieldaten EX-L12 ---";
|
||||
}
|
||||
|
||||
void MsgCompares::compareFlugbahnpunkt0(const AdlerJson::Flugbahnpunkt &flugbahnpunkt)
|
||||
{
|
||||
QCOMPARE(flugbahnpunkt.xRelativ, 200.0);
|
||||
QCOMPARE(flugbahnpunkt.yRelativ, 77.0);
|
||||
QCOMPARE(flugbahnpunkt.zRelativ, 300.0);
|
||||
QCOMPARE(flugbahnpunkt.zeit, 17.0);
|
||||
}
|
||||
void MsgCompares::compareFlugbahnpunkt1(const AdlerJson::Flugbahnpunkt &flugbahnpunkt)
|
||||
{
|
||||
QCOMPARE(flugbahnpunkt.xRelativ, 900.0);
|
||||
QCOMPARE(flugbahnpunkt.yRelativ, 177.0);
|
||||
QCOMPARE(flugbahnpunkt.zRelativ, 700.0);
|
||||
QCOMPARE(flugbahnpunkt.zeit, 19.0);
|
||||
}
|
||||
|
||||
void MsgCompares::compareStreuung(const AdlerJson::Streuungsdaten &streuung)
|
||||
{
|
||||
QCOMPARE(streuung.seitenstreuungH, 0.7);
|
||||
QCOMPARE(streuung.laengsstreuungH, 0.3);
|
||||
QCOMPARE(streuung.seitenstreuung, 0.7);
|
||||
QCOMPARE(streuung.laengsstreuung, 7.7);
|
||||
}
|
||||
|
||||
void MsgCompares::compareFeuerkommando(const AdlerJson::Feuerkommando &feuerkommando)
|
||||
{
|
||||
|
||||
QCOMPARE(feuerkommando.typ, ProjectDataManagement::L26_EffectingSystemType::RRohr);
|
||||
qDebug() << "feuerkommando.wirkmittel.size=" << feuerkommando.wirkmittel.size();
|
||||
AdlerJson::WirkmittelFeuerkommando wfk = feuerkommando.wirkmittel[0];
|
||||
QCOMPARE(wfk.kenner, ProjectDataManagement::L27_EffectorId::B1);
|
||||
AdlerJson::KoordinateMitHoehe ap = wfk.auftreffpunkt;
|
||||
QCOMPARE(ap.hoehe, 0);
|
||||
QCOMPARE(ap.koordinate.latitude, 53.0672);
|
||||
QCOMPARE(ap.koordinate.longitude, 8.86687);
|
||||
QCOMPARE(wfk.flugzeit, 30);
|
||||
QCOMPARE(wfk.gipfelhoehe, 377);
|
||||
QCOMPARE(wfk.schussrichtung, 177);
|
||||
|
||||
compareFlugbahnpunkt0(wfk.flugbahnpunkt[0]);
|
||||
compareFlugbahnpunkt1(wfk.flugbahnpunkt[1]);
|
||||
compareStreuung(wfk.streuung);
|
||||
|
||||
MsgCompares::compareFeuerkommandoGeschosse(wfk.geschoss);
|
||||
compareWirkmittelFeuerkommandoRakete (feuerkommando.wirkmittelRakete);
|
||||
}
|
||||
|
||||
void MsgCompares::compareWirkmittelFeuerkommandoRakete(const QVector<AdlerJson::WirkmittelFeuerkommandoRakete> &wfrs)
|
||||
{
|
||||
qDebug() << "compareFeuerkommando Rakete"
|
||||
<< ", wfrs.size=" << wfrs.size()
|
||||
<< ", wfrs[0].treffpunkte,size=" << wfrs[0].treffpunkte.size();
|
||||
|
||||
AdlerJson::Treffpunkt treffpunkt = wfrs[0].treffpunkte[0];
|
||||
QCOMPARE (treffpunkt.anzahl, 1);
|
||||
QCOMPARE (treffpunkt.koordinate.koordinate.latitude , 5.5);
|
||||
QCOMPARE (treffpunkt.koordinate.koordinate.longitude, 6.6);
|
||||
QCOMPARE (treffpunkt.koordinate.hoehe, 7);
|
||||
QCOMPARE (wfrs[0].kenner , ProjectDataManagement::L27_EffectorId::B1);
|
||||
QCOMPARE (wfrs[0].flugzeit, 456.3);
|
||||
QCOMPARE (wfrs[0].gipfelhoehe, 300);
|
||||
QCOMPARE (wfrs[0].schussrichtung, 30.0);
|
||||
QCOMPARE (wfrs[0].fallwinkel, 5);
|
||||
QCOMPARE (wfrs[0].anflug, ProjectDataManagement::L48_TrajectoryRocket::Nominal);
|
||||
}
|
||||
|
||||
void MsgCompares::compareFeuerkommandoGeschosse(const AdlerJson::FeuerkommandoGeschosse &feuerkommandoGeschosse)
|
||||
{
|
||||
QCOMPARE(feuerkommandoGeschosse.geschosssorte, QStringLiteral("Mine DM72"));
|
||||
QCOMPARE(feuerkommandoGeschosse.ladung, QStringLiteral("M DM72"));
|
||||
QCOMPARE(feuerkommandoGeschosse.zuender, QStringLiteral("Aufschlag BB DM371"));
|
||||
QCOMPARE(feuerkommandoGeschosse.zuenderFunktion, QStringLiteral("AZoV"));
|
||||
QCOMPARE(feuerkommandoGeschosse.zuenderZeit, 0);
|
||||
QCOMPARE(feuerkommandoGeschosse.anzahl, 7);
|
||||
QCOMPARE(feuerkommandoGeschosse.intervall, 1.0);
|
||||
|
||||
}
|
||||
|
||||
void MsgCompares::compareFeuerHaltDaten(const AdlerJson::FeuerHaltDaten &feuerHaltDaten)
|
||||
{
|
||||
QCOMPARE(feuerHaltDaten.kategorie, ProjectDataManagement::L22_FireHaltCategory::L22_FireHaltCategory_E);
|
||||
QCOMPARE(feuerHaltDaten.feuerkampfReferenz, QStringLiteral("feuerHaltDaten"));
|
||||
QCOMPARE(feuerHaltDaten.zpNummer, 5);
|
||||
QCOMPARE(feuerHaltDaten.koordinate.latitude, 53.37791);
|
||||
QCOMPARE(feuerHaltDaten.koordinate.longitude, 8.759);
|
||||
QCOMPARE(feuerHaltDaten.radius, 50);
|
||||
}
|
||||
|
||||
void MsgCompares::compareFeuerstellungsdatenKoordinaten(const QVector<AdlerJson::KoordinateMitHoehe> &koordinaten)
|
||||
{
|
||||
QCOMPARE(koordinaten[0].hoehe, 22);
|
||||
QCOMPARE(koordinaten[0].koordinate.latitude, 53.37792);
|
||||
QCOMPARE(koordinaten[0].koordinate.longitude, 8.760);
|
||||
QCOMPARE(koordinaten[1].hoehe, 23);
|
||||
QCOMPARE(koordinaten[1].koordinate.latitude, 53.37793);
|
||||
QCOMPARE(koordinaten[1].koordinate.longitude, 8.761);
|
||||
}
|
||||
|
||||
void MsgCompares::compareGeschosse(const QVector<AdlerJson::Geschoss> &geschosse)
|
||||
{
|
||||
QCOMPARE(geschosse[0].geschosssorte, QStringLiteral("Mine DM72"));
|
||||
QCOMPARE(geschosse[0].zuender, QStringLiteral("Doppel DM183"));
|
||||
QCOMPARE(geschosse[0].ladung, QStringLiteral("M DM72"));
|
||||
QCOMPARE(geschosse[0].anzahl, 6);
|
||||
|
||||
QCOMPARE(geschosse[1].geschosssorte, QStringLiteral("Leucht DM116"));
|
||||
QCOMPARE(geschosse[1].ladung, QStringLiteral("B L8A1"));
|
||||
QCOMPARE(geschosse[1].zuender, QStringLiteral("Aufschlag BB DM371"));
|
||||
QCOMPARE(geschosse[1].anzahl, 7);
|
||||
}
|
||||
|
||||
void MsgCompares::compareFeuerstellungsdaten(const AdlerJson::Feuerstellungsdaten &feuerstellungsdaten)
|
||||
{
|
||||
QCOMPARE(feuerstellungsdaten.typ, ProjectDataManagement::L26_EffectingSystemType::RRohr);
|
||||
QCOMPARE(feuerstellungsdaten.status, ProjectDataManagement::L28_Status::Einsatzbereit);
|
||||
QCOMPARE(feuerstellungsdaten.feuereinheit.verein, QStringLiteral("verein ExFeuerstellungFS"));
|
||||
QCOMPARE(feuerstellungsdaten.feuereinheit.r, 5);
|
||||
QCOMPARE(feuerstellungsdaten.feuereinheit.oi, ProjectDataManagement::L19_Oi::L19_Oi_L19_Oi_F3);
|
||||
QCOMPARE(feuerstellungsdaten.mittelpunkt.koordinate.latitude, 53.37791);
|
||||
QCOMPARE(feuerstellungsdaten.mittelpunkt.koordinate.longitude, 8.759);
|
||||
QCOMPARE(feuerstellungsdaten.mittelpunkt.hoehe, 20);
|
||||
MsgCompares::compareFeuerstellungsdatenKoordinaten(feuerstellungsdaten.koordinaten);
|
||||
MsgCompares::compareGeschosse(feuerstellungsdaten.geschosse);
|
||||
|
||||
}
|
||||
|
||||
void MsgCompares::compareWaffensystemdaten(const AdlerJson::Waffensystemdaten &waffensystemdaten)
|
||||
{
|
||||
QCOMPARE(waffensystemdaten.typ, ProjectDataManagement::L26_EffectingSystemType::RRohr);
|
||||
QCOMPARE(waffensystemdaten.kenner, ProjectDataManagement::L27_EffectorId::B1);
|
||||
QCOMPARE(waffensystemdaten.status, ProjectDataManagement::L28_Status::NichtEinsatzbereit);
|
||||
QCOMPARE(waffensystemdaten.einheit.verein, QStringLiteral("AB7X"));
|
||||
QCOMPARE(waffensystemdaten.einheit.r, 6);
|
||||
QCOMPARE(waffensystemdaten.einheit.oi, ProjectDataManagement::L19_Oi::L19_Oi_L19_Oi_F6);
|
||||
MsgCompares::compareGeschosse(waffensystemdaten.geschosse);
|
||||
QCOMPARE(waffensystemdaten.koordinate.koordinate.latitude, 53.088354);
|
||||
QCOMPARE(waffensystemdaten.koordinate.koordinate.longitude, 8.853092);
|
||||
QCOMPARE(waffensystemdaten.koordinate.hoehe, 20);
|
||||
|
||||
QCOMPARE(waffensystemdaten.wirkungsbereich.grundrichtung, 1);
|
||||
QCOMPARE(waffensystemdaten.wirkungsbereich.links, 2);
|
||||
QCOMPARE(waffensystemdaten.wirkungsbereich.rechts, 3);
|
||||
}
|
||||
|
||||
void MsgCompares::compareLadeplatzdaten(const AdlerJson::Ladeplatzdaten &ladeplatzdaten)
|
||||
{
|
||||
QCOMPARE(ladeplatzdaten.einheit.oi , ProjectDataManagement::L19_Oi::L19_Oi_L19_Oi_F3);
|
||||
QCOMPARE(ladeplatzdaten.einheit.r, 5);
|
||||
QCOMPARE(ladeplatzdaten.einheit.verein, QStringLiteral("verein StellungsmeldungLP"));
|
||||
QCOMPARE(ladeplatzdaten.koordinate.koordinate.latitude, 53.37791);
|
||||
QCOMPARE(ladeplatzdaten.koordinate.koordinate.longitude, 8.759);
|
||||
QCOMPARE(ladeplatzdaten.koordinate.hoehe, 20);
|
||||
MsgCompares::compareGeschosse(ladeplatzdaten.geschosse);
|
||||
}
|
||||
|
||||
void MsgCompares::compareStellungswechseldaten(const AdlerJson::Stellungswechseldaten &stellungswechseldaten)
|
||||
{
|
||||
QCOMPARE(stellungswechseldaten.oi, ProjectDataManagement::L19_Oi::L19_Oi_L19_Oi_F3);
|
||||
QCOMPARE(stellungswechseldaten.r, 5);
|
||||
QCOMPARE(stellungswechseldaten.verein, QStringLiteral("verein ExStellungswechsel"));
|
||||
}
|
||||
|
||||
void MsgCompares::compareZeitAb(const AdlerJson::Zeitangabe_DTG &zeit)
|
||||
{
|
||||
QCOMPARE(zeit.stunden, 5);
|
||||
QCOMPARE(zeit.minuten, 35);
|
||||
QCOMPARE(zeit.sekunden, 55);
|
||||
QCOMPARE(zeit.tag, 12);
|
||||
QCOMPARE(zeit.monat, 11);
|
||||
QCOMPARE(zeit.jahr, 2025);
|
||||
QCOMPARE(zeit.ZVz, QStringLiteral("ZVz"));
|
||||
QCOMPARE(zeit.ZDS, QStringLiteral("ZDS"));
|
||||
QCOMPARE(zeit.ZDM, QStringLiteral("ZDM"));
|
||||
}
|
||||
|
||||
void MsgCompares::compareZeitBis(const AdlerJson::Zeitangabe_DTG &zeit)
|
||||
{
|
||||
QCOMPARE(zeit.stunden, 5);
|
||||
QCOMPARE(zeit.minuten, 35);
|
||||
QCOMPARE(zeit.sekunden, 55);
|
||||
QCOMPARE(zeit.tag, 13);
|
||||
QCOMPARE(zeit.monat, 11);
|
||||
QCOMPARE(zeit.jahr, 2025);
|
||||
QCOMPARE(zeit.ZVz, QStringLiteral("ZVz"));
|
||||
QCOMPARE(zeit.ZDS, QStringLiteral("ZDS"));
|
||||
QCOMPARE(zeit.ZDM, QStringLiteral("ZDM"));
|
||||
}
|
||||
|
||||
void MsgCompares::compareKoordinaten(const QVector<AdlerJson::Koordinate> &koordinaten)
|
||||
{
|
||||
QCOMPARE ( koordinaten[0].latitude, 53.37792 );
|
||||
QCOMPARE ( koordinaten[0].longitude, 8.760 );
|
||||
QCOMPARE ( koordinaten[1].latitude, 53.37793 );
|
||||
QCOMPARE ( koordinaten[1].longitude, 8.761 );
|
||||
}
|
||||
|
||||
void MsgCompares::compareKoordinierungsdaten(const AdlerJson::Koordinierungsdaten &koordinierungsdaten)
|
||||
{
|
||||
QCOMPARE(koordinierungsdaten.art, ProjectDataManagement::L25_KindGuidingLine::NFA);
|
||||
QCOMPARE(koordinierungsdaten.name, QStringLiteral("Name ExHqKoordinierungsmassnahme"));
|
||||
QCOMPARE(koordinierungsdaten.truppenteil, QStringLiteral("Truppenteil ExHqKoordinierungsmassnahme"));
|
||||
compareZeitAb(koordinierungsdaten.ab);
|
||||
compareZeitBis(koordinierungsdaten.bis);
|
||||
compareKoordinaten(koordinierungsdaten.koordinaten);
|
||||
QCOMPARE(koordinierungsdaten.mittelpunkt.latitude, 53.37794);
|
||||
QCOMPARE(koordinierungsdaten.mittelpunkt.longitude, 8.762);
|
||||
QCOMPARE(koordinierungsdaten.radius, 66);
|
||||
QCOMPARE(koordinierungsdaten.maxGipfel, 123);
|
||||
}
|
||||
|
||||
void MsgCompares::compareFuehrungsdaten(const AdlerJson::Fuehrungsdaten &fuehrungsdaten)
|
||||
{
|
||||
QCOMPARE(fuehrungsdaten.art, AdlerJson::Art_L24::AO);
|
||||
QCOMPARE(fuehrungsdaten.name, QStringLiteral("Name EX-HQ(G) Führungslinien und Grenzen"));
|
||||
compareZeitAb(fuehrungsdaten.ab);
|
||||
compareZeitBis(fuehrungsdaten.bis);
|
||||
compareKoordinaten(fuehrungsdaten.koordinaten);
|
||||
QCOMPARE(fuehrungsdaten.linkerNachbar, QStringLiteral("linker Nachbar"));
|
||||
QCOMPARE(fuehrungsdaten.rechterNachbar, QStringLiteral("rechter Nachbar"));
|
||||
}
|
||||
|
||||
void MsgCompares::compareTechnischeDaten(const AdlerJson::TechnischeDaten &technischeDaten)
|
||||
{
|
||||
QCOMPARE(technischeDaten.status, AdlerJson::Status_L32::INV);
|
||||
QCOMPARE(technischeDaten.beschreibung, QStringLiteral("Beschreibung technischer Status"));
|
||||
}
|
||||
|
||||
void MsgCompares::compareFreitextDaten(const AdlerJson::FreitextDaten &freitextDaten)
|
||||
{
|
||||
QCOMPARE(freitextDaten.text, QStringLiteral("Freier Text"));
|
||||
}
|
||||
|
||||
void MsgCompares::compareManuelleQuittungDaten(const AdlerJson::ManuelleQuittungDaten &manuelleQuittungDaten)
|
||||
{
|
||||
QCOMPARE(manuelleQuittungDaten.feuerkampfreferenz, QStringLiteral("Manuelle Quittung"));
|
||||
}
|
||||
|
||||
void MsgCompares::compareFlugbahnberechnungDaten(const AdlerJson::FlugBerechnungsDaten &flugbahnberechnungDaten)
|
||||
{
|
||||
qDebug() << "compareFlugbahnberechnungDaten 1";
|
||||
QCOMPARE(flugbahnberechnungDaten.geschoss.geschosssorte, QStringLiteral("SMArt DM702"));
|
||||
qDebug() << "compareFlugbahnberechnungDaten 2";
|
||||
QCOMPARE(flugbahnberechnungDaten.geschoss.ladung, QStringLiteral("M DM72"));
|
||||
QCOMPARE(flugbahnberechnungDaten.geschoss.zuender, QStringLiteral("Aufschlag DM241"));
|
||||
QCOMPARE(flugbahnberechnungDaten.geschoss.zuenderFunktion, QStringLiteral("AZoV"));
|
||||
qDebug() << "compareFlugbahnberechnungDaten 3";
|
||||
|
||||
QCOMPARE(flugbahnberechnungDaten.sprenghoehe, 0);
|
||||
qDebug() << "compareFlugbahnberechnungDaten 6";
|
||||
QCOMPARE(flugbahnberechnungDaten.standort.hoehe, 55);
|
||||
qDebug() << "compareFlugbahnberechnungDaten 7";
|
||||
QCOMPARE(flugbahnberechnungDaten.standort.koordinate.latitude, 53.37787);
|
||||
qDebug() << "compareFlugbahnberechnungDaten 8";
|
||||
QCOMPARE(flugbahnberechnungDaten.standort.koordinate.longitude, 8.7573);
|
||||
qDebug() << "compareFlugbahnberechnungDaten 9";
|
||||
QCOMPARE(flugbahnberechnungDaten.waffensystem, ProjectDataManagement::L26_EffectingSystemType::RRohr);
|
||||
qDebug() << "compareFlugbahnberechnungDaten 10";
|
||||
qDebug() << "winkelgruppe=" << AdlerJson::winkelgruppeMap.key(flugbahnberechnungDaten.winkelgruppe);
|
||||
QCOMPARE(flugbahnberechnungDaten.winkelgruppe, AdlerJson::Winkelgruppe::Untere);
|
||||
}
|
||||
|
||||
void MsgCompares::compareFlugbahndaten(const AdlerJson::Flugbahndaten &flugbahndaten)
|
||||
{
|
||||
qDebug() << "compareFlugbahndaten";
|
||||
QCOMPARE(flugbahndaten.fehlercode, AdlerJson::FlugbahnberechnungFehlercode::Ok);
|
||||
qDebug() << "flugbahndaten.zielkoordinate.hoehe = "<< flugbahndaten.zielkoordinate.hoehe;
|
||||
QCOMPARE(flugbahndaten.zielkoordinate.hoehe, 56);
|
||||
QCOMPARE(flugbahndaten.zielkoordinate.koordinate.latitude, 52.482048);
|
||||
QCOMPARE(flugbahndaten.zielkoordinate.koordinate.longitude, 11.583);
|
||||
QCOMPARE(flugbahndaten.waffensystem, ProjectDataManagement::L26_EffectingSystemType::RRohr);
|
||||
QCOMPARE(flugbahndaten.flugzeit, 300);
|
||||
QCOMPARE(flugbahndaten.gipfelhoehe, 200);
|
||||
QCOMPARE(flugbahndaten.schussrichtung, 45);
|
||||
QCOMPARE(flugbahndaten.fallwinkel, 55);
|
||||
|
||||
QCOMPARE(flugbahndaten.flugbahnpunkt[0].zeit, 1);
|
||||
QCOMPARE(flugbahndaten.flugbahnpunkt[0].xRelativ, 100);
|
||||
QCOMPARE(flugbahndaten.flugbahnpunkt[0].yRelativ, 200);
|
||||
QCOMPARE(flugbahndaten.flugbahnpunkt[0].zRelativ, 10);
|
||||
|
||||
QCOMPARE(flugbahndaten.flugbahnpunkt[1].zeit, 2);
|
||||
QCOMPARE(flugbahndaten.flugbahnpunkt[1].xRelativ, 200);
|
||||
QCOMPARE(flugbahndaten.flugbahnpunkt[1].yRelativ, 400);
|
||||
QCOMPARE(flugbahndaten.flugbahnpunkt[1].zRelativ, 20);
|
||||
|
||||
QCOMPARE(flugbahndaten.streuung.laengsstreuung, 2.2);
|
||||
QCOMPARE(flugbahndaten.streuung.seitenstreuung, 3.3);
|
||||
QCOMPARE(flugbahndaten.streuung.laengsstreuungH, 4.4);
|
||||
QCOMPARE(flugbahndaten.streuung.seitenstreuungH, 5.5);
|
||||
QCOMPARE(flugbahndaten.geschoss.geschosssorte, QStringLiteral("Spreng DM121"));
|
||||
QCOMPARE(flugbahndaten.geschoss.ladung, QStringLiteral("M DM72"));
|
||||
QCOMPARE(flugbahndaten.geschoss.ladungsNummer, 5);
|
||||
QCOMPARE(flugbahndaten.geschoss.zuender, QStringLiteral("Aufschlag DM241"));
|
||||
QCOMPARE(flugbahndaten.geschoss.zuenderFunktion, QStringLiteral("AZoV"));
|
||||
QCOMPARE(flugbahndaten.geschoss.zuenderZeit, 1000);
|
||||
}
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
#ifndef MSGCOMPARES_H
|
||||
#define MSGCOMPARES_H
|
||||
|
||||
#include <AdlerJson/telegrams.h>
|
||||
|
||||
class MsgCompares
|
||||
{
|
||||
public:
|
||||
MsgCompares();
|
||||
|
||||
static void compareZieldaten(const AdlerJson::Zieldaten &zieldaten);
|
||||
static void compareZielmeldedaten(const AdlerJson::Zielmeldedaten &zielmeldedaten);
|
||||
static void compareFlugbahnpunkt0(const AdlerJson::Flugbahnpunkt &flugbahnpunkt);
|
||||
static void compareFlugbahnpunkt1(const AdlerJson::Flugbahnpunkt &flugbahnpunkt);
|
||||
static void compareStreuung(const AdlerJson::Streuungsdaten &streuung);
|
||||
static void compareFeuerkommando(const AdlerJson::Feuerkommando &feuerkommando);
|
||||
static void compareWirkmittelFeuerkommandoRakete(const QVector<AdlerJson::WirkmittelFeuerkommandoRakete> &wfrs);
|
||||
static void compareFeuerkommandoGeschosse(const AdlerJson::FeuerkommandoGeschosse &feuerkommandoGeschosse);
|
||||
static void compareFeuerHaltDaten(const AdlerJson::FeuerHaltDaten &feuerHaltDaten);
|
||||
static void compareFeuerstellungsdatenKoordinaten(const QVector<AdlerJson::KoordinateMitHoehe> &koordinaten);
|
||||
static void compareGeschosse(const QVector<AdlerJson::Geschoss> &geschosse);
|
||||
static void compareFeuerstellungsdaten(const AdlerJson::Feuerstellungsdaten &feuerstellungsdaten);
|
||||
static void compareWaffensystemdaten(const AdlerJson::Waffensystemdaten &waffensystemdaten);
|
||||
static void compareLadeplatzdaten(const AdlerJson::Ladeplatzdaten &ladeplatzdaten);
|
||||
static void compareStellungswechseldaten(const AdlerJson::Stellungswechseldaten &stellungswechseldaten);
|
||||
static void compareZeitAb(const AdlerJson::Zeitangabe_DTG &zeit);
|
||||
static void compareZeitBis(const AdlerJson::Zeitangabe_DTG &zeit);
|
||||
static void compareKoordinaten(const QVector<AdlerJson::Koordinate> &koordinaten);
|
||||
static void compareKoordinierungsdaten(const AdlerJson::Koordinierungsdaten &koordinierungsdaten);
|
||||
static void compareFuehrungsdaten(const AdlerJson::Fuehrungsdaten &fuehrungsdaten);
|
||||
static void compareTechnischeDaten(const AdlerJson::TechnischeDaten &technischeDaten);
|
||||
static void compareFreitextDaten(const AdlerJson::FreitextDaten &freitextDaten);
|
||||
static void compareManuelleQuittungDaten(const AdlerJson::ManuelleQuittungDaten &manuelleQuittungDaten);
|
||||
static void compareFlugbahnberechnungDaten(const AdlerJson::FlugBerechnungsDaten &flugbahnberechnungDaten);
|
||||
static void compareFlugbahndaten(const AdlerJson::Flugbahndaten &flugbahndaten);
|
||||
};
|
||||
|
||||
#endif
|
||||
+63
@@ -0,0 +1,63 @@
|
||||
#include <QtCore/QDebug>
|
||||
#include <nglapplication/nglcoreapplication.h>
|
||||
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <QtTest/QTest>
|
||||
#include <AdlerJson/telegrams.h>
|
||||
|
||||
#include "ex_anmeldung.h"
|
||||
#include "ex_abmeldung.h"
|
||||
#include "ex_anmeldebestaetigung.h"
|
||||
#include "ex_status.h"
|
||||
#include "ex_fq_wirkfeldplanung.h"
|
||||
#include "ex_fq_feuerbereit.h"
|
||||
#include "ex_fq_feuern.h"
|
||||
#include "ex_fq_abgefeuert.h"
|
||||
#include "ex_fq_vollzugsmeldung.h"
|
||||
#include "ex_erkundungsanfrage.h"
|
||||
#include "ex_erkundungsergebnisse.h"
|
||||
#include "ex_fq_feuerkampf.h"
|
||||
#include "ex_fh_feuerhalt.h"
|
||||
#include "ex_sq_stellungsmeldung_fs.h"
|
||||
#include "ex_sq_stellungsmeldung_ws.h"
|
||||
#include "ex_sq_stellungsmeldung_lp.h"
|
||||
#include "ex_sq_stellungswechsel.h"
|
||||
#include "ex_hq_koordinierungsmassnahmen.h"
|
||||
#include "ex_hq_fuehrungslinien.h"
|
||||
#include "ex_tq_technische_quittung.h"
|
||||
#include "ex_aq_freitext.h"
|
||||
#include "ex_mq_manuelle_quittung.h"
|
||||
#include "ex_flugbahnberechnung.h"
|
||||
#include "ex_flugbahndaten.h"
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int status = 0;
|
||||
status |= QTest::qExec(new TestExAnmeldung, argc, argv);
|
||||
status |= QTest::qExec(new TestExAbmeldung, argc, argv);
|
||||
status |= QTest::qExec(new TestExAnmeldebestaetigung, argc, argv);
|
||||
status |= QTest::qExec(new TestExStatus, argc, argv);
|
||||
status |= QTest::qExec(new TestExFqWirkfeldplanung, argc, argv);
|
||||
status |= QTest::qExec(new TestExMqManuelleQuittung, argc, argv);
|
||||
status |= QTest::qExec(new TestExFqFeuerbereit, argc, argv);
|
||||
status |= QTest::qExec(new TestExFqFeuern, argc, argv);
|
||||
status |= QTest::qExec(new TestExFqAbgefeuert, argc, argv);
|
||||
status |= QTest::qExec(new TestExFqVollzugsmeldung, argc, argv);
|
||||
|
||||
status |= QTest::qExec(new TestExFqFeuerkampf, argc, argv);
|
||||
status |= QTest::qExec(new TestExFeuerhalt, argc, argv);
|
||||
status |= QTest::qExec(new TestExStellungsmeldungFS, argc, argv);
|
||||
status |= QTest::qExec(new TestExStellungsmeldungWS, argc, argv);
|
||||
status |= QTest::qExec(new TestExStellungsmeldungLP, argc, argv);
|
||||
status |= QTest::qExec(new TestExErkundungsergebnisse, argc, argv);
|
||||
status |= QTest::qExec(new TestExStellungswechsel, argc, argv);
|
||||
status |= QTest::qExec(new TestExHqKoordinierungsmassnahmen, argc, argv);
|
||||
status |= QTest::qExec(new TestExHqFuehrungslinien, argc, argv);
|
||||
status |= QTest::qExec(new TestExTqTechnischeQuittung, argc, argv);
|
||||
status |= QTest::qExec(new TestExAqFreitextmeldung, argc, argv);
|
||||
status |= QTest::qExec(new TestExFlugbahnberechnung, argc, argv);
|
||||
status |= QTest::qExec(new TestExFlugbahndaten, argc, argv);
|
||||
return status;
|
||||
}
|
||||
|
||||
|
||||
+129
@@ -0,0 +1,129 @@
|
||||
<!DOCTYPE Samples>
|
||||
<Samples>
|
||||
<Sample>
|
||||
<TopicName>LTS_ParticipantPosition</TopicName>
|
||||
<TypeName>ParticipantManagement::ParticipantPosition</TypeName>
|
||||
<Pause>1000</Pause>
|
||||
<DdsData count="10" type="ParticipantManagement::ParticipantPosition" topic="LTS_ParticipantPosition">
|
||||
<participantId>6</participantId>
|
||||
<participantTypeId>55</participantTypeId>
|
||||
<sampleTime>1712144768313</sampleTime>
|
||||
<pos count="3" type="Core::GeoPosition">
|
||||
<lon>0.15822</lon>
|
||||
<lat>0.92582</lat>
|
||||
<z>0</z>
|
||||
</pos>
|
||||
<partyId>2</partyId>
|
||||
<buildingId>0</buildingId>
|
||||
<roomId>0</roomId>
|
||||
<reportingSource>4</reportingSource>
|
||||
<mountedOn>0</mountedOn>
|
||||
<mountedParticipants count="1">
|
||||
<mountedParticipants.1>19</mountedParticipants.1>
|
||||
</mountedParticipants>
|
||||
</DdsData>
|
||||
</Sample>
|
||||
<Sample>
|
||||
<TopicName>LTS_ParticipantPosition</TopicName>
|
||||
<TypeName>ParticipantManagement::ParticipantPosition</TypeName>
|
||||
<Pause>1000</Pause>
|
||||
<DdsData count="10" type="ParticipantManagement::ParticipantPosition" topic="LTS_ParticipantPosition">
|
||||
<participantId>7</participantId>
|
||||
<participantTypeId>55</participantTypeId>
|
||||
<sampleTime>1712144770797</sampleTime>
|
||||
<pos count="3" type="Core::GeoPosition">
|
||||
<lon>0.15516</lon>
|
||||
<lat>0.92526</lat>
|
||||
<z>0</z>
|
||||
</pos>
|
||||
<partyId>2</partyId>
|
||||
<buildingId>0</buildingId>
|
||||
<roomId>0</roomId>
|
||||
<reportingSource>4</reportingSource>
|
||||
<mountedOn>0</mountedOn>
|
||||
<mountedParticipants count="1">
|
||||
<mountedParticipants.1>19</mountedParticipants.1>
|
||||
</mountedParticipants>
|
||||
</DdsData>
|
||||
</Sample>
|
||||
<Sample>
|
||||
<TopicName>LTS_ParticipantPosition</TopicName>
|
||||
<TypeName>ParticipantManagement::ParticipantPosition</TypeName>
|
||||
<Pause>1000</Pause>
|
||||
<DdsData count="10" type="ParticipantManagement::ParticipantPosition" topic="LTS_ParticipantPosition">
|
||||
<participantId>19</participantId>
|
||||
<participantTypeId>78</participantTypeId>
|
||||
<sampleTime>1712144810829</sampleTime>
|
||||
<pos count="3" type="Core::GeoPosition">
|
||||
<lon>0.155133</lon>
|
||||
<lat>0.925933</lat>
|
||||
<z>0</z>
|
||||
</pos>
|
||||
<partyId>2</partyId>
|
||||
<buildingId>0</buildingId>
|
||||
<roomId>0</roomId>
|
||||
<reportingSource>4</reportingSource>
|
||||
<mountedOn>0</mountedOn>
|
||||
</DdsData>
|
||||
</Sample>
|
||||
<Sample>
|
||||
<TopicName>LTS_ParticipantPosition</TopicName>
|
||||
<TypeName>ParticipantManagement::ParticipantPosition</TypeName>
|
||||
<Pause>1000</Pause>
|
||||
<DdsData count="10" type="ParticipantManagement::ParticipantPosition" topic="LTS_ParticipantPosition">
|
||||
<participantId>19</participantId>
|
||||
<participantTypeId>78</participantTypeId>
|
||||
<sampleTime>1712144810829</sampleTime>
|
||||
<pos count="3" type="Core::GeoPosition">
|
||||
<lon>0.155122</lon>
|
||||
<lat>0.925922</lat>
|
||||
<z>0</z>
|
||||
</pos>
|
||||
<partyId>2</partyId>
|
||||
<buildingId>0</buildingId>
|
||||
<roomId>0</roomId>
|
||||
<reportingSource>4</reportingSource>
|
||||
<mountedOn>0</mountedOn>
|
||||
</DdsData>
|
||||
</Sample>
|
||||
<Sample>
|
||||
<TopicName>LTS_ParticipantPosition</TopicName>
|
||||
<TypeName>ParticipantManagement::ParticipantPosition</TypeName>
|
||||
<Pause>1000</Pause>
|
||||
<DdsData count="10" type="ParticipantManagement::ParticipantPosition" topic="LTS_ParticipantPosition">
|
||||
<participantId>6</participantId>
|
||||
<participantTypeId>55</participantTypeId>
|
||||
<sampleTime>1712144768313</sampleTime>
|
||||
<pos count="3" type="Core::GeoPosition">
|
||||
<lon>0.15522</lon>
|
||||
<lat>0.92522</lat>
|
||||
<z>0</z>
|
||||
</pos>
|
||||
<partyId>2</partyId>
|
||||
<buildingId>0</buildingId>
|
||||
<roomId>0</roomId>
|
||||
<reportingSource>4</reportingSource>
|
||||
<mountedOn>0</mountedOn>
|
||||
</DdsData>
|
||||
</Sample>
|
||||
<Sample>
|
||||
<TopicName>LTS_ParticipantPosition</TopicName>
|
||||
<TypeName>ParticipantManagement::ParticipantPosition</TypeName>
|
||||
<Pause>1000</Pause>
|
||||
<DdsData count="10" type="ParticipantManagement::ParticipantPosition" topic="LTS_ParticipantPosition">
|
||||
<participantId>7</participantId>
|
||||
<participantTypeId>55</participantTypeId>
|
||||
<sampleTime>1712144770797</sampleTime>
|
||||
<pos count="3" type="Core::GeoPosition">
|
||||
<lon>0.155122</lon>
|
||||
<lat>0.92522</lat>
|
||||
<z>0</z>
|
||||
</pos>
|
||||
<partyId>2</partyId>
|
||||
<buildingId>0</buildingId>
|
||||
<roomId>0</roomId>
|
||||
<reportingSource>4</reportingSource>
|
||||
<mountedOn>0</mountedOn>
|
||||
</DdsData>
|
||||
</Sample>
|
||||
</Samples>
|
||||
+66
@@ -0,0 +1,66 @@
|
||||
<!DOCTYPE Samples>
|
||||
<Samples>
|
||||
<Sample>
|
||||
<TopicName>LTS_ParticipantPosition</TopicName>
|
||||
<TypeName>ParticipantManagement::ParticipantPosition</TypeName>
|
||||
<Pause>1000</Pause>
|
||||
<DdsData count="10" topic="LTS_ParticipantPosition" type="ParticipantManagement::ParticipantPosition">
|
||||
<participantId>5</participantId>
|
||||
<participantTypeId>55</participantTypeId>
|
||||
<sampleTime>1712143792397</sampleTime>
|
||||
<pos count="3" type="Core::GeoPosition">
|
||||
<lon>0.154882</lon>
|
||||
<lat>0.925997</lat>
|
||||
<z>0</z>
|
||||
</pos>
|
||||
<partyId>2</partyId>
|
||||
<buildingId>0</buildingId>
|
||||
<roomId>0</roomId>
|
||||
<reportingSource>4</reportingSource>
|
||||
<mountedOn>0</mountedOn>
|
||||
<mountedParticipants count="1">
|
||||
<mountedParticipants.1>19</mountedParticipants.1>
|
||||
</mountedParticipants>
|
||||
</DdsData>
|
||||
</Sample>
|
||||
<Sample>
|
||||
<TopicName>LTS_ParticipantPosition</TopicName>
|
||||
<TypeName>ParticipantManagement::ParticipantPosition</TypeName>
|
||||
<Pause>1000</Pause>
|
||||
<DdsData count="10" topic="LTS_ParticipantPosition" type="ParticipantManagement::ParticipantPosition">
|
||||
<participantId>19</participantId>
|
||||
<participantTypeId>78</participantTypeId>
|
||||
<sampleTime>1712143760647</sampleTime>
|
||||
<pos count="3" type="Core::GeoPosition">
|
||||
<lon>0.154922</lon>
|
||||
<lat>0.925922</lat>
|
||||
<z>0</z>
|
||||
</pos>
|
||||
<partyId>2</partyId>
|
||||
<buildingId>0</buildingId>
|
||||
<roomId>0</roomId>
|
||||
<reportingSource>4</reportingSource>
|
||||
<mountedOn>0</mountedOn>
|
||||
</DdsData>
|
||||
</Sample>
|
||||
<Sample>
|
||||
<TopicName>LTS_ParticipantPosition</TopicName>
|
||||
<TypeName>ParticipantManagement::ParticipantPosition</TypeName>
|
||||
<Pause>1000</Pause>
|
||||
<DdsData count="10" topic="LTS_ParticipantPosition" type="ParticipantManagement::ParticipantPosition">
|
||||
<participantId>19</participantId>
|
||||
<participantTypeId>78</participantTypeId>
|
||||
<sampleTime>1712143760647</sampleTime>
|
||||
<pos count="3" type="Core::GeoPosition">
|
||||
<lon>0.154933</lon>
|
||||
<lat>0.925933</lat>
|
||||
<z>0</z>
|
||||
</pos>
|
||||
<partyId>2</partyId>
|
||||
<buildingId>0</buildingId>
|
||||
<roomId>0</roomId>
|
||||
<reportingSource>4</reportingSource>
|
||||
<mountedOn>0</mountedOn>
|
||||
</DdsData>
|
||||
</Sample>
|
||||
</Samples>
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <QtCore/qglobal.h>
|
||||
|
||||
#ifndef SAATELEGRAMS_EXPORT
|
||||
# ifdef BUILD_STATIC_LIBRARIES
|
||||
# define SAATELEGRAMS_EXPORT
|
||||
# else
|
||||
# if defined(MAKE_SAATELEGRAMS_LIB)
|
||||
# define SAATELEGRAMS_EXPORT Q_DECL_EXPORT
|
||||
# else
|
||||
# define SAATELEGRAMS_EXPORT Q_DECL_IMPORT
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
+1193
File diff suppressed because it is too large.
Load diff
+106
@@ -0,0 +1,106 @@
|
||||
/**
|
||||
* @RDE_HEADER@
|
||||
* AesHandler for AdlerJson Plugin
|
||||
* $Id: aes_handler.h 62304 2024-03-21 08:17:45Z ewert_j $
|
||||
* $HeadURL: svn://slssvn/TDS/branches/product/features/ufom/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/aes_handler.h $
|
||||
* $Author: ewert_j $
|
||||
* Created by Julius Ewert, ESIM, 2024-03-20
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "DDS/Core/function_reply_object.h"
|
||||
#include "logger.h"
|
||||
#include "main_dispatcher.h"
|
||||
#include "telegrams.h"
|
||||
#include <QDateTime>
|
||||
#include <QHash>
|
||||
#include <QObject>
|
||||
#include <QUrl>
|
||||
#include <AreaEffectSimulation/aes_dtc.h>
|
||||
#include <AreaEffectSimulation/aes_ftc.h>
|
||||
#include <LtsUtilsCore/data_modification_enum.h>
|
||||
#include <LtsUtilsGuiDds/request_helper.h>
|
||||
#include <ParticipantManagement/ppm.hpp>
|
||||
#include <ParticipantManagement/ppm_dtc.h>
|
||||
|
||||
namespace AdlerJson
|
||||
{
|
||||
|
||||
class MainDispatcher;
|
||||
class AesHandler
|
||||
: public QObject
|
||||
, protected AreaEffectSimulation::Interface::Ftc::AirSupportImpactModifyReplyHandler
|
||||
, protected AreaEffectSimulation::Interface::Ftc::OffRouteMineModifyReplyHandler
|
||||
, protected AreaEffectSimulation::Interface::Ftc::EffectClusterModifyReplyHandler
|
||||
, protected AreaEffectSimulation::Interface::Ftc::TrajectoryAdlerModifyReplyHandler
|
||||
, protected NotificationManagement::Interface::Ftc::CreateNotificationReplyHandler
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit AesHandler(std::shared_ptr<TrainingAreaBase::Interface::Fts> ftsTab, QObject *parent = nullptr);
|
||||
|
||||
bool init(MainDispatcher *mainDispatcher);
|
||||
bool sendAesModifyRequest(const QJsonObject &obj);
|
||||
bool sendExplosionArea(const QJsonObject &data);
|
||||
// DDS Overrides
|
||||
void onAirSupportImpactModifyReply(const Core::FunctionReplyObject &reply) override;
|
||||
void onOffRouteMineModifyReply(const Core::FunctionReplyObject &replyObject) override;
|
||||
void onEffectClusterModifyReply(const Core::FunctionReplyObject &replyObject) override;
|
||||
void onCreateNotificationReply(const Core::FunctionReplyObject &replyObject) override;
|
||||
|
||||
// Internal
|
||||
void onExplosionSingleChanged(const AreaEffectSimulation::ExplosionSingle &data, DataModification modType);
|
||||
void onEffectClusterChanged(const AreaEffectSimulation::EffectCluster &data, DataModification modType);
|
||||
|
||||
void handleCreateSingleExplosion(const TrainingAreaBase::TetraIcd::CreateSingleExplosion &data);
|
||||
void handleEXFire(const Feuerkampfdaten &data, int wsId);
|
||||
void handleEXDontFire(const Feuerkampfdaten &data, int wsId);
|
||||
// Reald Data
|
||||
void sendTrajectoryAdlerModifyRequest(const WirkfeldplanungData &data, int participantId, int wirkmittelIndex, int aesId);
|
||||
void handleEffectCluster(const WirkfeldplanungData &data, int wsId);
|
||||
|
||||
//
|
||||
void removeAllPendingEffectCluster(int partyId);
|
||||
std::shared_ptr<AreaEffectSimulation::Interface::Dtc> getDtc() { return m_dtcAes; };
|
||||
std::shared_ptr<AreaEffectSimulation::Interface::Ftc> getFtc() { return m_ftcAes; };
|
||||
|
||||
private:
|
||||
AreaEffectSimulation::Area createMinimumRect(int zone, const QVector<QPointF> &points);
|
||||
|
||||
signals:
|
||||
void explosionSingleChanged(const QJsonObject &jsonObj);
|
||||
|
||||
private:
|
||||
QList<qint32> findAllPendingEffectCluster(int partyId);
|
||||
void handleAmmoCount(const Feuerkampfdaten &data, int saaPartyId, bool sendExVollzug = false);
|
||||
|
||||
private:
|
||||
MainDispatcher *m_mainDispatcher;
|
||||
std::shared_ptr<AreaEffectSimulation::Interface::Ftc> m_ftcAes;
|
||||
std::shared_ptr<AreaEffectSimulation::Interface::Dtc> m_dtcAes;
|
||||
std::shared_ptr<ParticipantManagement::Interface::Dtc> m_dtcPpm;
|
||||
std::shared_ptr<TrainingAreaBase::DdsHandler> m_ddsHandler;
|
||||
|
||||
void onTrajectoryAdlerModifyReply(const Core::FunctionReplyObject &reply) override;
|
||||
|
||||
LtsUtils::RequestHelper *m_requestHelper;
|
||||
|
||||
QHash<int, AreaEffectSimulation::AesEffectState> m_singleExplosions;
|
||||
|
||||
WirkfeldplanungData m_wirkfeldPlanungsData;
|
||||
QHash<int, QString> m_aesIdToFeuerkampfReferenz; // key = aesId, value = feuerkampfReferenz
|
||||
|
||||
QHash<QString, int> m_feuerkampReferenzAmmoCounter; // key = feuerkampfReferenz, value = AmmoCounter
|
||||
QHash<QString, std::vector<ProjectDataManagement::L27_EffectorId>> m_feuerkampfReferenzWirkmittel; // key = feuerkampfReferenz, value = Kenner
|
||||
QHash<QString, bool> m_feuerkampfReferenzUsedFeuerHalt; // key = feuerkampfReferenz, value = boolean -> if Feuerhalt was activ
|
||||
|
||||
int m_participantId;
|
||||
int m_wirkmittelIndex;
|
||||
int m_aesId;
|
||||
QHash<int, int> aesIdWsId; // key = aesId value = wsId
|
||||
|
||||
LOGGER_T m_logger;
|
||||
};
|
||||
|
||||
} // namespace AdlerJson
|
||||
+57
@@ -0,0 +1,57 @@
|
||||
|
||||
|
||||
|
||||
#include "asm_handler.h"
|
||||
|
||||
#include <QtCore/QJsonArray>
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <LtsUtils/LtsUtilsCore/dds_vector.h>
|
||||
|
||||
|
||||
namespace AdlerJson
|
||||
{
|
||||
AsmHandler::AsmHandler(QObject *parent)
|
||||
: QObject(parent)
|
||||
, m_dtcAsm(nullptr)
|
||||
, m_ftcAsm(nullptr)
|
||||
, m_exerciseId(-1)
|
||||
{}
|
||||
|
||||
bool AsmHandler::init(MainDispatcher* mainDispatcher)
|
||||
{
|
||||
m_ftcAsm = AssetManagement::Interface::Ftc::create(mainDispatcher->ddsHandler()->ddsConnector());
|
||||
m_ftcAsm->enableAssetModify();
|
||||
|
||||
m_dtcAsm = AssetManagement::Interface::Dtc::create(mainDispatcher->ddsHandler()->ddsConnector());
|
||||
if (!m_dtcAsm->enableAsset())
|
||||
{
|
||||
ERROR_LOG(m_logger)<<" Can't read data from ASM";
|
||||
return false;
|
||||
}
|
||||
m_exerciseId = mainDispatcher->exerciseId();
|
||||
m_dtcAsm->waitForHistoricalDataAsset(1000);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
void AsmHandler::modifyAssetAdlerProperties(int assetId, bool isSaaConnected)
|
||||
{
|
||||
WARNING_LOG(m_logger)<<">> modify asset properties: set exerciseId: "<<m_exerciseId<<" assetName: "<<assetId;
|
||||
|
||||
AssetManagement::Asset asset = m_dtcAsm->asset(assetId);
|
||||
if (asset.id() <= 0)
|
||||
return;
|
||||
|
||||
QJsonObject assetPropsObj = QJsonDocument::fromJson(asset.properties().c_str()).object();
|
||||
assetPropsObj[QStringLiteral("exerciseId")] = isSaaConnected ? m_exerciseId : -1;
|
||||
asset.properties(QJsonDocument(assetPropsObj).toJson().toStdString());
|
||||
m_ftcAsm->assetModifyRequest(asset);
|
||||
}
|
||||
|
||||
void AsmHandler::onAssetModifyReply(const Core::FunctionReplyObject &reply)
|
||||
{
|
||||
DEBUG_LOG(m_logger) << "Got Function Reply error ? "<<reply.error();
|
||||
}
|
||||
|
||||
}
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
|
||||
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "logger.h"
|
||||
#include <AssetManagement/asm_dtc.h>
|
||||
#include <AssetManagement/asm_ftc.h>
|
||||
#include "main_dispatcher.h"
|
||||
#include <QtCore/QObject>
|
||||
|
||||
namespace AssetManagement
|
||||
{
|
||||
namespace Interface
|
||||
{
|
||||
class Dtc;
|
||||
class Ftc;
|
||||
}
|
||||
}
|
||||
|
||||
namespace AdlerJson
|
||||
{
|
||||
|
||||
class MainDispatcher;
|
||||
class AsmHandler : public QObject
|
||||
, protected AssetManagement::Interface::Ftc::AssetModifyReplyHandler
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit AsmHandler(QObject *parent = nullptr);
|
||||
bool init(MainDispatcher* mainDispatcher);
|
||||
|
||||
std::shared_ptr<AssetManagement::Interface::Dtc> getDtc() { return m_dtcAsm; }
|
||||
std::shared_ptr<AssetManagement::Interface::Ftc> getFtc() { return m_ftcAsm; }
|
||||
void modifyAssetAdlerProperties(int assetId, bool isSaaConnected = false);
|
||||
private:
|
||||
void onAssetModifyReply(const Core::FunctionReplyObject &reply) override;
|
||||
|
||||
private:
|
||||
NGL::INGLLogger &m_logger;
|
||||
std::shared_ptr<AssetManagement::Interface::Dtc> m_dtcAsm;
|
||||
std::shared_ptr<AssetManagement::Interface::Ftc> m_ftcAsm;
|
||||
int m_exerciseId;
|
||||
};
|
||||
|
||||
}
|
||||
+272
@@ -0,0 +1,272 @@
|
||||
|
||||
|
||||
|
||||
#include "flm_handler.h"
|
||||
#include <utility>
|
||||
#include "FileManagement/flm_operator_rights.h"
|
||||
#include "main_dispatcher.h"
|
||||
#include "nglsettings/nglsettings_settings.h"
|
||||
#include "ngltools/ngltools_filesystem.h"
|
||||
|
||||
#include <QtCore/QJsonArray>
|
||||
#include <QtCore/QJsonDocument>
|
||||
#include <FileManagement/flm_dtc.h>
|
||||
#include <LtsUtils/LtsUtilsCore/dds_vector.h>
|
||||
|
||||
namespace AdlerJson
|
||||
{
|
||||
FlmHandler::FlmHandler(QObject *parent)
|
||||
: QObject(parent)
|
||||
, m_exerciseId(-1)
|
||||
, m_parentFolderId(-1)
|
||||
, m_partyId(-1)
|
||||
, m_folderHXMessagesId(-1)
|
||||
, m_dtcFlm(nullptr)
|
||||
, m_ftcFlm(nullptr)
|
||||
, m_ftcNom(nullptr)
|
||||
, m_opmDtc(nullptr)
|
||||
{
|
||||
}
|
||||
|
||||
bool FlmHandler::init(MainDispatcher *mainDispatcher)
|
||||
{
|
||||
m_mainDispatcher = mainDispatcher;
|
||||
m_exerciseId = mainDispatcher->exerciseId();
|
||||
m_dtcFlm = FileManagement::Interface::Dtc::create(mainDispatcher->ddsHandler()->ddsConnector());
|
||||
m_ftcFlm = FileManagement::Interface::Ftc::create(mainDispatcher->ddsHandler()->ddsConnector());
|
||||
m_dtcFlm->enableFileContent();
|
||||
m_dtcFlm->enableFolder();
|
||||
m_ftcFlm->enableFileContentModify();
|
||||
m_ftcFlm->enablePathCreate();
|
||||
m_ftcNom = NotificationManagement::Interface::Ftc::create(mainDispatcher->ddsHandler()->ddsConnector());
|
||||
m_ftcNom->enableAll();
|
||||
m_opmDtc = OperatorManagement::Interface::Dtc::create(mainDispatcher->ddsHandler()->ddsConnector());
|
||||
m_opmDtc->enableUser();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool FlmHandler::processHQMessage(int partyId, const QString &name, int meldungsnummer, const QJsonObject &obj)
|
||||
{
|
||||
ERROR_LOG(m_logger) << "exerciseId: " << m_exerciseId << ", partyId: " << partyId
|
||||
<< ", name: " << name
|
||||
<< ", meldungsnummer: " << meldungsnummer;
|
||||
|
||||
|
||||
int partyFolderId = m_dtcFlm->getPartyFolderId(m_exerciseId, partyId);
|
||||
|
||||
const QString folderName = QStringLiteral("Messages");
|
||||
int folderHXMessagesId = m_dtcFlm->findFolder(partyFolderId, folderName);
|
||||
|
||||
ERROR_LOG(m_logger) << "folderHXMessagesId: " << folderHXMessagesId;
|
||||
|
||||
if (folderHXMessagesId <= 0)
|
||||
{
|
||||
ERROR_LOG(m_logger) << "Folder Messages does not exist for exerciseId: " << m_exerciseId << ", partyId: " << partyId;
|
||||
return false;
|
||||
}
|
||||
|
||||
FileManagement::FileContentModifyRequest fileContentReq;
|
||||
fileContentReq.isTemplate(false);
|
||||
fileContentReq.isHidden(true);
|
||||
fileContentReq.folderId(folderHXMessagesId);
|
||||
const QVector<int> fldPath = LtsUtils::convert<QVector<int>>(m_dtcFlm->folder(folderHXMessagesId).path());
|
||||
fileContentReq.fileCategory(FileManagement::FileCategory::Exercise);
|
||||
fileContentReq.fileType(FileManagement::FileType::AdlerJson);
|
||||
fileContentReq.fileStatus(FileManagement::FileStatus::Valid);
|
||||
|
||||
QByteArray content = QJsonDocument(obj).toJson(QJsonDocument::Compact).constData();
|
||||
fileContentReq.content(LtsUtils::convert<std::vector<uint8_t>>(content));
|
||||
|
||||
fileContentReq.isUsedBy(false);
|
||||
fileContentReq.usedBy(0);
|
||||
fileContentReq.lastModified(m_mainDispatcher->ddsHandler()->partitionTime());
|
||||
fileContentReq.exerciseId(m_exerciseId);
|
||||
fileContentReq.operatorId(99);
|
||||
|
||||
DEBUG_LOG(m_logger) << "HQ: name: " << fileContentReq.name() << ", folderId: " << folderHXMessagesId << ", exerciseId: " << m_exerciseId << ", partyId: " << partyId;
|
||||
|
||||
|
||||
QRegularExpression re(QStringLiteral("_\\d+$"));
|
||||
QString baseName = name + QStringLiteral(" (") + QString::number(meldungsnummer) + QStringLiteral(")");
|
||||
baseName.remove(re);
|
||||
|
||||
|
||||
baseName = baseName.normalized(QString::NormalizationForm_C);
|
||||
ERROR_LOG(m_logger) << "BaseName: " << baseName << "|";
|
||||
|
||||
QStringList fileNames;
|
||||
if (!m_dtcFlm->getAllFiles(fileContentReq.fileType(), folderHXMessagesId, fileNames, true))
|
||||
{
|
||||
ERROR_LOG(m_logger) << "Error while reading fileNames for folderId: " << folderHXMessagesId;
|
||||
return false;
|
||||
}
|
||||
|
||||
int maxNumber = 0;
|
||||
for (const QString &fileName : std::as_const(fileNames))
|
||||
{
|
||||
QString normalizedName = fileName.normalized(QString::NormalizationForm_C);
|
||||
DEBUG_LOG(m_logger) << "normalized fileName: " << normalizedName << "|";
|
||||
|
||||
if (!normalizedName.startsWith(baseName))
|
||||
continue;
|
||||
|
||||
QString rest = fileName.mid(baseName.length());
|
||||
DEBUG_LOG(m_logger) << "rest: " << rest;
|
||||
if (rest.contains(QStringLiteral(".")))
|
||||
rest = rest.section(QStringLiteral("."), 0, 0);
|
||||
|
||||
if (rest.startsWith(QStringLiteral("_")))
|
||||
rest = rest.mid(1);
|
||||
|
||||
if (rest.isEmpty())
|
||||
maxNumber = std::max(maxNumber, 0);
|
||||
else
|
||||
{
|
||||
bool ok;
|
||||
int currentNum = rest.toInt(&ok);
|
||||
if (ok)
|
||||
maxNumber = std::max(maxNumber, currentNum);
|
||||
}
|
||||
DEBUG_LOG(m_logger) << " maxNumber: " << maxNumber;
|
||||
}
|
||||
|
||||
const QString newName = baseName
|
||||
+ QStringLiteral("_") + QString::number(++maxNumber);
|
||||
DEBUG_LOG(m_logger) << "newName : " << newName;
|
||||
fileContentReq.name(newName.toStdString());
|
||||
|
||||
|
||||
m_partyId = partyId;
|
||||
m_folderHXMessagesId = folderHXMessagesId;
|
||||
m_ftcFlm->fileContentModifyRequest(fileContentReq, this);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void FlmHandler::createHQNotification(const int partyId, const int folderId, const int fileId)
|
||||
{
|
||||
qint64 currentTime = m_mainDispatcher->ddsHandler()->partitionTime();
|
||||
|
||||
QScopedPointer<NGL::Settings> s(new NGL::Settings(NGL::findProjectConfigFile()));
|
||||
qint64 expiryTime = currentTime + s->getInteger(QStringLiteral("NOM/expiryIntervalMSec"), 2 * 24 * 60 * 60 * 1000);
|
||||
NotificationManagement::NomNotification notif;
|
||||
|
||||
notif.title(tr("HQ Report").toStdString());
|
||||
|
||||
QString linkName = tr("Open HQ Report Dialog");
|
||||
QString content = QStringLiteral("[%1](//flmHQReport/?party=%2&folder=%3&file=%4)").arg(linkName).arg(partyId).arg(folderId).arg(fileId);
|
||||
QMap<QString, QString> linkMap;
|
||||
parseContent(content, linkMap);
|
||||
|
||||
QMapIterator<QString, QString> it(linkMap);
|
||||
while (it.hasNext())
|
||||
{
|
||||
it.next();
|
||||
|
||||
content = content.replace(QStringLiteral("[%1](%2)").arg(it.value(), it.key()), QStringLiteral("<a href='%1'>%2</a>").arg(it.key(), it.value()));
|
||||
}
|
||||
|
||||
notif.content(content.toStdString());
|
||||
notif.timeStamp(currentTime);
|
||||
notif.expiryTime(expiryTime);
|
||||
|
||||
int prio = s->getInteger(QStringLiteral("NOM/notificationPriority"), 3);
|
||||
DEBUG_LOG(m_logger) << " Setting: NotificationPriority: " << prio;
|
||||
notif.priority(static_cast<NotificationManagement::Priority>(prio));
|
||||
notif.processedPriority(NotificationManagement::Priority::Low);
|
||||
notif.exerciseId(m_exerciseId);
|
||||
|
||||
for (const auto &userId : m_opmDtc->getOperatorsByOperatorRight(OperatorRights::FileManagementFilesEdit))
|
||||
{
|
||||
NotificationManagement::Address addr;
|
||||
addr.addressId(userId);
|
||||
addr.isRead(false);
|
||||
addr.name(m_opmDtc->user(userId).name());
|
||||
addr.addressType(NotificationManagement::AddressType::Operator);
|
||||
notif.recipientIds().push_back(addr);
|
||||
}
|
||||
|
||||
NotificationManagement::CreateNotificationRequest notifReq;
|
||||
notifReq.notification(notif);
|
||||
|
||||
if (!m_ftcNom->createNotificationRequest(notifReq, this))
|
||||
ERROR_LOG(m_logger) << "Error requesting create Notification data";
|
||||
}
|
||||
|
||||
void FlmHandler::initHQFolders(int partyId)
|
||||
{
|
||||
|
||||
int exerciseFolderId = m_dtcFlm->getExerciseFolderId(m_exerciseId);
|
||||
|
||||
if (exerciseFolderId <= 0)
|
||||
{
|
||||
ERROR_LOG(m_logger) << "No exercise Folder for exerciseId: " << m_exerciseId;
|
||||
return;
|
||||
}
|
||||
|
||||
const QString &partyName = m_dtcFlm->getPartyFolderName(partyId);
|
||||
|
||||
std::vector<std::string> vecFolderNames = {"HQ Data", partyName.toStdString(), "Messages"};
|
||||
|
||||
FileManagement::PathCreateRequest req;
|
||||
req.path(vecFolderNames);
|
||||
req.parentId(exerciseFolderId);
|
||||
req.isEditable(false);
|
||||
req.operatorId(99);
|
||||
|
||||
m_ftcFlm->pathCreateRequest(req, this);
|
||||
}
|
||||
|
||||
void FlmHandler::onFileContentModifyReply(const Core::FunctionReplyObject &reply)
|
||||
{
|
||||
DEBUG_LOG(m_logger) << "Got Function Reply: " << reply.translated();
|
||||
|
||||
if (reply.error())
|
||||
ERROR_LOG(m_logger) << "Error while insert HX Message: " << reply.translated() << ", error: " << reply.error();
|
||||
else
|
||||
createHQNotification(m_partyId, m_folderHXMessagesId, reply.id());
|
||||
}
|
||||
|
||||
void FlmHandler::onPathCreateReply(const Core::FunctionReplyObject &reply)
|
||||
{
|
||||
DEBUG_LOG(m_logger) << "Got Function Reply: " << reply.translated();
|
||||
|
||||
if (reply.error())
|
||||
{
|
||||
ERROR_LOG(m_logger) << "Error while creating folders: " << reply.translated() << ", error: " << reply.error();
|
||||
}
|
||||
}
|
||||
|
||||
void FlmHandler::onCreateNotificationReply(const Core::FunctionReplyObject &replyObject)
|
||||
{
|
||||
INFO_LOG(m_logger) << "FlmHandler: Got createReply with id " << replyObject.id() << " and errorString " << replyObject.translated();
|
||||
}
|
||||
|
||||
bool FlmHandler::parseContent(const QString &contentString, QMap<QString, QString> &retMap)
|
||||
{
|
||||
if (contentString.isEmpty())
|
||||
return false;
|
||||
|
||||
|
||||
QRegularExpression regLink(QStringLiteral("(?<=\\]\\()(.*?)(?=\\))"));
|
||||
QRegularExpressionMatch matchLink = regLink.match(contentString);
|
||||
QRegularExpression regDesc(QStringLiteral("(?<=\\[)(.*?)(?=\\]\\()"));
|
||||
QRegularExpressionMatch matchDesc = regDesc.match(contentString);
|
||||
|
||||
QRegularExpressionMatchIterator itLink = regLink.globalMatch(contentString);
|
||||
QRegularExpressionMatchIterator itDesc = regDesc.globalMatch(contentString);
|
||||
while (itLink.hasNext() && itDesc.hasNext())
|
||||
{
|
||||
QString linkRef = itLink.next().captured();
|
||||
QString linkDesc = itDesc.next().captured();
|
||||
if (!linkRef.isEmpty() && !linkDesc.isEmpty())
|
||||
{
|
||||
retMap.insert(linkRef, linkDesc);
|
||||
}
|
||||
}
|
||||
|
||||
return retMap.size();
|
||||
}
|
||||
|
||||
}
|
||||
+62
@@ -0,0 +1,62 @@
|
||||
|
||||
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "logger.h"
|
||||
#include <QtCore/QObject>
|
||||
#include <Lts/Services/FileManagement/flm_ftc.h>
|
||||
#include <NotificationManagement/nom_ftc.h>
|
||||
#include <NotificationManagement/nom_ftc_types.h>
|
||||
#include <OperatorManagement/opm_data_plugin_interface.h>
|
||||
#include <TrainingAreaBase/dds_handler.h>
|
||||
|
||||
namespace FileManagement
|
||||
{
|
||||
namespace Interface
|
||||
{
|
||||
class Dtc;
|
||||
}
|
||||
}
|
||||
|
||||
namespace AdlerJson
|
||||
{
|
||||
|
||||
class MainDispatcher;
|
||||
class FlmHandler
|
||||
: public QObject
|
||||
, protected FileManagement::Interface::Ftc::FileContentModifyReplyHandler
|
||||
, protected FileManagement::Interface::Ftc::PathCreateReplyHandler
|
||||
, protected NotificationManagement::Interface::Ftc::CreateNotificationReplyHandler
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit FlmHandler(QObject *parent = nullptr);
|
||||
|
||||
bool processHQMessage(int partyId, const QString &name, int meldungsnummer, const QJsonObject &obj);
|
||||
void createHQNotification(const int partyId, const int folderId, const int fileId);
|
||||
signals:
|
||||
public slots:
|
||||
bool init(MainDispatcher *mainDispatcher);
|
||||
void initHQFolders(int partyId);
|
||||
|
||||
private:
|
||||
void onFileContentModifyReply(const Core::FunctionReplyObject &reply) override;
|
||||
void onPathCreateReply(const Core::FunctionReplyObject &reply) override;
|
||||
void onCreateNotificationReply(const Core::FunctionReplyObject &replyObject) override final;
|
||||
bool parseContent(const QString &contentString, QMap<QString, QString> &retMap);
|
||||
|
||||
private:
|
||||
NGL::INGLLogger &m_logger;
|
||||
MainDispatcher *m_mainDispatcher = nullptr;
|
||||
int m_exerciseId;
|
||||
int m_parentFolderId;
|
||||
int m_partyId;
|
||||
int m_folderHXMessagesId;
|
||||
std::shared_ptr<FileManagement::Interface::Dtc> m_dtcFlm;
|
||||
std::shared_ptr<FileManagement::Interface::Ftc> m_ftcFlm;
|
||||
std::shared_ptr<NotificationManagement::Interface::Ftc> m_ftcNom;
|
||||
std::shared_ptr<OperatorManagement::Interface::Dtc> m_opmDtc;
|
||||
};
|
||||
|
||||
}
|
||||
+845
@@ -0,0 +1,845 @@
|
||||
#include "generatetelegrams.h"
|
||||
#include <QRandomGenerator>
|
||||
|
||||
GenerateTelegrams::GenerateTelegrams() {}
|
||||
|
||||
void GenerateTelegrams::addHeaderData(AdlerJson::EXTelegramBase &tele, const int saaId, const QString referenceUuid)
|
||||
{
|
||||
tele.sender = QStringLiteral("SAA%1@GUEZ.DE").arg(saaId);
|
||||
tele.receiver = QStringLiteral("EXCON@GUEZ.DE");
|
||||
tele.timestamp = QDateTime::currentDateTime().toString(Qt::DateFormat::ISODate);
|
||||
tele.referenceUuid = referenceUuid;
|
||||
}
|
||||
|
||||
void GenerateTelegrams::generateConnectMessage(AdlerJson::EXRegistration &exRegistration, int partyId, bool isVerbund)
|
||||
{
|
||||
exRegistration.partyId = partyId;
|
||||
exRegistration.adlerVerbund = isVerbund;
|
||||
exRegistration.szenar = QStringLiteral("UI Test");
|
||||
}
|
||||
|
||||
void GenerateTelegrams::generateConnectResponseMessage(AdlerJson::ExAnmeldebestaetigung &exAnmeldebestaetigung)
|
||||
{
|
||||
exAnmeldebestaetigung.anBestaetigungsdaten.error = AdlerJson::L45_AnmeldebestaetigungFehlercode::Ok;
|
||||
}
|
||||
|
||||
void GenerateTelegrams::generateDisconnectMessage(AdlerJson::EXDeregistration &eXDeregistration, int partyId) { eXDeregistration.partyId = partyId; }
|
||||
|
||||
void GenerateTelegrams::generateStatusMessage(AdlerJson::EXStatus &exStatus, AdlerJson::Szenarstatus status) { exStatus.status = status; }
|
||||
|
||||
void GenerateTelegrams::generateConnectionTestMessage() {}
|
||||
|
||||
void GenerateTelegrams::generateZieldaten(AdlerJson::Zieldaten &wzd)
|
||||
{
|
||||
wzd.nummer = 7;
|
||||
wzd.geometrie = ProjectDataManagement::L4_TargetGeometry::Point;
|
||||
|
||||
|
||||
AdlerJson::KoordinateMitHoehe zap;
|
||||
zap.hoehe = 0;
|
||||
|
||||
AdlerJson::Koordinate zkn;
|
||||
zkn.latitude = 53.0672;
|
||||
zkn.longitude = 8.86687;
|
||||
zap.koordinate = zkn;
|
||||
wzd.koordinate = zap;
|
||||
|
||||
|
||||
AdlerJson::KoordinateMitHoehe zapr;
|
||||
zapr.hoehe = 5;
|
||||
zapr.koordinate.latitude = 53.8;
|
||||
zapr.koordinate.longitude = 8.8;
|
||||
wzd.relativKoordinate = zapr;
|
||||
|
||||
|
||||
|
||||
wzd.breiteRadius = 25;
|
||||
wzd.tiefe = 26;
|
||||
wzd.zielachse = 17;
|
||||
wzd.zog = 7;
|
||||
wzd.elemente = 1;
|
||||
wzd.typ = QStringLiteral("PERS");
|
||||
wzd.subTyp = QStringLiteral("APERS");
|
||||
}
|
||||
|
||||
void GenerateTelegrams::generateWirkmittelFeuerkommando_Gmlrs(QVector<AdlerJson::WirkmittelFeuerkommandoRakete> &wfrs)
|
||||
{
|
||||
AdlerJson::Treffpunkt treffpunkt;
|
||||
treffpunkt.anzahl = 1;
|
||||
treffpunkt.koordinate.koordinate.latitude = 5.5;
|
||||
treffpunkt.koordinate.koordinate.longitude = 6.6;
|
||||
treffpunkt.koordinate.hoehe = 7;
|
||||
AdlerJson::WirkmittelFeuerkommandoRakete wfr;
|
||||
wfr.kenner = ProjectDataManagement::L27_EffectorId::B1;
|
||||
wfr.treffpunkte.append(treffpunkt);
|
||||
wfr.flugzeit = 456.3;
|
||||
wfr.gipfelhoehe = 300;
|
||||
wfr.schussrichtung = 30.0;
|
||||
wfr.fallwinkel = 5;
|
||||
wfr.anflug = ProjectDataManagement::L48_TrajectoryRocket::Nominal;
|
||||
wfr.gps = ProjectDataManagement::L46_GpsFrequency::L1;
|
||||
wfr.wirkzeit = 55;
|
||||
wfrs.append(wfr);
|
||||
}
|
||||
|
||||
void GenerateTelegrams::generateEXFQBABBFK(AdlerJson::ExAwesPlanning &req)
|
||||
{
|
||||
|
||||
AdlerJson::WirkfeldplanungData wfp;
|
||||
|
||||
wfp.feuerkampfReferenz = QStringLiteral("REF:%1").arg(QRandomGenerator::global()->bounded(1000000));
|
||||
|
||||
generateZieldaten(wfp.zieldaten);
|
||||
|
||||
wfp.abfeuerungsArt = AdlerJson::Abfeuerungsart::A;
|
||||
wfp.forderung = ProjectDataManagement::L7_Request::VER;
|
||||
wfp.dauer = 0;
|
||||
|
||||
|
||||
AdlerJson::Feuerkommando fk;
|
||||
{
|
||||
fk.verein = QStringLiteral("AB7X");
|
||||
fk.typ = ProjectDataManagement::L26_EffectingSystemType::RRohr;
|
||||
QVector<AdlerJson::WirkmittelFeuerkommando> fkl;
|
||||
|
||||
{
|
||||
AdlerJson::WirkmittelFeuerkommando wfk;
|
||||
wfk.kenner = ProjectDataManagement::L27_EffectorId::B1;
|
||||
|
||||
|
||||
AdlerJson::KoordinateMitHoehe ap;
|
||||
ap.hoehe = 0;
|
||||
|
||||
AdlerJson::Koordinate kn;
|
||||
kn.latitude = 53.0672;
|
||||
kn.longitude = 8.86687;
|
||||
ap.koordinate = kn;
|
||||
|
||||
wfk.auftreffpunkt = ap;
|
||||
|
||||
wfk.flugzeit = 30;
|
||||
wfk.gipfelhoehe = 377;
|
||||
wfk.schussrichtung = 177;
|
||||
AdlerJson::FeuerkommandoGeschosse wfg;
|
||||
|
||||
{
|
||||
wfg.geschosssorte = QStringLiteral("Spreng DM121");
|
||||
wfg.ladung = QStringLiteral("M DM72");
|
||||
wfg.zuender = QStringLiteral("Aufschlag BB DM371");
|
||||
wfg.zuenderFunktion = QStringLiteral("AZoV");
|
||||
wfg.zuenderZeit = 0;
|
||||
wfg.anzahl = 7;
|
||||
wfg.intervall = 1.0;
|
||||
}
|
||||
|
||||
wfk.geschoss = wfg;
|
||||
|
||||
QVector<AdlerJson::Flugbahnpunkt> fpl;
|
||||
|
||||
{
|
||||
AdlerJson::Flugbahnpunkt fp;
|
||||
fp.zRelativ = 300;
|
||||
fp.xRelativ = 200;
|
||||
fp.yRelativ = 77;
|
||||
fp.zeit = 17;
|
||||
fpl.append(fp);
|
||||
|
||||
fp.zRelativ = 700;
|
||||
fp.xRelativ = 900;
|
||||
fp.yRelativ = 177;
|
||||
fp.zeit = 19;
|
||||
fpl.append(fp);
|
||||
|
||||
fp.zRelativ = 777;
|
||||
fp.xRelativ = 977;
|
||||
fp.yRelativ = 277;
|
||||
fp.zeit = 33;
|
||||
fpl.append(fp);
|
||||
|
||||
}
|
||||
wfk.flugbahnpunkt = fpl;
|
||||
|
||||
|
||||
AdlerJson::Streuungsdaten streuung;
|
||||
streuung.seitenstreuungH = 0.7;
|
||||
streuung.laengsstreuungH = 0.3;
|
||||
streuung.seitenstreuung = 0.7;
|
||||
streuung.laengsstreuung = 7.7;
|
||||
|
||||
wfk.streuung = streuung;
|
||||
|
||||
fkl.append(wfk);
|
||||
|
||||
|
||||
}
|
||||
fk.wirkmittel = fkl;
|
||||
|
||||
|
||||
}
|
||||
|
||||
wfp.feuerkommando = fk;
|
||||
generateWirkmittelFeuerkommando_Gmlrs(wfp.feuerkommando.wirkmittelRakete);
|
||||
|
||||
|
||||
req.wirkfeldplanungData = wfp;
|
||||
}
|
||||
|
||||
void GenerateTelegrams::generateEXFQBABBFK_Gmlrs(AdlerJson::ExAwesPlanning &req)
|
||||
{
|
||||
|
||||
AdlerJson::WirkfeldplanungData wfp;
|
||||
|
||||
wfp.feuerkampfReferenz = QStringLiteral("REF:%1").arg(QRandomGenerator::global()->bounded(1000000));
|
||||
wfp.zieldaten.nummer = 143;
|
||||
wfp.abfeuerungsArt = AdlerJson::Abfeuerungsart::F;
|
||||
wfp.dauer = 0;
|
||||
|
||||
|
||||
AdlerJson::Feuerkommando fk;
|
||||
{
|
||||
fk.verein = QStringLiteral("AB13X");
|
||||
fk.typ = ProjectDataManagement::L26_EffectingSystemType::Mars;
|
||||
|
||||
{
|
||||
AdlerJson::WirkmittelFeuerkommandoRakete wfk;
|
||||
|
||||
wfk.kenner = ProjectDataManagement::L27_EffectorId::NO_211;
|
||||
wfk.fallwinkel = 0;
|
||||
wfk.anflug = ProjectDataManagement::L48_TrajectoryRocket::Nominal;
|
||||
|
||||
|
||||
AdlerJson::Treffpunkt tp;
|
||||
tp.anzahl = 1;
|
||||
tp.koordinate.hoehe = 99;
|
||||
tp.koordinate.koordinate.latitude = 53.0214;
|
||||
tp.koordinate.koordinate.longitude = 8.9886;
|
||||
wfk.treffpunkte.append(tp);
|
||||
|
||||
tp.koordinate.koordinate.latitude = 53.0207;
|
||||
tp.koordinate.koordinate.longitude = 8.98852;
|
||||
wfk.treffpunkte.append(tp);
|
||||
|
||||
tp.koordinate.koordinate.latitude = 53.0189;
|
||||
tp.koordinate.koordinate.longitude = 8.98855;
|
||||
wfk.treffpunkte.append(tp);
|
||||
|
||||
tp.koordinate.koordinate.latitude = 53.0196;
|
||||
tp.koordinate.koordinate.longitude = 8.98712;
|
||||
wfk.treffpunkte.append(tp);
|
||||
|
||||
tp.koordinate.koordinate.latitude = 53.0201;
|
||||
tp.koordinate.koordinate.longitude = 8.99008;
|
||||
tp.anzahl = 2;
|
||||
wfk.treffpunkte.append(tp);
|
||||
|
||||
wfk.flugzeit = 66.03185272216797;
|
||||
wfk.gipfelhoehe = 0;
|
||||
wfk.schussrichtung = 3134.477668706035;
|
||||
wfk.gps = ProjectDataManagement::L46_GpsFrequency::L1;
|
||||
wfk.wirkzeit = 0;
|
||||
|
||||
|
||||
AdlerJson::FeuerkommandoGeschosse wfg;
|
||||
wfg.anzahl = 6;
|
||||
wfg.geschosssorte = QStringLiteral("Unitary M31");
|
||||
wfg.intervall = 5.0;
|
||||
wfg.zuenderFunktion = QStringLiteral("AZoV");
|
||||
wfg.zuenderZeit = 29;
|
||||
|
||||
wfk.geschoss = wfg;
|
||||
|
||||
fk.wirkmittelRakete.append(wfk);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
wfp.feuerkommando = fk;
|
||||
|
||||
|
||||
req.wirkfeldplanungData = wfp;
|
||||
}
|
||||
|
||||
void GenerateTelegrams::generateEXFQBABBFK_Dm72(AdlerJson::ExAwesPlanning &req)
|
||||
{
|
||||
|
||||
AdlerJson::WirkfeldplanungData wfp;
|
||||
|
||||
wfp.feuerkampfReferenz = QStringLiteral("REF:%1").arg(QRandomGenerator::global()->bounded(1000000));
|
||||
wfp.zieldaten.nummer = 143;
|
||||
wfp.abfeuerungsArt = AdlerJson::Abfeuerungsart::B;
|
||||
wfp.dauer = 0;
|
||||
|
||||
|
||||
AdlerJson::Feuerkommando fk;
|
||||
{
|
||||
fk.verein = QStringLiteral("AB72X");
|
||||
fk.typ = ProjectDataManagement::L26_EffectingSystemType::Mars;
|
||||
|
||||
{
|
||||
AdlerJson::WirkmittelFeuerkommandoRakete wfk;
|
||||
|
||||
wfk.kenner = ProjectDataManagement::L27_EffectorId::NO_212;
|
||||
wfk.fallwinkel = 605;
|
||||
|
||||
|
||||
AdlerJson::Treffpunkt tp;
|
||||
tp.anzahl = 6;
|
||||
tp.koordinate.hoehe = 99;
|
||||
tp.koordinate.koordinate.latitude = 53.0279;
|
||||
tp.koordinate.koordinate.longitude = 8.73684;
|
||||
wfk.treffpunkte.append(tp);
|
||||
|
||||
wfk.flugzeit = 66.03185272216797;
|
||||
wfk.gipfelhoehe = 0;
|
||||
wfk.schussrichtung = 0.0;
|
||||
wfk.wirkzeit = 3;
|
||||
|
||||
|
||||
AdlerJson::FeuerkommandoGeschosse wfg;
|
||||
wfg.anzahl = 6;
|
||||
wfg.geschosssorte = QStringLiteral("Mine DM72");
|
||||
wfg.intervall = 5.0;
|
||||
wfg.zuenderZeit = 49;
|
||||
|
||||
wfk.geschoss = wfg;
|
||||
|
||||
fk.wirkmittelRakete.append(wfk);
|
||||
}
|
||||
}
|
||||
|
||||
wfp.feuerkommando = fk;
|
||||
|
||||
|
||||
req.wirkfeldplanungData = wfp;
|
||||
}
|
||||
|
||||
void GenerateTelegrams::generateFeuerbereit(AdlerJson::ExFeuerbereit &req)
|
||||
{
|
||||
|
||||
req.feuerkampfdaten.feuerkampfReferenz = QStringLiteral("feuerkampfReferenz 1");
|
||||
req.feuerkampfdaten.verein = QStringLiteral("AB7X");
|
||||
req.feuerkampfdaten.kenner = ProjectDataManagement::L27_EffectorId::B1;
|
||||
}
|
||||
|
||||
void GenerateTelegrams::generateFeuern(AdlerJson::ExFeuern &req)
|
||||
{
|
||||
req.feuerkampfdaten.feuerkampfReferenz = QStringLiteral("feuerkampfReferenz 1");
|
||||
req.feuerkampfdaten.verein = QStringLiteral("AB7X");
|
||||
req.feuerkampfdaten.kenner = ProjectDataManagement::L27_EffectorId::B1;
|
||||
}
|
||||
|
||||
void GenerateTelegrams::generateFeuern_Gmlrs(AdlerJson::ExFeuern &req)
|
||||
{
|
||||
req.feuerkampfdaten.feuerkampfReferenz = QStringLiteral("feuerkampfReferenz 1");
|
||||
req.feuerkampfdaten.verein = QStringLiteral("AB13X");
|
||||
req.feuerkampfdaten.kenner = ProjectDataManagement::L27_EffectorId::NO_211;
|
||||
}
|
||||
|
||||
void GenerateTelegrams::generateFeuern_Dm72(AdlerJson::ExFeuern &req)
|
||||
{
|
||||
req.feuerkampfdaten.feuerkampfReferenz = QStringLiteral("feuerkampfReferenz 1");
|
||||
req.feuerkampfdaten.verein = QStringLiteral("AB72X");
|
||||
req.feuerkampfdaten.kenner = ProjectDataManagement::L27_EffectorId::NO_212;
|
||||
}
|
||||
|
||||
void GenerateTelegrams::generateNichtFeuern(AdlerJson::exNichtFeuern &req)
|
||||
{
|
||||
req.feuerkampfdaten.feuerkampfReferenz = QStringLiteral("feuerkampfReferenz 1");
|
||||
req.feuerkampfdaten.verein = QStringLiteral("AB7X");
|
||||
req.feuerkampfdaten.kenner = ProjectDataManagement::L27_EffectorId::B1;
|
||||
}
|
||||
|
||||
void GenerateTelegrams::generateAbgefeuert(AdlerJson::ExAbgefeuert &req)
|
||||
{
|
||||
req.feuerkampfdaten.feuerkampfReferenz = QStringLiteral("feuerkampfReferenz 1");
|
||||
req.feuerkampfdaten.verein = QStringLiteral("AB7X");
|
||||
req.feuerkampfdaten.kenner = ProjectDataManagement::L27_EffectorId::B1;
|
||||
}
|
||||
|
||||
void GenerateTelegrams::generateVollzugsmeldung(AdlerJson::ExVollzugsmeldung &req)
|
||||
{
|
||||
req.feuerkampfdaten.feuerkampfReferenz = QStringLiteral("feuerkampfReferenz 1");
|
||||
req.feuerkampfdaten.verein = QStringLiteral("AB7X");
|
||||
req.feuerkampfdaten.kenner = ProjectDataManagement::L27_EffectorId::B1;
|
||||
}
|
||||
|
||||
void GenerateTelegrams::generateAbmeldung(AdlerJson::EXDeregistration &req) { req.partyId = 2; }
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
void GenerateTelegrams::generateErkundungsergebnisse(AdlerJson::ExErkundungsergebnisse &req)
|
||||
{
|
||||
AdlerJson::Erkundungseinheit einheit;
|
||||
AdlerJson::KoordinateMitHoehe ladeplatz;
|
||||
AdlerJson::Erkundungsstellungen stellungen;
|
||||
AdlerJson::Wirkungsbereich wirkungsbereich;
|
||||
|
||||
einheit.r = 5;
|
||||
einheit.verein = QStringLiteral("verein Erkundungsdaten");
|
||||
|
||||
ladeplatz.hoehe = 55;
|
||||
ladeplatz.koordinate.latitude = 53.37790;
|
||||
ladeplatz.koordinate.longitude = 8.758;
|
||||
|
||||
AdlerJson::KoordinateMitHoehe waffenplatz1;
|
||||
AdlerJson::KoordinateMitHoehe waffenplatz2;
|
||||
|
||||
waffenplatz1.hoehe = 56;
|
||||
waffenplatz1.koordinate.latitude = 53.37791;
|
||||
waffenplatz1.koordinate.longitude = 8.759;
|
||||
|
||||
waffenplatz2.hoehe = 57;
|
||||
waffenplatz2.koordinate.latitude = 53.37792;
|
||||
waffenplatz2.koordinate.longitude = 8.760;
|
||||
|
||||
stellungen.waffenplaetze.append(waffenplatz1);
|
||||
stellungen.waffenplaetze.append(waffenplatz2);
|
||||
|
||||
wirkungsbereich.grundrichtung = 33;
|
||||
wirkungsbereich.links = 44;
|
||||
wirkungsbereich.rechts = 55;
|
||||
|
||||
stellungen.wirkungsbereich = wirkungsbereich;
|
||||
|
||||
req.erkundungsdaten.einheit = einheit;
|
||||
req.erkundungsdaten.ladeplatz = ladeplatz;
|
||||
req.erkundungsdaten.stellungen = stellungen;
|
||||
}
|
||||
|
||||
void GenerateTelegrams::generateFeuerkampf(AdlerJson::ExFeuerkampf &req)
|
||||
{
|
||||
AdlerJson::KoordinateMitHoehe auftreffpunkt;
|
||||
auftreffpunkt.hoehe = 56;
|
||||
auftreffpunkt.koordinate.latitude = 53.37791;
|
||||
auftreffpunkt.koordinate.longitude = 8.759;
|
||||
|
||||
AdlerJson::FeuerkommandoGeschosse geschoss;
|
||||
geschoss.geschosssorte = QStringLiteral("Spreng DM121");
|
||||
geschoss.ladung = QStringLiteral("M DM72");
|
||||
geschoss.zuender = QString::number(4);
|
||||
geschoss.zuenderFunktion = QString::number(2);
|
||||
geschoss.zuenderZeit = 0;
|
||||
geschoss.anzahl = 1;
|
||||
geschoss.intervall = 1.0;
|
||||
|
||||
QVector<AdlerJson::Flugbahnpunkt> fpl;
|
||||
|
||||
{
|
||||
AdlerJson::Flugbahnpunkt fp;
|
||||
fp.zRelativ = 300;
|
||||
fp.xRelativ = 200;
|
||||
fp.yRelativ = 77;
|
||||
fp.zeit = 17;
|
||||
fpl.append(fp);
|
||||
|
||||
fp.zRelativ = 700;
|
||||
fp.xRelativ = 900;
|
||||
fp.yRelativ = 177;
|
||||
fp.zeit = 19;
|
||||
fpl.append(fp);
|
||||
|
||||
}
|
||||
|
||||
AdlerJson::WirkmittelFeuerkommando wirkmittelFeuerkommando;
|
||||
wirkmittelFeuerkommando.kenner = ProjectDataManagement::L27_EffectorId::C2;
|
||||
wirkmittelFeuerkommando.auftreffpunkt = auftreffpunkt;
|
||||
wirkmittelFeuerkommando.flugzeit = 77;
|
||||
wirkmittelFeuerkommando.gipfelhoehe = 78;
|
||||
wirkmittelFeuerkommando.schussrichtung = 79;
|
||||
wirkmittelFeuerkommando.geschoss = geschoss;
|
||||
wirkmittelFeuerkommando.flugbahnpunkt = fpl;
|
||||
|
||||
AdlerJson::Feuerkommando feuerkommando;
|
||||
|
||||
feuerkommando.verein = QStringLiteral("verein Feuerkommando");
|
||||
feuerkommando.wirkmittel.append(wirkmittelFeuerkommando);
|
||||
|
||||
AdlerJson::Zielmeldedaten zielmeldedaten;
|
||||
|
||||
generateZieldaten(zielmeldedaten.zieldaten);
|
||||
zielmeldedaten.abfeuerungsArt = AdlerJson::Abfeuerungsart::F;
|
||||
zielmeldedaten.forderung = ProjectDataManagement::L7_Request::BEL;
|
||||
zielmeldedaten.dauer = 88;
|
||||
zielmeldedaten.feuerkommandos.append(feuerkommando);
|
||||
|
||||
req.zielmeldedaten = zielmeldedaten;
|
||||
}
|
||||
|
||||
void GenerateTelegrams::generateFeuerhalt(AdlerJson::ExFeuerhalt &req)
|
||||
{
|
||||
req.feuerHaltDaten.verein = QStringLiteral("123456");
|
||||
req.feuerHaltDaten.kenner = ProjectDataManagement::L27_EffectorId::A;
|
||||
req.feuerHaltDaten.kategorie = ProjectDataManagement::L22_FireHaltCategory::L22_FireHaltCategory_R;
|
||||
req.feuerHaltDaten.feuerkampfReferenz = QStringLiteral("feuerHaltDaten");
|
||||
req.feuerHaltDaten.zpNummer = 5;
|
||||
req.feuerHaltDaten.koordinate.latitude = 53.11172;
|
||||
req.feuerHaltDaten.koordinate.longitude = 8.86687;
|
||||
req.feuerHaltDaten.radius = 50;
|
||||
req.feuerHaltDaten.entladenSchuss = true;
|
||||
}
|
||||
|
||||
void GenerateTelegrams::generateStellungsmeldungFS(AdlerJson::ExFeuerstellungFS &req)
|
||||
{
|
||||
req.feuerstellungsdaten.typ = ProjectDataManagement::L26_EffectingSystemType::RRohr;
|
||||
req.feuerstellungsdaten.status = ProjectDataManagement::L28_Status::Einsatzbereit;
|
||||
req.feuerstellungsdaten.feuereinheit.verein = QStringLiteral("verein ExFeuerstellungFS");
|
||||
req.feuerstellungsdaten.feuereinheit.r = 5;
|
||||
req.feuerstellungsdaten.feuereinheit.oi = ProjectDataManagement::L19_Oi::L19_Oi_F3;
|
||||
req.feuerstellungsdaten.mittelpunkt.koordinate.latitude = 53.37791;
|
||||
req.feuerstellungsdaten.mittelpunkt.koordinate.longitude = 8.759;
|
||||
req.feuerstellungsdaten.mittelpunkt.hoehe = 20;
|
||||
AdlerJson::KoordinateMitHoehe koordinate1;
|
||||
AdlerJson::KoordinateMitHoehe koordinate2;
|
||||
koordinate1.hoehe = 22;
|
||||
koordinate1.koordinate.latitude = 53.37792;
|
||||
koordinate1.koordinate.longitude = 8.760;
|
||||
koordinate2.hoehe = 23;
|
||||
koordinate2.koordinate.latitude = 53.37793;
|
||||
koordinate2.koordinate.longitude = 8.761;
|
||||
req.feuerstellungsdaten.koordinaten.append(koordinate1);
|
||||
req.feuerstellungsdaten.koordinaten.append(koordinate2);
|
||||
|
||||
AdlerJson::Geschoss geschoss1;
|
||||
AdlerJson::Geschoss geschoss2;
|
||||
geschoss1.geschosssorte = QStringLiteral("Mine DM72");
|
||||
geschoss1.ladung = QStringLiteral("M DM72");
|
||||
geschoss1.zuender = QString::number(11);
|
||||
geschoss1.anzahl = 6;
|
||||
|
||||
geschoss2.geschosssorte = QStringLiteral("Leucht DM116");
|
||||
geschoss2.ladung = QStringLiteral("B L8A1");
|
||||
geschoss2.zuender = QString::number(3);
|
||||
geschoss2.anzahl = 7;
|
||||
req.feuerstellungsdaten.geschosse.append(geschoss1);
|
||||
req.feuerstellungsdaten.geschosse.append(geschoss2);
|
||||
}
|
||||
|
||||
void GenerateTelegrams::generateStellungsmeldungWS(AdlerJson::ExFeuerstellungWS &req)
|
||||
{
|
||||
req.waffensystemdaten.typ = ProjectDataManagement::L26_EffectingSystemType::RRohr;
|
||||
req.waffensystemdaten.kenner = ProjectDataManagement::L27_EffectorId::B1;
|
||||
req.waffensystemdaten.status = ProjectDataManagement::L28_Status::Einsatzbereit;
|
||||
req.waffensystemdaten.einheit.verein = QStringLiteral("AB7X");
|
||||
req.waffensystemdaten.einheit.r = 6;
|
||||
req.waffensystemdaten.einheit.oi = ProjectDataManagement::L19_Oi::L19_Oi_F6;
|
||||
|
||||
AdlerJson::Geschoss geschoss1;
|
||||
AdlerJson::Geschoss geschoss2;
|
||||
geschoss1.geschosssorte = QStringLiteral("Mine DM72");
|
||||
geschoss1.ladung = QStringLiteral("M DM72");
|
||||
geschoss1.zuender = QStringLiteral("Doppel DM183");
|
||||
geschoss1.anzahl = 6;
|
||||
|
||||
geschoss2.geschosssorte = QStringLiteral("Leucht DM116");
|
||||
geschoss2.ladung = QStringLiteral("B L8A1");
|
||||
geschoss2.zuender = QStringLiteral("Aufschlag BB DM371");
|
||||
geschoss2.anzahl = 7;
|
||||
req.waffensystemdaten.geschosse.append(geschoss1);
|
||||
req.waffensystemdaten.geschosse.append(geschoss2);
|
||||
|
||||
req.waffensystemdaten.koordinate.koordinate.latitude = 53.088354;
|
||||
req.waffensystemdaten.koordinate.koordinate.longitude = 8.853092;
|
||||
req.waffensystemdaten.koordinate.hoehe = 20;
|
||||
|
||||
req.waffensystemdaten.wirkungsbereich.grundrichtung = 1;
|
||||
req.waffensystemdaten.wirkungsbereich.links = 2;
|
||||
req.waffensystemdaten.wirkungsbereich.rechts = 3;
|
||||
}
|
||||
|
||||
void GenerateTelegrams::generateStellungsmeldungWS_Gmlrs(AdlerJson::ExFeuerstellungWS &req)
|
||||
{
|
||||
req.waffensystemdaten.typ = ProjectDataManagement::L26_EffectingSystemType::Mars;
|
||||
req.waffensystemdaten.kenner = ProjectDataManagement::L27_EffectorId::NO_211;
|
||||
req.waffensystemdaten.status = ProjectDataManagement::L28_Status::NichtEinsatzbereit;
|
||||
req.waffensystemdaten.einheit.verein = QStringLiteral("AB13X");
|
||||
req.waffensystemdaten.einheit.r = 6;
|
||||
req.waffensystemdaten.einheit.oi = ProjectDataManagement::L19_Oi::L19_Oi_F6;
|
||||
|
||||
AdlerJson::Geschoss geschoss1;
|
||||
AdlerJson::Geschoss geschoss2;
|
||||
geschoss1.geschosssorte = QStringLiteral("GMLRS Unitary M31");
|
||||
geschoss1.ladung = QStringLiteral("Default");
|
||||
geschoss1.zuender = QStringLiteral("Default");
|
||||
geschoss1.anzahl = 6;
|
||||
|
||||
geschoss2.geschosssorte = QStringLiteral("GMLRS Unitary M31");
|
||||
geschoss2.ladung = QStringLiteral("Default");
|
||||
geschoss2.zuender = QStringLiteral("Default");
|
||||
geschoss2.anzahl = 6;
|
||||
|
||||
req.waffensystemdaten.geschosse.append(geschoss1);
|
||||
req.waffensystemdaten.geschosse.append(geschoss2);
|
||||
|
||||
req.waffensystemdaten.koordinate.koordinate.latitude = 53.088354;
|
||||
req.waffensystemdaten.koordinate.koordinate.longitude = 8.853092;
|
||||
req.waffensystemdaten.koordinate.hoehe = 20;
|
||||
|
||||
req.waffensystemdaten.wirkungsbereich.grundrichtung = 1;
|
||||
req.waffensystemdaten.wirkungsbereich.links = 2;
|
||||
req.waffensystemdaten.wirkungsbereich.rechts = 3;
|
||||
}
|
||||
|
||||
void GenerateTelegrams::generateStellungsmeldungWS_Dm72(AdlerJson::ExFeuerstellungWS &req)
|
||||
{
|
||||
req.waffensystemdaten.typ = ProjectDataManagement::L26_EffectingSystemType::Mars;
|
||||
req.waffensystemdaten.kenner = ProjectDataManagement::L27_EffectorId::NO_212;
|
||||
req.waffensystemdaten.status = ProjectDataManagement::L28_Status::NichtEinsatzbereit;
|
||||
req.waffensystemdaten.einheit.verein = QStringLiteral("AB72X");
|
||||
req.waffensystemdaten.einheit.r = 1;
|
||||
req.waffensystemdaten.einheit.oi = ProjectDataManagement::L19_Oi::L19_Oi_F1;
|
||||
|
||||
AdlerJson::Geschoss geschoss1;
|
||||
AdlerJson::Geschoss geschoss2;
|
||||
geschoss1.geschosssorte = QStringLiteral("Mine DM72");
|
||||
geschoss1.ladung = QStringLiteral("Default");
|
||||
geschoss1.zuender = QStringLiteral("Default");
|
||||
geschoss1.anzahl = 6;
|
||||
|
||||
geschoss2.geschosssorte = QStringLiteral("Mine DM72");
|
||||
geschoss2.ladung = QStringLiteral("Default");
|
||||
geschoss2.zuender = QStringLiteral("Default");
|
||||
geschoss2.anzahl = 6;
|
||||
|
||||
req.waffensystemdaten.geschosse.append(geschoss1);
|
||||
req.waffensystemdaten.geschosse.append(geschoss2);
|
||||
|
||||
req.waffensystemdaten.koordinate.koordinate.latitude = 53.0737;
|
||||
req.waffensystemdaten.koordinate.koordinate.longitude = 8.89542;
|
||||
req.waffensystemdaten.koordinate.hoehe = 20;
|
||||
|
||||
req.waffensystemdaten.wirkungsbereich.grundrichtung = 1;
|
||||
req.waffensystemdaten.wirkungsbereich.links = 2;
|
||||
req.waffensystemdaten.wirkungsbereich.rechts = 3;
|
||||
}
|
||||
|
||||
|
||||
void GenerateTelegrams::generateStellungsmeldungLP(AdlerJson::ExFeuerstellungLP &req)
|
||||
{
|
||||
req.ladeplatzdaten.einheit.r = 5;
|
||||
req.ladeplatzdaten.einheit.verein = QStringLiteral("verein StellungsmeldungLP");
|
||||
req.ladeplatzdaten.einheit.oi = ProjectDataManagement::L19_Oi::L19_Oi_F3;
|
||||
|
||||
req.ladeplatzdaten.koordinate.koordinate.latitude = 53.37791;
|
||||
req.ladeplatzdaten.koordinate.koordinate.longitude = 8.759;
|
||||
req.ladeplatzdaten.koordinate.hoehe = 20;
|
||||
AdlerJson::Geschoss geschoss1;
|
||||
AdlerJson::Geschoss geschoss2;
|
||||
geschoss1.geschosssorte = QStringLiteral("Mine DM72");
|
||||
geschoss1.ladung = QStringLiteral("M DM72");
|
||||
geschoss1.zuender = QStringLiteral("Doppel DM183");
|
||||
geschoss1.anzahl = 6;
|
||||
|
||||
geschoss2.geschosssorte = QStringLiteral("Leucht DM116");
|
||||
geschoss2.ladung = QStringLiteral("B L8A1");
|
||||
geschoss2.zuender = QStringLiteral("Aufschlag_BB_DM371");
|
||||
geschoss2.anzahl = 7;
|
||||
req.ladeplatzdaten.geschosse.append(geschoss1);
|
||||
req.ladeplatzdaten.geschosse.append(geschoss2);
|
||||
}
|
||||
|
||||
void GenerateTelegrams::generateStellungswechsel(AdlerJson::ExStellungswechsel &req)
|
||||
{
|
||||
req.stellungswechseldaten.oi = ProjectDataManagement::L19_Oi::L19_Oi_F3;
|
||||
req.stellungswechseldaten.r = 5;
|
||||
req.stellungswechseldaten.verein = QStringLiteral("verein ExStellungswechsel");
|
||||
}
|
||||
|
||||
void GenerateTelegrams::generateZeit1(AdlerJson::Zeitangabe_DTG &zeit)
|
||||
{
|
||||
zeit.stunden = 5;
|
||||
zeit.minuten = 35;
|
||||
zeit.sekunden = 55;
|
||||
zeit.tag = 12;
|
||||
zeit.monat = 11;
|
||||
zeit.jahr = 2025;
|
||||
|
||||
zeit.ZVz = QStringLiteral("ZVz");
|
||||
zeit.ZDS = QStringLiteral("ZDS");
|
||||
zeit.ZDM = QStringLiteral("ZDM");
|
||||
}
|
||||
|
||||
void GenerateTelegrams::generateZeit2(AdlerJson::Zeitangabe_DTG &zeit)
|
||||
{
|
||||
zeit.stunden = 5;
|
||||
zeit.minuten = 35;
|
||||
zeit.sekunden = 55;
|
||||
zeit.tag = 13;
|
||||
zeit.monat = 11;
|
||||
zeit.jahr = 2025;
|
||||
|
||||
zeit.ZVz = QStringLiteral("ZVz");
|
||||
zeit.ZDS = QStringLiteral("ZDS");
|
||||
zeit.ZDM = QStringLiteral("ZDM");
|
||||
}
|
||||
|
||||
|
||||
void GenerateTelegrams::generateKoordinierungsmassnahmen(AdlerJson::ExHqKoordinierungsmassnahmen &req)
|
||||
{
|
||||
req.koordinierungsdaten.art = ProjectDataManagement::L25_KindGuidingLine::NFA;
|
||||
req.koordinierungsdaten.name = QStringLiteral("Name ExHqKoordinierungsmassnahme");
|
||||
req.koordinierungsdaten.truppenteil = QStringLiteral("Truppenteil ExHqKoordinierungsmassnahme");
|
||||
generateZeit1(req.koordinierungsdaten.ab);
|
||||
generateZeit2(req.koordinierungsdaten.bis);
|
||||
|
||||
AdlerJson::Koordinate koordinate1;
|
||||
AdlerJson::Koordinate koordinate2;
|
||||
koordinate1.latitude = 53.37792;
|
||||
koordinate1.longitude = 8.760;
|
||||
koordinate2.latitude = 53.37793;
|
||||
koordinate2.longitude = 8.761;
|
||||
req.koordinierungsdaten.koordinaten.append(koordinate1);
|
||||
req.koordinierungsdaten.koordinaten.append(koordinate2);
|
||||
req.koordinierungsdaten.mittelpunkt.latitude = 53.37794;
|
||||
req.koordinierungsdaten.mittelpunkt.longitude = 8.762;
|
||||
req.koordinierungsdaten.radius = 66;
|
||||
req.koordinierungsdaten.maxGipfel = 123;
|
||||
}
|
||||
|
||||
void GenerateTelegrams::generateKoordinierungsmassnahmen_EX_L25(AdlerJson::ExHqKoordinierungsmassnahmen &req,
|
||||
ProjectDataManagement::L25_KindGuidingLine kind,
|
||||
int i)
|
||||
{
|
||||
req.koordinierungsdaten.art = kind;
|
||||
req.koordinierungsdaten.meldungsnummer = i;
|
||||
req.koordinierungsdaten.name = QStringLiteral("Name ExHqKoordinierungsmassnahme");
|
||||
req.koordinierungsdaten.truppenteil = QStringLiteral("Truppenteil ExHqKoordinierungsmassnahme");
|
||||
generateZeit1(req.koordinierungsdaten.ab);
|
||||
generateZeit2(req.koordinierungsdaten.bis);
|
||||
|
||||
AdlerJson::Koordinate koordinate1;
|
||||
AdlerJson::Koordinate koordinate2;
|
||||
AdlerJson::Koordinate koordinate3;
|
||||
koordinate1.latitude = 52.49303888888889;
|
||||
koordinate1.longitude = 11.53173888888889;
|
||||
koordinate2.latitude = 52.49305277777784;
|
||||
koordinate2.longitude = 11.53527777777777;
|
||||
koordinate3.latitude = 52.49056944444446;
|
||||
koordinate3.longitude = 11.53326388888889;
|
||||
req.koordinierungsdaten.koordinaten.append(koordinate1);
|
||||
req.koordinierungsdaten.koordinaten.append(koordinate2);
|
||||
req.koordinierungsdaten.koordinaten.append(koordinate3);
|
||||
req.koordinierungsdaten.mittelpunkt.latitude = 52.49222037;
|
||||
req.koordinierungsdaten.mittelpunkt.longitude = 11.53342685;
|
||||
req.koordinierungsdaten.radius = 66;
|
||||
req.koordinierungsdaten.maxGipfel = 123;
|
||||
}
|
||||
|
||||
void GenerateTelegrams::generateFuehrungslinien(AdlerJson::ExHqFuehrungslinien &req)
|
||||
{
|
||||
req.fuehrungsdaten.art = AdlerJson::Art_L24::AO;
|
||||
req.fuehrungsdaten.name = QStringLiteral("Name EX-HQ(G) Führungslinien und Grenzen");
|
||||
generateZeit1(req.fuehrungsdaten.ab);
|
||||
generateZeit2(req.fuehrungsdaten.bis);
|
||||
AdlerJson::Koordinate koordinate1;
|
||||
AdlerJson::Koordinate koordinate2;
|
||||
koordinate1.latitude = 53.37792;
|
||||
koordinate1.longitude = 8.760;
|
||||
koordinate2.latitude = 53.37793;
|
||||
koordinate2.longitude = 8.761;
|
||||
req.fuehrungsdaten.koordinaten.append(koordinate1);
|
||||
req.fuehrungsdaten.koordinaten.append(koordinate2);
|
||||
req.fuehrungsdaten.linkerNachbar = QStringLiteral("linker Nachbar");
|
||||
req.fuehrungsdaten.rechterNachbar = QStringLiteral("rechter Nachbar");
|
||||
}
|
||||
|
||||
void GenerateTelegrams::generateFuehrungslinien_EX_L24(AdlerJson::ExHqFuehrungslinien &req, AdlerJson::Art_L24 art24, int meldungsnummer)
|
||||
{
|
||||
req.fuehrungsdaten.koordinaten.clear();
|
||||
req.fuehrungsdaten.art = art24;
|
||||
req.fuehrungsdaten.name = QStringLiteral("Fuehrungslinie");
|
||||
req.fuehrungsdaten.meldungsnummer = meldungsnummer;
|
||||
generateZeit1(req.fuehrungsdaten.ab);
|
||||
generateZeit2(req.fuehrungsdaten.bis);
|
||||
AdlerJson::Koordinate koordinate1;
|
||||
AdlerJson::Koordinate koordinate2;
|
||||
AdlerJson::Koordinate koordinate3;
|
||||
koordinate1.latitude = 52.49303888888889;
|
||||
koordinate1.longitude = 11.53173888888889;
|
||||
koordinate2.latitude = 52.49305277777784;
|
||||
koordinate2.longitude = 11.53527777777777;
|
||||
koordinate3.latitude = 52.49056944444446;
|
||||
koordinate3.longitude = 11.53326388888889;
|
||||
req.fuehrungsdaten.koordinaten.append(koordinate1);
|
||||
req.fuehrungsdaten.koordinaten.append(koordinate2);
|
||||
req.fuehrungsdaten.koordinaten.append(koordinate3);
|
||||
req.fuehrungsdaten.linkerNachbar = QStringLiteral("linker Nachbar");
|
||||
req.fuehrungsdaten.rechterNachbar = QStringLiteral("rechter Nachbar");
|
||||
}
|
||||
|
||||
void GenerateTelegrams::generateTechnischeQuittung(AdlerJson::ExTqTechnischeQuittung &req)
|
||||
{
|
||||
req.technischeDaten.status = AdlerJson::Status_L32::INV;
|
||||
req.technischeDaten.beschreibung = QStringLiteral("Beschreibung technischer Status");
|
||||
}
|
||||
|
||||
void GenerateTelegrams::generateManuelleQuittung(AdlerJson::ExMqManuelleQuittung &req)
|
||||
{
|
||||
req.mqManuelleQuittungDaten.feuerkampfreferenz = QStringLiteral("Manuelle Quittung");
|
||||
}
|
||||
|
||||
void GenerateTelegrams::generateFlugbahnberechnung(AdlerJson::ExFlugbahnberechnung &req)
|
||||
{
|
||||
req.flugbahnberechnungDaten.geschoss.geschosssorte = QStringLiteral("SMArt DM702");
|
||||
req.flugbahnberechnungDaten.geschoss.ladung = QStringLiteral("M DM72");
|
||||
|
||||
req.flugbahnberechnungDaten.geschoss.zuender = QStringLiteral("Zeit DM52");
|
||||
req.flugbahnberechnungDaten.geschoss.zuenderFunktion = QStringLiteral("ZZ");
|
||||
req.flugbahnberechnungDaten.sprenghoehe = 0;
|
||||
req.flugbahnberechnungDaten.standort.hoehe = 55;
|
||||
req.flugbahnberechnungDaten.standort.koordinate.latitude = 53.37787;
|
||||
req.flugbahnberechnungDaten.standort.koordinate.longitude = 8.7573;
|
||||
req.flugbahnberechnungDaten.zielkoordinate.hoehe = 56;
|
||||
req.flugbahnberechnungDaten.zielkoordinate.koordinate.latitude = 53.37788;
|
||||
req.flugbahnberechnungDaten.zielkoordinate.koordinate.longitude = 8.7574;
|
||||
req.flugbahnberechnungDaten.waffensystem = ProjectDataManagement::L26_EffectingSystemType::RRohr;
|
||||
req.flugbahnberechnungDaten.winkelgruppe = AdlerJson::Winkelgruppe::Untere;
|
||||
}
|
||||
|
||||
void GenerateTelegrams::generateFlugbahndaten(AdlerJson::ExFlugbahndaten &req)
|
||||
{
|
||||
req.flugbahndaten.fehlercode = AdlerJson::FlugbahnberechnungFehlercode::Ok;
|
||||
req.flugbahndaten.zielkoordinate.hoehe = 56;
|
||||
req.flugbahndaten.zielkoordinate.koordinate.latitude = 52.482048;
|
||||
req.flugbahndaten.zielkoordinate.koordinate.longitude = 11.583;
|
||||
req.flugbahndaten.waffensystem = ProjectDataManagement::L26_EffectingSystemType::RRohr;
|
||||
req.flugbahndaten.flugzeit = 300;
|
||||
req.flugbahndaten.gipfelhoehe = 200;
|
||||
req.flugbahndaten.schussrichtung = 45;
|
||||
req.flugbahndaten.fallwinkel = 55;
|
||||
|
||||
AdlerJson::Flugbahnpunkt flugbahnpunkt;
|
||||
for (int i = 0; i < 30; ++i)
|
||||
{
|
||||
flugbahnpunkt.zeit += 1.0;
|
||||
flugbahnpunkt.xRelativ += 100;
|
||||
flugbahnpunkt.yRelativ += 200;
|
||||
flugbahnpunkt.zRelativ += 10;
|
||||
req.flugbahndaten.flugbahnpunkt.append(flugbahnpunkt);
|
||||
}
|
||||
for (int i = 0; i < 30; ++i)
|
||||
{
|
||||
flugbahnpunkt.zeit += 1.0;
|
||||
flugbahnpunkt.xRelativ -= 100;
|
||||
flugbahnpunkt.yRelativ -= 200;
|
||||
flugbahnpunkt.zRelativ -= 10;
|
||||
req.flugbahndaten.flugbahnpunkt.append(flugbahnpunkt);
|
||||
}
|
||||
|
||||
req.flugbahndaten.streuung.laengsstreuung = 2.2;
|
||||
req.flugbahndaten.streuung.seitenstreuung = 3.3;
|
||||
req.flugbahndaten.streuung.laengsstreuungH = 4.4;
|
||||
req.flugbahndaten.streuung.seitenstreuungH = 5.5;
|
||||
req.flugbahndaten.geschoss.geschosssorte = QStringLiteral("Spreng DM121");
|
||||
req.flugbahndaten.geschoss.ladung = QStringLiteral("M DM72");
|
||||
req.flugbahndaten.geschoss.ladungsNummer = 5;
|
||||
req.flugbahndaten.geschoss.zuender = QStringLiteral("Aufschlag DM241");
|
||||
req.flugbahndaten.geschoss.zuenderFunktion = QStringLiteral("AZoV");
|
||||
req.flugbahndaten.geschoss.zuenderZeit = 1000;
|
||||
}
|
||||
|
||||
void GenerateTelegrams::generateFreitextmeldung(AdlerJson::ExAqFreitextmeldung &req) { req.freitextDaten.text = QStringLiteral("Freier Text"); }
|
||||
+54
@@ -0,0 +1,54 @@
|
||||
#pragma once
|
||||
|
||||
#include "telegrams.h"
|
||||
|
||||
class GenerateTelegrams
|
||||
{
|
||||
public:
|
||||
GenerateTelegrams();
|
||||
|
||||
static void SAATELEGRAMS_EXPORT addHeaderData(AdlerJson::EXTelegramBase &tele, const int saaId, const QString referenceUuid = QString{});
|
||||
static void SAATELEGRAMS_EXPORT generateConnectResponseMessage(AdlerJson::ExAnmeldebestaetigung &exAnmeldebestaetigung);
|
||||
static void SAATELEGRAMS_EXPORT generateConnectMessage(AdlerJson::EXRegistration &exRegistration, int partyId, bool isVerbund = true);
|
||||
static void SAATELEGRAMS_EXPORT generateDisconnectMessage(AdlerJson::EXDeregistration &eXDeregistration, int partyId);
|
||||
static void SAATELEGRAMS_EXPORT generateStatusMessage(AdlerJson::EXStatus &exStatus, AdlerJson::Szenarstatus status);
|
||||
static void SAATELEGRAMS_EXPORT generateConnectionTestMessage();
|
||||
static void SAATELEGRAMS_EXPORT generateAbmeldung(AdlerJson::EXDeregistration &req);
|
||||
static void SAATELEGRAMS_EXPORT generateZeit1(AdlerJson::Zeitangabe_DTG &zeit);
|
||||
static void SAATELEGRAMS_EXPORT generateZeit2(AdlerJson::Zeitangabe_DTG &zeit);
|
||||
|
||||
|
||||
static void SAATELEGRAMS_EXPORT generateZieldaten(AdlerJson::Zieldaten &wzd);
|
||||
static void SAATELEGRAMS_EXPORT generateWirkmittelFeuerkommando_Gmlrs(QVector<AdlerJson::WirkmittelFeuerkommandoRakete> &wfr);
|
||||
static void SAATELEGRAMS_EXPORT generateEXFQBABBFK(AdlerJson::ExAwesPlanning &req);
|
||||
static void SAATELEGRAMS_EXPORT generateEXFQBABBFK_Gmlrs(AdlerJson::ExAwesPlanning &req);
|
||||
static void SAATELEGRAMS_EXPORT generateEXFQBABBFK_Dm72(AdlerJson::ExAwesPlanning &req);
|
||||
static void SAATELEGRAMS_EXPORT generateFeuerbereit(AdlerJson::ExFeuerbereit &req);
|
||||
static void SAATELEGRAMS_EXPORT generateFeuern(AdlerJson::ExFeuern &req);
|
||||
static void SAATELEGRAMS_EXPORT generateFeuern_Gmlrs(AdlerJson::ExFeuern &req);
|
||||
static void SAATELEGRAMS_EXPORT generateFeuern_Dm72(AdlerJson::ExFeuern &req);
|
||||
static void SAATELEGRAMS_EXPORT generateNichtFeuern(AdlerJson::exNichtFeuern &req);
|
||||
|
||||
static void SAATELEGRAMS_EXPORT generateAbgefeuert(AdlerJson::ExAbgefeuert &req);
|
||||
static void SAATELEGRAMS_EXPORT generateVollzugsmeldung(AdlerJson::ExVollzugsmeldung &req);
|
||||
|
||||
static void SAATELEGRAMS_EXPORT generateErkundungsergebnisse(AdlerJson::ExErkundungsergebnisse &req);
|
||||
static void SAATELEGRAMS_EXPORT generateFeuerkampf(AdlerJson::ExFeuerkampf &req);
|
||||
static void SAATELEGRAMS_EXPORT generateFeuerhalt(AdlerJson::ExFeuerhalt &req);
|
||||
static void SAATELEGRAMS_EXPORT generateStellungsmeldungFS(AdlerJson::ExFeuerstellungFS &req);
|
||||
static void SAATELEGRAMS_EXPORT generateStellungsmeldungWS(AdlerJson::ExFeuerstellungWS &req);
|
||||
static void SAATELEGRAMS_EXPORT generateStellungsmeldungWS_Gmlrs(AdlerJson::ExFeuerstellungWS &req);
|
||||
static void SAATELEGRAMS_EXPORT generateStellungsmeldungWS_Dm72(AdlerJson::ExFeuerstellungWS &req);
|
||||
static void SAATELEGRAMS_EXPORT generateStellungsmeldungLP(AdlerJson::ExFeuerstellungLP &req);
|
||||
static void SAATELEGRAMS_EXPORT generateStellungswechsel(AdlerJson::ExStellungswechsel &req);
|
||||
static void SAATELEGRAMS_EXPORT generateKoordinierungsmassnahmen(AdlerJson::ExHqKoordinierungsmassnahmen &req);
|
||||
static void SAATELEGRAMS_EXPORT generateKoordinierungsmassnahmen_EX_L25(AdlerJson::ExHqKoordinierungsmassnahmen &req,
|
||||
ProjectDataManagement::L25_KindGuidingLine kind, int i);
|
||||
static void SAATELEGRAMS_EXPORT generateFuehrungslinien(AdlerJson::ExHqFuehrungslinien &req);
|
||||
static void SAATELEGRAMS_EXPORT generateFuehrungslinien_EX_L24(AdlerJson::ExHqFuehrungslinien &req, AdlerJson::Art_L24 art24, int meldungsnummer);
|
||||
static void SAATELEGRAMS_EXPORT generateTechnischeQuittung(AdlerJson::ExTqTechnischeQuittung &req);
|
||||
static void SAATELEGRAMS_EXPORT generateFreitextmeldung(AdlerJson::ExAqFreitextmeldung &req);
|
||||
static void SAATELEGRAMS_EXPORT generateManuelleQuittung(AdlerJson::ExMqManuelleQuittung &req);
|
||||
static void SAATELEGRAMS_EXPORT generateFlugbahnberechnung(AdlerJson::ExFlugbahnberechnung &req);
|
||||
static void SAATELEGRAMS_EXPORT generateFlugbahndaten(AdlerJson::ExFlugbahndaten &req);
|
||||
};
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
#include "interface_controller.h"
|
||||
|
||||
InterfaceController::InterfaceController()
|
||||
{
|
||||
|
||||
}
|
||||
Loaded 100 of 343 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user