Compare commits
2
Commits
e748e82c84
...
7659b167d0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7659b167d0 | ||
|
|
a410019553 |
No files matched your search
+30
-1
@@ -171,8 +171,20 @@ std::vector<T> fromJson(const QVariant &jsonData, type<std::vector<T>>)
|
||||
return ret;
|
||||
}
|
||||
|
||||
// Primary fallback for any migrated plain-`enum class` enumerators that have no
|
||||
// explicit specialization below - most importantly the nested foreign
|
||||
// ProjectDataManagement / Core enums a plugin reads back from the database (they are
|
||||
// not in this service's idl_enums, so the per-own-enum specializations do not cover
|
||||
// them). Giving the primary template a body (rather than leaving it declaration-only)
|
||||
// is what lets those foreign-enum instantiations resolve, so the plugin .so links. The
|
||||
// explicit specializations for primitives / own enums / structs / vectors / optionals
|
||||
// all take precedence over this fallback, so it is only ever instantiated for an enum
|
||||
// type, where `static_cast<T>(val.toInt())` is the correct conversion.
|
||||
template<typename T>
|
||||
T fromQVariant(const QVariant &val, type<T>);
|
||||
T fromQVariant(const QVariant &val, type<T>)
|
||||
{
|
||||
return static_cast<T>(val.toInt());
|
||||
}
|
||||
|
||||
template<>
|
||||
bool fromQVariant(const QVariant &val, type<bool>)
|
||||
@@ -266,6 +278,23 @@ T fromQVariant(const QVariant &val)
|
||||
return fromQVariant(val, type<T>{});
|
||||
}
|
||||
|
||||
// rtiddsgen 7.7 spells the migrated enumerators as plain `enum class` in the service
|
||||
// namespace (the legacy dds::core::safe_enum<T> wrapper is gone). The record_replay
|
||||
// plugin still instantiates fromQVariant<Enum>() for each enum member it reads back,
|
||||
// and none of the generic overloads above are ever deduced for those types, so each of
|
||||
// this service's own enumerations needs its own explicit specialization. `idl_enums`
|
||||
// carries the service's own enumerations by local name and this block runs inside
|
||||
// `namespace {{ namespace }}`, so the local name resolves to the fully-qualified enum
|
||||
// type. (Nested foreign PDM enumerations are still not covered - same limitation as the
|
||||
// documented svcBuildings exclusion.)
|
||||
{% for enumeration in idl_enums %}
|
||||
template<>
|
||||
{{ enumeration.name }} fromQVariant(const QVariant &val, type<{{ enumeration.name }}>)
|
||||
{
|
||||
return static_cast<{{ enumeration.name }}>(val.toInt());
|
||||
}
|
||||
{% endfor %}
|
||||
|
||||
{% for dt in serializeTopics.member %}
|
||||
//
|
||||
// Begin {{ dt.typeFq }}
|
||||
|
||||
+1
-1
@@ -121,7 +121,7 @@ protected:
|
||||
int64_t m_snapshot{{ dt.name }}MapTime = -1; // time for which the snapshot is valid
|
||||
{% endif %} {% endfor %}
|
||||
|
||||
NGL::INGLLogger* m_logger;
|
||||
NGL::INGLLogger& m_logger;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -58,7 +58,7 @@ class GenericDtc
|
||||
bool takeAlive(TopicType& data) { return BaseClass::takeAlive(data); }
|
||||
bool takeDisposed(TopicType& data) { return BaseClass::takeDisposed(data); }
|
||||
bool hasSamples() const { return BaseClass::hasSamples(); }
|
||||
std::shared_ptr<DRO_OBJECT> dataReader() { return BaseClass::dataReader(); }
|
||||
DRO_OBJECT* dataReader() const override { return BaseClass::dataReader(); }
|
||||
bool waitForHistoricalData(int timeoutMSec) { return BaseClass::waitForHistoricalData(timeoutMSec); }
|
||||
};
|
||||
|
||||
@@ -81,7 +81,7 @@ class GenericDtcSampleInfo
|
||||
bool takeAlive(TopicType& data) { return BaseClass::takeAlive(data); }
|
||||
bool takeDisposed(TopicType& data) { return BaseClass::takeDisposed(data); }
|
||||
bool hasSamples() const { return BaseClass::hasSamples(); }
|
||||
std::shared_ptr<DRO_OBJECT> dataReader() { return BaseClass::dataReader(); }
|
||||
DRO_OBJECT* dataReader() const override { return BaseClass::dataReader(); }
|
||||
bool waitForHistoricalData(int timeoutMSec) { return BaseClass::waitForHistoricalData(timeoutMSec); }
|
||||
};
|
||||
|
||||
@@ -104,7 +104,7 @@ class Ddtc
|
||||
bool takeAlive(TopicType& data) { return BaseClass::takeAlive(data); }
|
||||
bool takeDisposed(TopicType& data) { return BaseClass::takeDisposed(data); }
|
||||
bool hasSamples() const { return BaseClass::hasSamples(); }
|
||||
std::shared_ptr<DRO_OBJECT> dataReader() { return BaseClass::dataReader(); }
|
||||
DRO_OBJECT* dataReader() const override { return BaseClass::dataReader(); }
|
||||
bool waitForHistoricalData(int timeoutMSec) { return BaseClass::waitForHistoricalData(timeoutMSec); }
|
||||
};
|
||||
|
||||
@@ -127,7 +127,7 @@ class DdtcSampleInfo
|
||||
bool takeAlive(TopicType& data) { return BaseClass::takeAlive(data); }
|
||||
bool takeDisposed(TopicType& data) { return BaseClass::takeDisposed(data); }
|
||||
bool hasSamples() const { return BaseClass::hasSamples(); }
|
||||
std::shared_ptr<DRO_OBJECT> dataReader() { return BaseClass::dataReader(); }
|
||||
DRO_OBJECT* dataReader() const override { return BaseClass::dataReader(); }
|
||||
bool waitForHistoricalData(int timeoutMSec) { return BaseClass::waitForHistoricalData(timeoutMSec); }
|
||||
};
|
||||
} // namespace DTC
|
||||
@@ -111,6 +111,17 @@ class GenericDtcImplSubscriberTemplate : public DDSGeneric::SubscriberListenerCa
|
||||
return ret;
|
||||
}
|
||||
|
||||
bool readAlive(TopicTypeRead& data) override final
|
||||
{
|
||||
auto samples = readAlive();
|
||||
if (samples.length() > 0)
|
||||
{
|
||||
data = samples[0].data();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
dds::sub::LoanedSamples<TopicTypeRead> takeAlive() const override final
|
||||
{
|
||||
if (!m_dataReaderObject)
|
||||
@@ -124,6 +135,17 @@ class GenericDtcImplSubscriberTemplate : public DDSGeneric::SubscriberListenerCa
|
||||
return ret;
|
||||
}
|
||||
|
||||
bool takeAlive(TopicTypeRead& data) override final
|
||||
{
|
||||
auto samples = takeAlive();
|
||||
if (samples.length() > 0)
|
||||
{
|
||||
data = samples[0].data();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
dds::sub::LoanedSamples<TopicTypeRead> takeDisposed() const override final
|
||||
{
|
||||
if (!m_dataReaderObject)
|
||||
@@ -132,6 +154,17 @@ class GenericDtcImplSubscriberTemplate : public DDSGeneric::SubscriberListenerCa
|
||||
return m_dataReaderObject->takeDisposed();
|
||||
}
|
||||
|
||||
bool takeDisposed(TopicTypeRead& data) override final
|
||||
{
|
||||
auto samples = takeDisposed();
|
||||
if (samples.length() > 0)
|
||||
{
|
||||
data = samples[0].data();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool hasSamples() const override final
|
||||
{
|
||||
if (!m_dataReaderObject)
|
||||
|
||||
+1
@@ -2,6 +2,7 @@
|
||||
|
||||
|
||||
#include "vwm_api.h"
|
||||
#include <TrainingAreaBase/logger.h>
|
||||
#include <utility>
|
||||
#include "vwm_deposition.h"
|
||||
#include "vwm_xml_reader.h"
|
||||
|
||||
+1
@@ -2,6 +2,7 @@
|
||||
|
||||
|
||||
#include "vwm_building.h"
|
||||
#include <TrainingAreaBase/logger.h>
|
||||
#include <utility>
|
||||
#include "vwm_math.h"
|
||||
#include <QtCore/QSet>
|
||||
|
||||
+1
@@ -2,6 +2,7 @@
|
||||
|
||||
|
||||
#include "vwm_building_room_geometry.h"
|
||||
#include <TrainingAreaBase/logger.h>
|
||||
#include "bcu_xml_reader.h"
|
||||
|
||||
#include <LtsUtils/LtsUtilsCore/qpoint3d.h>
|
||||
|
||||
+1
@@ -2,6 +2,7 @@
|
||||
|
||||
|
||||
#include "vwm_math.h"
|
||||
#include <TrainingAreaBase/logger.h>
|
||||
#include <utility>
|
||||
|
||||
#include <logger.h>
|
||||
|
||||
+1
@@ -1,6 +1,7 @@
|
||||
|
||||
|
||||
#include "vwm_state_store.h"
|
||||
#include <TrainingAreaBase/logger.h>
|
||||
#include <utility>
|
||||
#include <logger.h>
|
||||
#include <QtCore/QJsonDocument>
|
||||
|
||||
+1
@@ -3,6 +3,7 @@
|
||||
|
||||
|
||||
#include "vwm_xml_reader.h"
|
||||
#include <TrainingAreaBase/logger.h>
|
||||
#include "vwm_building_room_geometry.h"
|
||||
#include <logger.h>
|
||||
#include <QtCore/QFile>
|
||||
|
||||
+1
@@ -2,6 +2,7 @@
|
||||
|
||||
#include "connection_handler.h"
|
||||
#include <utility>
|
||||
#include <NGLLogger/NGLLoggerBootstrap.h>
|
||||
|
||||
#include "client_connection.h"
|
||||
|
||||
|
||||
+1
@@ -4,6 +4,7 @@
|
||||
#include "message_transmitter.h"
|
||||
#include "client_message.h"
|
||||
#include <memory>
|
||||
#include <NGLLogger/NGLLoggerBootstrap.h>
|
||||
|
||||
namespace CombatNetRadio
|
||||
{
|
||||
|
||||
+2
@@ -7,6 +7,7 @@
|
||||
#include "Messages/message_transmitter.h"
|
||||
#include "dds_handler.h"
|
||||
#include "exercise_manager.h"
|
||||
#include <NGLLogger/NGLLoggerBootstrap.h>
|
||||
|
||||
namespace CombatNetRadio
|
||||
{
|
||||
@@ -17,6 +18,7 @@ WebSocketInterfaceHandler::WebSocketInterfaceHandler(ExerciseManager *exerciseMa
|
||||
: m_exerciseManager(exerciseManager)
|
||||
, m_connectionHandler(nullptr)
|
||||
, m_messageHandler(nullptr)
|
||||
, m_logger(NGL::NGLLoggerBootstrap::getNGLRootLogger())
|
||||
{
|
||||
Q_ASSERT(exerciseManager);
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ bool CheckmkHandler::initialize(const QString &checkMkServerHostname, int checkM
|
||||
}
|
||||
|
||||
connect(m_socket, &QTcpSocket::stateChanged, this, &CheckmkHandler::onStateChanged);
|
||||
connect(m_socket, qOverload<QAbstractSocket::SocketError>(&QAbstractSocket::error),
|
||||
connect(m_socket, &QAbstractSocket::errorOccurred,
|
||||
this, &CheckmkHandler::onSocketError);
|
||||
|
||||
connect(m_socket, &QTcpSocket::connected,
|
||||
|
||||
+1
-1
@@ -51,7 +51,7 @@ bool CheckmkHandlerScheduleCheck::initialize(const QString &checkMkServerHostnam
|
||||
}
|
||||
|
||||
connect(m_socket, &QTcpSocket::stateChanged, this, &CheckmkHandlerScheduleCheck::onStateChanged);
|
||||
connect(m_socket, qOverload<QAbstractSocket::SocketError>(&QAbstractSocket::error),
|
||||
connect(m_socket, &QAbstractSocket::errorOccurred,
|
||||
this, &CheckmkHandlerScheduleCheck::onSocketError);
|
||||
|
||||
connect(m_socket, &QTcpSocket::connected,
|
||||
|
||||
@@ -127,6 +127,11 @@ CODEGEN_SERVER_TOPICS(SRCS_server ${xml_FILE})
|
||||
CODEGEN_SQL(SRCS_server ${xml_FILE})
|
||||
|
||||
NGL_ADD_LIBRARY2(AAR SV svcGnaServer SHARED ${SRCS_server})
|
||||
# NGL_ADD_LIBRARY2 (unlike NGL_ADD_LIBRARY) does not define the
|
||||
# MAKE_<SYMBOL>_LIB compile guard, but the generated gna_[d|f]ts_impl.h
|
||||
# headers that this target compiles carry such a guard — same situation as
|
||||
# svcGnaClient, which defines MAKE_SVCGNACLIENT_LIB explicitly for the same reason.
|
||||
TARGET_COMPILE_DEFINITIONS(svcGnaServer PRIVATE MAKE_SVCGNASERVER_LIB)
|
||||
NGL_TARGET_LINK_LIBRARIES(svcGnaServer
|
||||
PRIVATE
|
||||
ddsfts
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
#include "dds_handler.h"
|
||||
#include <TrainingAreaBase/tab_dts.h>
|
||||
#include <DDS/DTS/generic_dts.h>
|
||||
#include <NGLLogger/NGLLoggerBootstrap.h>
|
||||
|
||||
namespace GuezNasat
|
||||
{
|
||||
@@ -12,7 +13,8 @@ namespace GuezNasat
|
||||
|
||||
|
||||
Participant2Dds::Participant2Dds(const dds::domain::DomainParticipant &domainParticipant, int exerciseId)
|
||||
: m_ddsConnector(new DDSConnector::DdsConnector(domainParticipant, IDL::PartitionType::Exercise, exerciseId))
|
||||
: m_logger(NGL::NGLLoggerBootstrap::getNGLRootLogger())
|
||||
, m_ddsConnector(new DDSConnector::DdsConnector(domainParticipant, IDL::PartitionType::Exercise, exerciseId))
|
||||
{
|
||||
m_ddsConnector->initPublisherSubscriber();
|
||||
m_ppmDtc = ParticipantManagement::Interface::Dtc::create(m_ddsConnector);
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#include <ExerciseManagement/exm_dtc.h>
|
||||
#include <AreaEffectSimulation/aes_ftc.h>
|
||||
#include <ParticipantManagement/ppm.hpp>
|
||||
#include <ParticipantManagement/ppm_dtc.h>
|
||||
#include <ProjectDataManagement/pdm_dtc.h>
|
||||
#include <TrainingAreaBase/tab_dts.h>
|
||||
#include <QtCore/QHash>
|
||||
|
||||
@@ -33,6 +33,7 @@ NasatAircraft fromDb(const Database::NasatAircraft &db)
|
||||
HandlerNasatAircraft::HandlerNasatAircraft(Initialization *mainHandler)
|
||||
: QObject()
|
||||
, Interface::Fts::ModifyNasatAircraftRequestHandler(mainHandler->dds()->fts())
|
||||
, m_logger(getLogger("HandlerNasatAircraft"))
|
||||
, m_mainHandler(mainHandler)
|
||||
, m_dts(mainHandler->dds()->dts())
|
||||
, m_fts(mainHandler->dds()->fts())
|
||||
|
||||
+1
@@ -35,6 +35,7 @@ NasatAircraftParticipant fromDb(const Database::NasatAircraftParticipant &db)
|
||||
HandlerNasatAircraftParticipant::HandlerNasatAircraftParticipant(Initialization *mainHandler)
|
||||
: QObject()
|
||||
, Interface::Fts::ModifyNasatAircraftParticipantRequestHandler(mainHandler->dds()->fts())
|
||||
, m_logger(getLogger("HandlerNasatAircraftParticipant"))
|
||||
, m_mainHandler(mainHandler)
|
||||
, m_dts(mainHandler->dds()->dts())
|
||||
, m_fts(mainHandler->dds()->fts())
|
||||
|
||||
@@ -21,6 +21,7 @@ namespace GuezNasat
|
||||
{
|
||||
HandlerNasatImpact::HandlerNasatImpact(Initialization *mainHandler)
|
||||
: AreaEffectSimulation::Interface::Ftc::AirSupportImpactModifyReplyHandler()
|
||||
, m_logger(getLogger("HandlerNasatImpact"))
|
||||
, m_mainHandler(mainHandler)
|
||||
{
|
||||
TRACE_LOG(m_logger) << Q_FUNC_INFO << " START";
|
||||
|
||||
@@ -15,7 +15,8 @@
|
||||
namespace GuezNasat
|
||||
{
|
||||
HandlerNasatNineLiner::HandlerNasatNineLiner(Initialization *mainHandler)
|
||||
: m_mainHandler(mainHandler)
|
||||
: m_logger(getLogger("HandlerNasatNineLiner"))
|
||||
, m_mainHandler(mainHandler)
|
||||
{}
|
||||
|
||||
bool HandlerNasatNineLiner::init() const
|
||||
@@ -38,8 +39,8 @@ static Nasat9Liner createDds9Liner(const NasatNineLiner &nasatNineLiner)
|
||||
nl.sampleTime = tsMSec;
|
||||
|
||||
if (nasatNineLiner.initialPointMode != 0)
|
||||
nl.initialPoint(Core::GeoPosition2D(LtsCoordTrans::deg2rad() * nasatNineLiner.initialPoint.lon,
|
||||
LtsCoordTrans::deg2rad() * nasatNineLiner.initialPoint.lat));
|
||||
nl.initialPoint = Core::GeoPosition2D(LtsCoordTrans::deg2rad() * nasatNineLiner.initialPoint.lon,
|
||||
LtsCoordTrans::deg2rad() * nasatNineLiner.initialPoint.lat);
|
||||
|
||||
if (nasatNineLiner.heading2InitialPointMode != Heading2InitialPointMode::Undefined)
|
||||
{
|
||||
@@ -60,9 +61,9 @@ static Nasat9Liner createDds9Liner(const NasatNineLiner &nasatNineLiner)
|
||||
if (nasatNineLiner.targetPositionMode != 0)
|
||||
{
|
||||
const auto z = nasatNineLiner.altitudeTargetMode != 0 ? nasatNineLiner.altitudeTarget : -1;
|
||||
nl.targetPosition(Core::GeoPosition(LtsCoordTrans::deg2rad() * nasatNineLiner.targetPosition.lon,
|
||||
LtsCoordTrans::deg2rad() * nasatNineLiner.targetPosition.lat,
|
||||
z));
|
||||
nl.targetPosition = Core::GeoPosition(LtsCoordTrans::deg2rad() * nasatNineLiner.targetPosition.lon,
|
||||
LtsCoordTrans::deg2rad() * nasatNineLiner.targetPosition.lat,
|
||||
z);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -25,7 +25,8 @@ NasatAircraftParticipantEx::NasatAircraftParticipantEx()
|
||||
}
|
||||
|
||||
NasatAircraftParticipantEx::NasatAircraftParticipantEx(const NasatAircraftParticipant &nap, const std::shared_ptr<Participant2Dds> &publisher)
|
||||
: m_nap(nap)
|
||||
: m_logger(getLogger("NasatAircraftParticipantEx"))
|
||||
, m_nap(nap)
|
||||
, m_publisher(publisher)
|
||||
{
|
||||
DEBUG_LOG(m_logger) << Q_FUNC_INFO << " START";
|
||||
|
||||
@@ -22,7 +22,7 @@ class AbstractSocketHandler;
|
||||
using DbHandler = NGLDB::DbServiceHandler<DatabaseInterface>;
|
||||
class HandlerCodificationData;
|
||||
|
||||
class GNA_SERVER_EXPORT Initialization final
|
||||
class SVCGNASERVER_EXPORT Initialization final
|
||||
{
|
||||
public:
|
||||
Initialization();
|
||||
|
||||
@@ -15,7 +15,7 @@ namespace GuezNasat
|
||||
{
|
||||
namespace Settings
|
||||
{
|
||||
GNA_SERVER_EXPORT void setIniFile(const QString &ini);
|
||||
SVCGNASERVER_EXPORT void setIniFile(const QString &ini);
|
||||
NGL::Settings *settings();
|
||||
quint16 socketListenPort();
|
||||
bool useWebSocket();
|
||||
|
||||
@@ -297,6 +297,14 @@ NGL_TARGET_LINK_LIBRARIES(svcTrainingAreaBase
|
||||
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
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@
|
||||
|
||||
#include <TrainingAreaBase/tab_record_replay_plugin.h>
|
||||
|
||||
#include <../../Common/PluginInterfaces/record_replay_plugin.h>
|
||||
#include <Common/PluginInterfaces/record_replay_plugin.h>
|
||||
|
||||
namespace TrainingAreaBase
|
||||
{
|
||||
|
||||
@@ -4,7 +4,8 @@
|
||||
#include "canag_handler.h"
|
||||
|
||||
#include <LtsUtils/LtsUtilsCore/dds_vector.h>
|
||||
#include <LtsUtils/qbytearray_byteaccess.h>
|
||||
#include <LtsUtilsCore/qbytearray_byteaccess.h>
|
||||
#include <NGLLogger/NGLLoggerBootstrap.h>
|
||||
|
||||
#include "connection_handler.h"
|
||||
#include "main_handler.h"
|
||||
@@ -222,7 +223,8 @@ void TxDdlHandler::sendAbort(quint8 error)
|
||||
}
|
||||
|
||||
RxDdlHandler::RxDdlHandler(bool isMultiplexed)
|
||||
: m_isMultiplexed(isMultiplexed)
|
||||
: m_logger(NGL::NGLLoggerBootstrap::getNGLRootLogger())
|
||||
, m_isMultiplexed(isMultiplexed)
|
||||
{}
|
||||
|
||||
void RxDdlHandler::process(const QByteArray &data)
|
||||
@@ -333,7 +335,8 @@ void RxDdlHandler::sendDPConfirmation(const quint32 ccs, const quint32 toggle, c
|
||||
}
|
||||
|
||||
CanagHandler::CanagHandler(MainHandler *mainHandler)
|
||||
: m_mainHandler(mainHandler)
|
||||
: m_logger(NGL::NGLLoggerBootstrap::getNGLRootLogger())
|
||||
, m_mainHandler(mainHandler)
|
||||
, m_connectionHandler(mainHandler->connectionHandler())
|
||||
, m_rxHandler(mainHandler->rxHandler())
|
||||
, m_freeText(QByteArray())
|
||||
|
||||
@@ -91,6 +91,7 @@ signals:
|
||||
private:
|
||||
void sendDPConfirmation(const quint32 ccs, const quint32 toggle, const quint32 wirkfeldMultiplex = 0);
|
||||
|
||||
NGL::INGLLogger &m_logger;
|
||||
bool m_isMultiplexed = false;
|
||||
DdlState m_state = DdlState::NotStarted;
|
||||
|
||||
@@ -186,6 +187,7 @@ private:
|
||||
WakeUpSfm = 1773
|
||||
};
|
||||
|
||||
NGL::INGLLogger &m_logger;
|
||||
MainHandler *m_mainHandler;
|
||||
std::shared_ptr<ConnectionHandler> m_connectionHandler;
|
||||
std::shared_ptr<HandlerAesData> m_handlerAesData;
|
||||
|
||||
@@ -3,16 +3,20 @@
|
||||
|
||||
#include "connection_handler.h"
|
||||
|
||||
#include <NGLLogger/NGLLoggerBootstrap.h>
|
||||
|
||||
namespace TrainingAreaBaseOC
|
||||
{
|
||||
|
||||
#ifdef GUEZ_MODE
|
||||
ConnectionHandler::ConnectionHandler()
|
||||
: ConnectionHandlerSerial()
|
||||
, m_logger(NGL::NGLLoggerBootstrap::getNGLRootLogger())
|
||||
{}
|
||||
#else
|
||||
ConnectionHandler::ConnectionHandler()
|
||||
: ConnectionHandlerTcpTtci()
|
||||
, m_logger(NGL::NGLLoggerBootstrap::getNGLRootLogger())
|
||||
{}
|
||||
#endif
|
||||
|
||||
|
||||
+2
@@ -5,6 +5,8 @@
|
||||
|
||||
#include <QtCore/QTimer>
|
||||
|
||||
#include <NGLLogger/NGLLoggerBootstrap.h>
|
||||
|
||||
#include "settings.h"
|
||||
|
||||
namespace TrainingAreaBaseOC
|
||||
|
||||
+3
-1
@@ -5,6 +5,8 @@
|
||||
|
||||
#include <QtCore/QTimer>
|
||||
|
||||
#include <NGLLogger/NGLLoggerBootstrap.h>
|
||||
|
||||
#include "settings.h"
|
||||
|
||||
namespace TrainingAreaBaseOC
|
||||
@@ -28,7 +30,7 @@ bool ConnectionHandlerTcp::init()
|
||||
m_socket = new QTcpSocket();
|
||||
|
||||
connect(m_socket, &QTcpSocket::readyRead, this, &ConnectionHandlerTcp::read);
|
||||
connect(m_socket, QOverload<QAbstractSocket::SocketError>::of(&QAbstractSocket::error), this, &ConnectionHandlerTcp::handleError);
|
||||
connect(m_socket, &QAbstractSocket::errorOccurred, this, &ConnectionHandlerTcp::handleError);
|
||||
connect(m_socket, &QTcpSocket::disconnected, this, &ConnectionHandlerTcp::open);
|
||||
connect(m_socket, &QTcpSocket::disconnected, this, &ConnectionHandlerTcp::disconnectedFromEq);
|
||||
open();
|
||||
|
||||
+2
@@ -9,6 +9,8 @@
|
||||
|
||||
#include <QtCore/QTimer>
|
||||
|
||||
#include <NGLLogger/NGLLoggerBootstrap.h>
|
||||
|
||||
using namespace NGL;
|
||||
|
||||
namespace TrainingAreaBaseOC
|
||||
|
||||
@@ -62,7 +62,7 @@ bool DdsHandler::init(const QStringList &qosFileList)
|
||||
|
||||
qint64 DdsHandler::currentPartitionTime() const
|
||||
{
|
||||
return m_dtcCore->partitionTime().timeStamp();
|
||||
return m_dtcCore->partitionTime().timeStamp;
|
||||
}
|
||||
|
||||
} // Namespace PDM
|
||||
+162
-159
@@ -6,7 +6,9 @@
|
||||
#include <utility>
|
||||
#include <QtCore/QPointF>
|
||||
|
||||
#include <LtsUtils/qbytearray_byteaccess.h>
|
||||
#include <LtsUtilsCore/qbytearray_byteaccess.h>
|
||||
|
||||
#include <NGLLogger/NGLLoggerBootstrap.h>
|
||||
|
||||
#include "handler_aes_data.h"
|
||||
#include "settings.h"
|
||||
@@ -33,6 +35,7 @@ HandlerAesData::HandlerAesData(const std::shared_ptr<DdsHandler> &dds,
|
||||
, m_aesFtc(aesFtc)
|
||||
, m_pdmDtc(pdmDtc)
|
||||
, m_utmCoord(LtsCoordTrans::UtmCoordinate::fromMgrs(Settings::baseCoord()))
|
||||
, m_logger(NGL::NGLLoggerBootstrap::getNGLRootLogger())
|
||||
{
|
||||
}
|
||||
|
||||
@@ -262,28 +265,28 @@ template <typename T> static inline void getBasicData(const QByteArray &data, si
|
||||
uint64_t tmp;
|
||||
|
||||
LtsUtils::get2Byte(data, pos, tmp);
|
||||
req.id(tmp);
|
||||
req.name(data.mid(pos, 8).toStdString());
|
||||
QString name = QString::fromStdString(req.name());
|
||||
req.id = tmp;
|
||||
req.name = data.mid(pos, 8).toStdString();
|
||||
QString name = QString::fromStdString(req.name);
|
||||
|
||||
name = name.replace(QRegularExpression(QStringLiteral("[^ -~]")), QLatin1String(""));
|
||||
name = name.trimmed();
|
||||
if (!name.isEmpty())
|
||||
req.name(name.toStdString());
|
||||
req.name = name.toStdString();
|
||||
|
||||
pos += 8;
|
||||
LtsUtils::get1Byte(data, pos, tmp);
|
||||
if (tmp != 0)
|
||||
req.partyId(dds::core::optional<int32_t>(tmp));
|
||||
req.partyId = dds::core::optional<int32_t>(tmp);
|
||||
else
|
||||
req.partyId(dds::core::optional<int32_t>());
|
||||
req.partyId = dds::core::optional<int32_t>();
|
||||
if (!withoutEffectStart)
|
||||
{
|
||||
LtsUtils::get4Byte(data, pos, tmp);
|
||||
if (tmp != 0)
|
||||
req.effectStart(dds::core::optional<rti::core::int64>(tmp * 1000));
|
||||
req.effectStart = dds::core::optional<rti::core::int64>(tmp * 1000);
|
||||
else
|
||||
req.effectStart(dds::core::optional<rti::core::int64>());
|
||||
req.effectStart = dds::core::optional<rti::core::int64>();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -310,7 +313,7 @@ void HandlerAesData::bcContaminations(const QByteArray &data)
|
||||
LtsUtils::get1Byte(data, pos, cnt);
|
||||
|
||||
AreaEffectSimulation::BCContaminationModifyRequest req;
|
||||
req.weatherSource(AreaEffectSimulation::AesWeatherSource::AwsNoUpdate);
|
||||
req.weatherSource = AreaEffectSimulation::AesWeatherSource::AwsNoUpdate;
|
||||
uint64_t tmp;
|
||||
int x = 0, y = 0;
|
||||
|
||||
@@ -318,41 +321,41 @@ void HandlerAesData::bcContaminations(const QByteArray &data)
|
||||
{
|
||||
getBasicData(data, pos, req);
|
||||
LtsUtils::get1Byte(data, pos, tmp);
|
||||
req.effectDuration(tmp * 60 * 1000);
|
||||
LtsUtils::get3Byte(data, pos, y);
|
||||
LtsUtils::get3Byte(data, pos, x);
|
||||
req.impactPosition(relativeToGeoPosition(x, y));
|
||||
req.effectDuration = tmp * 60 * 1000;
|
||||
LtsUtils::get3Byte(data, pos, y);
|
||||
LtsUtils::get3Byte(data, pos, x);
|
||||
req.impactPosition = relativeToGeoPosition(x, y);
|
||||
LtsUtils::get2Byte(data, pos, tmp);
|
||||
req.impactRadius(tmp);
|
||||
LtsUtils::get1Byte(data, pos, tmp);
|
||||
LtsUtils::get2Byte(data, pos, tmp);
|
||||
req.propagationDirection(dds::core::optional<double>(compassToMathAngleForSfm(tmp)));
|
||||
LtsUtils::get1Byte(data, pos, tmp);
|
||||
req.windSpeed(dds::core::optional<double>(tmp));
|
||||
LtsUtils::get4Byte(data, pos, tmp);
|
||||
req.weatherTimestamp(dds::core::optional<rti::core::int64>(tmp * 1000));
|
||||
LtsUtils::get3Byte(data, pos, y);
|
||||
LtsUtils::get3Byte(data, pos, x);
|
||||
req.weatherPosition(dds::core::optional<Core::GeoPosition2D>(relativeToGeoPosition(x, y)));
|
||||
req.impactRadius = tmp;
|
||||
LtsUtils::get1Byte(data, pos, tmp);
|
||||
LtsUtils::get2Byte(data, pos, tmp);
|
||||
req.propagationDirection = dds::core::optional<double>(compassToMathAngleForSfm(tmp));
|
||||
LtsUtils::get1Byte(data, pos, tmp);
|
||||
req.windSpeed = dds::core::optional<double>(tmp);
|
||||
LtsUtils::get4Byte(data, pos, tmp);
|
||||
req.weatherTimestamp = dds::core::optional<rti::core::int64>(tmp * 1000);
|
||||
LtsUtils::get3Byte(data, pos, y);
|
||||
LtsUtils::get3Byte(data, pos, x);
|
||||
req.weatherPosition = dds::core::optional<Core::GeoPosition2D>(relativeToGeoPosition(x, y));
|
||||
LtsUtils::get1Byte(data, pos, tmp);
|
||||
req.chargeTypeId = chargeTypeIdFromChargeTasCode(ProjectDataManagement::GearClass::GearClass_Chemical, tmp);
|
||||
if (req.chargeTypeId == 0)
|
||||
req.chargeTypeId = chargeTypeIdFromChargeTasCode(ProjectDataManagement::GearClass::GearClass_Biological, tmp);
|
||||
LtsUtils::get1Byte(data, pos, tmp);
|
||||
req.chargeTypeId(chargeTypeIdFromChargeTasCode(ProjectDataManagement::GearClass::Chemical, tmp));
|
||||
if (req.chargeTypeId() == 0)
|
||||
req.chargeTypeId(chargeTypeIdFromChargeTasCode(ProjectDataManagement::GearClass::Biological, tmp));
|
||||
LtsUtils::get1Byte(data, pos, tmp);
|
||||
|
||||
DEBUG_LOG(m_logger) << (aesToBeDeleted.contains(req.id()) ? "Modifying " : "Creating ") << "BC contamination: " << req;
|
||||
DEBUG_LOG(m_logger) << (aesToBeDeleted.contains(req.id) ? "Modifying " : "Creating ") << "BC contamination: " << req;
|
||||
|
||||
aesToBeDeleted.removeAll(req.id());
|
||||
req.id(req.id() * -1);
|
||||
aesToBeDeleted.removeAll(req.id);
|
||||
req.id = req.id * -1;
|
||||
|
||||
m_aesFtc->bCContaminationModifyRequest(req, this);
|
||||
}
|
||||
|
||||
for (int id : std::as_const(aesToBeDeleted))
|
||||
{
|
||||
if (m_aesDtc->bCContamination(id).isCentral())
|
||||
if (m_aesDtc->bCContamination(id).isCentral)
|
||||
continue;
|
||||
if (m_aesDtc->bCContamination(id).effectStateId().underlying() > AreaEffectSimulation::AesEffectState::EsRemoved)
|
||||
if (m_aesDtc->bCContamination(id).effectStateId > AreaEffectSimulation::AesEffectState::EsRemoved)
|
||||
{
|
||||
DEBUG_LOG(m_logger) << "Removing BC contamination id: " << id;
|
||||
m_aesFtc->bCContaminationRemoveRequest(Core::RemoveElementRequest(id), this);
|
||||
@@ -377,78 +380,78 @@ void HandlerAesData::explosionAreas(const QByteArray &data)
|
||||
|
||||
for (int i = 0; i < cnt; ++i)
|
||||
{
|
||||
|
||||
LtsUtils::get2Byte(data, pos, tmp);
|
||||
req.id(tmp);
|
||||
|
||||
req.name(data.mid(pos, 8).toStdString());
|
||||
QString name = QString::fromStdString(req.name());
|
||||
|
||||
LtsUtils::get2Byte(data, pos, tmp);
|
||||
req.id = tmp;
|
||||
|
||||
req.name = data.mid(pos, 8).toStdString();
|
||||
QString name = QString::fromStdString(req.name);
|
||||
|
||||
name = name.replace(QRegularExpression(QStringLiteral("[^ -~]")), QLatin1String(""));
|
||||
name = name.trimmed();
|
||||
if (!name.isEmpty())
|
||||
req.name(name.toStdString());
|
||||
req.name = name.toStdString();
|
||||
|
||||
pos += 8;
|
||||
LtsUtils::get1Byte(data, pos, tmp);
|
||||
req.partyId(tmp);
|
||||
|
||||
LtsUtils::get4Byte(data, pos, tmp);
|
||||
req.effectStart(tmp * 1000);
|
||||
|
||||
LtsUtils::get2Byte(data, pos, tmp);
|
||||
req.effectDuration(tmp * 1000);
|
||||
|
||||
|
||||
AreaEffectSimulation::Area area;
|
||||
LtsUtils::get3Byte(data, pos, y);
|
||||
LtsUtils::get3Byte(data, pos, x);
|
||||
area.cornerBottomLeft(relativeToGeoPosition(x, y));
|
||||
LtsUtils::get1Byte(data, pos, tmp);
|
||||
area.width(tmp * 5);
|
||||
LtsUtils::get1Byte(data, pos, tmp);
|
||||
area.height(tmp * 5);
|
||||
req.partyId = tmp;
|
||||
|
||||
LtsUtils::get4Byte(data, pos, tmp);
|
||||
req.effectStart = tmp * 1000;
|
||||
|
||||
LtsUtils::get2Byte(data, pos, tmp);
|
||||
area.rotation(mathToCompassAngle(tmp + 9000));
|
||||
req.area(area);
|
||||
req.effectDuration = tmp * 1000;
|
||||
|
||||
LtsUtils::get2Byte(data, pos, tmp);
|
||||
|
||||
LtsUtils::get2Byte(data, pos, tmp);
|
||||
req.mhpRotation(mathToCompassAngle(tmp + 9000));
|
||||
AreaEffectSimulation::Area area;
|
||||
LtsUtils::get3Byte(data, pos, y);
|
||||
LtsUtils::get3Byte(data, pos, x);
|
||||
area.cornerBottomLeft = relativeToGeoPosition(x, y);
|
||||
LtsUtils::get1Byte(data, pos, tmp);
|
||||
area.width = tmp * 5;
|
||||
LtsUtils::get1Byte(data, pos, tmp);
|
||||
area.height = tmp * 5;
|
||||
LtsUtils::get2Byte(data, pos, tmp);
|
||||
area.rotation = mathToCompassAngle(tmp + 9000);
|
||||
req.area = area;
|
||||
|
||||
LtsUtils::get2Byte(data, pos, tmp);
|
||||
req.impactCount(tmp);
|
||||
LtsUtils::get2Byte(data, pos, tmp);
|
||||
|
||||
LtsUtils::get2Byte(data, pos, tmp);
|
||||
LtsUtils::get2Byte(data, pos, tmp);
|
||||
req.mhpRotation = mathToCompassAngle(tmp + 9000);
|
||||
|
||||
LtsUtils::get1Byte(data, pos, tmp);
|
||||
req.chargeStruct().chargeTypeId(chargeTypeIdFromChargeTasCode(ProjectDataManagement::GearClass::Artillery, tmp));
|
||||
if (req.chargeStruct().chargeTypeId() == 0)
|
||||
req.chargeStruct().chargeTypeId(chargeTypeIdFromChargeTasCode(ProjectDataManagement::GearClass::Mortar, tmp));
|
||||
if (req.chargeStruct().chargeTypeId() == 0)
|
||||
req.chargeStruct().chargeTypeId(chargeTypeIdFromChargeTasCode(ProjectDataManagement::GearClass::AirSupport, tmp));
|
||||
LtsUtils::get2Byte(data, pos, tmp);
|
||||
req.impactCount = tmp;
|
||||
|
||||
LtsUtils::get2Byte(data, pos, tmp);
|
||||
LtsUtils::get2Byte(data, pos, tmp);
|
||||
|
||||
LtsUtils::get1Byte(data, pos, tmp);
|
||||
req.mhpCount(tmp);
|
||||
LtsUtils::get1Byte(data, pos, tmp);
|
||||
req.chargeStruct.chargeTypeId = chargeTypeIdFromChargeTasCode(ProjectDataManagement::GearClass::GearClass_Artillery, tmp);
|
||||
if (req.chargeStruct.chargeTypeId == 0)
|
||||
req.chargeStruct.chargeTypeId = chargeTypeIdFromChargeTasCode(ProjectDataManagement::GearClass::GearClass_Mortar, tmp);
|
||||
if (req.chargeStruct.chargeTypeId == 0)
|
||||
req.chargeStruct.chargeTypeId = chargeTypeIdFromChargeTasCode(ProjectDataManagement::GearClass::GearClass_AirSupport, tmp);
|
||||
|
||||
|
||||
for (int32_t mhpCounter = 0; mhpCounter < req.mhpCount(); ++mhpCounter)
|
||||
LtsUtils::get2Byte(data, pos, tmp);
|
||||
|
||||
LtsUtils::get1Byte(data, pos, tmp);
|
||||
req.mhpCount = tmp;
|
||||
|
||||
|
||||
for (int32_t mhpCounter = 0; mhpCounter < req.mhpCount; ++mhpCounter)
|
||||
{
|
||||
LtsUtils::get3Byte(data, pos, tmp);
|
||||
LtsUtils::get3Byte(data, pos, tmp);
|
||||
}
|
||||
|
||||
DEBUG_LOG(m_logger) << "New ExplosionClusterOcModifyRequest: "
|
||||
<< "\nid:" << req.id() << "\nname:" << req.name() << "\neffectStart:" << req.effectStart() << "\neffectDuration:" << req.effectDuration()
|
||||
<< "\narea:" << req.area() << "\nmhpCount:" << req.mhpCount() << "\nmhpRotation:" << req.mhpRotation() << "\nimpactCount:" << req.impactCount()
|
||||
<< "\nchargeTypeId:" << req.chargeStruct().chargeTypeId() << "\npartyId:" << req.partyId();
|
||||
<< "\nid:" << req.id << "\nname:" << req.name << "\neffectStart:" << req.effectStart << "\neffectDuration:" << req.effectDuration
|
||||
<< "\narea:" << req.area << "\nmhpCount:" << req.mhpCount << "\nmhpRotation:" << req.mhpRotation << "\nimpactCount:" << req.impactCount
|
||||
<< "\nchargeTypeId:" << req.chargeStruct.chargeTypeId << "\npartyId:" << req.partyId;
|
||||
|
||||
DEBUG_LOG(m_logger) << (aesToBeDeleted.contains(req.id()) ? "Modifying " : "Creating ") << "explosion cluster: " << req;
|
||||
aesToBeDeleted.removeOne(req.id());
|
||||
req.id(req.id() * -1);
|
||||
DEBUG_LOG(m_logger) << (aesToBeDeleted.contains(req.id) ? "Modifying " : "Creating ") << "explosion cluster: " << req;
|
||||
aesToBeDeleted.removeOne(req.id);
|
||||
req.id = req.id * -1;
|
||||
|
||||
m_aesFtc->explosionClusterOcModifyRequest(req, this);
|
||||
}
|
||||
@@ -457,14 +460,14 @@ void HandlerAesData::explosionAreas(const QByteArray &data)
|
||||
{
|
||||
const AreaEffectSimulation::ExplosionCluster &exp = m_aesDtc->explosionCluster(id);
|
||||
|
||||
if (exp.isCentral())
|
||||
if (exp.isCentral)
|
||||
continue;
|
||||
|
||||
if ((exp.effectStateId().underlying() >= AreaEffectSimulation::AesEffectState::EsPrepared)
|
||||
|| ((exp.effectStateId().underlying() >= AreaEffectSimulation::AesEffectState::EsActivated)
|
||||
&& (((exp.effectStart().is_set() && ((exp.effectStart().get() + exp.effectDuration())) < (m_dds->currentPartitionTime() - 5000)))
|
||||
||
|
||||
(exp.effectStateId().underlying() == AreaEffectSimulation::AesEffectState::EsPaused))))
|
||||
if ((exp.effectStateId >= AreaEffectSimulation::AesEffectState::EsPrepared)
|
||||
|| ((exp.effectStateId >= AreaEffectSimulation::AesEffectState::EsActivated)
|
||||
&& (((exp.effectStart.is_set() && ((exp.effectStart.get() + exp.effectDuration)) < (m_dds->currentPartitionTime() - 5000)))
|
||||
||
|
||||
(exp.effectStateId == AreaEffectSimulation::AesEffectState::EsPaused))))
|
||||
{
|
||||
DEBUG_LOG(m_logger) << "Removing explosion cluster with id: " << id;
|
||||
m_aesFtc->explosionClusterRemoveRequest(Core::RemoveElementRequest(id), this);
|
||||
@@ -491,31 +494,31 @@ void HandlerAesData::explosionSingles(const QByteArray &data)
|
||||
{
|
||||
getBasicData(data, pos, req);
|
||||
|
||||
LtsUtils::get3Byte(data, pos, y);
|
||||
LtsUtils::get3Byte(data, pos, x);
|
||||
req.impactPosition(relativeToGeoPosition(x, y));
|
||||
LtsUtils::get3Byte(data, pos, y);
|
||||
LtsUtils::get3Byte(data, pos, x);
|
||||
req.impactPosition = relativeToGeoPosition(x, y);
|
||||
if (m_use2BytesForSingleFireDiameter)
|
||||
LtsUtils::get2Byte(data, pos, tmp);
|
||||
LtsUtils::get2Byte(data, pos, tmp);
|
||||
else
|
||||
LtsUtils::get1Byte(data, pos, tmp);
|
||||
LtsUtils::get1Byte(data, pos, tmp);
|
||||
LtsUtils::get1Byte(data, pos, tmp);
|
||||
req.chargeTypeId(chargeTypeIdFromChargeTasCode(ProjectDataManagement::GearClass::Artillery, tmp));
|
||||
if (req.chargeTypeId() == 0)
|
||||
req.chargeTypeId(chargeTypeIdFromChargeTasCode(ProjectDataManagement::GearClass::Mortar, tmp));
|
||||
DEBUG_LOG(m_logger) << (aesToBeDeleted.contains(req.id()) ? "Modifying " : "Creating ") << "explosion single: " << req;
|
||||
req.chargeTypeId = chargeTypeIdFromChargeTasCode(ProjectDataManagement::GearClass::GearClass_Artillery, tmp);
|
||||
if (req.chargeTypeId == 0)
|
||||
req.chargeTypeId = chargeTypeIdFromChargeTasCode(ProjectDataManagement::GearClass::GearClass_Mortar, tmp);
|
||||
DEBUG_LOG(m_logger) << (aesToBeDeleted.contains(req.id) ? "Modifying " : "Creating ") << "explosion single: " << req;
|
||||
|
||||
aesToBeDeleted.removeAll(req.id());
|
||||
req.id(req.id() * -1);
|
||||
aesToBeDeleted.removeAll(req.id);
|
||||
req.id = req.id * -1;
|
||||
m_aesFtc->explosionSingleModifyRequest(req, this);
|
||||
}
|
||||
|
||||
for (int id : std::as_const(aesToBeDeleted))
|
||||
{
|
||||
const AreaEffectSimulation::ExplosionSingle &exp = m_aesDtc->explosionSingle(id);
|
||||
if (exp.isCentral())
|
||||
if (exp.isCentral)
|
||||
continue;
|
||||
if ((exp.effectStateId().underlying() > AreaEffectSimulation::AesEffectState::EsRemoved)
|
||||
&& (exp.effectStart().is_set() && (exp.effectStart().get() > (m_dds->currentPartitionTime() + 5000))))
|
||||
if ((exp.effectStateId > AreaEffectSimulation::AesEffectState::EsRemoved)
|
||||
&& (exp.effectStart.is_set() && (exp.effectStart.get() > (m_dds->currentPartitionTime() + 5000))))
|
||||
{
|
||||
DEBUG_LOG(m_logger) << "Removing explosion single id: " << id;
|
||||
m_aesFtc->explosionSingleRemoveRequest(Core::RemoveElementRequest(id), this);
|
||||
@@ -541,49 +544,49 @@ void HandlerAesData::functionalAreas(const QByteArray &data)
|
||||
for (int i = 0; i < cnt; ++i)
|
||||
{
|
||||
getBasicData(data, pos, req, true);
|
||||
if (!aesToBeDeleted.contains(req.id()))
|
||||
req.effectStart(dds::core::optional<rti::core::int64>(m_dds->currentPartitionTime() + 100));
|
||||
if (!aesToBeDeleted.contains(req.id))
|
||||
req.effectStart = dds::core::optional<rti::core::int64>(m_dds->currentPartitionTime() + 100);
|
||||
|
||||
|
||||
AreaEffectSimulation::Area area;
|
||||
LtsUtils::get3Byte(data, pos, y);
|
||||
LtsUtils::get3Byte(data, pos, x);
|
||||
area.cornerBottomLeft(relativeToGeoPosition(x, y));
|
||||
area.cornerBottomLeft = relativeToGeoPosition(x, y);
|
||||
LtsUtils::get1Byte(data, pos, tmp);
|
||||
area.width(tmp * 5);
|
||||
area.width = tmp * 5;
|
||||
LtsUtils::get1Byte(data, pos, tmp);
|
||||
area.height(tmp * 5);
|
||||
area.rotation(0);
|
||||
req.area(area);
|
||||
area.height = tmp * 5;
|
||||
area.rotation = 0;
|
||||
req.area = area;
|
||||
|
||||
|
||||
LtsUtils::get1Byte(data, pos, tmp);
|
||||
req.deconMode(static_cast<AreaEffectSimulation::AesOperatingMode>(tmp));
|
||||
req.deconMode = static_cast<AreaEffectSimulation::AesOperatingMode>(tmp);
|
||||
LtsUtils::get1Byte(data, pos, tmp);
|
||||
req.deconTime(tmp * 10 * 60 * 1000);
|
||||
req.deconTime = tmp * 10 * 60 * 1000;
|
||||
LtsUtils::get1Byte(data, pos, tmp);
|
||||
req.maintMode(static_cast<AreaEffectSimulation::AesOperatingMode>(tmp));
|
||||
req.maintMode = static_cast<AreaEffectSimulation::AesOperatingMode>(tmp);
|
||||
LtsUtils::get1Byte(data, pos, tmp);
|
||||
req.maintTime(tmp * 10 * 60 * 1000);
|
||||
req.maintTime = tmp * 10 * 60 * 1000;
|
||||
LtsUtils::get1Byte(data, pos, tmp);
|
||||
req.medicMode(static_cast<AreaEffectSimulation::AesOperatingMode>(tmp));
|
||||
req.medicMode = static_cast<AreaEffectSimulation::AesOperatingMode>(tmp);
|
||||
LtsUtils::get1Byte(data, pos, tmp);
|
||||
req.medicTime(tmp * 10 * 60 * 1000);
|
||||
req.chargeTypeId(411);
|
||||
req.medicTime = tmp * 10 * 60 * 1000;
|
||||
req.chargeTypeId = 411;
|
||||
|
||||
DEBUG_LOG(m_logger) << (aesToBeDeleted.contains(req.id()) ? "Modifying " : "Creating ") << "functional area: " << req;
|
||||
DEBUG_LOG(m_logger) << (aesToBeDeleted.contains(req.id) ? "Modifying " : "Creating ") << "functional area: " << req;
|
||||
|
||||
aesToBeDeleted.removeAll(req.id());
|
||||
req.id(req.id() * -1);
|
||||
aesToBeDeleted.removeAll(req.id);
|
||||
req.id = req.id * -1;
|
||||
|
||||
m_aesFtc->functionalAreaModifyRequest(req, this);
|
||||
}
|
||||
|
||||
for (int id : std::as_const(aesToBeDeleted))
|
||||
{
|
||||
if (m_aesDtc->functionalArea(id).isCentral())
|
||||
if (m_aesDtc->functionalArea(id).isCentral)
|
||||
continue;
|
||||
if (m_aesDtc->functionalArea(id).effectStateId().underlying() > AreaEffectSimulation::AesEffectState::EsRemoved)
|
||||
if (m_aesDtc->functionalArea(id).effectStateId > AreaEffectSimulation::AesEffectState::EsRemoved)
|
||||
{
|
||||
DEBUG_LOG(m_logger) << "Removing functional area id: " << id;
|
||||
m_aesFtc->functionalAreaRemoveRequest(Core::RemoveElementRequest(id), this);
|
||||
@@ -611,36 +614,36 @@ void HandlerAesData::nContaminations(const QByteArray &data)
|
||||
getBasicData(data, pos, req);
|
||||
|
||||
LtsUtils::get2Byte(data, pos, tmp);
|
||||
req.effectDuration(tmp * 6 * 60 * 1000);
|
||||
LtsUtils::get3Byte(data, pos, y);
|
||||
LtsUtils::get3Byte(data, pos, x);
|
||||
req.impactPosition(relativeToGeoPosition(x, y));
|
||||
req.effectDuration = tmp * 6 * 60 * 1000;
|
||||
LtsUtils::get3Byte(data, pos, y);
|
||||
LtsUtils::get3Byte(data, pos, x);
|
||||
req.impactPosition = relativeToGeoPosition(x, y);
|
||||
LtsUtils::get2Byte(data, pos, tmp);
|
||||
req.impactRadius(tmp);
|
||||
req.impactRadius = tmp;
|
||||
LtsUtils::get2Byte(data, pos, tmp);
|
||||
req.borderLengthInner(tmp);
|
||||
req.borderLengthInner = tmp;
|
||||
LtsUtils::get2Byte(data, pos, tmp);
|
||||
req.borderLengthOuter(tmp);
|
||||
req.borderLengthOuter = tmp;
|
||||
LtsUtils::get2Byte(data, pos, tmp);
|
||||
req.spanAngle(tmp / 100.0);
|
||||
req.spanAngle = tmp / 100.0;
|
||||
LtsUtils::get2Byte(data, pos, tmp);
|
||||
req.rotationAngle(mathToCompassAngle(tmp));
|
||||
req.rotationAngle = mathToCompassAngle(tmp);
|
||||
|
||||
req.chargeTypeId(chargeTypeIdFromChargeTasCode(ProjectDataManagement::GearClass::Nuclear, 1));
|
||||
req.chargeTypeId = chargeTypeIdFromChargeTasCode(ProjectDataManagement::GearClass::GearClass_Nuclear, 1);
|
||||
|
||||
DEBUG_LOG(m_logger) << (aesToBeDeleted.contains(req.id()) ? "Modifying " : "Creating ") << "N contamination: " << req;
|
||||
DEBUG_LOG(m_logger) << (aesToBeDeleted.contains(req.id) ? "Modifying " : "Creating ") << "N contamination: " << req;
|
||||
|
||||
aesToBeDeleted.removeAll(req.id());
|
||||
req.id(req.id() * -1);
|
||||
aesToBeDeleted.removeAll(req.id);
|
||||
req.id = req.id * -1;
|
||||
|
||||
m_aesFtc->nContaminationModifyRequest(req, this);
|
||||
}
|
||||
|
||||
for (int id : std::as_const(aesToBeDeleted))
|
||||
{
|
||||
if (m_aesDtc->nContamination(id).isCentral())
|
||||
if (m_aesDtc->nContamination(id).isCentral)
|
||||
continue;
|
||||
if (m_aesDtc->nContamination(id).effectStateId().underlying() > AreaEffectSimulation::AesEffectState::EsRemoved)
|
||||
if (m_aesDtc->nContamination(id).effectStateId > AreaEffectSimulation::AesEffectState::EsRemoved)
|
||||
{
|
||||
DEBUG_LOG(m_logger) << "Removing N contamination id: " << id;
|
||||
m_aesFtc->nContaminationRemoveRequest(Core::RemoveElementRequest(id), this);
|
||||
@@ -668,52 +671,52 @@ void HandlerAesData::mineAreas(const QByteArray &data)
|
||||
getBasicData(data, pos, req);
|
||||
|
||||
LtsUtils::get1Byte(data, pos, tmp);
|
||||
req.effectDuration(tmp * 60 * 60 * 1000);
|
||||
req.effectDuration = tmp * 60 * 60 * 1000;
|
||||
LtsUtils::get1Byte(data, pos, tmp);
|
||||
req.width(tmp);
|
||||
req.width = tmp;
|
||||
LtsUtils::get1Byte(data, pos, tmp);
|
||||
req.density(tmp / 100.0);
|
||||
req.density = tmp / 100.0;
|
||||
|
||||
LtsUtils::get1Byte(data, pos, tmp);
|
||||
if (217 > tmp && 210 < tmp)
|
||||
req.chargeStruct().chargeTypeId(chargeTypeIdFromChargeTasCode(ProjectDataManagement::GearClass::MineArea, tmp));
|
||||
req.chargeStruct.chargeTypeId = chargeTypeIdFromChargeTasCode(ProjectDataManagement::GearClass::GearClass_MineArea, tmp);
|
||||
else
|
||||
req.chargeStruct().chargeTypeId(tmp);
|
||||
req.chargeStruct.chargeTypeId = tmp;
|
||||
|
||||
LtsUtils::get2Byte(data, pos, tmp);
|
||||
|
||||
|
||||
int segmentCnt = 0;
|
||||
LtsUtils::get1Byte(data, pos, segmentCnt);
|
||||
req.segments().resize(segmentCnt);
|
||||
req.segments.resize(segmentCnt);
|
||||
|
||||
for (int j = 0; j < segmentCnt; ++j)
|
||||
{
|
||||
AreaEffectSimulation::MineSegment &segment = req.segments().at(j);
|
||||
AreaEffectSimulation::MineSegment &segment = req.segments.at(j);
|
||||
LtsUtils::get3Byte(data, pos, y);
|
||||
LtsUtils::get3Byte(data, pos, x);
|
||||
segment.positionStart(relativeToGeoPosition(x, y));
|
||||
segment.positionStart = relativeToGeoPosition(x, y);
|
||||
LtsUtils::get3Byte(data, pos, y);
|
||||
LtsUtils::get3Byte(data, pos, x);
|
||||
segment.positionEnd(relativeToGeoPosition(x, y));
|
||||
segment.positionEnd = relativeToGeoPosition(x, y);
|
||||
}
|
||||
|
||||
req.isCenterLine(true);
|
||||
req.isCenterLine = true;
|
||||
|
||||
DEBUG_LOG(m_logger) << (aesToBeDeleted.contains(req.id()) ? "Modifying " : "Creating ") << "mine area: " << req;
|
||||
DEBUG_LOG(m_logger) << (aesToBeDeleted.contains(req.id) ? "Modifying " : "Creating ") << "mine area: " << req;
|
||||
|
||||
aesToBeDeleted.removeAll(req.id());
|
||||
req.id(req.id() * -1);
|
||||
aesToBeDeleted.removeAll(req.id);
|
||||
req.id = req.id * -1;
|
||||
|
||||
req.setMineSorted(false);
|
||||
req.setMineSorted = false;
|
||||
m_aesFtc->mineAreaModifyFromCtaDataRequest(req, this);
|
||||
}
|
||||
|
||||
for (int id : std::as_const(aesToBeDeleted))
|
||||
{
|
||||
if (m_aesDtc->mineArea(id).isCentral())
|
||||
if (m_aesDtc->mineArea(id).isCentral)
|
||||
continue;
|
||||
if (m_aesDtc->mineArea(id).effectStateId().underlying() > AreaEffectSimulation::AesEffectState::EsRemoved)
|
||||
if (m_aesDtc->mineArea(id).effectStateId > AreaEffectSimulation::AesEffectState::EsRemoved)
|
||||
{
|
||||
DEBUG_LOG(m_logger) << "Removing mine area id: " << id;
|
||||
m_aesFtc->mineAreaRemoveRequest(Core::RemoveElementRequest(id), this);
|
||||
@@ -754,18 +757,18 @@ void HandlerAesData::explosionAreasResume(const QByteArray &data)
|
||||
LtsUtils::get1Byte(data, pos, cnt);
|
||||
uint64_t tmp;
|
||||
AreaEffectSimulation::ExplosionAreaPauseResumeRequest req;
|
||||
req.resumeExecution(true);
|
||||
req.resumeExecution = true;
|
||||
for (int i = 0; i < cnt; ++i)
|
||||
{
|
||||
LtsUtils::get2Byte(data, pos, tmp);
|
||||
req.id(tmp);
|
||||
req.id = tmp;
|
||||
LtsUtils::get2Byte(data, pos, tmp);
|
||||
req.resumeSeed = dds::core::optional<int32_t>(tmp);
|
||||
LtsUtils::get2Byte(data, pos, tmp);
|
||||
req.resumeSeed(dds::core::optional<int32_t>(tmp));
|
||||
LtsUtils::get2Byte(data, pos, tmp);
|
||||
LtsUtils::get4Byte(data, pos, tmp);
|
||||
req.timeToResume(dds::core::optional<rti::core::int64>(tmp * 1000));
|
||||
req.timeToResume = dds::core::optional<rti::core::int64>(tmp * 1000);
|
||||
LtsUtils::get2Byte(data, pos, tmp);
|
||||
req.remainingDuration(dds::core::optional<int32_t>(tmp));
|
||||
req.remainingDuration = dds::core::optional<int32_t>(tmp);
|
||||
DEBUG_LOG(m_logger) << "Resuming: " << req;
|
||||
m_aesFtc->explosionAreaPauseResumeRequest(req, this);
|
||||
}
|
||||
|
||||
@@ -5,6 +5,8 @@
|
||||
#include "dds_handler.h"
|
||||
#include "main_handler.h"
|
||||
|
||||
#include <NGLLogger/NGLLoggerBootstrap.h>
|
||||
|
||||
namespace TrainingAreaBaseOC
|
||||
{
|
||||
|
||||
@@ -17,12 +19,13 @@ RecvFromDdsFts::RecvFromDdsFts(MainHandler *mainHandler)
|
||||
, m_ftsTaboc(mainHandler->dds()->ftsTaboc())
|
||||
, m_ftsTab(mainHandler->dds()->ftsTab())
|
||||
, m_txCallback(mainHandler->txHandler())
|
||||
, m_logger(NGL::NGLLoggerBootstrap::getNGLRootLogger())
|
||||
{}
|
||||
|
||||
void RecvFromDdsFts::onDemandCyclicPositionsRequest(const rti::core::SampleIdentity &cookie, const DemandCyclicPositionsRequest &request)
|
||||
{
|
||||
OcTelegrams::DemandCyclicPositions data;
|
||||
data.cycleTime = request.cycleTime();
|
||||
data.cycleTime = request.cycleTime;
|
||||
|
||||
m_ftsTaboc->demandCyclicPositionsReply(cookie, fillFro(m_txCallback->txData(data)));
|
||||
}
|
||||
@@ -36,7 +39,7 @@ void RecvFromDdsFts::onDemandSfmSelfTestRequest(const rti::core::SampleIdentity
|
||||
void RecvFromDdsFts::onSendTechnicalStateOcRequest(const rti::core::SampleIdentity &cookie, const SendTechnicalStateOcRequest &request)
|
||||
{
|
||||
OcTelegrams::TechnicalStateOc data;
|
||||
data.errorCode = request.errorCode();
|
||||
data.errorCode = request.errorCode;
|
||||
|
||||
m_ftsTaboc->sendTechnicalStateOcReply(cookie, fillFro(m_txCallback->txData(data)));
|
||||
}
|
||||
@@ -45,7 +48,7 @@ void RecvFromDdsFts::onSendOcDataRequest(const rti::core::SampleIdentity &cookie
|
||||
{
|
||||
TrainingAreaBase::TetraIcd::OpaquePayloadDataOut data;
|
||||
data.payloadType = TrainingAreaBase::TetraIcd::OpaquePayloadDataBase::Type::OC;
|
||||
data.payload = request.payload();
|
||||
data.payload = request.payload;
|
||||
|
||||
m_ftsTab->sendOcDataReply(cookie, fillFro(m_txCallback->txData(data)));
|
||||
}
|
||||
@@ -54,7 +57,7 @@ void RecvFromDdsFts::onSendFireSmokeMarkerDataRequest(const rti::core::SampleIde
|
||||
{
|
||||
TrainingAreaBase::TetraIcd::OpaquePayloadDataOut data;
|
||||
data.payloadType = TrainingAreaBase::TetraIcd::OpaquePayloadDataBase::Type::FireSmokeMarker;
|
||||
data.payload = request.payload();
|
||||
data.payload = request.payload;
|
||||
|
||||
m_ftsTab->sendFireSmokeMarkerDataReply(cookie, fillFro(m_txCallback->txData(data)));
|
||||
}
|
||||
|
||||
@@ -5,6 +5,8 @@
|
||||
|
||||
#include <QtCore/QPointF>
|
||||
|
||||
#include <NGLLogger/NGLLoggerBootstrap.h>
|
||||
|
||||
#include "main_handler.h"
|
||||
|
||||
namespace TrainingAreaBaseOC
|
||||
@@ -21,21 +23,21 @@ void SendToDds::rxData(const OcTelegrams::Display &inData)
|
||||
if (0 == inData.multiplexer)
|
||||
{
|
||||
TrainingAreaBaseOC::ShortMessage outData;
|
||||
outData.id(m_idToSend++);
|
||||
outData.id = m_idToSend++;
|
||||
|
||||
outData.textType(static_cast<long>(inData.textType));
|
||||
outData.indexVbg(inData.indexVbg);
|
||||
outData.indexVba(inData.indexVba);
|
||||
outData.timeStamp(QDateTime::currentDateTimeUtc().toMSecsSinceEpoch());
|
||||
outData.textType = static_cast<long>(inData.textType);
|
||||
outData.indexVbg = inData.indexVbg;
|
||||
outData.indexVba = inData.indexVba;
|
||||
outData.timeStamp = QDateTime::currentDateTimeUtc().toMSecsSinceEpoch();
|
||||
|
||||
m_dtsTaboc->publish(outData);
|
||||
}
|
||||
else
|
||||
{
|
||||
TrainingAreaBaseOC::FreeText outData;
|
||||
outData.id(m_idToSend++);
|
||||
outData.text(inData.text.data());
|
||||
outData.timeStamp(QDateTime::currentDateTimeUtc().toMSecsSinceEpoch());
|
||||
outData.id = m_idToSend++;
|
||||
outData.text = inData.text.data();
|
||||
outData.timeStamp = QDateTime::currentDateTimeUtc().toMSecsSinceEpoch();
|
||||
|
||||
m_dtsTaboc->publish(outData);
|
||||
}
|
||||
@@ -44,10 +46,10 @@ void SendToDds::rxData(const OcTelegrams::Display &inData)
|
||||
void SendToDds::rxData(const OcTelegrams::TimeSync &inData)
|
||||
{
|
||||
TrainingAreaBaseOC::TimeSync outData;
|
||||
outData.id(1);
|
||||
outData.id = 1;
|
||||
|
||||
outData.gpsTime(inData.gpsTimeMsec);
|
||||
outData.timezone(inData.timezone);
|
||||
outData.gpsTime = inData.gpsTimeMsec;
|
||||
outData.timezone = inData.timezone;
|
||||
|
||||
m_dtsTaboc->publish(outData);
|
||||
}
|
||||
@@ -61,14 +63,14 @@ void SendToDds::rxData(const OcTelegrams::SpecificsExercise &inData)
|
||||
QString::number(inData.easting).rightJustified(7, QLatin1Char('0')));
|
||||
|
||||
TrainingAreaBaseOC::SpecificsExercise outData;
|
||||
outData.id(1);
|
||||
outData.id = 1;
|
||||
|
||||
outData.exerciseId(inData.exerciseId);
|
||||
outData.zone(inData.zone);
|
||||
outData.band(inData.band);
|
||||
outData.square(inData.square.data());
|
||||
outData.easting(inData.easting);
|
||||
outData.northing(inData.northing);
|
||||
outData.exerciseId = inData.exerciseId;
|
||||
outData.zone = inData.zone;
|
||||
outData.band = inData.band;
|
||||
outData.square = inData.square.data();
|
||||
outData.easting = inData.easting;
|
||||
outData.northing = inData.northing;
|
||||
|
||||
m_dtsTaboc->publish(outData);
|
||||
}
|
||||
@@ -76,14 +78,14 @@ void SendToDds::rxData(const OcTelegrams::SpecificsExercise &inData)
|
||||
void SendToDds::rxData(const OcTelegrams::SpecificsEquipment &inData)
|
||||
{
|
||||
TrainingAreaBaseOC::SpecificsEquipment outData;
|
||||
outData.id(1);
|
||||
outData.id = 1;
|
||||
|
||||
outData.equipmentNumber(inData.equipmentNumber);
|
||||
outData.playerType(inData.playerType);
|
||||
outData.language(static_cast<ProjectDataManagement::LanguageConfiguration>(inData.language));
|
||||
outData.pyrotechnics(inData.pyrotechnics);
|
||||
outData.voiceOutput(inData.voiceOutput);
|
||||
outData.exerciseBreak(inData.exerciseBreak);
|
||||
outData.equipmentNumber = inData.equipmentNumber;
|
||||
outData.playerType = inData.playerType;
|
||||
outData.language = static_cast<ProjectDataManagement::LanguageConfiguration>(inData.language);
|
||||
outData.pyrotechnics = inData.pyrotechnics;
|
||||
outData.voiceOutput = inData.voiceOutput;
|
||||
outData.exerciseBreak = inData.exerciseBreak;
|
||||
|
||||
m_dtsTaboc->publish(outData);
|
||||
}
|
||||
@@ -91,16 +93,16 @@ void SendToDds::rxData(const OcTelegrams::SpecificsEquipment &inData)
|
||||
void SendToDds::rxData(const OcTelegrams::TechnicalStateSfm &inData)
|
||||
{
|
||||
TrainingAreaBaseOC::TechnicalStateSfm outData;
|
||||
outData.id(1);
|
||||
outData.id = 1;
|
||||
|
||||
outData.sfmConnected(inData.sfmConnected);
|
||||
outData.radioAvailable(inData.radioAvailable);
|
||||
outData.licensed(inData.licensed);
|
||||
outData.timeStamp(inData.gpsTimeMsec);
|
||||
outData.batteryTest(inData.batteryTest);
|
||||
outData.manipulationEquipment(inData.manipulationEquipment);
|
||||
outData.manipulationSfm(inData.manipulationSfm);
|
||||
outData.errorCode(inData.errorCode);
|
||||
outData.sfmConnected = inData.sfmConnected;
|
||||
outData.radioAvailable = inData.radioAvailable;
|
||||
outData.licensed = inData.licensed;
|
||||
outData.timeStamp = inData.gpsTimeMsec;
|
||||
outData.batteryTest = inData.batteryTest;
|
||||
outData.manipulationEquipment = inData.manipulationEquipment;
|
||||
outData.manipulationSfm = inData.manipulationSfm;
|
||||
outData.errorCode = inData.errorCode;
|
||||
|
||||
m_dtsTaboc->publish(outData);
|
||||
}
|
||||
@@ -108,13 +110,13 @@ void SendToDds::rxData(const OcTelegrams::TechnicalStateSfm &inData)
|
||||
void SendToDds::rxData(const OcTelegrams::EnterLeaveAes &inData)
|
||||
{
|
||||
TrainingAreaBaseOC::EnterLeaveAes outData;
|
||||
outData.id(1);
|
||||
outData.id = 1;
|
||||
|
||||
outData.aesId(inData.aesId);
|
||||
outData.aesEntered(inData.aesEntered);
|
||||
outData.abcArea(inData.nbcArea);
|
||||
outData.chargeTypeId(inData.chargeTasCode);
|
||||
outData.cAreaType(inData.cAreaType);
|
||||
outData.aesId = inData.aesId;
|
||||
outData.aesEntered = inData.aesEntered;
|
||||
outData.abcArea = inData.nbcArea;
|
||||
outData.chargeTypeId = inData.chargeTasCode;
|
||||
outData.cAreaType = inData.cAreaType;
|
||||
|
||||
m_dtsTaboc->publish(outData);
|
||||
}
|
||||
@@ -122,17 +124,17 @@ void SendToDds::rxData(const OcTelegrams::EnterLeaveAes &inData)
|
||||
void SendToDds::rxData(const OcTelegrams::OwnPosition &inData)
|
||||
{
|
||||
TrainingAreaBaseOC::OwnPosition outData;
|
||||
outData.id(1);
|
||||
outData.id = 1;
|
||||
|
||||
outData.valid(inData.valid);
|
||||
outData.timeStamp(inData.gpsTimeMsec);
|
||||
outData.valid = inData.valid;
|
||||
outData.timeStamp = inData.gpsTimeMsec;
|
||||
if (inData.valid)
|
||||
{
|
||||
const QPointF point(m_utmCoord.geographic(inData.easting, inData.northing));
|
||||
outData.position(Core::GeoPosition(point.x(), point.y(), 0));
|
||||
outData.position = Core::GeoPosition(point.x(), point.y(), 0);
|
||||
}
|
||||
else
|
||||
outData.position(Core::GeoPosition(nan(""), nan(""), 0));
|
||||
outData.position = Core::GeoPosition(nan(""), nan(""), 0);
|
||||
|
||||
m_dtsTaboc->publish(outData);
|
||||
}
|
||||
@@ -144,8 +146,8 @@ void SendToDds::rxData(const TrainingAreaBase::TetraIcd::OpaquePayloadDataBase &
|
||||
case TrainingAreaBase::TetraIcd::OpaquePayloadDataBase::Type::OC:
|
||||
{
|
||||
TrainingAreaBase::OcData outData;
|
||||
outData.equipmentNumber(1);
|
||||
outData.payload(inData.payload);
|
||||
outData.equipmentNumber = 1;
|
||||
outData.payload = inData.payload;
|
||||
|
||||
m_dtsTab->publish(outData);
|
||||
break;
|
||||
@@ -153,8 +155,8 @@ void SendToDds::rxData(const TrainingAreaBase::TetraIcd::OpaquePayloadDataBase &
|
||||
case TrainingAreaBase::TetraIcd::OpaquePayloadDataBase::Type::FireSmokeMarker:
|
||||
{
|
||||
TrainingAreaBase::FireSmokeMarkerData outData;
|
||||
outData.equipmentNumber(1);
|
||||
outData.payload(inData.payload);
|
||||
outData.equipmentNumber = 1;
|
||||
outData.payload = inData.payload;
|
||||
|
||||
m_dtsTab->publish(outData);
|
||||
break;
|
||||
|
||||
@@ -13,8 +13,7 @@ Channel::Channel(QChar channel, bool bIsBinary, QObject *parent) : QObject(paren
|
||||
, m_channel(channel)
|
||||
, m_bIsBinary(bIsBinary)
|
||||
, m_device(nullptr)
|
||||
.getNGLLogger("SCTT.Channel")),
|
||||
m_logger(NGL::NGLLoggerBootstrap::getNGLRootLogger()) {}
|
||||
, m_logger(NGL::NGLLoggerBootstrap::getNGLRootLogger().getNGLLogger("SCTT.Channel")) {}
|
||||
|
||||
void Channel::setDevice(Device *dev)
|
||||
{
|
||||
|
||||
@@ -16,8 +16,7 @@ Device::Device(QObject *parent, bool tcpMode) : QObject(parent)
|
||||
, m_restartTimer(new QTimer(this))
|
||||
, m_receiveTimeoutTimer(new QTimer(this))
|
||||
, m_tcpMode(tcpMode)
|
||||
.getNGLLogger("TTCI.Device")),
|
||||
m_logger(NGL::NGLLoggerBootstrap::getNGLRootLogger()) {
|
||||
, m_logger(NGL::NGLLoggerBootstrap::getNGLRootLogger().getNGLLogger("TTCI.Device")) {
|
||||
connect(m_spQuerry, &LtsSerialPortQuerry::LtsSerialPortQuerry::connectionEstablished, this, &Device::open);
|
||||
m_spQuerry->restartQuerry();
|
||||
|
||||
@@ -55,7 +54,7 @@ bool Device::open()
|
||||
return false;
|
||||
}
|
||||
connect(m_socket, &QTcpSocket::readyRead, this, &Device::onDataAvailable);
|
||||
connect(m_socket, QOverload<QAbstractSocket::SocketError>::of(&QAbstractSocket::error), this, &Device::handleError);
|
||||
connect(m_socket, &QAbstractSocket::errorOccurred, this, &Device::handleError);
|
||||
connect(m_socket, &QTcpSocket::disconnected, this, &Device::open);
|
||||
DEBUG_LOG(m_logger) << "(Re)openend tcp destination " << m_socket->peerName() << ":" << Settings::portTtci();
|
||||
}
|
||||
|
||||
+10
-8
@@ -3,6 +3,8 @@
|
||||
|
||||
#include "settings.h"
|
||||
|
||||
#include <NGLLogger/NGLLoggerBootstrap.h>
|
||||
|
||||
#include <QtCore/QPointF>
|
||||
#include <QtCore/QTimer>
|
||||
#include <QtCore/QJsonDocument>
|
||||
@@ -22,9 +24,9 @@ WebsocketHandler::WebsocketHandler(QObject *parent, int exerciseId,
|
||||
m_tryConnectionTimer->start(10 * 1000);
|
||||
connect(m_dtcTaboc.get(), &TrainingAreaBaseOC::Interface::Dtc::specificsEquipmentChanged,
|
||||
this, [this](){
|
||||
m_ownEquipmentId = m_dtcTaboc->specificsEquipment(1).equipmentNumber();
|
||||
m_ownEquipmentId = m_dtcTaboc->specificsEquipment(1).equipmentNumber;
|
||||
});
|
||||
m_ownEquipmentId = m_dtcTaboc->specificsEquipment(1).equipmentNumber();
|
||||
m_ownEquipmentId = m_dtcTaboc->specificsEquipment(1).equipmentNumber;
|
||||
|
||||
|
||||
m_fetchPositionTimer = new QTimer(this);
|
||||
@@ -142,23 +144,23 @@ void WebsocketHandler::onSendOwnPosition(const QString &message)
|
||||
const QJsonObject obj = doc.object().value(QStringLiteral("data")).toObject();
|
||||
|
||||
TrainingAreaBaseOC::OwnPosition outData;
|
||||
outData.id(1);
|
||||
outData.id = 1;
|
||||
|
||||
|
||||
|
||||
if (obj.contains(QStringLiteral("lon")) && obj.contains(QStringLiteral("lat")))
|
||||
{
|
||||
DEBUG_LOG(m_logger) << "Got message with position";
|
||||
outData.position(Core::GeoPosition(obj.value(QStringLiteral("lon")).toDouble(),obj.value(QStringLiteral("lat")).toDouble(),obj.value(QStringLiteral("height")).toDouble()));
|
||||
outData.timeStamp(QDateTime::currentMSecsSinceEpoch());
|
||||
outData.position = Core::GeoPosition(obj.value(QStringLiteral("lon")).toDouble(),obj.value(QStringLiteral("lat")).toDouble(),obj.value(QStringLiteral("height")).toDouble());
|
||||
outData.timeStamp = QDateTime::currentMSecsSinceEpoch();
|
||||
if (obj.contains(QStringLiteral("buildingId")) && obj.contains(QStringLiteral("roomId")) )
|
||||
{
|
||||
outData.moutObjectId().set(obj.value(QStringLiteral("buildingId")).toInt());
|
||||
outData.moutRoomId().set(obj.value(QStringLiteral("roomId")).toInt());
|
||||
outData.moutObjectId = obj.value(QStringLiteral("buildingId")).toInt();
|
||||
outData.moutRoomId = obj.value(QStringLiteral("roomId")).toInt();
|
||||
}
|
||||
}
|
||||
else
|
||||
outData.position(Core::GeoPosition(nan(""), nan(""),0));
|
||||
outData.position = Core::GeoPosition(nan(""), nan(""),0);
|
||||
|
||||
m_dtsTaboc->publish(outData);
|
||||
|
||||
|
||||
@@ -269,7 +269,7 @@ bool DdsHandler::isJamming(const AreaEffectSimulation::ChargeStruct &chargeStruc
|
||||
|
||||
bool DdsHandler::isDus(const AreaEffectSimulation::ChargeStruct &chargeStruct)
|
||||
{
|
||||
const bool isDus = m_dtcPdm->mineClass(chargeStruct.chargeTypeId, chargeStruct.igniterTypeId, chargeStruct.igniterFunctionId)== AreaEffectSimulation::MineClass::Concrete;
|
||||
const bool isDus = static_cast<AreaEffectSimulation::MineClass>(m_dtcPdm->mineClass(chargeStruct.chargeTypeId, chargeStruct.igniterTypeId, chargeStruct.igniterFunctionId)) == AreaEffectSimulation::MineClass::Concrete;
|
||||
DEBUG_LOG(m_logger) << "isDus = " << isDus;
|
||||
return isDus;
|
||||
}
|
||||
|
||||
+83
-83
@@ -113,12 +113,12 @@ void HandlerParticipant::onParticipantPositionChanged(const ParticipantManagemen
|
||||
DEBUG_LOG(m_logger) << "onParticipantPositionChanged: " << data;
|
||||
if (modType == DataModification::eRemoved)
|
||||
{
|
||||
DEBUG_LOG(m_logger) << "m_participantsOutsideMap.remove participantId: " << data.participantId();
|
||||
//m_participantsOutsideMap.remove(data.participantId());
|
||||
DEBUG_LOG(m_logger) << "m_participantsOutsideMap.remove participantId: " << data.participantId;
|
||||
//m_participantsOutsideMap.remove(data.participantId);
|
||||
}
|
||||
else
|
||||
{
|
||||
ParticipantManagement::TypeClass typeClass = typeClassFromTypeId(data.participantTypeId());
|
||||
ParticipantManagement::TypeClass typeClass = typeClassFromTypeId(data.participantTypeId);
|
||||
if (typeClass == ParticipantManagement::TypeClass::SupportEntity
|
||||
|| typeClass == ParticipantManagement::TypeClass::SupportUnit
|
||||
|| typeClass == ParticipantManagement::TypeClass::Unit
|
||||
@@ -128,15 +128,15 @@ void HandlerParticipant::onParticipantPositionChanged(const ParticipantManagemen
|
||||
// [GUEZE-3102] Aufgesessene Teilnehmer bekommen den Schaden vom Fahrzeug, auf dem sie aufgesessen sind.
|
||||
if (data.mountedOn.is_set())
|
||||
return;
|
||||
int floorId = m_handlerBuildingData->getFloorIdFromRoomId(data.roomId());
|
||||
int floorId = m_handlerBuildingData->getFloorIdFromRoomId(data.roomId);
|
||||
int lastFloorId;
|
||||
CesParticipantData partPos(data);
|
||||
|
||||
// update LtsPosition/LtsCoordinate: (created as new master, with Z, geo and utm)
|
||||
LtsCoordTrans::LtsCoordinate <sCoordRef = partPos.ltsCoordinate();
|
||||
ltsCoordRef = LtsCoordTrans::LtsCoordinate(data.pos());
|
||||
ltsCoordRef = LtsCoordTrans::LtsCoordinate(data.pos);
|
||||
|
||||
// ltsPosRef.setGeoPosition(data.pos(), 0.0); // hier wird 0.0 zu NaN umgewandelt ...
|
||||
// ltsPosRef.setGeoPosition(data.pos, 0.0); // hier wird 0.0 zu NaN umgewandelt ...
|
||||
// ltsPosRef.setZValueAccordingElevation(0.0); // hier wird implizit der LtsElevationManager genutzt
|
||||
// DEBUG_LOG(m_logger) << "- ltsPosRef: " << ltsPosRef;
|
||||
|
||||
@@ -145,16 +145,16 @@ void HandlerParticipant::onParticipantPositionChanged(const ParticipantManagemen
|
||||
|
||||
|
||||
bool lastGeoPositionValid = false;
|
||||
auto it = m_positionsMap.find(partPos.participantId());
|
||||
auto it = m_positionsMap.find(partPos.participantId);
|
||||
if (it != m_positionsMap.end())
|
||||
{
|
||||
const CesParticipantData &partPosOld = *it;
|
||||
lastGeoPositionValid = partPosOld.lastPositionValid;
|
||||
lastFloorId = m_handlerBuildingData->getFloorIdFromRoomId(partPosOld.roomId());
|
||||
lastFloorId = m_handlerBuildingData->getFloorIdFromRoomId(partPosOld.roomId);
|
||||
|
||||
|
||||
partPos.vulnerabilityState = partPosOld.vulnerabilityState;
|
||||
partPos.lastGeoPosition = partPosOld.pos(); // save previous position
|
||||
partPos.lastGeoPosition = partPosOld.pos; // save previous position
|
||||
partPos.lastPositionValid = true;
|
||||
if (floorId < 0 )
|
||||
partPos.insideBuildingValue = false;
|
||||
@@ -168,21 +168,21 @@ void HandlerParticipant::onParticipantPositionChanged(const ParticipantManagemen
|
||||
INFO_LOG(m_logger) << "m_positionsMap.insert="
|
||||
<< partPos;
|
||||
|
||||
m_positionsMap.insert(data.participantId(), partPos);
|
||||
m_positionsMap.insert(data.participantId, partPos);
|
||||
}
|
||||
//
|
||||
if (lastGeoPositionValid)
|
||||
{
|
||||
if (floorId < 0)
|
||||
{
|
||||
partPos.buildingId(0);
|
||||
partPos.roomId(0);
|
||||
partPos.buildingId = 0;
|
||||
partPos.roomId = 0;
|
||||
DEBUG_LOG(m_logger) << "emit and insert newOutdoorPosition:"
|
||||
<< partPos;
|
||||
m_positionsMap.insert(data.participantId(), partPos);
|
||||
m_positionsMap.insert(data.participantId, partPos);
|
||||
emit newOutdoorPosition(partPos);
|
||||
if (lastFloorId > 0)
|
||||
emit participantLeavesBuilding(partPos.participantId());
|
||||
emit participantLeavesBuilding(partPos.participantId);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -195,18 +195,18 @@ void HandlerParticipant::onParticipantPositionChanged(const ParticipantManagemen
|
||||
while (i.hasNext())
|
||||
{
|
||||
i.next();
|
||||
DEBUG_LOG(m_logger) << i.key() << ": " << i.value().participantId();
|
||||
DEBUG_LOG(m_logger) << i.key() << ": " << i.value().participantId;
|
||||
}
|
||||
if (m_positionsCheatingMap.contains(data.participantId()))
|
||||
if (m_positionsCheatingMap.contains(data.participantId))
|
||||
{
|
||||
DEBUG_LOG(m_logger) << "checkCheatingPosition participantId=" << data.participantId();
|
||||
checkCheatingPosition(data.participantId());
|
||||
DEBUG_LOG(m_logger) << "checkCheatingPosition participantId=" << data.participantId;
|
||||
checkCheatingPosition(data.participantId);
|
||||
}
|
||||
|
||||
INFO_LOG(m_logger) << "onParticipantPositionChanged()"
|
||||
<< " participantId; " << data.participantId()
|
||||
<< " participantTypeId: " << data.participantTypeId()
|
||||
<< " partyId: " << data.partyId()
|
||||
<< " participantId; " << data.participantId
|
||||
<< " participantTypeId: " << data.participantTypeId
|
||||
<< " partyId: " << data.partyId
|
||||
<< " vulnerabilityState: " << partPos.vulnerabilityState
|
||||
<< " insideBuilding: " << partPos.insideBuilding();
|
||||
INFO_LOG(m_logger) << partPos;
|
||||
@@ -222,24 +222,24 @@ void HandlerParticipant::onDynamicParticipantDataChanged(const ParticipantManage
|
||||
if (modType == DataModification::eRemoved)
|
||||
return;
|
||||
|
||||
CesParticipantData &participantPosition = m_positionsMap[data.participantId()]; // reference!
|
||||
CesParticipantData &participantPosition = m_positionsMap[data.participantId]; // reference!
|
||||
// save vulnerabilityState in participantHandler
|
||||
ProjectDataManagement::VulnerabilityState newVulnerabilityState = ProjectDataManagement::VulnerabilityState::CombatReady;
|
||||
if (data.stateHistory().size() > 0)
|
||||
ProjectDataManagement::VulnerabilityState newVulnerabilityState = ProjectDataManagement::VulnerabilityState::VulnerabilityState_CombatReady;
|
||||
if (data.stateHistory.size() > 0)
|
||||
{
|
||||
const ParticipantManagement::StateInformation &vul = ParticipantManagement::youngestStateInformation(data.stateHistory());
|
||||
newVulnerabilityState = vul.vulnerabilityState();
|
||||
DEBUG_LOG(m_logger) << "newVulnerabilityState" << vul.vulnerabilityState();
|
||||
const ParticipantManagement::StateInformation &vul = ParticipantManagement::youngestStateInformation(data.stateHistory);
|
||||
newVulnerabilityState = vul.vulnerabilityState;
|
||||
DEBUG_LOG(m_logger) << "newVulnerabilityState" << vul.vulnerabilityState;
|
||||
|
||||
if (newVulnerabilityState == ProjectDataManagement::VulnerabilityState::CombatReady)
|
||||
if (newVulnerabilityState == ProjectDataManagement::VulnerabilityState::VulnerabilityState_CombatReady)
|
||||
{
|
||||
emit participantDecontaminated(participantPosition.participantId());
|
||||
DEBUG_LOG(m_logger) << "emit participantDecontaminated id=" << participantPosition.participantId();
|
||||
emit participantDecontaminated(participantPosition.participantId);
|
||||
DEBUG_LOG(m_logger) << "emit participantDecontaminated id=" << participantPosition.participantId;
|
||||
}
|
||||
}
|
||||
if (participantPosition.vulnerabilityState != newVulnerabilityState)
|
||||
{
|
||||
checkCheating(data.participantId(), participantPosition, newVulnerabilityState);
|
||||
checkCheating(data.participantId, participantPosition, newVulnerabilityState);
|
||||
participantPosition.vulnerabilityState = newVulnerabilityState;
|
||||
emit newParticipantState(participantPosition);
|
||||
}
|
||||
@@ -249,31 +249,31 @@ void HandlerParticipant::onParticipantChanged(const ParticipantManagement::Parti
|
||||
{
|
||||
|
||||
// Remove Participant:
|
||||
if (modType == DataModification::eRemoved || data.isDeleted())
|
||||
if (modType == DataModification::eRemoved || data.isDeleted)
|
||||
{
|
||||
DEBUG_LOG(m_logger) << "onParticipantChanged m_positionsMap.remove id=" << data.id();
|
||||
m_participantData.remove(data.id());
|
||||
m_positionsMap.remove(data.id());
|
||||
DEBUG_LOG(m_logger) << "onParticipantChanged m_positionsMap.remove id=" << data.id;
|
||||
m_participantData.remove(data.id);
|
||||
m_positionsMap.remove(data.id);
|
||||
return;
|
||||
}
|
||||
|
||||
// No OC in CES
|
||||
ParticipantManagement::TypeClass typeClass = typeClassFromTypeId(data.typeId());
|
||||
ParticipantManagement::TypeClass typeClass = typeClassFromTypeId(data.typeId);
|
||||
if (typeClass == ParticipantManagement::TypeClass::SupportEntity
|
||||
|| typeClass == ParticipantManagement::TypeClass::SupportUnit
|
||||
|| typeClass == ParticipantManagement::TypeClass::Unit
|
||||
|| typeClass == ParticipantManagement::TypeClass::Unknown)
|
||||
return;
|
||||
m_participantData[data.id()] = data;
|
||||
m_participantData[data.id] = data;
|
||||
|
||||
CesParticipantData &pos = m_positionsMap[data.id()];
|
||||
pos.partyId(data.partyId());
|
||||
pos.participantId(data.id());
|
||||
pos.participantTypeId(data.typeId());
|
||||
CesParticipantData &pos = m_positionsMap[data.id];
|
||||
pos.partyId = data.partyId;
|
||||
pos.participantId = data.id;
|
||||
pos.participantTypeId = data.typeId;
|
||||
DEBUG_LOG(m_logger) << "onParticipantChanged"
|
||||
<< " id=" << data.id()
|
||||
<< " typeId=" << data.typeId()
|
||||
<< " designator=" << data.designator();
|
||||
<< " id=" << data.id
|
||||
<< " typeId=" << data.typeId
|
||||
<< " designator=" << data.designator;
|
||||
}
|
||||
|
||||
void HandlerParticipant::onTypeChanged(const ParticipantManagement::Type &data, DataModification modType)
|
||||
@@ -281,10 +281,10 @@ void HandlerParticipant::onTypeChanged(const ParticipantManagement::Type &data,
|
||||
|
||||
if (modType == DataModification::eRemoved)
|
||||
return;
|
||||
m_typeMap.insert(data.id(), data.typeClass());
|
||||
m_typeMap.insert(data.id, data.typeClass);
|
||||
DEBUG_LOG(m_logger) << "m_typeMap.size()" << m_typeMap.size()
|
||||
<< " equipmentTypeId=" << data.id()
|
||||
<< " typeClass=" << data.typeClass();
|
||||
<< " equipmentTypeId=" << data.id
|
||||
<< " typeClass=" << data.typeClass;
|
||||
}
|
||||
|
||||
void HandlerParticipant::onRestoreRadioReadinessChanged(const TrainingAreaBase::RestoreRadioReadiness &data, DataModification modType)
|
||||
@@ -296,9 +296,9 @@ void HandlerParticipant::onRestoreRadioReadinessChanged(const TrainingAreaBase::
|
||||
}
|
||||
|
||||
auto dtcPpm = m_ddsHandler->dtcPpm();
|
||||
int participantId = dtcPpm->participantIdByEquipmentNumber(data.equipmentNumber());
|
||||
int participantId = dtcPpm->participantIdByEquipmentNumber(data.equipmentNumber);
|
||||
DEBUG_LOG(m_logger) << "onRestoreRadioReadinessChanged"
|
||||
<< " data.equipmentNumber=" << data.equipmentNumber()
|
||||
<< " data.equipmentNumber=" << data.equipmentNumber
|
||||
<< " participantId=" << participantId;
|
||||
emit restoreRadioReadinessChanged(participantId);
|
||||
auto partPos = m_positionsMap.value(participantId);
|
||||
@@ -306,8 +306,8 @@ void HandlerParticipant::onRestoreRadioReadinessChanged(const TrainingAreaBase::
|
||||
emit newIndoorPosition(partPos);
|
||||
else
|
||||
{
|
||||
partPos.buildingId(0);
|
||||
partPos.roomId(0);
|
||||
partPos.buildingId = 0;
|
||||
partPos.roomId = 0;
|
||||
m_positionsMap.insert(participantId, partPos);
|
||||
emit newOutdoorPosition(partPos);
|
||||
}
|
||||
@@ -322,9 +322,9 @@ QPolygonF HandlerParticipant::getParticipantStep(int participantId, int zone) co
|
||||
return {};
|
||||
const CesParticipantData &partPos = it.value();
|
||||
QPointF p1 = CentralEffectSimulation::geographic2Utm(partPos.lastGeoPosition, &zone);
|
||||
QPointF p2 = CentralEffectSimulation::geographic2Utm(partPos.pos(), &zone);
|
||||
QPointF p2 = CentralEffectSimulation::geographic2Utm(partPos.pos, &zone);
|
||||
|
||||
//return {CentralEffectSimulation::geographic2Utm(partPos.lastGeoPosition, &zone), CentralEffectSimulation::geographic2Utm(partPos.pos(), &zone)};
|
||||
//return {CentralEffectSimulation::geographic2Utm(partPos.lastGeoPosition, &zone), CentralEffectSimulation::geographic2Utm(partPos.pos, &zone)};
|
||||
result << p1 << p2 ;
|
||||
return result;
|
||||
}
|
||||
@@ -336,7 +336,7 @@ QPointF HandlerParticipant::getParticipantPositionUtm(int participantId, int zon
|
||||
if (m_positionsMap.contains(participantId))
|
||||
{
|
||||
const CesParticipantData &partPos = m_positionsMap.value(participantId);
|
||||
result = CentralEffectSimulation::geographic2Utm(partPos.pos(), &zone);
|
||||
result = CentralEffectSimulation::geographic2Utm(partPos.pos, &zone);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@@ -352,12 +352,12 @@ QHash<int, HandlerParticipant::CesParticipantData> HandlerParticipant::positions
|
||||
QHash<int, HandlerParticipant::CesParticipantData> result;
|
||||
for (const HandlerParticipant::CesParticipantData &pos : m_positionsMap)
|
||||
{
|
||||
ParticipantManagement::TypeClass typeClass = typeClassFromTypeId(pos.participantTypeId());
|
||||
ParticipantManagement::TypeClass typeClass = typeClassFromTypeId(pos.participantTypeId);
|
||||
if (typeClass != ParticipantManagement::TypeClass::Aircraft)
|
||||
continue;
|
||||
if (!m_participantData.contains(pos.participantId()))
|
||||
if (!m_participantData.contains(pos.participantId))
|
||||
continue;
|
||||
result.insert(pos.participantId(), pos);
|
||||
result.insert(pos.participantId, pos);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@@ -368,10 +368,10 @@ QVector<int32_t> HandlerParticipant::getParticipantsBuilding(const int32_t build
|
||||
DEBUG_LOG(m_logger) << "getParticipantsBuilding:" << buildingId;
|
||||
for (const HandlerParticipant::CesParticipantData &pos : m_positionsMap)
|
||||
{
|
||||
if (buildingId == pos.buildingId())
|
||||
if (buildingId == pos.buildingId)
|
||||
{
|
||||
DEBUG_LOG(m_logger) << "result.append " << pos.participantId();
|
||||
result.append(pos.participantId());
|
||||
DEBUG_LOG(m_logger) << "result.append " << pos.participantId;
|
||||
result.append(pos.participantId);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
@@ -413,9 +413,9 @@ void HandlerParticipant::checkCheating(const int participantId,
|
||||
{
|
||||
DEBUG_LOG(m_logger) << "checkCheating state =" << newVulnerabilityState
|
||||
<< " participantId=" << participantId;
|
||||
if (!m_typeMap.contains(participantPosition.participantTypeId()))
|
||||
WARNING_LOG(m_logger) << "!m_typeMap.contains(" << participantPosition.participantTypeId() << ")";
|
||||
ParticipantManagement::TypeClass typeClass = m_typeMap[participantPosition.participantTypeId()];
|
||||
if (!m_typeMap.contains(participantPosition.participantTypeId))
|
||||
WARNING_LOG(m_logger) << "!m_typeMap.contains(" << participantPosition.participantTypeId << ")";
|
||||
ParticipantManagement::TypeClass typeClass = m_typeMap[participantPosition.participantTypeId];
|
||||
|
||||
if (handleCheating(typeClass, newVulnerabilityState))
|
||||
{
|
||||
@@ -449,15 +449,15 @@ void HandlerParticipant::checkCheatingPosition(const int participantId)
|
||||
}
|
||||
|
||||
// Check, if valid position is available
|
||||
if (posMobilityKill.participantId() == 0)
|
||||
if (posMobilityKill.participantId == 0)
|
||||
{
|
||||
DEBUG_LOG(m_logger) << "position participantId=" << participantId << " not valid";
|
||||
m_positionsCheatingMap.insert(participantId, posActual);
|
||||
return;
|
||||
}
|
||||
|
||||
QPointF posUtmMobilityKill = CentralEffectSimulation::geographic2Utm(posMobilityKill.pos());
|
||||
QPointF posUtmActual = CentralEffectSimulation::geographic2Utm(posActual.pos());
|
||||
QPointF posUtmMobilityKill = CentralEffectSimulation::geographic2Utm(posMobilityKill.pos);
|
||||
QPointF posUtmActual = CentralEffectSimulation::geographic2Utm(posActual.pos);
|
||||
DEBUG_LOG(m_logger) << "posUtmMobilityKill=" << posUtmMobilityKill.rx() << "/" << posUtmMobilityKill.ry();
|
||||
DEBUG_LOG(m_logger) << "posUtmActual=" << posUtmActual.rx() << "/" << posUtmActual.ry();
|
||||
|
||||
@@ -488,9 +488,9 @@ void HandlerParticipant::onSendParticipantBeStillWarningReply(const Core::Functi
|
||||
void HandlerParticipant::sendBeStillWarning(const int32_t participantId)
|
||||
{
|
||||
TrainingAreaBase::SendParticipantBeStillWarningRequest pba;
|
||||
pba.equipmentNumber(m_ddsHandler->participantId2EquipNo(participantId));
|
||||
pba.participantId(participantId);
|
||||
pba.data(0);
|
||||
pba.equipmentNumber = m_ddsHandler->participantId2EquipNo(participantId);
|
||||
pba.participantId = participantId;
|
||||
pba.data = 0;
|
||||
m_ddsHandler->ftcTab()->sendParticipantBeStillWarningRequest(pba, this);
|
||||
}
|
||||
|
||||
@@ -509,10 +509,10 @@ void HandlerParticipant::modifyStateRequest(
|
||||
std::vector<int32_t> participantIds;
|
||||
participantIds.push_back(participantId);
|
||||
ParticipantManagement::ModifyStateRequest msr;
|
||||
msr.participantIds(participantIds);
|
||||
msr.vulnerabilityState(state);
|
||||
msr.vulnerabilityKind(kind);
|
||||
msr.vitality(vitality);
|
||||
msr.participantIds = participantIds;
|
||||
msr.vulnerabilityState = state;
|
||||
msr.vulnerabilityKind = kind;
|
||||
msr.vitality = vitality;
|
||||
m_ddsHandler->ftcPpm()->modifyStateRequest(msr, this);
|
||||
}
|
||||
|
||||
@@ -520,8 +520,8 @@ long HandlerParticipant::getDirection(int originatorParticipantId, int targetPar
|
||||
{
|
||||
CesParticipantData originatorPos = m_positionsMap[originatorParticipantId];
|
||||
CesParticipantData targetPos = m_positionsMap[targetParticipantId];
|
||||
const Core::GeoPosition2D originatorGeoPos = originatorPos.pos();
|
||||
const Core::GeoPosition2D targetGeoPos = targetPos.pos();
|
||||
const Core::GeoPosition2D originatorGeoPos = originatorPos.pos;
|
||||
const Core::GeoPosition2D targetGeoPos = targetPos.pos;
|
||||
|
||||
int zone = -1;
|
||||
|
||||
@@ -541,8 +541,8 @@ long HandlerParticipant::getDistance(int originatorParticipantId, int targetPart
|
||||
{
|
||||
CesParticipantData originatorPos = m_positionsMap[originatorParticipantId];
|
||||
CesParticipantData targetPos = m_positionsMap[targetParticipantId];
|
||||
const Core::GeoPosition2D originatorGeoPos = originatorPos.pos();
|
||||
const Core::GeoPosition2D targetGeoPos = targetPos.pos();
|
||||
const Core::GeoPosition2D originatorGeoPos = originatorPos.pos;
|
||||
const Core::GeoPosition2D targetGeoPos = targetPos.pos;
|
||||
|
||||
int zone = -1;
|
||||
|
||||
@@ -563,8 +563,8 @@ int HandlerParticipant::getParticipantId(int equipentNumber)
|
||||
while (i.hasNext())
|
||||
{
|
||||
i.next();
|
||||
if (i.value().equipmentNumber() == equipentNumber)
|
||||
return i.value().id();
|
||||
if (i.value().equipmentNumber == equipentNumber)
|
||||
return i.value().id;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -594,12 +594,12 @@ std::ostream &operator<<(std::ostream &stream,
|
||||
<< ", ltsCoordinate = " << value.ltsCoordinate()
|
||||
<< ", insideWlsArea = " << value.insideWlsArea()
|
||||
<< ", insideBuilding = " << value.insideBuilding()
|
||||
<< ", buildingId = " << value.buildingId()
|
||||
<< ", buildingId = " << value.buildingId
|
||||
<< ", notfightMode = " << value.notfightMode
|
||||
<< ", partyId = " << value.partyId()
|
||||
<< ", partyId = " << value.partyId
|
||||
<< ", vulnerabilityState= " << value.vulnerabilityState
|
||||
<< ", participantTypeId = " << value.participantTypeId()
|
||||
<< ", participantId = " << value.participantId()
|
||||
<< ", participantTypeId = " << value.participantTypeId
|
||||
<< ", participantId = " << value.participantId
|
||||
<< ")";
|
||||
return stream;
|
||||
}
|
||||
|
||||
+1
-1
@@ -40,7 +40,7 @@ bool ConnectionHandlerTcp::init()
|
||||
|
||||
connect(m_socket, &QTcpSocket::readyRead, this, &ConnectionHandlerTcp::read);
|
||||
connect(m_socket, &QTcpSocket::disconnected, this, &ConnectionHandlerTcp::open);
|
||||
connect(m_socket, QOverload<QAbstractSocket::SocketError>::of(&QAbstractSocket::error), this, &ConnectionHandlerTcp::handleError);
|
||||
connect(m_socket, &QAbstractSocket::errorOccurred, this, &ConnectionHandlerTcp::handleError);
|
||||
connect(m_socket, &QTcpSocket::connected, this, &ConnectionHandlerTcp::connectedToSerialConverter);
|
||||
open(); //open it and start regardless
|
||||
|
||||
|
||||
@@ -87,7 +87,7 @@ bool DdsHandler::init(const QStringList &qosFileList)
|
||||
|
||||
qint64 DdsHandler::currentPartitionTime() const
|
||||
{
|
||||
return m_dtcCore->partitionTime().timeStamp();
|
||||
return m_dtcCore->partitionTime().timeStamp;
|
||||
}
|
||||
|
||||
|
||||
|
||||
+36
-36
@@ -18,10 +18,10 @@ namespace ConvertFromTab
|
||||
//=============================================================================
|
||||
RxTelegram_e isTelegram(const TrainingAreaBase::FireSmokeMarkerData &data)
|
||||
{
|
||||
if (data.payload().size() == 0)
|
||||
if (data.payload.size() == 0)
|
||||
return RxTelegram_e::unknown;
|
||||
|
||||
switch (data.payload().at(0))
|
||||
switch (data.payload.at(0))
|
||||
{
|
||||
case 150: return RxTelegram_e::EffectShowOrder;
|
||||
case 155: return RxTelegram_e::RelocationOrder;
|
||||
@@ -46,14 +46,14 @@ static inline Core::GeoPosition2D convertGeoPos(const QByteArray &tele, size_t &
|
||||
EffectShowOrder_t convertEffectShowOrder(const TrainingAreaBase::FireSmokeMarkerData &data)
|
||||
{
|
||||
EffectShowOrder_t effectShowOrder;
|
||||
if (data.payload().size() == 0)
|
||||
if (data.payload.size() == 0)
|
||||
return effectShowOrder;
|
||||
|
||||
Q_ASSERT(data.payload().size() != 48);
|
||||
Q_ASSERT(data.payload.size() != 48);
|
||||
|
||||
const QByteArray tele(QByteArray::fromRawData(
|
||||
reinterpret_cast<const char *>(&data.payload().at(0)),
|
||||
data.payload().size()));
|
||||
reinterpret_cast<const char *>(&data.payload.at(0)),
|
||||
data.payload.size()));
|
||||
|
||||
size_t k = 1;
|
||||
LtsUtils::get2Byte(tele, k, effectShowOrder.idEffectShow);
|
||||
@@ -93,14 +93,14 @@ EffectShowOrder_t convertEffectShowOrder(const TrainingAreaBase::FireSmokeMarker
|
||||
RelocationOrder_t convertRelocationOrder(const TrainingAreaBase::FireSmokeMarkerData &data)
|
||||
{
|
||||
RelocationOrder_t relocationOrder;
|
||||
if (data.payload().size() == 0)
|
||||
if (data.payload.size() == 0)
|
||||
return relocationOrder;
|
||||
|
||||
Q_ASSERT(data.payload().size() >= 7);
|
||||
Q_ASSERT(data.payload.size() >= 7);
|
||||
|
||||
const QByteArray tele(QByteArray::fromRawData(
|
||||
reinterpret_cast<const char *>(&data.payload().at(0)),
|
||||
data.payload().size()));
|
||||
reinterpret_cast<const char *>(&data.payload.at(0)),
|
||||
data.payload.size()));
|
||||
|
||||
size_t k = 1;
|
||||
LtsUtils::get2Byte(tele, k, relocationOrder.idRelocation);
|
||||
@@ -122,14 +122,14 @@ RelocationOrder_t convertRelocationOrder(const TrainingAreaBase::FireSmokeMarker
|
||||
int convertEffectShowStop(const TrainingAreaBase::FireSmokeMarkerData &data)
|
||||
{
|
||||
int idEffectShow = 0;
|
||||
if (data.payload().size() == 0)
|
||||
if (data.payload.size() == 0)
|
||||
return idEffectShow;
|
||||
|
||||
Q_ASSERT(data.payload().size() != 3);
|
||||
Q_ASSERT(data.payload.size() != 3);
|
||||
|
||||
const QByteArray tele(QByteArray::fromRawData(
|
||||
reinterpret_cast<const char *>(&data.payload().at(0)),
|
||||
data.payload().size()));
|
||||
reinterpret_cast<const char *>(&data.payload.at(0)),
|
||||
data.payload.size()));
|
||||
|
||||
size_t k = 1;
|
||||
LtsUtils::get2Byte(tele, k, idEffectShow);
|
||||
@@ -140,14 +140,14 @@ int convertEffectShowStop(const TrainingAreaBase::FireSmokeMarkerData &data)
|
||||
EffectShowContinue_t convertEffectShowContinue(const TrainingAreaBase::FireSmokeMarkerData &data)
|
||||
{
|
||||
EffectShowContinue_t effectShowContinue;
|
||||
if (data.payload().size() == 0)
|
||||
if (data.payload.size() == 0)
|
||||
return effectShowContinue;
|
||||
|
||||
Q_ASSERT(data.payload().size() != 7);
|
||||
Q_ASSERT(data.payload.size() != 7);
|
||||
|
||||
const QByteArray tele(QByteArray::fromRawData(
|
||||
reinterpret_cast<const char *>(&data.payload().at(0)),
|
||||
data.payload().size()));
|
||||
reinterpret_cast<const char *>(&data.payload.at(0)),
|
||||
data.payload.size()));
|
||||
|
||||
size_t k = 1;
|
||||
LtsUtils::get2Byte(tele, k, effectShowContinue.idEffectShow);
|
||||
@@ -161,14 +161,14 @@ EffectShowContinue_t convertEffectShowContinue(const TrainingAreaBase::FireSmoke
|
||||
OrderRetract_t convertOrderRetract(const TrainingAreaBase::FireSmokeMarkerData &data)
|
||||
{
|
||||
OrderRetract_t orderRetract;
|
||||
if (data.payload().size() == 0)
|
||||
if (data.payload.size() == 0)
|
||||
return orderRetract;
|
||||
|
||||
Q_ASSERT(data.payload().size() != 4);
|
||||
Q_ASSERT(data.payload.size() != 4);
|
||||
|
||||
const QByteArray tele(QByteArray::fromRawData(
|
||||
reinterpret_cast<const char *>(&data.payload().at(0)),
|
||||
data.payload().size()));
|
||||
reinterpret_cast<const char *>(&data.payload.at(0)),
|
||||
data.payload.size()));
|
||||
|
||||
size_t k = 1;
|
||||
LtsUtils::get1Byte(tele, k, orderRetract.orderType);
|
||||
@@ -179,11 +179,11 @@ OrderRetract_t convertOrderRetract(const TrainingAreaBase::FireSmokeMarkerData &
|
||||
//=============================================================================
|
||||
bool convertStatusRequest(const TrainingAreaBase::FireSmokeMarkerData &data)
|
||||
{
|
||||
if (data.payload().size() <2)
|
||||
if (data.payload.size() <2)
|
||||
return false;
|
||||
|
||||
Q_ASSERT(data.payload().size() != 2);
|
||||
const std::vector<uint8_t> &tele = data.payload();
|
||||
Q_ASSERT(data.payload.size() != 2);
|
||||
const std::vector<uint8_t> &tele = data.payload;
|
||||
|
||||
return (tele.at(1) == 154);
|
||||
|
||||
@@ -192,37 +192,37 @@ bool convertStatusRequest(const TrainingAreaBase::FireSmokeMarkerData &data)
|
||||
EffectShowClient::MeteoNearVehicle convertMeteoData(const TrainingAreaBase::FireSmokeMarkerData &data)
|
||||
{
|
||||
EffectShowClient::MeteoNearVehicle meteoData;
|
||||
if (data.payload().size() == 0)
|
||||
if (data.payload.size() == 0)
|
||||
{
|
||||
meteoData.isValid(false);
|
||||
meteoData.isValid = false;
|
||||
return meteoData;
|
||||
}
|
||||
|
||||
Q_ASSERT(data.payload().size() != 11);
|
||||
Q_ASSERT(data.payload.size() != 11);
|
||||
|
||||
const QByteArray tele(QByteArray::fromRawData(
|
||||
reinterpret_cast<const char *>(&data.payload().at(0)),
|
||||
data.payload().size()));
|
||||
reinterpret_cast<const char *>(&data.payload.at(0)),
|
||||
data.payload.size()));
|
||||
|
||||
qint16 word = 0;
|
||||
|
||||
size_t k = 1;
|
||||
LtsUtils::get2Byte(tele, k, word);
|
||||
meteoData.temperature(double(word) / 10.0);
|
||||
meteoData.temperature = double(word) / 10.0;
|
||||
|
||||
LtsUtils::get2Byte(tele, k, word);
|
||||
meteoData.humidity(double(word));
|
||||
meteoData.humidity = double(word);
|
||||
|
||||
LtsUtils::get2Byte(tele, k, word);
|
||||
meteoData.pressure(double(word));
|
||||
meteoData.pressure = double(word);
|
||||
|
||||
LtsUtils::get2Byte(tele, k, word);
|
||||
meteoData.windDirection(double(word) * 0.01);
|
||||
meteoData.windDirection = double(word) * 0.01;
|
||||
|
||||
LtsUtils::get2Byte(tele, k, word);
|
||||
meteoData.windSpeed(double(word));
|
||||
meteoData.windSpeed = double(word);
|
||||
|
||||
meteoData.isValid(true);
|
||||
meteoData.isValid = true;
|
||||
return meteoData;
|
||||
}
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ std::vector<uint8_t> convertOrderConfirmation(const OrderConfirmation_t &orderCo
|
||||
LtsUtils::set1Byte(120, ba);
|
||||
LtsUtils::set1Byte(int(orderConfirmation.orderType), ba);
|
||||
LtsUtils::set2Byte(orderConfirmation.orderId, ba);
|
||||
LtsUtils::set1Byte(orderConfirmation.confirmation.underlying(), ba);
|
||||
LtsUtils::set1Byte(static_cast<int>(orderConfirmation.confirmation), ba);
|
||||
|
||||
const QByteArray txt = orderConfirmation.answerText.toUtf8();
|
||||
const int len = txt.length() > 39 ? 39 : txt.length();
|
||||
|
||||
+91
-91
@@ -64,13 +64,13 @@ void HandlerFiringExplosion::setFiringClearanceDuration()
|
||||
qint64 pre = m_firingExplosionEntity.firingClearanceTime.get();
|
||||
qint64 post = pre;
|
||||
pre -= PRE_START_TIME;
|
||||
post += m_firingExplosionEntity.duration() + POST_END_TIME; //as we already start "duration" earlier
|
||||
m_firingExplosionEntity.firingClearanceTime().set(pre);
|
||||
m_firingExplosionEntity.endOfFiringClearanceTime().set(post);
|
||||
// m_firingExplosionEntity.firingClearanceTime().set(m_firingExplosionEntity.firingClearanceTime.get() - (2 * m_firingClearanceDuration));
|
||||
post += m_firingExplosionEntity.duration + POST_END_TIME; //as we already start "duration" earlier
|
||||
m_firingExplosionEntity.firingClearanceTime.set(pre);
|
||||
m_firingExplosionEntity.endOfFiringClearanceTime.set(post);
|
||||
// m_firingExplosionEntity.firingClearanceTime.set(m_firingExplosionEntity.firingClearanceTime.get() - (2 * m_firingClearanceDuration));
|
||||
}
|
||||
else
|
||||
m_firingExplosionEntity.endOfFiringClearanceTime().reset();
|
||||
m_firingExplosionEntity.endOfFiringClearanceTime.reset();
|
||||
|
||||
m_mainHandler->dds()->dts()->publish(m_firingExplosionEntity);
|
||||
}
|
||||
@@ -85,41 +85,41 @@ void HandlerFiringExplosion::onStartHandlerFiring(const Database::EscOrder &escO
|
||||
return;
|
||||
|
||||
//we are interrupted
|
||||
m_firingExplosionEntity.idEffectShow(escOrder.id);
|
||||
m_firingExplosionEntity.fireEnabled(false);
|
||||
m_firingExplosionEntity.carriedOutEnabled(false);
|
||||
m_firingExplosionEntity.idOrder(escOrder.idOrder);
|
||||
m_firingExplosionEntity.idEffectShow = escOrder.id;
|
||||
m_firingExplosionEntity.fireEnabled = false;
|
||||
m_firingExplosionEntity.carriedOutEnabled = false;
|
||||
m_firingExplosionEntity.idOrder = escOrder.idOrder;
|
||||
if (m_isNew)
|
||||
{
|
||||
m_firingExplosionEntity.numberOfVolley(escOrder.numOfVolley);
|
||||
m_firingExplosionEntity.numberOfShot(escOrder.shotsPerVolley);
|
||||
m_firingExplosionEntity.remainingVolleys(escOrder.numOfVolley);
|
||||
m_firingExplosionEntity.remainingShots(m_firingExplosionEntity.numberOfShot());
|
||||
DEBUG_LOG(m_logger) << "Changed number of Shots Remain: " << m_firingExplosionEntity.numberOfShot();
|
||||
m_firingExplosionEntity.numberOfVolley = escOrder.numOfVolley;
|
||||
m_firingExplosionEntity.numberOfShot = escOrder.shotsPerVolley;
|
||||
m_firingExplosionEntity.remainingVolleys = escOrder.numOfVolley;
|
||||
m_firingExplosionEntity.remainingShots = m_firingExplosionEntity.numberOfShot;
|
||||
DEBUG_LOG(m_logger) << "Changed number of Shots Remain: " << m_firingExplosionEntity.numberOfShot;
|
||||
m_isNew = false;
|
||||
}
|
||||
m_firingExplosionEntity.duration(escOrder.duration * 1000);
|
||||
m_firingExplosionEntity.remainingTime(escOrder.duration * 1000); //here to avoid traffic?
|
||||
m_firingExplosionEntity.duration = escOrder.duration * 1000;
|
||||
m_firingExplosionEntity.remainingTime = escOrder.duration * 1000; //here to avoid traffic?
|
||||
if (escOrder.startTime > 0)
|
||||
m_firingExplosionEntity.firingClearanceTime().set(escOrder.startTime);
|
||||
m_firingExplosionEntity.firingClearanceTime.set(escOrder.startTime);
|
||||
else
|
||||
{
|
||||
WARNING_LOG(m_logger) << "reset clearance time";
|
||||
m_firingExplosionEntity.firingClearanceTime().reset();
|
||||
m_firingExplosionEntity.firingClearanceTime.reset();
|
||||
}
|
||||
|
||||
if (m_firingExplosionEntity.duration() <= 0 ||
|
||||
m_firingExplosionEntity.numberOfShot() <= 0 ||
|
||||
m_firingExplosionEntity.numberOfVolley() <= 0)
|
||||
if (m_firingExplosionEntity.duration <= 0 ||
|
||||
m_firingExplosionEntity.numberOfShot <= 0 ||
|
||||
m_firingExplosionEntity.numberOfVolley <= 0)
|
||||
{
|
||||
WARNING_LOG(m_logger) << "Won't start Explosion ";
|
||||
return;
|
||||
}
|
||||
|
||||
setFiringClearanceDuration();
|
||||
m_mainHandler->handlerVehicle()->setExplosionParameter(m_firingExplosionEntity.remainingVolleys(),
|
||||
m_firingExplosionEntity.remainingShots(),
|
||||
m_firingExplosionEntity.remainingTime());
|
||||
m_mainHandler->handlerVehicle()->setExplosionParameter(m_firingExplosionEntity.remainingVolleys,
|
||||
m_firingExplosionEntity.remainingShots,
|
||||
m_firingExplosionEntity.remainingTime);
|
||||
}
|
||||
//-----------------------------------------------------------------------------
|
||||
void HandlerFiringExplosion::onEndHandlerFiring(const Database::EscOrder &escOrder)
|
||||
@@ -128,23 +128,23 @@ void HandlerFiringExplosion::onEndHandlerFiring(const Database::EscOrder &escOrd
|
||||
DEBUG_LOG(m_logger) << "numOfVolley: " << escOrder.numOfVolley
|
||||
<< "shotsInTotal: " << escOrder.shotsPerVolley
|
||||
<< "duration: " << escOrder.duration;
|
||||
if (escOrder.numOfVolley < 0 || escOrder.idOrder != m_firingExplosionEntity.idOrder())
|
||||
if (escOrder.numOfVolley < 0 || escOrder.idOrder != m_firingExplosionEntity.idOrder)
|
||||
return;
|
||||
|
||||
m_firingExplosionEntity.idEffectShow(0);
|
||||
m_firingExplosionEntity.fireEnabled(false);
|
||||
m_firingExplosionEntity.isActive(false);
|
||||
m_firingExplosionEntity.idOrder(0);
|
||||
m_firingExplosionEntity.numberOfVolley(0);
|
||||
m_firingExplosionEntity.numberOfShot(0);
|
||||
m_firingExplosionEntity.remainingShots(0);
|
||||
m_firingExplosionEntity.remainingVolleys(0);
|
||||
m_firingExplosionEntity.duration(0);
|
||||
m_firingExplosionEntity.firingClearanceTime(dds::core::optional<rti::core::int64>());
|
||||
m_firingExplosionEntity.endOfFiringClearanceTime(dds::core::optional<rti::core::int64>());
|
||||
m_firingExplosionEntity.fireEnabled(false);
|
||||
m_firingExplosionEntity.carriedOutEnabled(false);
|
||||
m_firingExplosionEntity.remainingTime(0); //here to avoid traffic?
|
||||
m_firingExplosionEntity.idEffectShow = 0;
|
||||
m_firingExplosionEntity.fireEnabled = false;
|
||||
m_firingExplosionEntity.isActive = false;
|
||||
m_firingExplosionEntity.idOrder = 0;
|
||||
m_firingExplosionEntity.numberOfVolley = 0;
|
||||
m_firingExplosionEntity.numberOfShot = 0;
|
||||
m_firingExplosionEntity.remainingShots = 0;
|
||||
m_firingExplosionEntity.remainingVolleys = 0;
|
||||
m_firingExplosionEntity.duration = 0;
|
||||
m_firingExplosionEntity.firingClearanceTime = dds::core::optional<rti::core::int64>();
|
||||
m_firingExplosionEntity.endOfFiringClearanceTime = dds::core::optional<rti::core::int64>();
|
||||
m_firingExplosionEntity.fireEnabled = false;
|
||||
m_firingExplosionEntity.carriedOutEnabled = false;
|
||||
m_firingExplosionEntity.remainingTime = 0; //here to avoid traffic?
|
||||
m_mainHandler->dds()->dts()->publish(m_firingExplosionEntity);
|
||||
m_isNew = true;
|
||||
//reset effect show
|
||||
@@ -153,34 +153,34 @@ void HandlerFiringExplosion::onEndHandlerFiring(const Database::EscOrder &escOrd
|
||||
//-----------------------------------------------------------------------------
|
||||
void HandlerFiringExplosion::onEffectShowStopped(qint16 idEffectShow)
|
||||
{
|
||||
if (idEffectShow != m_firingExplosionEntity.idEffectShow())
|
||||
if (idEffectShow != m_firingExplosionEntity.idEffectShow)
|
||||
{
|
||||
ERROR_LOG(m_logger) << "EffectShow IDs not consistent: " << idEffectShow << " / " << m_firingExplosionEntity.idEffectShow();
|
||||
ERROR_LOG(m_logger) << "EffectShow IDs not consistent: " << idEffectShow << " / " << m_firingExplosionEntity.idEffectShow;
|
||||
return;
|
||||
}
|
||||
m_firingExplosionEntity.isActive(false);
|
||||
m_firingExplosionEntity.isActive = false;
|
||||
}
|
||||
//-----------------------------------------------------------------------------
|
||||
void HandlerFiringExplosion::onEffectShowContinued(const ConvertFromTab::EffectShowContinue_t &effectShowContinue)
|
||||
{
|
||||
if (effectShowContinue.idEffectShow != m_firingExplosionEntity.idEffectShow())
|
||||
if (effectShowContinue.idEffectShow != m_firingExplosionEntity.idEffectShow)
|
||||
{
|
||||
ERROR_LOG(m_logger) << "EffectShow IDs not consistent: " << effectShowContinue.idEffectShow << " / " << m_firingExplosionEntity.idEffectShow();
|
||||
ERROR_LOG(m_logger) << "EffectShow IDs not consistent: " << effectShowContinue.idEffectShow << " / " << m_firingExplosionEntity.idEffectShow;
|
||||
return;
|
||||
}
|
||||
}
|
||||
//-----------------------------------------------------------------------------
|
||||
void HandlerFiringExplosion::onSafetyConfirmation(const SafetyConfirmation_e &safetyConfirmation)
|
||||
{
|
||||
m_firingExplosionEntity.safetyConfirmation(safetyConfirmation);
|
||||
m_firingExplosionEntity.safetyConfirmation = safetyConfirmation;
|
||||
if (m_lastState == SafetyConfirmation_e::SafetyConfirmed && safetyConfirmation == SafetyConfirmation_e::SafetyNotConfirmed)
|
||||
m_mainHandler->handlerVehicle()->effectShowControl(EffectShowControl_e::StopTimer);
|
||||
|
||||
if (m_lastState != safetyConfirmation && m_firingExplosionEntity.safetyConfirmation() == EffectShowClient::SafetyConfirmation_e::SafetyNotConfirmed &&
|
||||
m_firingExplosionEntity.isActive() && !m_firingExplosionEntity.carriedOutEnabled())
|
||||
if (m_lastState != safetyConfirmation && m_firingExplosionEntity.safetyConfirmation == EffectShowClient::SafetyConfirmation_e::SafetyNotConfirmed &&
|
||||
m_firingExplosionEntity.isActive && !m_firingExplosionEntity.carriedOutEnabled)
|
||||
{
|
||||
if (m_firingExplosionEntity.idEffectShow() > 0)
|
||||
m_mainHandler->handlerOrder()->updateOrderWithId(m_firingExplosionEntity.idEffectShow(), QString(), EffectShowManagement::OrderConfirmation_e::InterruptExecution);
|
||||
if (m_firingExplosionEntity.idEffectShow > 0)
|
||||
m_mainHandler->handlerOrder()->updateOrderWithId(m_firingExplosionEntity.idEffectShow, QString(), EffectShowManagement::OrderConfirmation_e::InterruptExecution);
|
||||
|
||||
onEffectShowInterrupted();
|
||||
}
|
||||
@@ -191,16 +191,16 @@ void HandlerFiringExplosion::onSafetyConfirmation(const SafetyConfirmation_e &sa
|
||||
//-----------------------------------------------------------------------------
|
||||
void HandlerFiringExplosion::onReadyForExplosionFiring(bool ready)
|
||||
{
|
||||
m_firingExplosionEntity.fireEnabled(ready);
|
||||
m_firingExplosionEntity.fireEnabled = ready;
|
||||
m_mainHandler->dds()->dts()->publish(m_firingExplosionEntity);
|
||||
}
|
||||
//-----------------------------------------------------------------------------
|
||||
void HandlerFiringExplosion::onStatusExplosionFiring(const StatusExplosionFiring_t &statusExplosionFiring)
|
||||
{
|
||||
m_firingExplosionEntity.remainingTime(statusExplosionFiring.remainingTime_s);
|
||||
m_firingExplosionEntity.remainingShots(statusExplosionFiring.remainingShots);
|
||||
m_firingExplosionEntity.carriedOutEnabled(m_firingExplosionEntity.isActive() && (m_isInterrupted || statusExplosionFiring.remainingTime_s <= 0));
|
||||
m_firingExplosionEntity.remainingVolleys(statusExplosionFiring.remainingVolley);
|
||||
m_firingExplosionEntity.remainingTime = statusExplosionFiring.remainingTime_s;
|
||||
m_firingExplosionEntity.remainingShots = statusExplosionFiring.remainingShots;
|
||||
m_firingExplosionEntity.carriedOutEnabled = m_firingExplosionEntity.isActive && (m_isInterrupted || statusExplosionFiring.remainingTime_s <= 0);
|
||||
m_firingExplosionEntity.remainingVolleys = statusExplosionFiring.remainingVolley;
|
||||
m_mainHandler->dds()->dts()->publish(m_firingExplosionEntity);
|
||||
}
|
||||
|
||||
@@ -208,14 +208,14 @@ void HandlerFiringExplosion::onEffectShowStarted()
|
||||
{
|
||||
|
||||
DEBUG_LOG(m_logger) << "onEffectShowStarted";
|
||||
m_mainHandler->handlerVehicle()->setExplosionParameter(m_firingExplosionEntity.remainingVolleys(),
|
||||
m_firingExplosionEntity.remainingShots(),
|
||||
m_firingExplosionEntity.remainingTime());
|
||||
m_mainHandler->handlerVehicle()->setExplosionParameter(m_firingExplosionEntity.remainingVolleys,
|
||||
m_firingExplosionEntity.remainingShots,
|
||||
m_firingExplosionEntity.remainingTime);
|
||||
|
||||
m_isInterrupted = false;
|
||||
m_firingExplosionEntity.isActive(true);
|
||||
m_firingExplosionEntity.fireEnabled(false);
|
||||
m_firingExplosionEntity.carriedOutEnabled(false);
|
||||
m_firingExplosionEntity.isActive = true;
|
||||
m_firingExplosionEntity.fireEnabled = false;
|
||||
m_firingExplosionEntity.carriedOutEnabled = false;
|
||||
|
||||
m_mainHandler->dds()->dts()->publish(m_firingExplosionEntity);
|
||||
}
|
||||
@@ -226,7 +226,7 @@ bool HandlerFiringExplosion::onEffectShowInterrupted()
|
||||
if (m_isInterrupted == true)
|
||||
return false;
|
||||
|
||||
if (!m_firingExplosionEntity.isActive() && m_isInterrupted == false)
|
||||
if (!m_firingExplosionEntity.isActive && m_isInterrupted == false)
|
||||
{
|
||||
DEBUG_LOG(m_logger) << "onEffectShowInterrupted is active so return";
|
||||
return false;
|
||||
@@ -236,9 +236,9 @@ bool HandlerFiringExplosion::onEffectShowInterrupted()
|
||||
m_mainHandler->handlerVehicle()->effectShowControl(EffectShowControl_e::StopTimer);
|
||||
|
||||
m_isInterrupted = true;
|
||||
m_firingExplosionEntity.isActive(true);
|
||||
m_firingExplosionEntity.fireEnabled(true);
|
||||
m_firingExplosionEntity.carriedOutEnabled(true);
|
||||
m_firingExplosionEntity.isActive = true;
|
||||
m_firingExplosionEntity.fireEnabled = true;
|
||||
m_firingExplosionEntity.carriedOutEnabled = true;
|
||||
m_mainHandler->dds()->dts()->publish(m_firingExplosionEntity);
|
||||
return true;
|
||||
}
|
||||
@@ -249,53 +249,53 @@ void HandlerFiringExplosion::onManuallyExplosionRequest(const rti::core::SampleI
|
||||
{
|
||||
DEBUG_LOG(m_logger) << "onManuallyExplosionRequest ";
|
||||
//override order!
|
||||
if (m_firingExplosionEntity.idEffectShow() == 0)
|
||||
if (m_firingExplosionEntity.idEffectShow == 0)
|
||||
{
|
||||
m_firingExplosionEntity.firingClearanceTime().reset();
|
||||
m_firingExplosionEntity.endOfFiringClearanceTime().reset();
|
||||
m_firingExplosionEntity.fireEnabled(false);
|
||||
m_firingExplosionEntity.carriedOutEnabled(false);
|
||||
m_firingExplosionEntity.firingClearanceTime.reset();
|
||||
m_firingExplosionEntity.endOfFiringClearanceTime.reset();
|
||||
m_firingExplosionEntity.fireEnabled = false;
|
||||
m_firingExplosionEntity.carriedOutEnabled = false;
|
||||
}
|
||||
m_isInterrupted = false;
|
||||
m_mainHandler->dds()->fts()->manuallyExplosionReply(cookie, Core::FunctionReplyObject());
|
||||
if (request.pbInterrupt())
|
||||
if (request.pbInterrupt)
|
||||
{
|
||||
m_mainHandler->handlerVehicle()->effectShowControl(EffectShowControl_e::Stop);
|
||||
onEffectShowInterrupted();
|
||||
}
|
||||
if (!request.pbFire() && !request.pbAbort() && !request.pbCarriedOut())
|
||||
m_mainHandler->handlerVehicle()->setExplosionParameter(request.numberOfVolley(), request.numberOfShot(), request.duration());
|
||||
if (!request.pbFire && !request.pbAbort && !request.pbCarriedOut)
|
||||
m_mainHandler->handlerVehicle()->setExplosionParameter(request.numberOfVolley, request.numberOfShot, request.duration);
|
||||
|
||||
if (request.pbAbort() || request.pbCarriedOut())
|
||||
if (request.pbAbort || request.pbCarriedOut)
|
||||
{
|
||||
m_firingExplosionEntity.isActive(false);
|
||||
m_firingExplosionEntity.carriedOutEnabled(false);
|
||||
if (request.pbAbort())
|
||||
m_firingExplosionEntity.isActive = false;
|
||||
m_firingExplosionEntity.carriedOutEnabled = false;
|
||||
if (request.pbAbort)
|
||||
m_mainHandler->handlerVehicle()->effectShowControl(EffectShowControl_e::Abort);
|
||||
// m_firingExplosionEntity.numberOfVolley(0);
|
||||
// m_firingExplosionEntity.numberOfShot(0);
|
||||
m_firingExplosionEntity.remainingShots(0);
|
||||
m_firingExplosionEntity.remainingShots(0);
|
||||
m_firingExplosionEntity.remainingVolleys(0);
|
||||
m_firingExplosionEntity.remainingShots = 0;
|
||||
m_firingExplosionEntity.remainingShots = 0;
|
||||
m_firingExplosionEntity.remainingVolleys = 0;
|
||||
// m_firingExplosionEntity.duration(0);
|
||||
m_firingExplosionEntity.remainingTime(0);
|
||||
m_firingExplosionEntity.firingClearanceTime().reset();
|
||||
m_firingExplosionEntity.endOfFiringClearanceTime().reset();
|
||||
m_firingExplosionEntity.remainingTime = 0;
|
||||
m_firingExplosionEntity.firingClearanceTime.reset();
|
||||
m_firingExplosionEntity.endOfFiringClearanceTime.reset();
|
||||
}
|
||||
else if (!request.pbInterrupt())
|
||||
else if (!request.pbInterrupt)
|
||||
{
|
||||
// m_firingExplosionEntity.idOrder(0);
|
||||
m_firingExplosionEntity.numberOfVolley(request.numberOfVolley());
|
||||
m_firingExplosionEntity.numberOfShot(request.numberOfShot());
|
||||
m_firingExplosionEntity.remainingShots(request.numberOfShot());
|
||||
m_firingExplosionEntity.remainingVolleys(request.numberOfVolley());
|
||||
m_firingExplosionEntity.duration(request.duration());
|
||||
m_firingExplosionEntity.remainingTime(request.duration());
|
||||
m_firingExplosionEntity.numberOfVolley = request.numberOfVolley;
|
||||
m_firingExplosionEntity.numberOfShot = request.numberOfShot;
|
||||
m_firingExplosionEntity.remainingShots = request.numberOfShot;
|
||||
m_firingExplosionEntity.remainingVolleys = request.numberOfVolley;
|
||||
m_firingExplosionEntity.duration = request.duration;
|
||||
m_firingExplosionEntity.remainingTime = request.duration;
|
||||
}
|
||||
if (request.pbFire())
|
||||
if (request.pbFire)
|
||||
{
|
||||
m_mainHandler->handlerVehicle()->recalcEverything();
|
||||
m_firingExplosionEntity.isActive(true);
|
||||
m_firingExplosionEntity.isActive = true;
|
||||
m_mainHandler->handlerVehicle()->effectShowControl(EffectShowControl_e::Start);
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -42,7 +42,7 @@ public:
|
||||
|
||||
void setFiringClearanceDuration();
|
||||
bool onEffectShowInterrupted();
|
||||
int getCurrentorderId() { return m_firingExplosionEntity.idOrder(); }
|
||||
int getCurrentorderId() { return m_firingExplosionEntity.idOrder; }
|
||||
private Q_SLOTS:
|
||||
void onStartHandlerFiring(const Database::EscOrder &escOrder);
|
||||
void onEndHandlerFiring(const Database::EscOrder &escOrder);
|
||||
|
||||
+42
-42
@@ -57,30 +57,30 @@ void HandlerFiringSmoke::setFiringClearanceDuration()
|
||||
qint64 pre = m_firingSmokeEntity.firingClearanceTime.get();
|
||||
qint64 post = pre;
|
||||
pre -= PRE_START_TIME;
|
||||
post += m_firingSmokeEntity.duration() + POST_END_TIME;
|
||||
m_firingSmokeEntity.firingClearanceTime().set(pre);
|
||||
m_firingSmokeEntity.endOfFiringClearanceTime().set(post);
|
||||
post += m_firingSmokeEntity.duration + POST_END_TIME;
|
||||
m_firingSmokeEntity.firingClearanceTime.set(pre);
|
||||
m_firingSmokeEntity.endOfFiringClearanceTime.set(post);
|
||||
}
|
||||
else
|
||||
m_firingSmokeEntity.endOfFiringClearanceTime().reset();
|
||||
m_firingSmokeEntity.endOfFiringClearanceTime.reset();
|
||||
|
||||
m_mainHandler->dds()->dts()->publish(m_firingSmokeEntity);
|
||||
}
|
||||
//-----------------------------------------------------------------------------
|
||||
void HandlerFiringSmoke::onStartHandlerFiring(const Database::EscOrder &escOrder)
|
||||
{
|
||||
m_firingSmokeEntity.idEffectShow(escOrder.idOrder);
|
||||
m_firingSmokeEntity.lengthOfFogZone(escOrder.areaWidth);
|
||||
m_firingSmokeEntity.duration(escOrder.duration * 1000);
|
||||
m_firingSmokeEntity.idOrder(escOrder.id);
|
||||
m_firingSmokeEntity.idEffectShow = escOrder.idOrder;
|
||||
m_firingSmokeEntity.lengthOfFogZone = escOrder.areaWidth;
|
||||
m_firingSmokeEntity.duration = escOrder.duration * 1000;
|
||||
m_firingSmokeEntity.idOrder = escOrder.id;
|
||||
if (escOrder.startTime > 0)
|
||||
m_firingSmokeEntity.firingClearanceTime().set(escOrder.startTime);
|
||||
m_firingSmokeEntity.firingClearanceTime.set(escOrder.startTime);
|
||||
else
|
||||
m_firingSmokeEntity.firingClearanceTime().reset();
|
||||
m_firingSmokeEntity.firingClearanceTime.reset();
|
||||
|
||||
|
||||
if (m_firingSmokeEntity.lengthOfFogZone() <= 0 ||
|
||||
m_firingSmokeEntity.duration() <= 0)
|
||||
if (m_firingSmokeEntity.lengthOfFogZone <= 0 ||
|
||||
m_firingSmokeEntity.duration <= 0)
|
||||
{
|
||||
WARNING_LOG(m_logger) << "Won't start Smoke ";
|
||||
DEBUG_LOG(m_logger) << "areaWidth: " << escOrder.areaWidth
|
||||
@@ -95,57 +95,57 @@ void HandlerFiringSmoke::onEndHandlerFiring(const Database::EscOrder &escOrder)
|
||||
{
|
||||
Q_UNUSED(escOrder)
|
||||
|
||||
m_firingSmokeEntity.remainingDistance(0);
|
||||
m_firingSmokeEntity.remainingTime(0);
|
||||
m_firingSmokeEntity.carriedOutEnabled(false);
|
||||
m_firingSmokeEntity.directionOfFogZone(0);
|
||||
m_firingSmokeEntity.endOfFiringClearanceTime().reset();
|
||||
m_firingSmokeEntity.idOrder(0);
|
||||
m_firingSmokeEntity.idEffectShow(0);
|
||||
m_firingSmokeEntity.firingClearanceTime().reset();
|
||||
m_firingSmokeEntity.remainingDistance = 0;
|
||||
m_firingSmokeEntity.remainingTime = 0;
|
||||
m_firingSmokeEntity.carriedOutEnabled = false;
|
||||
m_firingSmokeEntity.directionOfFogZone = 0;
|
||||
m_firingSmokeEntity.endOfFiringClearanceTime.reset();
|
||||
m_firingSmokeEntity.idOrder = 0;
|
||||
m_firingSmokeEntity.idEffectShow = 0;
|
||||
m_firingSmokeEntity.firingClearanceTime.reset();
|
||||
|
||||
m_mainHandler->dds()->dts()->publish(m_firingSmokeEntity);
|
||||
}
|
||||
//-----------------------------------------------------------------------------
|
||||
void HandlerFiringSmoke::onEffectShowStopped(qint16 idEffectShow)
|
||||
{
|
||||
if (idEffectShow != m_firingSmokeEntity.idEffectShow())
|
||||
if (idEffectShow != m_firingSmokeEntity.idEffectShow)
|
||||
{
|
||||
ERROR_LOG(m_logger) << "EffectShow IDs not consistent: " << idEffectShow << " / " << m_firingSmokeEntity.idEffectShow();
|
||||
ERROR_LOG(m_logger) << "EffectShow IDs not consistent: " << idEffectShow << " / " << m_firingSmokeEntity.idEffectShow;
|
||||
return;
|
||||
}
|
||||
}
|
||||
//-----------------------------------------------------------------------------
|
||||
void HandlerFiringSmoke::onEffectShowContinued(const ConvertFromTab::EffectShowContinue_t &effectShowContinue)
|
||||
{
|
||||
if (effectShowContinue.idEffectShow != m_firingSmokeEntity.idEffectShow())
|
||||
if (effectShowContinue.idEffectShow != m_firingSmokeEntity.idEffectShow)
|
||||
{
|
||||
ERROR_LOG(m_logger) << "EffectShow IDs not consistent: " << effectShowContinue.idEffectShow << " / " << m_firingSmokeEntity.idEffectShow();
|
||||
ERROR_LOG(m_logger) << "EffectShow IDs not consistent: " << effectShowContinue.idEffectShow << " / " << m_firingSmokeEntity.idEffectShow;
|
||||
return;
|
||||
}
|
||||
}
|
||||
//-----------------------------------------------------------------------------
|
||||
void HandlerFiringSmoke::onSafetyConfirmation(const SafetyConfirmation_e &safetyConfirmation)
|
||||
{
|
||||
m_firingSmokeEntity.safetyConfirmation(safetyConfirmation);
|
||||
m_firingSmokeEntity.safetyConfirmation = safetyConfirmation;
|
||||
|
||||
m_mainHandler->dds()->dts()->publish(m_firingSmokeEntity);
|
||||
}
|
||||
//-----------------------------------------------------------------------------
|
||||
void HandlerFiringSmoke::onStatusSmokeFiring(const StatusSmokeFiring_t &statusSmokeFiring)
|
||||
{
|
||||
m_firingSmokeEntity.remainingDistance(statusSmokeFiring.remainingDistance_m);
|
||||
m_firingSmokeEntity.remainingTime(statusSmokeFiring.remainingTime_s);
|
||||
m_firingSmokeEntity.carriedOutEnabled(statusSmokeFiring.remainingTime_s <= 0);
|
||||
m_firingSmokeEntity.remainingDistance = statusSmokeFiring.remainingDistance_m;
|
||||
m_firingSmokeEntity.remainingTime = statusSmokeFiring.remainingTime_s;
|
||||
m_firingSmokeEntity.carriedOutEnabled = statusSmokeFiring.remainingTime_s <= 0;
|
||||
|
||||
m_mainHandler->dds()->dts()->publish(m_firingSmokeEntity);
|
||||
}
|
||||
|
||||
void HandlerFiringSmoke::setSmoking()
|
||||
{
|
||||
if (m_firingSmokeEntity.idOrder() > 0) //send new order change into execution
|
||||
if (m_firingSmokeEntity.idOrder > 0) //send new order change into execution
|
||||
{
|
||||
m_mainHandler->handlerOrder()->updateOrderWithId(m_firingSmokeEntity.idOrder(), QStringLiteral(""), EffectShowManagement::OrderConfirmation_e::Execution);
|
||||
m_mainHandler->handlerOrder()->updateOrderWithId(m_firingSmokeEntity.idOrder, QStringLiteral(""), EffectShowManagement::OrderConfirmation_e::Execution);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -157,25 +157,25 @@ void HandlerFiringSmoke::onManuallySmokeRequest(const rti::core::SampleIdentity
|
||||
DEBUG_LOG(m_logger) << "onManuallySmokeRequest";
|
||||
|
||||
//override order!
|
||||
if (m_firingSmokeEntity.idOrder() == 0)
|
||||
if (m_firingSmokeEntity.idOrder == 0)
|
||||
{
|
||||
m_firingSmokeEntity.firingClearanceTime().reset();
|
||||
m_firingSmokeEntity.endOfFiringClearanceTime().reset();
|
||||
m_firingSmokeEntity.carriedOutEnabled(false);
|
||||
m_firingSmokeEntity.firingClearanceTime.reset();
|
||||
m_firingSmokeEntity.endOfFiringClearanceTime.reset();
|
||||
m_firingSmokeEntity.carriedOutEnabled = false;
|
||||
}
|
||||
|
||||
m_firingSmokeEntity.lengthOfFogZone(request.lengthOfFogZone());
|
||||
m_firingSmokeEntity.directionOfFogZone(request.directionOfFogZone());
|
||||
m_firingSmokeEntity.remainingDistance(request.lengthOfFogZone());
|
||||
m_firingSmokeEntity.duration(m_mainHandler->handlerVehicle()->burningTimeSmokeCartridge_s());
|
||||
m_firingSmokeEntity.remainingTime(m_firingSmokeEntity.duration());
|
||||
m_firingSmokeEntity.lengthOfFogZone = request.lengthOfFogZone;
|
||||
m_firingSmokeEntity.directionOfFogZone = request.directionOfFogZone;
|
||||
m_firingSmokeEntity.remainingDistance = request.lengthOfFogZone;
|
||||
m_firingSmokeEntity.duration = m_mainHandler->handlerVehicle()->burningTimeSmokeCartridge_s();
|
||||
m_firingSmokeEntity.remainingTime = m_firingSmokeEntity.duration;
|
||||
|
||||
m_mainHandler->dds()->fts()->manuallySmokeReply(cookie, Core::FunctionReplyObject());
|
||||
|
||||
if (!request.pbAbort() && !request.pbCarriedOut())
|
||||
m_mainHandler->handlerVehicle()->setSmokeParameter(request.lengthOfFogZone(), request.directionOfFogZone());
|
||||
if (!request.pbAbort && !request.pbCarriedOut)
|
||||
m_mainHandler->handlerVehicle()->setSmokeParameter(request.lengthOfFogZone, request.directionOfFogZone);
|
||||
|
||||
if (request.pbAbort())
|
||||
if (request.pbAbort)
|
||||
m_mainHandler->handlerVehicle()->effectShowControl(EffectShowControl_e::Abort);
|
||||
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@ public:
|
||||
bool init();
|
||||
|
||||
void setFiringClearanceDuration();
|
||||
int getCurrentorderId() { return m_firingSmokeEntity.idOrder(); }
|
||||
int getCurrentorderId() { return m_firingSmokeEntity.idOrder; }
|
||||
void setSmoking();
|
||||
|
||||
private Q_SLOTS:
|
||||
|
||||
+55
-55
@@ -41,7 +41,7 @@ HandlerOperatingCondition::~HandlerOperatingCondition()
|
||||
//=============================================================================
|
||||
bool HandlerOperatingCondition::init()
|
||||
{
|
||||
m_operatingCondition.readiness(m_isOperational);
|
||||
m_operatingCondition.readiness = m_isOperational;
|
||||
connect(m_mainHandler->handlerVehicle().get(), &HandlerVehicle::vehicleBattery,
|
||||
this, &HandlerOperatingCondition::onVehicleBattery);
|
||||
connect(m_mainHandler->handlerVehicle().get(), &HandlerVehicle::vehicleSmokeCardridgesFireStatus,
|
||||
@@ -75,7 +75,7 @@ bool HandlerOperatingCondition::init()
|
||||
|
||||
void HandlerOperatingCondition::onVehicleBattery(double battery)
|
||||
{
|
||||
m_operatingCondition.batteryVoltage(battery);
|
||||
m_operatingCondition.batteryVoltage = battery;
|
||||
if (!m_mainHandler->dds()->dts()->publish(m_operatingCondition))
|
||||
ERROR_LOG(m_logger) << "Error publishing OperatingConditionEntity-data Battery to dds";
|
||||
}
|
||||
@@ -96,8 +96,8 @@ void HandlerOperatingCondition::onVehicleSmokeCardridgesFireStatus(const CardRid
|
||||
int count = numberOfSmokingCardridgesNew - numberOfSmokingCardridgesOld;
|
||||
if (count > 0)
|
||||
{
|
||||
m_operatingCondition.ammunitionAvailable(std::max(0, m_operatingCondition.ammunitionAvailable() - count));
|
||||
m_operatingCondition.ammunitionMagazine(std::max(0, m_operatingCondition.ammunitionMagazine() - count));
|
||||
m_operatingCondition.ammunitionAvailable = std::max(0, m_operatingCondition.ammunitionAvailable - count);
|
||||
m_operatingCondition.ammunitionMagazine = std::max(0, m_operatingCondition.ammunitionMagazine - count);
|
||||
//we are burning now
|
||||
ConvertToTab::VehicleStatus_t vehicleStatus;
|
||||
getVehicleStatus(vehicleStatus);
|
||||
@@ -106,15 +106,15 @@ void HandlerOperatingCondition::onVehicleSmokeCardridgesFireStatus(const CardRid
|
||||
} // if
|
||||
|
||||
if (fireStatus.cardrige1)
|
||||
m_operatingCondition.smokeCartridge1(StatusSmokeCartridge_e::Smoking);
|
||||
m_operatingCondition.smokeCartridge1 = StatusSmokeCartridge_e::Smoking;
|
||||
if (fireStatus.cardrige2)
|
||||
m_operatingCondition.smokeCartridge2(StatusSmokeCartridge_e::Smoking);
|
||||
m_operatingCondition.smokeCartridge2 = StatusSmokeCartridge_e::Smoking;
|
||||
if (fireStatus.cardrige3)
|
||||
m_operatingCondition.smokeCartridge3(StatusSmokeCartridge_e::Smoking);
|
||||
m_operatingCondition.smokeCartridge3 = StatusSmokeCartridge_e::Smoking;
|
||||
if (fireStatus.cardrige4)
|
||||
m_operatingCondition.smokeCartridge4(StatusSmokeCartridge_e::Smoking);
|
||||
m_operatingCondition.smokeCartridge4 = StatusSmokeCartridge_e::Smoking;
|
||||
if (fireStatus.cardrige5)
|
||||
m_operatingCondition.smokeCartridge5(StatusSmokeCartridge_e::Smoking);
|
||||
m_operatingCondition.smokeCartridge5 = StatusSmokeCartridge_e::Smoking;
|
||||
|
||||
if (!m_mainHandler->dds()->dts()->publish(m_operatingCondition))
|
||||
ERROR_LOG(m_logger) << "Error publishing OperatingConditionEntity-data (Somoking) to dds";
|
||||
@@ -124,15 +124,15 @@ void HandlerOperatingCondition::onVehicleSmokeCardridgesStatus(const CardRidges
|
||||
{
|
||||
m_readyCardridges = fireStatus;
|
||||
if (!m_smokingCardridges.cardrige1)
|
||||
m_operatingCondition.smokeCartridge1(m_readyCardridges.cardrige1 ? StatusSmokeCartridge_e::Ready : StatusSmokeCartridge_e::NotReady);
|
||||
m_operatingCondition.smokeCartridge1 = m_readyCardridges.cardrige1 ? StatusSmokeCartridge_e::Ready : StatusSmokeCartridge_e::NotReady;
|
||||
if (!m_smokingCardridges.cardrige2)
|
||||
m_operatingCondition.smokeCartridge2(m_readyCardridges.cardrige2 ? StatusSmokeCartridge_e::Ready : StatusSmokeCartridge_e::NotReady);
|
||||
m_operatingCondition.smokeCartridge2 = m_readyCardridges.cardrige2 ? StatusSmokeCartridge_e::Ready : StatusSmokeCartridge_e::NotReady;
|
||||
if (!m_smokingCardridges.cardrige3)
|
||||
m_operatingCondition.smokeCartridge3(m_readyCardridges.cardrige3 ? StatusSmokeCartridge_e::Ready : StatusSmokeCartridge_e::NotReady);
|
||||
m_operatingCondition.smokeCartridge3 = m_readyCardridges.cardrige3 ? StatusSmokeCartridge_e::Ready : StatusSmokeCartridge_e::NotReady;
|
||||
if (!m_smokingCardridges.cardrige4)
|
||||
m_operatingCondition.smokeCartridge4(m_readyCardridges.cardrige4 ? StatusSmokeCartridge_e::Ready : StatusSmokeCartridge_e::NotReady);
|
||||
m_operatingCondition.smokeCartridge4 = m_readyCardridges.cardrige4 ? StatusSmokeCartridge_e::Ready : StatusSmokeCartridge_e::NotReady;
|
||||
if (!m_smokingCardridges.cardrige5)
|
||||
m_operatingCondition.smokeCartridge5(m_readyCardridges.cardrige5 ? StatusSmokeCartridge_e::Ready : StatusSmokeCartridge_e::NotReady);
|
||||
m_operatingCondition.smokeCartridge5 = m_readyCardridges.cardrige5 ? StatusSmokeCartridge_e::Ready : StatusSmokeCartridge_e::NotReady;
|
||||
|
||||
if (!m_mainHandler->dds()->dts()->publish(m_operatingCondition))
|
||||
ERROR_LOG(m_logger) << "Error publishing OperatingConditionEntity-data to dds";
|
||||
@@ -140,21 +140,21 @@ void HandlerOperatingCondition::onVehicleSmokeCardridgesStatus(const CardRidges
|
||||
|
||||
void HandlerOperatingCondition::onVehicleFireUnits(const CardRidges &fireStatus)
|
||||
{
|
||||
m_operatingCondition.firingUnitReadyFwdLh(fireStatus.cardrige1);
|
||||
m_operatingCondition.firingUnitReadyFwdRh(fireStatus.cardrige2);
|
||||
m_operatingCondition.firingUnitReadyAftRh(fireStatus.cardrige3);
|
||||
m_operatingCondition.firingUnitReadyAftLh(fireStatus.cardrige4);
|
||||
m_operatingCondition.firingUnitReadyFwdLh = fireStatus.cardrige1;
|
||||
m_operatingCondition.firingUnitReadyFwdRh = fireStatus.cardrige2;
|
||||
m_operatingCondition.firingUnitReadyAftRh = fireStatus.cardrige3;
|
||||
m_operatingCondition.firingUnitReadyAftLh = fireStatus.cardrige4;
|
||||
if (!m_mainHandler->dds()->dts()->publish(m_operatingCondition))
|
||||
ERROR_LOG(m_logger) << "Error publishing OperatingConditionEntity-data (fireStatus) to dds";
|
||||
}
|
||||
|
||||
void HandlerOperatingCondition::onVehicleErrorStatus(const CardRidges &errorStatus)
|
||||
{
|
||||
m_operatingCondition.errorSmoke(errorStatus.cardrige1);
|
||||
m_operatingCondition.errorFireUnit(errorStatus.cardrige2);
|
||||
m_operatingCondition.errorPanel(errorStatus.cardrige3);
|
||||
m_operatingCondition.errorEquipment(errorStatus.cardrige4);
|
||||
m_operatingCondition.errorGeneral(errorStatus.cardrige5);
|
||||
m_operatingCondition.errorSmoke = errorStatus.cardrige1;
|
||||
m_operatingCondition.errorFireUnit = errorStatus.cardrige2;
|
||||
m_operatingCondition.errorPanel = errorStatus.cardrige3;
|
||||
m_operatingCondition.errorEquipment = errorStatus.cardrige4;
|
||||
m_operatingCondition.errorGeneral = errorStatus.cardrige5;
|
||||
if (!m_mainHandler->dds()->dts()->publish(m_operatingCondition))
|
||||
ERROR_LOG(m_logger) << "Error publishing OperatingConditionEntity-data (errorStatus) to dds";
|
||||
|
||||
@@ -171,40 +171,40 @@ void HandlerOperatingCondition::onOperationalStatusTimeout()
|
||||
{
|
||||
DEBUG_LOG(m_logger) << "Operational status timeout. Setting operational status to: not operational.";
|
||||
m_isOperational = false;
|
||||
m_operatingCondition.readiness(m_isOperational);
|
||||
m_operatingCondition.readiness = m_isOperational;
|
||||
|
||||
sendStatus();
|
||||
}
|
||||
|
||||
bool HandlerOperatingCondition::isErrorDmf()
|
||||
{
|
||||
return (m_operatingCondition.errorSmoke() ||
|
||||
m_operatingCondition.errorFireUnit() ||
|
||||
m_operatingCondition.errorPanel() ||
|
||||
m_operatingCondition.errorEquipment() ||
|
||||
m_operatingCondition.errorGeneral()
|
||||
return (m_operatingCondition.errorSmoke ||
|
||||
m_operatingCondition.errorFireUnit ||
|
||||
m_operatingCondition.errorPanel ||
|
||||
m_operatingCondition.errorEquipment ||
|
||||
m_operatingCondition.errorGeneral
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
void HandlerOperatingCondition::onConnectionToSerial()
|
||||
{
|
||||
DEBUG_LOG(m_logger) << "Connected to Serial: send ammunition Magazine to Control Unit Count: " << m_operatingCondition.ammunitionMagazine();
|
||||
m_mainHandler->handlerVehicle()->setAmmunitionParameter(m_operatingCondition.ammunitionMagazine());
|
||||
DEBUG_LOG(m_logger) << "Connected to Serial: send ammunition Magazine to Control Unit Count: " << m_operatingCondition.ammunitionMagazine;
|
||||
m_mainHandler->handlerVehicle()->setAmmunitionParameter(m_operatingCondition.ammunitionMagazine);
|
||||
}
|
||||
|
||||
void HandlerOperatingCondition::onVehicleType(const EffectShowManagement::Feature_e &type)
|
||||
{
|
||||
m_operatingCondition.vehicleFeature(type);
|
||||
m_operatingCondition.vehicleFeature = type;
|
||||
if (!m_mainHandler->dds()->dts()->publish(m_operatingCondition))
|
||||
ERROR_LOG(m_logger) << "Error publishing OperatingConditionEntity-data (vehicle type) to dds";
|
||||
}
|
||||
|
||||
void HandlerOperatingCondition::onSafetyStatus(const SafetyStatus &status)
|
||||
{
|
||||
m_operatingCondition.temperatureWarning(status.temperaturWarning);
|
||||
m_operatingCondition.loadingBoardWall(status.loadingBoardWall);
|
||||
m_operatingCondition.emergencyStop(status.emergencyStop);
|
||||
m_operatingCondition.temperatureWarning = status.temperaturWarning;
|
||||
m_operatingCondition.loadingBoardWall = status.loadingBoardWall;
|
||||
m_operatingCondition.emergencyStop = status.emergencyStop;
|
||||
|
||||
if (!m_mainHandler->dds()->dts()->publish(m_operatingCondition))
|
||||
ERROR_LOG(m_logger) << "Error publishing OperatingConditionEntity-data (SafetyStatus) to dds";
|
||||
@@ -213,7 +213,7 @@ void HandlerOperatingCondition::onSafetyStatus(const SafetyStatus &status)
|
||||
void HandlerOperatingCondition::onVehicleRoundCount(int loadedRounds)
|
||||
{
|
||||
DEBUG_LOG(m_logger) << "Got RoundCount Reply from Unit " << loadedRounds;
|
||||
m_operatingCondition.ammunitionMagazine(loadedRounds);
|
||||
m_operatingCondition.ammunitionMagazine = loadedRounds;
|
||||
if (!m_mainHandler->dds()->dts()->publish(m_operatingCondition))
|
||||
ERROR_LOG(m_logger) << "Error publishing OperatingConditionEntity-data (ammunition magazine) to dds";
|
||||
}
|
||||
@@ -221,12 +221,12 @@ void HandlerOperatingCondition::onVehicleRoundCount(int loadedRounds)
|
||||
void HandlerOperatingCondition::onVolleyRounds(int usedRounds)
|
||||
{
|
||||
DEBUG_LOG(m_logger) << "Got used rounds " << usedRounds;
|
||||
m_operatingCondition.ammunitionMagazine(m_operatingCondition.ammunitionMagazine() - usedRounds);
|
||||
if (m_operatingCondition.ammunitionMagazine() < 0)
|
||||
m_operatingCondition.ammunitionMagazine(0);
|
||||
m_operatingCondition.ammunitionAvailable(m_operatingCondition.ammunitionAvailable() - usedRounds);
|
||||
if (m_operatingCondition.ammunitionAvailable() < 0)
|
||||
m_operatingCondition.ammunitionAvailable(0);
|
||||
m_operatingCondition.ammunitionMagazine = m_operatingCondition.ammunitionMagazine - usedRounds;
|
||||
if (m_operatingCondition.ammunitionMagazine < 0)
|
||||
m_operatingCondition.ammunitionMagazine = 0;
|
||||
m_operatingCondition.ammunitionAvailable = m_operatingCondition.ammunitionAvailable - usedRounds;
|
||||
if (m_operatingCondition.ammunitionAvailable < 0)
|
||||
m_operatingCondition.ammunitionAvailable = 0;
|
||||
if (!m_mainHandler->dds()->dts()->publish(m_operatingCondition))
|
||||
ERROR_LOG(m_logger) << "Error publishing OperatingConditionEntity-data (ammunition magazine used) to dds";
|
||||
}
|
||||
@@ -240,12 +240,12 @@ void HandlerOperatingCondition::sendStatus()
|
||||
|
||||
void HandlerOperatingCondition::getVehicleStatus(ConvertToTab::VehicleStatus_t &vehicleStatus)
|
||||
{
|
||||
vehicleStatus.ammunitionAvailable = m_operatingCondition.ammunitionAvailable();
|
||||
vehicleStatus.ammunitionMagazine = m_operatingCondition.ammunitionMagazine();
|
||||
vehicleStatus.feature = static_cast<int>(m_operatingCondition.vehicleFeature().underlying());
|
||||
vehicleStatus.operational = (!m_operatingCondition.errorGeneral() && m_isOperational);
|
||||
vehicleStatus.ammunitionAvailable = m_operatingCondition.ammunitionAvailable;
|
||||
vehicleStatus.ammunitionMagazine = m_operatingCondition.ammunitionMagazine;
|
||||
vehicleStatus.feature = static_cast<int>(m_operatingCondition.vehicleFeature);
|
||||
vehicleStatus.operational = (!m_operatingCondition.errorGeneral && m_isOperational);
|
||||
vehicleStatus.magazineFail = m_oldErrorState;
|
||||
vehicleStatus.controlComputerFail = m_operatingCondition.errorPanel();
|
||||
vehicleStatus.controlComputerFail = m_operatingCondition.errorPanel;
|
||||
}
|
||||
|
||||
|
||||
@@ -256,20 +256,20 @@ void HandlerOperatingCondition::onSendAmmunitionRequest(const rti::core::SampleI
|
||||
DEBUG_LOG(m_logger) << "onSendAmmunitionRequest";
|
||||
//take available ammo and send excon
|
||||
//then wait for reply from unit
|
||||
m_operatingCondition.ammunitionAvailable(request.ammunitionAvailable());
|
||||
m_operatingCondition.ammunitionAvailable = request.ammunitionAvailable;
|
||||
|
||||
m_mainHandler->dds()->fts()->sendAmmunitionReply(cookie, Core::FunctionReplyObject());
|
||||
|
||||
// provision of the control computer with the equipped shots
|
||||
m_mainHandler->handlerVehicle()->setAmmunitionParameter(request.ammunitionMagazine());
|
||||
m_mainHandler->handlerVehicle()->setAmmunitionParameter(request.ammunitionMagazine);
|
||||
|
||||
// Sending of telegram: DMF-Einsatzbereitschafts-Status to the operating application
|
||||
ConvertToTab::VehicleStatus_t vehicleStatus;
|
||||
getVehicleStatus(vehicleStatus);
|
||||
if (vehicleStatus.feature == EffectShowManagement::Feature_e::Smoke)
|
||||
if (vehicleStatus.feature == static_cast<int>(EffectShowManagement::Feature_e::Smoke))
|
||||
{
|
||||
//as smoke did not answer
|
||||
vehicleStatus.ammunitionMagazine = request.ammunitionMagazine();
|
||||
vehicleStatus.ammunitionMagazine = request.ammunitionMagazine;
|
||||
}
|
||||
m_mainHandler->handlerTabData()->vehicleStatus(vehicleStatus);
|
||||
}
|
||||
@@ -277,9 +277,9 @@ void HandlerOperatingCondition::onSendAmmunitionRequest(const rti::core::SampleI
|
||||
void HandlerOperatingCondition::onSendSafetyRevokeRequest(const rti::core::SampleIdentity &cookie,
|
||||
const SendSafetyRevokeRequest &request)
|
||||
{
|
||||
DEBUG_LOG(m_logger) << "onSendSafetyRevokeRequest with " << request.revoke();
|
||||
DEBUG_LOG(m_logger) << "onSendSafetyRevokeRequest with " << request.revoke;
|
||||
m_mainHandler->dds()->fts()->sendSafetyRevokeReply(cookie, Core::FunctionReplyObject());
|
||||
if (request.revoke())
|
||||
if (request.revoke)
|
||||
{
|
||||
m_mainHandler->handlerVehicle()->effectShowControl(EffectShowControl_e::StopTimer);
|
||||
m_mainHandler->handlerControlUnit()->send(CommandSignal::FT_SE_CB_SICHERHEIT_WIDERRUFEN);
|
||||
@@ -293,7 +293,7 @@ void HandlerOperatingCondition::onSendReadinessRequest(const rti::core::SampleId
|
||||
DEBUG_LOG(m_logger) << "onSendReadinessRequest";
|
||||
//Confirm or Revoke Readiness
|
||||
//send to EXCON
|
||||
m_isOperational = request.readiness();
|
||||
m_isOperational = request.readiness;
|
||||
m_mainHandler->dds()->fts()->sendReadinessReply(cookie, Core::FunctionReplyObject());
|
||||
|
||||
// Sending of telegram: DMF-Einsatzbereitschafts-Status to the operating application
|
||||
@@ -303,7 +303,7 @@ void HandlerOperatingCondition::onSendReadinessRequest(const rti::core::SampleId
|
||||
m_mainHandler->handlerTabData()->vehicleStatus(vehicleStatus);
|
||||
|
||||
//now change operating condition in hope that tetra worked
|
||||
m_operatingCondition.readiness(m_isOperational);
|
||||
m_operatingCondition.readiness = m_isOperational;
|
||||
if (!m_mainHandler->dds()->dts()->publish(m_operatingCondition))
|
||||
ERROR_LOG(m_logger) << "Error publishing OperatingConditionEntity-data readiness) to dds";
|
||||
|
||||
|
||||
@@ -70,9 +70,9 @@ void HandlerOrder::createOrder(const ConvertFromTab::EffectShowOrder_t &effectSh
|
||||
if (it.value()->getData().idOrder == effectShowOrder.idEffectShow)
|
||||
data = it.value()->getData();
|
||||
}
|
||||
bool sendStart = ((data.orderConfirmation == EffectShowManagement::OrderConfirmation_e::FiringReadiness)
|
||||
|| (data.orderConfirmation == EffectShowManagement::OrderConfirmation_e::Execution)
|
||||
|| (data.orderConfirmation == EffectShowManagement::OrderConfirmation_e::InterruptExecution));
|
||||
bool sendStart = ((data.orderConfirmation == static_cast<int>(EffectShowManagement::OrderConfirmation_e::FiringReadiness))
|
||||
|| (data.orderConfirmation == static_cast<int>(EffectShowManagement::OrderConfirmation_e::Execution))
|
||||
|| (data.orderConfirmation == static_cast<int>(EffectShowManagement::OrderConfirmation_e::InterruptExecution)));
|
||||
|
||||
data.typeOfOrder = 1;
|
||||
data.idOrder = effectShowOrder.idEffectShow;
|
||||
@@ -80,8 +80,8 @@ void HandlerOrder::createOrder(const ConvertFromTab::EffectShowOrder_t &effectSh
|
||||
data.duration = effectShowOrder.duration;
|
||||
if (data.duration < 5)
|
||||
data.duration = 5;
|
||||
data.lowerLeftPosition = QPointF(effectShowOrder.lowerLeftPosition.lon(), effectShowOrder.lowerLeftPosition.lat());
|
||||
data.centerPosition = QPointF(effectShowOrder.centerPosition.lon(), effectShowOrder.centerPosition.lat());
|
||||
data.lowerLeftPosition = QPointF(effectShowOrder.lowerLeftPosition.lon, effectShowOrder.lowerLeftPosition.lat);
|
||||
data.centerPosition = QPointF(effectShowOrder.centerPosition.lon, effectShowOrder.centerPosition.lat);
|
||||
data.areaWidth = effectShowOrder.areaWidth;
|
||||
data.areaDepth = effectShowOrder.areaDepth;
|
||||
data.areaRotation = effectShowOrder.rotation;
|
||||
@@ -100,13 +100,13 @@ void HandlerOrder::createOrder(const ConvertFromTab::EffectShowOrder_t &effectSh
|
||||
return;
|
||||
}
|
||||
m_orderObjMap.insert(ifs->getId(), ifs);
|
||||
if (data.orderConfirmation == EffectShowManagement::OrderConfirmation_e::Execution && data.startTime == 0)
|
||||
if (data.orderConfirmation == static_cast<int>(EffectShowManagement::OrderConfirmation_e::Execution) && data.startTime == 0)
|
||||
{
|
||||
m_mainHandler->handlerControlUnit()->send(CommandSignal::FT_SE_CB_SICHERHEIT_WIDERRUFEN);
|
||||
m_mainHandler->handlerControlUnit()->send(CommandSignal::FT_SE_CB_SALVE_UNTERBRECHEN);
|
||||
m_mainHandler->handlerVehicle()->effectShowControl(EffectShowControl_e::Stop);
|
||||
}
|
||||
bool orignalIsTimeout = ((data.orderConfirmation == EffectShowManagement::OrderConfirmation_e::Execution) && data.startTime > 0 && (data.startTime + data.duration < QDateTime::currentMSecsSinceEpoch())) ;
|
||||
bool orignalIsTimeout = ((data.orderConfirmation == static_cast<int>(EffectShowManagement::OrderConfirmation_e::Execution)) && data.startTime > 0 && (data.startTime + data.duration < QDateTime::currentMSecsSinceEpoch())) ;
|
||||
if (sendStart && !orignalIsTimeout)
|
||||
emit startHandlerFiring(data);
|
||||
}
|
||||
@@ -117,8 +117,8 @@ void HandlerOrder::createOrder(const ConvertFromTab::RelocationOrder_t &relocati
|
||||
data.typeOfOrder = 0;
|
||||
data.idOrder = relocationOrder.idRelocation;
|
||||
data.startTime = relocationOrder.executionTime * 1000; // s -> msec
|
||||
data.centerPosition = QPointF(relocationOrder.centerPosition.lon(), relocationOrder.centerPosition.lat());
|
||||
data.orderConfirmation = EffectShowManagement::OrderConfirmation_e::WaitingForAcceptance;
|
||||
data.centerPosition = QPointF(relocationOrder.centerPosition.lon, relocationOrder.centerPosition.lat);
|
||||
data.orderConfirmation = static_cast<int>(EffectShowManagement::OrderConfirmation_e::WaitingForAcceptance);
|
||||
data.info = relocationOrder.infoText;
|
||||
|
||||
ObjectOrder *ifs(new ObjectOrder(m_mainHandler, this));
|
||||
@@ -148,9 +148,9 @@ void HandlerOrder::removeOrder(const ConvertFromTab::OrderRetract_t &orderRetrac
|
||||
ERROR_LOG(m_logger) << LOGFUNCTION << ret();
|
||||
else
|
||||
{
|
||||
if (def == EffectShowManagement::OrderConfirmation_e::Execution ||
|
||||
def == EffectShowManagement::OrderConfirmation_e::InterruptExecution ||
|
||||
def == EffectShowManagement::OrderConfirmation_e::FiringReadiness)
|
||||
if (def == static_cast<int>(EffectShowManagement::OrderConfirmation_e::Execution) ||
|
||||
def == static_cast<int>(EffectShowManagement::OrderConfirmation_e::InterruptExecution) ||
|
||||
def == static_cast<int>(EffectShowManagement::OrderConfirmation_e::FiringReadiness))
|
||||
{
|
||||
DEBUG_LOG(m_logger) << "EndFireHandler from Remove";
|
||||
|
||||
@@ -180,17 +180,17 @@ void HandlerOrder::sendOrderConfirmation(const ConvertToTab::OrderConfirmation_t
|
||||
void HandlerOrder::onOrderModifyRequest(const rti::core::SampleIdentity &cookie,
|
||||
const OrderModifyRequest &request)
|
||||
{
|
||||
DEBUG_LOG(m_logger) << "Order: " << request.id() << " Order: " << request.orderConfirmation();
|
||||
DEBUG_LOG(m_logger) << "Order: " << request.id << " Order: " << request.orderConfirmation;
|
||||
|
||||
if (request.id() > 0)
|
||||
if (request.id > 0)
|
||||
{
|
||||
ObjectOrder *ifs = m_orderObjMap.value(request.id());
|
||||
ObjectOrder *ifs = m_orderObjMap.value(request.id);
|
||||
if (ifs == nullptr)
|
||||
m_mainHandler->dds()->fts()->orderModifyReply(cookie, Core::FunctionReplyObject(request.id(), tr_lts("dds", "Order with id %1 not found")).arg(request.id()));
|
||||
m_mainHandler->dds()->fts()->orderModifyReply(cookie, Core::FunctionReplyObject(request.id, tr_lts("dds", "Order with id %1 not found")).arg(request.id));
|
||||
else
|
||||
{
|
||||
|
||||
ifs->setOrderConfirmation(request.orderConfirmation().underlying());
|
||||
ifs->setOrderConfirmation(static_cast<int>(request.orderConfirmation));
|
||||
auto ret = ifs->updateObject();
|
||||
if (ret.error())
|
||||
{
|
||||
@@ -199,15 +199,15 @@ void HandlerOrder::onOrderModifyRequest(const rti::core::SampleIdentity &cookie,
|
||||
return;
|
||||
}
|
||||
|
||||
if (updateOrder(ifs, QString::fromStdString(request.answerText()), request.orderConfirmation()))
|
||||
m_mainHandler->dds()->fts()->orderModifyReply(cookie, Core::FunctionReplyObject(request.id()));
|
||||
if (updateOrder(ifs, QString::fromStdString(request.answerText), request.orderConfirmation))
|
||||
m_mainHandler->dds()->fts()->orderModifyReply(cookie, Core::FunctionReplyObject(request.id));
|
||||
else
|
||||
m_mainHandler->dds()->fts()->orderModifyReply(cookie, Core::FunctionReplyObject(request.id(), tr_lts("dds", "Order with id %1 not found")).arg(request.id()));
|
||||
m_mainHandler->dds()->fts()->orderModifyReply(cookie, Core::FunctionReplyObject(request.id, tr_lts("dds", "Order with id %1 not found")).arg(request.id));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m_mainHandler->dds()->fts()->orderModifyReply(cookie, Core::FunctionReplyObject(request.id()));
|
||||
m_mainHandler->dds()->fts()->orderModifyReply(cookie, Core::FunctionReplyObject(request.id));
|
||||
ERROR_LOG(m_logger) << "Illegal Order ID";
|
||||
}
|
||||
}
|
||||
@@ -220,11 +220,11 @@ bool HandlerOrder::updateOrder(ObjectOrder *order,
|
||||
const Database::EscOrder &escOrder = order->getData();
|
||||
oc.orderId = escOrder.idOrder;
|
||||
oc.orderType = ConvertToTab::OrderType_e(escOrder.typeOfOrder);
|
||||
oc.confirmation = orderConf.underlying();
|
||||
oc.confirmation = orderConf;
|
||||
oc.answerText = answerText;
|
||||
sendOrderConfirmation(oc);
|
||||
ERROR_LOG(m_logger) << "Update Order " << oc.orderId << " / ";
|
||||
switch (orderConf.underlying())
|
||||
switch (orderConf)
|
||||
{
|
||||
case EffectShowManagement::OrderConfirmation_e::FiringReadiness:
|
||||
emit startHandlerFiring(order->getData());
|
||||
@@ -252,7 +252,7 @@ bool HandlerOrder::updateOrder(ObjectOrder *order,
|
||||
case EffectShowManagement::OrderConfirmation_e::OrderCarriedOut:
|
||||
case EffectShowManagement::OrderConfirmation_e::PositionReached:
|
||||
{
|
||||
if (orderConf.underlying() == EffectShowManagement::OrderConfirmation_e::PositionReached &&
|
||||
if (orderConf == EffectShowManagement::OrderConfirmation_e::PositionReached &&
|
||||
oc.orderType != ConvertToTab::OrderType_e::Relocation)
|
||||
return true;
|
||||
emit endHandlerFiring(order->getData());
|
||||
@@ -277,7 +277,7 @@ void HandlerOrder::updateOrderWithId(int orderId, const QString &answerText, Eff
|
||||
|
||||
if (ifs == nullptr)
|
||||
return;
|
||||
ifs->setOrderConfirmation(orderConf.underlying());
|
||||
ifs->setOrderConfirmation(static_cast<int>(orderConf));
|
||||
auto ret = ifs->updateObject();
|
||||
if (ret.error())
|
||||
ERROR_LOG(m_logger) << "Error Updating Order " << orderId << " / ";
|
||||
|
||||
@@ -57,7 +57,7 @@ void HandlerTabData::orderConfirmation(const ConvertToTab::OrderConfirmation_t &
|
||||
DEBUG_LOG(m_logger) << "Trigger Sending of Order Confirmation ";
|
||||
TrainingAreaBase::SendFireSmokeMarkerDataRequest out;
|
||||
|
||||
out.payload(ConvertToTab::convertOrderConfirmation(orderConfirmation));
|
||||
out.payload = ConvertToTab::convertOrderConfirmation(orderConfirmation);
|
||||
m_mainHandler->dds()->ftcTab()->sendFireSmokeMarkerDataRequest(out, this);
|
||||
|
||||
}
|
||||
@@ -67,7 +67,7 @@ void HandlerTabData::vehicleStatus(const ConvertToTab::VehicleStatus_t &vehicleS
|
||||
DEBUG_LOG(m_logger) << "Trigger Sending of Vehicle Status ";
|
||||
TrainingAreaBase::SendFireSmokeMarkerDataRequest out;
|
||||
|
||||
out.payload(ConvertToTab::convertVehicleStatus(vehicleStatus));
|
||||
out.payload = ConvertToTab::convertVehicleStatus(vehicleStatus);
|
||||
m_mainHandler->dds()->ftcTab()->sendFireSmokeMarkerDataRequest(out, this);
|
||||
}
|
||||
//=============================================================================
|
||||
@@ -84,7 +84,7 @@ void HandlerTabData::onFireSmokeMarkerDataChanged(const TrainingAreaBase::FireSm
|
||||
if (modType == DataModification::eRemoved)
|
||||
return;
|
||||
|
||||
DEBUG_LOG(m_logger) << "Got Fire Smoke Marker " << data.sampleTime();
|
||||
DEBUG_LOG(m_logger) << "Got Fire Smoke Marker " << data.sampleTime;
|
||||
|
||||
switch (ConvertFromTab::isTelegram(data))
|
||||
{
|
||||
|
||||
@@ -77,21 +77,21 @@ void ObjectOrder::onPublishData()
|
||||
|
||||
EffectShowClient::Order ddsData;
|
||||
|
||||
ddsData.id(m_data.id);
|
||||
ddsData.areaDepth(m_data.areaDepth);
|
||||
ddsData.areaWidth(m_data.areaWidth);
|
||||
ddsData.areaRotation(m_data.areaRotation);
|
||||
ddsData.duration(m_data.duration);
|
||||
ddsData.idOrder(m_data.idOrder);
|
||||
ddsData.numOfVolley(m_data.numOfVolley);
|
||||
ddsData.shotsPerVolley(m_data.shotsPerVolley);
|
||||
ddsData.id = m_data.id;
|
||||
ddsData.areaDepth = m_data.areaDepth;
|
||||
ddsData.areaWidth = m_data.areaWidth;
|
||||
ddsData.areaRotation = m_data.areaRotation;
|
||||
ddsData.duration = m_data.duration;
|
||||
ddsData.idOrder = m_data.idOrder;
|
||||
ddsData.numOfVolley = m_data.numOfVolley;
|
||||
ddsData.shotsPerVolley = m_data.shotsPerVolley;
|
||||
EffectShowManagement::OrderConfirmation_e oc = EffectShowManagement::OrderConfirmation_e(m_data.orderConfirmation);
|
||||
ddsData.orderConfirmation(oc);
|
||||
ddsData.position(Core::GeoPosition2D(m_data.centerPosition.x(), m_data.centerPosition.y()));
|
||||
ddsData.lowerLeftPosition(Core::GeoPosition2D(m_data.lowerLeftPosition.x(), m_data.lowerLeftPosition.y()));
|
||||
ddsData.startTime(m_data.startTime);
|
||||
ddsData.typeOfOrder(m_data.typeOfOrder);
|
||||
ddsData.info(m_data.info.toStdString());
|
||||
ddsData.orderConfirmation = oc;
|
||||
ddsData.position = Core::GeoPosition2D(m_data.centerPosition.x(), m_data.centerPosition.y());
|
||||
ddsData.lowerLeftPosition = Core::GeoPosition2D(m_data.lowerLeftPosition.x(), m_data.lowerLeftPosition.y());
|
||||
ddsData.startTime = m_data.startTime;
|
||||
ddsData.typeOfOrder = m_data.typeOfOrder;
|
||||
ddsData.info = m_data.info.toStdString();
|
||||
INFO_LOG(m_logger) << "Publish EscOrder-data to dds (" << m_data.id << ") ...";
|
||||
|
||||
if (oc == EffectShowManagement::OrderConfirmation_e::WaitingForAcceptance)
|
||||
@@ -116,12 +116,12 @@ void ObjectOrder::getCreateNotificationRequestData(NotificationManagement::Creat
|
||||
if ( m_data.typeOfOrder == 1)
|
||||
{
|
||||
QString title = QString::fromUtf8(tr_lts("Notification", "DMF Order")); // deutsch Wirkdarstellungen
|
||||
notif.title(title.toStdString());
|
||||
notif.title = title.toStdString();
|
||||
}
|
||||
else
|
||||
{
|
||||
QString title = QString::fromUtf8(tr_lts("Notification", "Relocation Order")); // deutsch Stellungswechsel
|
||||
notif.title(title.toStdString());
|
||||
notif.title = title.toStdString();
|
||||
}
|
||||
|
||||
QString content = QString::fromUtf8(tr_lts("Notification","<a href='lts://escOrderList/%1'>Open Dialog</a>"));
|
||||
@@ -131,32 +131,32 @@ void ObjectOrder::getCreateNotificationRequestData(NotificationManagement::Creat
|
||||
const QString str = QString::number(m_data.typeOfOrder);
|
||||
args.emplace_back(str.toStdString());
|
||||
|
||||
notif.content(content.toStdString());
|
||||
notif.contentArgs(args);
|
||||
notif.timeStamp(m_mainHandler->dds()->currentPartitionTime());
|
||||
notif.expiryTime(expiryTime);
|
||||
notif.priority(NotificationManagement::Priority::High);
|
||||
notif.processedPriority(NotificationManagement::Priority::Low);
|
||||
notif.messageType(NotificationManagement::MessageType::Info);
|
||||
notif.exerciseId(m_mainHandler->dds()->getExerciseId());
|
||||
notif.content = content.toStdString();
|
||||
notif.contentArgs = args;
|
||||
notif.timeStamp = m_mainHandler->dds()->currentPartitionTime();
|
||||
notif.expiryTime = expiryTime;
|
||||
notif.priority = NotificationManagement::Priority::High;
|
||||
notif.processedPriority = NotificationManagement::Priority::Low;
|
||||
notif.messageType = NotificationManagement::MessageType::Info;
|
||||
notif.exerciseId = m_mainHandler->dds()->getExerciseId();
|
||||
|
||||
NotificationManagement::Address wsAddr;
|
||||
wsAddr.addressId(addressId);
|
||||
wsAddr.isRead(false);
|
||||
wsAddr.addressId = addressId;
|
||||
wsAddr.isRead = false;
|
||||
QString name = localHostName;
|
||||
wsAddr.name(name.toStdString());
|
||||
wsAddr.addressType(NotificationManagement::AddressType::Workstation);
|
||||
wsAddr.name = name.toStdString();
|
||||
wsAddr.addressType = NotificationManagement::AddressType::Workstation;
|
||||
|
||||
notif.recipientIds().reserve(1);
|
||||
notif.recipientIds().push_back(wsAddr);
|
||||
notif.recipientIds.reserve(1);
|
||||
notif.recipientIds.push_back(wsAddr);
|
||||
|
||||
NotificationManagement::Address addrSender;
|
||||
addrSender.addressId(EffectShowClient::Offset);
|
||||
addrSender.name(QStringLiteral("svcEffectShowClient").toStdString());
|
||||
addrSender.addressType(NotificationManagement::AddressType::Service);
|
||||
notif.sender(addrSender);
|
||||
addrSender.addressId = EffectShowClient::Offset;
|
||||
addrSender.name = QStringLiteral("svcEffectShowClient").toStdString();
|
||||
addrSender.addressType = NotificationManagement::AddressType::Service;
|
||||
notif.sender = addrSender;
|
||||
|
||||
data.notification(notif);
|
||||
data.notification = notif;
|
||||
} // end of getCreateNotificationRequestData()
|
||||
|
||||
void ObjectOrder::createNotificationRequest()
|
||||
|
||||
+31
-31
@@ -155,37 +155,37 @@ void HandlerDynamicParticipantData::tryCreateHitEvent(Database::EemEvent eData,
|
||||
return;
|
||||
|
||||
// only handle 'real' hit events
|
||||
switch (stateInfo.originatorType.underlying())
|
||||
switch (stateInfo.originatorType)
|
||||
{
|
||||
case ProjectDataManagement::StateChangeOriginator::AreaEffectSimulation:
|
||||
case ProjectDataManagement::StateChangeOriginator::ImprovisedExplosiveDevice:
|
||||
case ProjectDataManagement::StateChangeOriginator::DusMine:
|
||||
case ProjectDataManagement::StateChangeOriginator::StateChangeOriginator_AreaEffectSimulation:
|
||||
case ProjectDataManagement::StateChangeOriginator::StateChangeOriginator_ImprovisedExplosiveDevice:
|
||||
case ProjectDataManagement::StateChangeOriginator::StateChangeOriginator_DusMine:
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::EventType_HitEffectSimulation;
|
||||
break;
|
||||
case ProjectDataManagement::StateChangeOriginator::Participant:
|
||||
case ProjectDataManagement::StateChangeOriginator::ObserverController:
|
||||
case ProjectDataManagement::StateChangeOriginator::ExerciseControl:
|
||||
case ProjectDataManagement::StateChangeOriginator::StateChangeOriginator_Participant:
|
||||
case ProjectDataManagement::StateChangeOriginator::StateChangeOriginator_ObserverController:
|
||||
case ProjectDataManagement::StateChangeOriginator::StateChangeOriginator_ExerciseControl:
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::EventType_Hit;
|
||||
break;
|
||||
case ProjectDataManagement::StateChangeOriginator::Sanitation:
|
||||
case ProjectDataManagement::StateChangeOriginator::StateChangeOriginator_Sanitation:
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::EventType_Sanitation;
|
||||
break;
|
||||
case ProjectDataManagement::StateChangeOriginator::Unknown:
|
||||
case ProjectDataManagement::StateChangeOriginator::WoundTreatmentDevice:
|
||||
case ProjectDataManagement::StateChangeOriginator::MaintainanceDevice:
|
||||
case ProjectDataManagement::StateChangeOriginator::FunctionalArea:
|
||||
case ProjectDataManagement::StateChangeOriginator::Initialization:
|
||||
case ProjectDataManagement::StateChangeOriginator::MedicalTimeout:
|
||||
case ProjectDataManagement::StateChangeOriginator::StateChangeOriginator_Unknown:
|
||||
case ProjectDataManagement::StateChangeOriginator::StateChangeOriginator_WoundTreatmentDevice:
|
||||
case ProjectDataManagement::StateChangeOriginator::StateChangeOriginator_MaintainanceDevice:
|
||||
case ProjectDataManagement::StateChangeOriginator::StateChangeOriginator_FunctionalArea:
|
||||
case ProjectDataManagement::StateChangeOriginator::StateChangeOriginator_Initialization:
|
||||
case ProjectDataManagement::StateChangeOriginator::StateChangeOriginator_MedicalTimeout:
|
||||
return;
|
||||
}
|
||||
|
||||
QJsonObject obj;
|
||||
obj[QStringLiteral("VulnerabilityState")] = vulnState.underlying();
|
||||
obj[QStringLiteral("VulnerabilityState")] = static_cast<int>(vulnState);
|
||||
obj[QStringLiteral("OriginatorId")] = stateInfo.originatorId;
|
||||
obj[QStringLiteral("OriginatorType")] = stateInfo.originatorType.underlying();
|
||||
obj[QStringLiteral("OriginatorType")] = static_cast<int>(stateInfo.originatorType);
|
||||
obj[QStringLiteral("OriginatorChargeTypeId")] = stateInfo.originatorChargeTypeId;
|
||||
|
||||
if (stateInfo.originatorType == ProjectDataManagement::StateChangeOriginator::Participant)
|
||||
if (stateInfo.originatorType == ProjectDataManagement::StateChangeOriginator::StateChangeOriginator_Participant)
|
||||
{
|
||||
ParticipantManagement::Participant originData = m_partMap.value(stateInfo.originatorId);
|
||||
if (originData.equipmentNumber.is_set())
|
||||
@@ -200,7 +200,7 @@ void HandlerDynamicParticipantData::tryCreateHitEvent(Database::EemEvent eData,
|
||||
{
|
||||
DEBUG_LOG(m_logger) << "Event HitEffectSimulation from originatorId = " << stateInfo.originatorId;
|
||||
obj[QStringLiteral("AesId")] = stateInfo.originatorId;
|
||||
obj[QStringLiteral("AesType")] = m_itemViews.value(stateInfo.originatorId).underlying();
|
||||
obj[QStringLiteral("AesType")] = static_cast<int>(m_itemViews.value(stateInfo.originatorId));
|
||||
AreaEffectSimulation::AesItem aesItem;
|
||||
if (m_aesDtc->aesItemFromId(stateInfo.originatorId, aesItem))
|
||||
obj[QStringLiteral("AesName")] = QJsonValue(QString::fromStdString(aesItem.name));
|
||||
@@ -214,8 +214,8 @@ void HandlerDynamicParticipantData::tryCreateHitEvent(Database::EemEvent eData,
|
||||
DEBUG_LOG(m_logger) << "Event sanitation ";
|
||||
|
||||
obj[QStringLiteral("Vitality")] = stateInfo.vitality;
|
||||
obj[QStringLiteral("SanitationResult")] = stateInfo.sanitationResult.underlying();
|
||||
obj[QStringLiteral("SanitationProceduresTaken")] = stateInfo.sanitationProceduresTaken;
|
||||
obj[QStringLiteral("SanitationResult")] = static_cast<int>(stateInfo.sanitationResult);
|
||||
obj[QStringLiteral("SanitationProceduresTaken")] = QJsonValue(static_cast<qint64>(stateInfo.sanitationProceduresTaken));
|
||||
}
|
||||
|
||||
eData.properties = QString::fromUtf8(QJsonDocument(obj).toJson(QJsonDocument::Compact));
|
||||
@@ -272,7 +272,7 @@ void HandlerDynamicParticipantData::onDynamicParticipantDataChanged(const Partic
|
||||
eData.equipmentNumber = pData.equipmentNumber.is_set() ? pData.equipmentNumber.get() : -1;
|
||||
eData.partyId = pData.partyId;
|
||||
eData.sampleTime = data.sampleTime;
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::PdmEventType_Unknown;
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::EventType_Unknown;
|
||||
eData.position = LtsUtils::QPoint3D(pPos.pos.lon, pPos.pos.lat, pPos.pos.z);
|
||||
|
||||
if (data.stateHistory != lastDynData.stateHistory)
|
||||
@@ -307,7 +307,7 @@ void HandlerDynamicParticipantData::onDynamicParticipantDataChanged(const Partic
|
||||
obj[QStringLiteral("DryFire")] = QJsonValue(gi.chargeCounting);
|
||||
eData.properties = QString::fromUtf8(QJsonDocument(obj).toJson(QJsonDocument::Compact));
|
||||
eData.sampleTime = gi.lastUpdate;
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::PdmEventType_WeaponAssignment;
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::EventType_WeaponAssignment;
|
||||
eData.id = 0;
|
||||
if (!m_dbHandler->db()->insert(eData))
|
||||
ERROR_LOG(m_logger) << "Error while inserting event data for participant: " << data.participantId;
|
||||
@@ -317,7 +317,7 @@ void HandlerDynamicParticipantData::onDynamicParticipantDataChanged(const Partic
|
||||
|
||||
if (data.manipulation != lastDynData.manipulation)
|
||||
{
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::PdmEventType_Manipulation;
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::EventType_Manipulation;
|
||||
|
||||
const auto isOldManipulation = [&lastDynData](const ParticipantManagement::ManipulationInformation & mani) -> bool
|
||||
{
|
||||
@@ -376,7 +376,7 @@ void HandlerDynamicParticipantData::onParticipantGearEventChanged(const Particip
|
||||
eData.equipmentNumber = pData.equipmentNumber.is_set() ? pData.equipmentNumber.get() : -1;
|
||||
eData.partyId = pData.partyId;
|
||||
eData.sampleTime = data.sampleTime;
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::PdmEventType_FireEvent;
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::EventType_FireEvent;
|
||||
eData.position = LtsUtils::QPoint3D(pPos.pos.lon, pPos.pos.lat, pPos.pos.z);
|
||||
|
||||
QJsonObject obj;
|
||||
@@ -442,7 +442,7 @@ void HandlerDynamicParticipantData::onBiteChanged(const ParticipantManagement::B
|
||||
Database::EemEvent eData;
|
||||
|
||||
eData.id = 0;
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::PdmEventType_BiteMessage;
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::EventType_BiteMessage;
|
||||
eData.equipmentNumber = data.equipmentNumber;
|
||||
eData.participantId = data.participantId;
|
||||
eData.sampleTime = data.sampleTime;
|
||||
@@ -495,7 +495,7 @@ void HandlerDynamicParticipantData::onBuildingStateChanged(const Buildings::Buil
|
||||
Database::EemEvent eData;
|
||||
|
||||
eData.id = 0;
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::PdmEventType_HitBuilding;
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::EventType_HitBuilding;
|
||||
eData.sampleTime = data.sampleTime;
|
||||
|
||||
QJsonObject obj;
|
||||
@@ -503,18 +503,18 @@ void HandlerDynamicParticipantData::onBuildingStateChanged(const Buildings::Buil
|
||||
obj[QStringLiteral("damagePercent")] = QJsonValue(data.damagePercent);
|
||||
obj[QStringLiteral("damagePercentOld")] = QJsonValue(data.damagePercentOld);
|
||||
// obj[QStringLiteral("Name")] = QJsonValue(data.name());
|
||||
obj[QStringLiteral("VulnerabilityState")] = QJsonValue(data.vulnerabilityState.underlying());
|
||||
obj[QStringLiteral("VulnerabilityState")] = QJsonValue(static_cast<int>(data.vulnerabilityState));
|
||||
|
||||
if (data.originatorType == ProjectDataManagement::StateChangeOriginator::Participant)
|
||||
if (data.originatorType == ProjectDataManagement::StateChangeOriginator::StateChangeOriginator_Participant)
|
||||
{
|
||||
ParticipantManagement::Participant originData = m_partMap.value(data.originatorParticipantId);
|
||||
if (originData.equipmentNumber.is_set())
|
||||
obj[QStringLiteral("OriginatorEquipmentNumber")] = originData.equipmentNumber.get();
|
||||
}
|
||||
if (data.originatorType == ProjectDataManagement::StateChangeOriginator::AreaEffectSimulation)
|
||||
if (data.originatorType == ProjectDataManagement::StateChangeOriginator::StateChangeOriginator_AreaEffectSimulation)
|
||||
{
|
||||
obj[QStringLiteral("AesId")] = data.aesId;
|
||||
obj[QStringLiteral("AesType")] = m_itemViews.value(data.aesId).underlying();
|
||||
obj[QStringLiteral("AesType")] = static_cast<int>(m_itemViews.value(data.aesId));
|
||||
AreaEffectSimulation::AesItem aesItem;
|
||||
if (m_aesDtc->aesItemFromId(data.aesId, aesItem))
|
||||
obj[QStringLiteral("AesName")] = QJsonValue(QString::fromStdString(aesItem.name));
|
||||
@@ -577,7 +577,7 @@ ExerciseEventManagement::Event HandlerDynamicParticipantData::toDdsData(const Da
|
||||
ddsData.properties = data.properties.toStdString();
|
||||
ddsData.position = Core::GeoPosition(data.position.x(), data.position.y(), data.position.z());
|
||||
|
||||
if (data.eventTypeId == ProjectDataManagement::PdmEventType::PdmEventType_HitBuilding)
|
||||
if (data.eventTypeId == ProjectDataManagement::PdmEventType::EventType_HitBuilding)
|
||||
{
|
||||
int mainStructureElementId = LtsUtils::JsonObject::fromJson(ddsData.properties).valueOr<int>(QStringLiteral("MainStructureElementId"), 0);
|
||||
DEBUG_LOG(m_logger) << "MainStructureElementId=" << mainStructureElementId;
|
||||
|
||||
+1
-1
@@ -85,7 +85,7 @@ void HandlerEquipmentErrorRegistration::onEquipmentErrorRegistrationChanged(cons
|
||||
Database::EemEvent eData;
|
||||
eData.sampleTime = data.sampleTime;
|
||||
eData.equipmentNumber = data.equipmentNumber;
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::PdmEventType_EquipmentErrorReport;
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::EventType_EquipmentErrorReport;
|
||||
|
||||
QJsonObject obj;
|
||||
obj[QStringLiteral("text")] = QString::fromStdString(data.text);
|
||||
|
||||
+48
-48
@@ -100,7 +100,7 @@ void HandlerParticipantEvent::onAesItemViewChanged(const AreaEffectSimulation::A
|
||||
DEBUG_LOG(m_logger) << "eAdded: AesItemId: " << data.aesItemId << ", effectState: " << data.effectStateId;
|
||||
m_aesEffectState.insert(data.aesItemId, data.effectStateId);
|
||||
|
||||
if (data.aesTypeId == AreaEffectSimulation::AesType::AesType_AtBorderline)
|
||||
if (data.aesTypeId == AreaEffectSimulation::AesType::AtBorderline)
|
||||
{
|
||||
AreaEffectSimulation::AesItem aesItem;
|
||||
m_aesDtc->aesItemFromId(data.aesItemId, aesItem);
|
||||
@@ -108,7 +108,7 @@ void HandlerParticipantEvent::onAesItemViewChanged(const AreaEffectSimulation::A
|
||||
QJsonObject obj;
|
||||
obj[QStringLiteral("AesId")] = QJsonValue(aesItem.id);
|
||||
obj[QStringLiteral("AesName")] = QJsonValue(QString::fromStdString(aesItem.name));
|
||||
obj[QStringLiteral("AesType")] = QJsonValue(data.aesTypeId.underlying());
|
||||
obj[QStringLiteral("AesType")] = QJsonValue(static_cast<int>(data.aesTypeId));
|
||||
|
||||
eData.properties = QString::fromUtf8(QJsonDocument(obj).toJson(QJsonDocument::Compact));
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::EventType_Borderline;
|
||||
@@ -130,7 +130,7 @@ void HandlerParticipantEvent::onAesItemViewChanged(const AreaEffectSimulation::A
|
||||
|
||||
// insert event only once
|
||||
if (effectState != AreaEffectSimulation::AesEffectState::EsPrepared &&
|
||||
(effectState == AreaEffectSimulation::AesEffectState::AesEffectState_EsActivated && data.effectStateId != AreaEffectSimulation::AesEffectState::AesEffectState_EsExpired))
|
||||
(effectState == AreaEffectSimulation::AesEffectState::EsActivated && data.effectStateId != AreaEffectSimulation::AesEffectState::EsExpired))
|
||||
return;
|
||||
|
||||
INFO_LOG(m_logger) << "new/update event: aesId: " << data.aesItemId;
|
||||
@@ -142,7 +142,7 @@ void HandlerParticipantEvent::onAesItemViewChanged(const AreaEffectSimulation::A
|
||||
|
||||
INFO_LOG(m_logger) << "aesType: " << data.aesTypeId;
|
||||
|
||||
switch (data.aesTypeId.underlying())
|
||||
switch (data.aesTypeId)
|
||||
{
|
||||
case AreaEffectSimulation::AesType::AtMineArea:
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::EventType_MineArea;
|
||||
@@ -182,7 +182,7 @@ void HandlerParticipantEvent::onAesItemViewChanged(const AreaEffectSimulation::A
|
||||
// No ExerciseEvent for AesType
|
||||
default:
|
||||
{
|
||||
INFO_LOG(m_logger) << "No ExerciseEvent for AesType:" << data.aesTypeId.underlying();
|
||||
INFO_LOG(m_logger) << "No ExerciseEvent for AesType:" << data.aesTypeId;
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -200,12 +200,12 @@ void HandlerParticipantEvent::onAesItemViewChanged(const AreaEffectSimulation::A
|
||||
QJsonObject obj;
|
||||
obj[QStringLiteral("AesId")] = QJsonValue(aesItem.id);
|
||||
obj[QStringLiteral("AesName")] = QJsonValue(QString::fromStdString(aesItem.name));
|
||||
obj[QStringLiteral("AesType")] = QJsonValue(data.aesTypeId.underlying());
|
||||
if (data.aesTypeId.underlying() != AreaEffectSimulation::AesType::AtBorderline)
|
||||
obj[QStringLiteral("AesType")] = QJsonValue(static_cast<int>(data.aesTypeId));
|
||||
if (data.aesTypeId != AreaEffectSimulation::AesType::AtBorderline)
|
||||
{
|
||||
obj[QStringLiteral("duration")] = QJsonValue(aesItem.effectDuration);
|
||||
obj[QStringLiteral("ChargeTypeId")] = QJsonValue(data.chargeStruct.chargeTypeId);
|
||||
obj[QStringLiteral("endTime")] = QJsonValue(data.effectStart + aesItem.effectDuration);
|
||||
obj[QStringLiteral("endTime")] = QJsonValue(static_cast<qint64>(data.effectStart + aesItem.effectDuration));
|
||||
}
|
||||
eData.properties = QString::fromUtf8(QJsonDocument(obj).toJson(QJsonDocument::Compact));
|
||||
|
||||
@@ -263,7 +263,7 @@ void HandlerParticipantEvent::onExplosionSingleChanged(const AreaEffectSimulatio
|
||||
|
||||
// insert event only once
|
||||
if (effectState != AreaEffectSimulation::AesEffectState::EsPrepared &&
|
||||
(effectState == AreaEffectSimulation::AesEffectState::AesEffectState_EsActivated && data.effectStateId != AreaEffectSimulation::AesEffectState::AesEffectState_EsExpired))
|
||||
(effectState == AreaEffectSimulation::AesEffectState::EsActivated && data.effectStateId != AreaEffectSimulation::AesEffectState::EsExpired))
|
||||
return;
|
||||
|
||||
m_aesEffectState.insert(data.id, data.effectStateId);
|
||||
@@ -277,10 +277,10 @@ void HandlerParticipantEvent::onExplosionSingleChanged(const AreaEffectSimulatio
|
||||
QJsonObject obj;
|
||||
obj[QStringLiteral("AesId")] = QJsonValue(aesItem.id);
|
||||
obj[QStringLiteral("AesName")] = QJsonValue(QString::fromStdString(aesItem.name));
|
||||
obj[QStringLiteral("AesType")] = QJsonValue(AreaEffectSimulation::AesType::AtExplosionSingle);
|
||||
obj[QStringLiteral("AesType")] = QJsonValue(static_cast<int>(AreaEffectSimulation::AesType::AtExplosionSingle));
|
||||
obj[QStringLiteral("ChargeTypeId")] = QJsonValue(data.chargeStruct.chargeTypeId);
|
||||
obj[QStringLiteral("duration")] = QJsonValue(aesItem.effectDuration);
|
||||
obj[QStringLiteral("endTime")] = QJsonValue(data.effectStart.get() + aesItem.effectDuration);
|
||||
obj[QStringLiteral("endTime")] = QJsonValue(static_cast<qint64>(data.effectStart.get() + aesItem.effectDuration));
|
||||
eData.properties = QString::fromUtf8(QJsonDocument(obj).toJson(QJsonDocument::Compact));
|
||||
|
||||
//const Core::GeoPosition geoPosition ( data.impactPosition().lon(), data.impactPosition().lat(), 0);
|
||||
@@ -328,68 +328,68 @@ void HandlerParticipantEvent::onParticipantEventChanged(const CentralEffectSimul
|
||||
<< " position=" << data.position
|
||||
<< " eData.position=" << eData.position;
|
||||
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::PdmEventType_Unknown;
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::EventType_Unknown;
|
||||
|
||||
QJsonObject obj;
|
||||
obj[QStringLiteral("AesId")] = QJsonValue(data.aesItemId);
|
||||
obj[QStringLiteral("AesType")] = QJsonValue(m_itemViews.value(data.aesItemId).underlying());
|
||||
obj[QStringLiteral("AesType")] = QJsonValue(static_cast<int>(m_itemViews.value(data.aesItemId)));
|
||||
obj[QStringLiteral("AesName")] = QJsonValue(QString::fromStdString(data.aesName));
|
||||
obj[QStringLiteral("FriendlyFire")] = QJsonValue(data.friendlyFire);
|
||||
|
||||
switch(data.eventTypeId.underlying())
|
||||
switch(data.eventTypeId)
|
||||
{
|
||||
case ProjectDataManagement::PdmEventType::PdmEventType_HitEffectSimulation:
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::PdmEventType_HitEffectSimulation;
|
||||
case ProjectDataManagement::PdmEventType::EventType_HitEffectSimulation:
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::EventType_HitEffectSimulation;
|
||||
break;
|
||||
case ProjectDataManagement::PdmEventType::PdmEventType_HitMine:
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::PdmEventType_HitMine;
|
||||
case ProjectDataManagement::PdmEventType::EventType_HitMine:
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::EventType_HitMine;
|
||||
break;
|
||||
case ProjectDataManagement::PdmEventType::PdmEventType_HitN:
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::PdmEventType_HitN;
|
||||
case ProjectDataManagement::PdmEventType::EventType_HitN:
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::EventType_HitN;
|
||||
break;
|
||||
case ProjectDataManagement::PdmEventType::PdmEventType_HitC:
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::PdmEventType_HitC;
|
||||
case ProjectDataManagement::PdmEventType::EventType_HitC:
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::EventType_HitC;
|
||||
break;
|
||||
case ProjectDataManagement::PdmEventType::PdmEventType_EnterDangerArea:
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::PdmEventType_EnterDangerArea;
|
||||
case ProjectDataManagement::PdmEventType::EventType_EnterDangerArea:
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::EventType_EnterDangerArea;
|
||||
break;
|
||||
case ProjectDataManagement::PdmEventType::PdmEventType_LeaveDangerArea:
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::PdmEventType_LeaveDangerArea;
|
||||
case ProjectDataManagement::PdmEventType::EventType_LeaveDangerArea:
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::EventType_LeaveDangerArea;
|
||||
break;
|
||||
case ProjectDataManagement::PdmEventType::PdmEventType_EnterMineArea:
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::PdmEventType_EnterMineArea;
|
||||
case ProjectDataManagement::PdmEventType::EventType_EnterMineArea:
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::EventType_EnterMineArea;
|
||||
break;
|
||||
case ProjectDataManagement::PdmEventType::PdmEventType_LeaveMineArea:
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::PdmEventType_LeaveMineArea;
|
||||
case ProjectDataManagement::PdmEventType::EventType_LeaveMineArea:
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::EventType_LeaveMineArea;
|
||||
break;
|
||||
case ProjectDataManagement::PdmEventType::PdmEventType_EnterNuclear:
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::PdmEventType_EnterNuclear;
|
||||
case ProjectDataManagement::PdmEventType::EventType_EnterNuclear:
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::EventType_EnterNuclear;
|
||||
break;
|
||||
case ProjectDataManagement::PdmEventType::PdmEventType_LeaveNuclear:
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::PdmEventType_LeaveNuclear;
|
||||
case ProjectDataManagement::PdmEventType::EventType_LeaveNuclear:
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::EventType_LeaveNuclear;
|
||||
break;
|
||||
case ProjectDataManagement::PdmEventType::PdmEventType_CrossLocalBorderline:
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::PdmEventType_CrossLocalBorderline;
|
||||
case ProjectDataManagement::PdmEventType::EventType_CrossLocalBorderline:
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::EventType_CrossLocalBorderline;
|
||||
obj[QStringLiteral("Global")] = QJsonValue(false);
|
||||
break;
|
||||
case ProjectDataManagement::PdmEventType::PdmEventType_CrossGlobalBorderline:
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::PdmEventType_CrossGlobalBorderline;
|
||||
case ProjectDataManagement::PdmEventType::EventType_CrossGlobalBorderline:
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::EventType_CrossGlobalBorderline;
|
||||
obj[QStringLiteral("Global")] = QJsonValue(true);
|
||||
break;
|
||||
case ProjectDataManagement::PdmEventType::PdmEventType_EnterFunctionalArea:
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::PdmEventType_EnterFunctionalArea;
|
||||
case ProjectDataManagement::PdmEventType::EventType_EnterFunctionalArea:
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::EventType_EnterFunctionalArea;
|
||||
break;
|
||||
case ProjectDataManagement::PdmEventType::PdmEventType_LeaveFunctionalArea:
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::PdmEventType_LeaveFunctionalArea;
|
||||
case ProjectDataManagement::PdmEventType::EventType_LeaveFunctionalArea:
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::EventType_LeaveFunctionalArea;
|
||||
break;
|
||||
case ProjectDataManagement::PdmEventType::PdmEventType_EnterHazardDistance:
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::PdmEventType_EnterHazardDistance;
|
||||
case ProjectDataManagement::PdmEventType::EventType_EnterHazardDistance:
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::EventType_EnterHazardDistance;
|
||||
break;
|
||||
case ProjectDataManagement::PdmEventType::PdmEventType_LeaveHazardDistance:
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::PdmEventType_LeaveHazardDistance;
|
||||
case ProjectDataManagement::PdmEventType::EventType_LeaveHazardDistance:
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::EventType_LeaveHazardDistance;
|
||||
break;
|
||||
case ProjectDataManagement::PdmEventType::PdmEventType_AirSupport:
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::PdmEventType_AirSupport;
|
||||
case ProjectDataManagement::PdmEventType::EventType_AirSupport:
|
||||
eData.eventTypeId = ProjectDataManagement::PdmEventType::EventType_AirSupport;
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
|
||||
+2
-2
@@ -131,7 +131,7 @@ AvsData WebSocketAvs::jsonObjectToAvsData(const QJsonObject &obj)
|
||||
ERROR_LOG(m_logger) << "Unknown avsEventType: " << avsEventType;
|
||||
break;
|
||||
}
|
||||
data.eventType = eventType.underlying();
|
||||
data.eventType = eventType;
|
||||
|
||||
int mountingPointId = 0;
|
||||
if (m_avmDtc->mountingPointForStreamName(data.streamName, mountingPointId))
|
||||
@@ -148,7 +148,7 @@ Database::EemEvent WebSocketAvs::avsDataToEemEvent(const AvsData &data)
|
||||
{
|
||||
Database::EemEvent eemEvent;
|
||||
eemEvent.id = data.id;
|
||||
eemEvent.eventTypeId = data.eventType.underlying();
|
||||
eemEvent.eventTypeId = data.eventType;
|
||||
eemEvent.sampleTime = data.eventTime;
|
||||
|
||||
QJsonObject obj;
|
||||
|
||||
@@ -107,14 +107,14 @@ bool HandlerIed::init()
|
||||
for (auto it = latestPositions.begin(); it != latestPositions.end(); ++it)
|
||||
{
|
||||
const auto &pos = it.value();
|
||||
ObjectIed *currentIed = m_iedObjMap.value(pos.id());
|
||||
ObjectIed *currentIed = m_iedObjMap.value(pos.id);
|
||||
|
||||
if (currentIed == nullptr)
|
||||
{
|
||||
INFO_LOG(m_logger) << "Got position for non existing IED-Id: " << pos.id();
|
||||
INFO_LOG(m_logger) << "Got position for non existing IED-Id: " << pos.id;
|
||||
continue;
|
||||
}
|
||||
DEBUG_LOG(m_logger) << "Setting position for IED-Id " << pos.id();
|
||||
DEBUG_LOG(m_logger) << "Setting position for IED-Id " << pos.id;
|
||||
currentIed->setPosition(it.value());
|
||||
}
|
||||
|
||||
@@ -166,10 +166,10 @@ static inline IedTacticalState toTacticalState(int tacticalState)
|
||||
|
||||
static void assignBaseData(const TrainingAreaBase::IedBaseData &inData, Database::GimIed &outData)
|
||||
{
|
||||
outData.equipmentNumber = inData.iedId();
|
||||
outData.tacticalStateId = toTacticalState(inData.tacticalState());
|
||||
outData.pyrotechnics = inData.statePyrotechnics();
|
||||
outData.sampleTime = inData.sampleTime();
|
||||
outData.equipmentNumber = inData.iedId;
|
||||
outData.tacticalStateId = toTacticalState(inData.tacticalState);
|
||||
outData.pyrotechnics = inData.statePyrotechnics;
|
||||
outData.sampleTime = inData.sampleTime;
|
||||
}
|
||||
|
||||
void HandlerIed::onDefinitionIed(const TrainingAreaBase::DefinitionIed &data, DataModification modType)
|
||||
@@ -182,26 +182,26 @@ void HandlerIed::onDefinitionIed(const TrainingAreaBase::DefinitionIed &data, Da
|
||||
Database::GimIed newData;
|
||||
|
||||
assignBaseData(data, newData);
|
||||
newData.typeId = static_cast<IedType>(data.type());
|
||||
newData.remoteTrigger = data.remoteTrigger();
|
||||
newData.switchTrigger = data.switchTrigger();
|
||||
newData.lightBarrierTrigger = data.lightBarrierTrigger();
|
||||
newData.tautWireTrigger = data.tautWireTrigger();
|
||||
newData.explosiveForce = data.explosiveForce();
|
||||
newData.typeId = static_cast<IedType>(data.type);
|
||||
newData.remoteTrigger = data.remoteTrigger;
|
||||
newData.switchTrigger = data.switchTrigger;
|
||||
newData.lightBarrierTrigger = data.lightBarrierTrigger;
|
||||
newData.tautWireTrigger = data.tautWireTrigger;
|
||||
newData.explosiveForce = data.explosiveForce;
|
||||
|
||||
if (m_ppmDtc->party(data.partyId()).id() > 0)
|
||||
newData.partyId = data.partyId(); // use party from telegram
|
||||
if (m_ppmDtc->party(data.partyId).id > 0)
|
||||
newData.partyId = data.partyId; // use party from telegram
|
||||
else
|
||||
newData.partyId = getPartyIdFromParticipantEquipmentNumber(data.equipmentNumber()); // use party from equipmentNumber
|
||||
newData.partyId = getPartyIdFromParticipantEquipmentNumber(data.equipmentNumber); // use party from equipmentNumber
|
||||
|
||||
newData.pairingStateId = static_cast<IedPairingState>(data.pairingState());
|
||||
switch (newData.pairingStateId.underlying())
|
||||
newData.pairingStateId = static_cast<IedPairingState>(data.pairingState);
|
||||
switch (newData.pairingStateId)
|
||||
{
|
||||
case IedPairingState::PairedToParticipant:
|
||||
newData.pairedParticipantId.setValue(data.pairedId().get());
|
||||
newData.pairedParticipantId.setValue(data.pairedId.get());
|
||||
break;
|
||||
case IedPairingState::PairedToOps:
|
||||
newData.pairedOpsId.setValue(data.pairedId().get());
|
||||
newData.pairedOpsId.setValue(data.pairedId.get());
|
||||
break;
|
||||
case IedPairingState::NotPaired:
|
||||
break;
|
||||
@@ -215,7 +215,7 @@ void HandlerIed::onDefinitionIed(const TrainingAreaBase::DefinitionIed &data, Da
|
||||
// ^
|
||||
// | -> Therefore suppress Injury
|
||||
// handled at guez_ied_to_map.cpp and gim_info_dialog.cpp
|
||||
switch (newData.typeId.underlying())
|
||||
switch (newData.typeId)
|
||||
{
|
||||
case IedType::SuicideIed:
|
||||
newData.symbol = QStringLiteral("AP6D|CMPL|10014000001103040000"); //SIDC for suicide bomber
|
||||
@@ -241,21 +241,21 @@ void HandlerIed::onDefinitionIed(const TrainingAreaBase::DefinitionIed &data, Da
|
||||
return;
|
||||
}
|
||||
m_iedObjMap.insert(ifs->getId(), ifs);
|
||||
auto it = m_orphanedStateIed.find(data.iedId());
|
||||
auto it = m_orphanedStateIed.find(data.iedId);
|
||||
if (it != m_orphanedStateIed.end())
|
||||
{
|
||||
auto defState = it.value();
|
||||
m_orphanedStateIed.erase(it);
|
||||
|
||||
defState.tacticalState(data.tacticalState());
|
||||
defState.statePyrotechnics(data.statePyrotechnics());
|
||||
defState.sampleTime(data.sampleTime());
|
||||
defState.tacticalState = data.tacticalState;
|
||||
defState.statePyrotechnics = data.statePyrotechnics;
|
||||
defState.sampleTime = data.sampleTime;
|
||||
onStateIed(defState, DataModification::eAdded);
|
||||
}
|
||||
id = ifs->getId();
|
||||
}
|
||||
|
||||
m_iedObjMap[id]->setPosition(newData.sampleTime, Core::GeoPosition(data.position().lon(), data.position().lat(), 0));
|
||||
m_iedObjMap[id]->setPosition(newData.sampleTime, Core::GeoPosition(data.position.lon, data.position.lat, 0));
|
||||
}
|
||||
|
||||
static inline IedError toIedError(int err)
|
||||
@@ -279,23 +279,23 @@ void HandlerIed::onStateIed(const TrainingAreaBase::StateIed &data, DataModifica
|
||||
DEBUG_LOG(m_logger) << "onStateIed: " << data;
|
||||
|
||||
// only overwrite state for existing IEDs
|
||||
if (m_iedObjMap.contains(getIdByEquipmentnumber(data.iedId())))
|
||||
if (m_iedObjMap.contains(getIdByEquipmentnumber(data.iedId)))
|
||||
{
|
||||
Database::GimIed newData;
|
||||
|
||||
assignBaseData(data, newData);
|
||||
newData.batterywarnings = data.batteryWarnings();
|
||||
newData.electronicsErrorStateId = toIedError(data.errorStateElectronics());
|
||||
newData.pyrotechnics1ErrorStateId = toIedError(data.errorStatePyrotechnics1());
|
||||
newData.pyrotechnics2ErrorStateId = toIedError(data.errorStatePyrotechnics2());
|
||||
newData.pyrotechnics3ErrorStateId = toIedError(data.errorStatePyrotechnics3());
|
||||
newData.batterywarnings = data.batteryWarnings;
|
||||
newData.electronicsErrorStateId = toIedError(data.errorStateElectronics);
|
||||
newData.pyrotechnics1ErrorStateId = toIedError(data.errorStatePyrotechnics1);
|
||||
newData.pyrotechnics2ErrorStateId = toIedError(data.errorStatePyrotechnics2);
|
||||
newData.pyrotechnics3ErrorStateId = toIedError(data.errorStatePyrotechnics3);
|
||||
|
||||
m_iedObjMap[getIdByEquipmentnumber(newData.equipmentNumber)]->updateState(newData);
|
||||
}
|
||||
else
|
||||
{
|
||||
WARNING_LOG(m_logger) << "StateIed without an existing IED - got no DefinitionIED? " << data;
|
||||
m_orphanedStateIed.insert(data.iedId(), data);
|
||||
m_orphanedStateIed.insert(data.iedId, data);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -304,25 +304,25 @@ void HandlerIed::onPairIedRequest(const rti::core::SampleIdentity &cookie,
|
||||
{
|
||||
Core::FunctionReplyObject ret;
|
||||
|
||||
INFO_LOG(m_logger) << "onPairIedRequest id = " << request.id();
|
||||
INFO_LOG(m_logger) << "onPairIedRequest id = " << request.id;
|
||||
|
||||
ObjectIed *ifs = m_iedObjMap.value(request.id());
|
||||
ObjectIed *ifs = m_iedObjMap.value(request.id);
|
||||
if (ifs == nullptr)
|
||||
{
|
||||
ret = Core::FunctionReplyObject(request.id(), tr_lts("dds", "IED with id %1 not found")).arg(request.id());
|
||||
ret = Core::FunctionReplyObject(request.id, tr_lts("dds", "IED with id %1 not found")).arg(request.id);
|
||||
m_ddsHandler->fts()->pairIedReply(cookie, ret);
|
||||
return;
|
||||
}
|
||||
|
||||
Database::GimIed data;
|
||||
data.pairingStateId = request.pairingState();
|
||||
data.pairingStateId = request.pairingState;
|
||||
|
||||
switch (request.pairingState().underlying())
|
||||
switch (request.pairingState)
|
||||
{
|
||||
case IedPairingState::PairedToParticipant:
|
||||
{
|
||||
data.pairedParticipantId.setValue(request.pairedParticipantId.get());
|
||||
data.partyId = m_ppmDtc->participant(request.pairedParticipantId.get()).partyId();
|
||||
data.partyId = m_ppmDtc->participant(request.pairedParticipantId.get()).partyId;
|
||||
break;
|
||||
}
|
||||
case IedPairingState::PairedToOps:
|
||||
@@ -357,8 +357,8 @@ int HandlerIed::getPartyIdFromParticipantEquipmentNumber(const int equipmentNumb
|
||||
|
||||
for (const auto &participant : participants)
|
||||
{
|
||||
if (participant.equipmentNumber() == equipmentNumber)
|
||||
return participant.partyId();
|
||||
if (participant.equipmentNumber == equipmentNumber)
|
||||
return participant.partyId;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -120,28 +120,28 @@ void ObjectIed::onPublishData()
|
||||
{
|
||||
GuezIedManagement::Ied ddsData;
|
||||
|
||||
ddsData.id(m_data.id);
|
||||
ddsData.equipmentNumber(m_data.equipmentNumber);
|
||||
ddsData.type(IedType(m_data.typeId));
|
||||
ddsData.remoteTrigger(m_data.remoteTrigger);
|
||||
ddsData.switchTrigger(m_data.switchTrigger);
|
||||
ddsData.lightBarrierTrigger(m_data.lightBarrierTrigger);
|
||||
ddsData.tautWireTrigger(m_data.tautWireTrigger);
|
||||
ddsData.explosiveForce(m_data.explosiveForce);
|
||||
ddsData.partyId(m_data.partyId);
|
||||
ddsData.pairingState(IedPairingState(m_data.pairingStateId));
|
||||
ddsData.id = m_data.id;
|
||||
ddsData.equipmentNumber = m_data.equipmentNumber;
|
||||
ddsData.type = IedType(m_data.typeId);
|
||||
ddsData.remoteTrigger = m_data.remoteTrigger;
|
||||
ddsData.switchTrigger = m_data.switchTrigger;
|
||||
ddsData.lightBarrierTrigger = m_data.lightBarrierTrigger;
|
||||
ddsData.tautWireTrigger = m_data.tautWireTrigger;
|
||||
ddsData.explosiveForce = m_data.explosiveForce;
|
||||
ddsData.partyId = m_data.partyId;
|
||||
ddsData.pairingState = IedPairingState(m_data.pairingStateId);
|
||||
|
||||
switch(ddsData.pairingState().underlying())
|
||||
switch(ddsData.pairingState)
|
||||
{
|
||||
case IedPairingState::PairedToParticipant:
|
||||
{
|
||||
ddsData.pairedParticipantId().set(m_data.pairedParticipantId.toInt());
|
||||
ddsData.pairedParticipantId.set(m_data.pairedParticipantId.toInt());
|
||||
connect(m_ppmDtc.get(), &ParticipantManagement::Interface::Dtc::participantPositionChanged, this, &ObjectIed::onParticipantPositionChanged);
|
||||
break;
|
||||
}
|
||||
case IedPairingState::PairedToOps:
|
||||
{
|
||||
ddsData.pairedOpsId().set(m_data.pairedOpsId.toInt());
|
||||
ddsData.pairedOpsId.set(m_data.pairedOpsId.toInt());
|
||||
//todo: connect to ISM for OPS-Position
|
||||
disconnect(m_ppmDtc.get(), &ParticipantManagement::Interface::Dtc::participantPositionChanged, this, &ObjectIed::onParticipantPositionChanged);
|
||||
break;
|
||||
@@ -154,15 +154,15 @@ void ObjectIed::onPublishData()
|
||||
}
|
||||
}
|
||||
|
||||
ddsData.tacticalState(IedTacticalState(m_data.tacticalStateId));
|
||||
ddsData.pyrotechnics(m_data.pyrotechnics);
|
||||
ddsData.batteryWarnings(m_data.batterywarnings);
|
||||
ddsData.electronicsError(IedError(m_data.electronicsErrorStateId));
|
||||
ddsData.pyrotechnics1Error(IedError(m_data.pyrotechnics1ErrorStateId));
|
||||
ddsData.pyrotechnics2Error(IedError(m_data.pyrotechnics2ErrorStateId));
|
||||
ddsData.pyrotechnics3Error(IedError(m_data.pyrotechnics3ErrorStateId));
|
||||
ddsData.symbol(m_data.symbol.toStdString());
|
||||
ddsData.sampleTime(m_data.sampleTime);
|
||||
ddsData.tacticalState = IedTacticalState(m_data.tacticalStateId);
|
||||
ddsData.pyrotechnics = m_data.pyrotechnics;
|
||||
ddsData.batteryWarnings = m_data.batterywarnings;
|
||||
ddsData.electronicsError = IedError(m_data.electronicsErrorStateId);
|
||||
ddsData.pyrotechnics1Error = IedError(m_data.pyrotechnics1ErrorStateId);
|
||||
ddsData.pyrotechnics2Error = IedError(m_data.pyrotechnics2ErrorStateId);
|
||||
ddsData.pyrotechnics3Error = IedError(m_data.pyrotechnics3ErrorStateId);
|
||||
ddsData.symbol = m_data.symbol.toStdString();
|
||||
ddsData.sampleTime = m_data.sampleTime;
|
||||
|
||||
INFO_LOG(m_logger) << "Publish IED-data to dds (" << m_data.id << ") ...";
|
||||
|
||||
@@ -175,8 +175,8 @@ void ObjectIed::onParticipantPositionChanged(const ParticipantManagement::Partic
|
||||
if (modType != DataModification::eAdded && modType != DataModification::eModified)
|
||||
return;
|
||||
|
||||
if (data.participantId() == m_data.pairedParticipantId.toInt())
|
||||
setPosition(data.sampleTime(), data.pos());
|
||||
if (data.participantId == m_data.pairedParticipantId.toInt())
|
||||
setPosition(data.sampleTime, data.pos);
|
||||
}
|
||||
|
||||
void ObjectIed::assignBaseData(const Database::GimIed &data)
|
||||
@@ -193,12 +193,12 @@ void ObjectIed::assignPairingState(const Database::GimIed &data)
|
||||
m_data.pairedOpsId = data.pairedOpsId;
|
||||
m_data.partyId = data.partyId;
|
||||
|
||||
switch(data.pairingStateId.underlying())
|
||||
switch(data.pairingStateId)
|
||||
{
|
||||
case IedPairingState::PairedToParticipant:
|
||||
{
|
||||
ParticipantManagement::ParticipantPosition position = m_ppmDtc->participantPosition(m_data.pairedParticipantId.toInt());
|
||||
setPosition(position.sampleTime(), position.pos());
|
||||
setPosition(position.sampleTime, position.pos);
|
||||
break;
|
||||
}
|
||||
case IedPairingState::PairedToOps:
|
||||
|
||||
@@ -67,7 +67,7 @@ bool DdsHandler::init(const QStringList &qosFileList)
|
||||
|
||||
qint64 DdsHandler::currentPartitionTime() const
|
||||
{
|
||||
return m_dtcCore->partitionTime().timeStamp();
|
||||
return m_dtcCore->partitionTime().timeStamp;
|
||||
}
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
|
||||
+11
-11
@@ -80,13 +80,13 @@ bool HandlerInfrastructureData::init()
|
||||
void HandlerInfrastructureData::onAssetChanged(const InfrastructureManagement::InstrumentationAsset &data, DataModification modType)
|
||||
{
|
||||
// nur die MountingPointType::MeteoDataUnit bearbeiten...
|
||||
if (data.mountingPointTypeId() != InfrastructureManagement::MountingPointType::MeteoDataUnit)
|
||||
if (data.mountingPointTypeId != InfrastructureManagement::MountingPointType::MeteoDataUnit)
|
||||
return;
|
||||
|
||||
INFO_LOG(m_logger) << "onAssetChanged()"
|
||||
<< " assetId: " << data.id()
|
||||
<< " mountingPointTypeId: " << data.mountingPointTypeId()
|
||||
<< " name: " << data.name();
|
||||
<< " assetId: " << data.id
|
||||
<< " mountingPointTypeId: " << data.mountingPointTypeId
|
||||
<< " name: " << data.name;
|
||||
|
||||
switch (modType)
|
||||
{
|
||||
@@ -108,10 +108,10 @@ void HandlerInfrastructureData::onMountingPointAssetChanged(const Infrastructure
|
||||
{
|
||||
case DataModification::eAdded:
|
||||
case DataModification::eModified:
|
||||
m_mountingPointAssetsMap.insert(data.assetId(), data.structureElementId());
|
||||
m_mountingPointAssetsMap.insert(data.assetId, data.structureElementId);
|
||||
break;
|
||||
case DataModification::eRemoved:
|
||||
m_mountingPointAssetsMap.remove(data.assetId());
|
||||
m_mountingPointAssetsMap.remove(data.assetId);
|
||||
break;
|
||||
}
|
||||
} // end of onMountingPointAssetChanged()
|
||||
@@ -123,10 +123,10 @@ void HandlerInfrastructureData::onMainStructureElementChanged(const Infrastructu
|
||||
{
|
||||
case DataModification::eAdded:
|
||||
case DataModification::eModified:
|
||||
m_mainStructureElements.insert(data.id(), data);
|
||||
m_mainStructureElements.insert(data.id, data);
|
||||
break;
|
||||
case DataModification::eRemoved:
|
||||
m_mainStructureElements.remove(data.id());
|
||||
m_mainStructureElements.remove(data.id);
|
||||
break;
|
||||
}
|
||||
} // end of onMountingPointAssetChanged()
|
||||
@@ -143,10 +143,10 @@ Core::GeoPosition HandlerInfrastructureData::getStructureElementPosition(int ass
|
||||
// Go through all MainStructureElements and search structureElementId
|
||||
for (const InfrastructureManagement::MainStructureElement &mse : m_mainStructureElements)
|
||||
{
|
||||
for (const InfrastructureManagement::StructureElement &se : mse.elements())
|
||||
for (const InfrastructureManagement::StructureElement &se : mse.elements)
|
||||
{
|
||||
if (se.id() == seId)
|
||||
return mse.geoPosition();
|
||||
if (se.id == seId)
|
||||
return mse.geoPosition;
|
||||
}
|
||||
}
|
||||
return Core::GeoPosition();
|
||||
|
||||
+28
-28
@@ -40,12 +40,12 @@ bool HandlerMeteoDataUnit::init()
|
||||
{
|
||||
delete m_tcpWS;
|
||||
QJsonParseError jError;
|
||||
QJsonDocument doc(QJsonDocument::fromJson(m_asset.properties().c_str(), &jError));
|
||||
QJsonDocument doc(QJsonDocument::fromJson(m_asset.properties.c_str(), &jError));
|
||||
if (jError.error != QJsonParseError::NoError ||
|
||||
!doc.isObject())
|
||||
{
|
||||
ERROR_LOG(m_logger) << "Can not initialize meteo data unit - properties are not parsable: "
|
||||
<< jError.errorString() << " - '" << m_asset.properties() << "'";
|
||||
<< jError.errorString() << " - '" << m_asset.properties << "'";
|
||||
return false;
|
||||
}
|
||||
QJsonObject obj(doc.object());
|
||||
@@ -54,35 +54,35 @@ bool HandlerMeteoDataUnit::init()
|
||||
if (climatePort == 0 || windPort == 0)
|
||||
{
|
||||
ERROR_LOG(m_logger) << "Can not parse climate and/or wind port from properties: '" <<
|
||||
m_asset.properties() << "'";
|
||||
m_asset.properties << "'";
|
||||
return false;
|
||||
}
|
||||
|
||||
m_tcpWS = new TcpWeatherStation(m_asset.id(),
|
||||
QString::fromStdString(m_asset.hostname()),
|
||||
m_tcpWS = new TcpWeatherStation(m_asset.id,
|
||||
QString::fromStdString(m_asset.hostname),
|
||||
climatePort,
|
||||
windPort);
|
||||
|
||||
// init local MeteoData Values for compare
|
||||
m_newMeteoData.id(m_asset.id());
|
||||
m_newMeteoData.weatherStationId(m_asset.id());
|
||||
m_newMeteoData.note(m_asset.name());
|
||||
m_newMeteoData.isStaticMeteoData(false);
|
||||
m_newMeteoData.id = m_asset.id;
|
||||
m_newMeteoData.weatherStationId = m_asset.id;
|
||||
m_newMeteoData.note = m_asset.name;
|
||||
m_newMeteoData.isStaticMeteoData = false;
|
||||
|
||||
// Position der MDU eintragen (GeoPosition2D)
|
||||
if (m_mainHandler->ism())
|
||||
{
|
||||
const Core::GeoPosition geoPos = m_mainHandler->ism()->getStructureElementPosition(m_asset.id());
|
||||
const Core::GeoPosition geoPos = m_mainHandler->ism()->getStructureElementPosition(m_asset.id);
|
||||
//GeoPos->GeoPos2D
|
||||
m_newMeteoData.pos(Core::GeoPosition2D(geoPos.lon(), geoPos.lat()));
|
||||
m_newMeteoData.pos = Core::GeoPosition2D(geoPos.lon, geoPos.lat);
|
||||
}
|
||||
|
||||
|
||||
m_newMeteoData.pressure(800.0);
|
||||
m_newMeteoData.humidity(0.0);
|
||||
m_newMeteoData.temperature(0.0);
|
||||
m_newMeteoData.windSpeed(0.0);
|
||||
m_newMeteoData.windDirection(0.0);
|
||||
m_newMeteoData.pressure = 800.0;
|
||||
m_newMeteoData.humidity = 0.0;
|
||||
m_newMeteoData.temperature = 0.0;
|
||||
m_newMeteoData.windSpeed = 0.0;
|
||||
m_newMeteoData.windDirection = 0.0;
|
||||
|
||||
m_lastMeteoData = m_newMeteoData;
|
||||
|
||||
@@ -98,22 +98,22 @@ void HandlerMeteoDataUnit::onMeteoDataChanged(int id,
|
||||
float pressure, float temperature, float humidity,
|
||||
float direction, float speed, bool climateOk, bool windOk)
|
||||
{
|
||||
m_newMeteoData.id(id);
|
||||
m_newMeteoData.pressure(pressure); // in hPa
|
||||
m_newMeteoData.temperature(temperature); // in Grad Celsius
|
||||
m_newMeteoData.humidity(humidity); // % rel. Feuchte
|
||||
m_newMeteoData.windDirection(direction); // Grad, Nordbezogen mathem. negativ
|
||||
m_newMeteoData.windSpeed(speed); // in m/s
|
||||
m_newMeteoData.climateOk(climateOk);
|
||||
m_newMeteoData.windOk(windOk);
|
||||
m_newMeteoData.id = id;
|
||||
m_newMeteoData.pressure = pressure; // in hPa
|
||||
m_newMeteoData.temperature = temperature; // in Grad Celsius
|
||||
m_newMeteoData.humidity = humidity; // % rel. Feuchte
|
||||
m_newMeteoData.windDirection = direction; // Grad, Nordbezogen mathem. negativ
|
||||
m_newMeteoData.windSpeed = speed; // in m/s
|
||||
m_newMeteoData.climateOk = climateOk;
|
||||
m_newMeteoData.windOk = windOk;
|
||||
|
||||
// Position der MDU eintragen (falls sie noch nicht beim init() ermittelt werden konnte)
|
||||
if (m_lastMeteoData.pos() == Core::GeoPosition2D())
|
||||
if (m_lastMeteoData.pos == Core::GeoPosition2D())
|
||||
{
|
||||
if (m_mainHandler->ism())
|
||||
{
|
||||
const Core::GeoPosition geoPos = m_mainHandler->ism()->getStructureElementPosition(m_asset.id());
|
||||
m_newMeteoData.pos(Core::GeoPosition2D(geoPos.lon(), geoPos.lat()));
|
||||
const Core::GeoPosition geoPos = m_mainHandler->ism()->getStructureElementPosition(m_asset.id);
|
||||
m_newMeteoData.pos = Core::GeoPosition2D(geoPos.lon, geoPos.lat);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -134,7 +134,7 @@ void HandlerMeteoDataUnit::onPublishData()
|
||||
MeteoDataManagement::MeteoData ddsData;
|
||||
|
||||
ddsData = m_newMeteoData;
|
||||
ddsData.timeStamp(m_mainHandler->dds()->currentPartitionTime());
|
||||
ddsData.timeStamp = m_mainHandler->dds()->currentPartitionTime();
|
||||
|
||||
INFO_LOG(m_logger) << "Publish dynamic MeteoData to dds: " << ddsData;
|
||||
|
||||
|
||||
+2
-2
@@ -41,7 +41,7 @@ bool HandlerMeteoDataUnits::addMeteoDataUnit(const InfrastructureManagement::Ins
|
||||
removeMeteoDataUnit(asset); // just to be sure
|
||||
|
||||
HandlerMeteoDataUnit *hMDU = new HandlerMeteoDataUnit(m_mainHandler, asset);
|
||||
m_handlerMeteoDataUnitsMap.insert(asset.id(), hMDU);
|
||||
m_handlerMeteoDataUnitsMap.insert(asset.id, hMDU);
|
||||
|
||||
return false;
|
||||
} // end of addMeteoDataUnit()
|
||||
@@ -50,7 +50,7 @@ bool HandlerMeteoDataUnits::addMeteoDataUnit(const InfrastructureManagement::Ins
|
||||
bool HandlerMeteoDataUnits::removeMeteoDataUnit(const InfrastructureManagement::InstrumentationAsset &asset)
|
||||
{
|
||||
INFO_LOG(m_logger) << "removeMeteoDataUnit: " << asset;
|
||||
auto it = m_handlerMeteoDataUnitsMap.find(asset.id());
|
||||
auto it = m_handlerMeteoDataUnitsMap.find(asset.id);
|
||||
if (it == m_handlerMeteoDataUnitsMap.end())
|
||||
return false;
|
||||
|
||||
|
||||
+20
-20
@@ -73,11 +73,11 @@ void HandlerStaticMeteoData::onStaticMeteoDataModifyRequest(const rti::core::Sam
|
||||
{
|
||||
INFO_LOG(m_logger) << "onStaticMeteoDataModifyRequest: " << request;
|
||||
|
||||
Core::FunctionReplyObject rep(request.id());
|
||||
Core::FunctionReplyObject rep(request.id);
|
||||
|
||||
if (!updateStaticMeteoDatainDB(request))
|
||||
{
|
||||
rep = Core::FunctionReplyObject(request.id(), tr_lts("dds", "Update database failed"));
|
||||
rep = Core::FunctionReplyObject(request.id, tr_lts("dds", "Update database failed"));
|
||||
m_ddsHandler->fts()->staticMeteoDataModifyReply(cookie, rep);
|
||||
return;
|
||||
}
|
||||
@@ -92,7 +92,7 @@ void HandlerStaticMeteoData::onStaticMeteoDataModifyRequest(const rti::core::Sam
|
||||
|
||||
bool HandlerStaticMeteoData::updateStaticMeteoDatainDB(const StaticMeteoDataModifyRequest &request)
|
||||
{
|
||||
if (request.id() != m_dbStaticMeteoData.id)
|
||||
if (request.id != m_dbStaticMeteoData.id)
|
||||
{
|
||||
WARNING_LOG(m_logger) << "Invalid id for db-table 'mdm_static_meteo_data'"
|
||||
<< m_dbStaticMeteoData.id
|
||||
@@ -116,9 +116,9 @@ void HandlerStaticMeteoData::onPublishData()
|
||||
|
||||
const auto note(tr_lts("dds", "static data"));
|
||||
|
||||
ddsData.isStaticMeteoData(true);
|
||||
ddsData.note(note);
|
||||
ddsData.weatherStationId(ddsData.id()); // MDUid == dbId
|
||||
ddsData.isStaticMeteoData = true;
|
||||
ddsData.note = note;
|
||||
ddsData.weatherStationId = ddsData.id; // MDUid == dbId
|
||||
|
||||
INFO_LOG(m_logger) << "Publish static MeteoData to dds: " << ddsData;
|
||||
|
||||
@@ -153,13 +153,13 @@ Database::MdmStaticMeteoData HandlerStaticMeteoData::ddsInputDataToDbData(const
|
||||
{
|
||||
Database::MdmStaticMeteoData dbData;
|
||||
|
||||
dbData.id = ddsData.id();
|
||||
dbData.timeStamp = ddsData.timeStamp();
|
||||
dbData.windDirection = ddsData.windDirection();
|
||||
dbData.windSpeed = ddsData.windSpeed();
|
||||
dbData.temperature = ddsData.temperature();
|
||||
dbData.pressure = ddsData.pressure();
|
||||
dbData.humidity = ddsData.humidity();
|
||||
dbData.id = ddsData.id;
|
||||
dbData.timeStamp = ddsData.timeStamp;
|
||||
dbData.windDirection = ddsData.windDirection;
|
||||
dbData.windSpeed = ddsData.windSpeed;
|
||||
dbData.temperature = ddsData.temperature;
|
||||
dbData.pressure = ddsData.pressure;
|
||||
dbData.humidity = ddsData.humidity;
|
||||
|
||||
return dbData;
|
||||
} // end of toDbData()
|
||||
@@ -169,13 +169,13 @@ MeteoData HandlerStaticMeteoData::toDdsData(const Database::MdmStaticMeteoData &
|
||||
{
|
||||
MeteoData ddsData;
|
||||
|
||||
ddsData.id(dbData.id);
|
||||
ddsData.timeStamp(dbData.timeStamp);
|
||||
ddsData.windDirection(dbData.windDirection);
|
||||
ddsData.windSpeed(dbData.windSpeed);
|
||||
ddsData.temperature(dbData.temperature);
|
||||
ddsData.pressure(dbData.pressure);
|
||||
ddsData.humidity(dbData.humidity);
|
||||
ddsData.id = dbData.id;
|
||||
ddsData.timeStamp = dbData.timeStamp;
|
||||
ddsData.windDirection = dbData.windDirection;
|
||||
ddsData.windSpeed = dbData.windSpeed;
|
||||
ddsData.temperature = dbData.temperature;
|
||||
ddsData.pressure = dbData.pressure;
|
||||
ddsData.humidity = dbData.humidity;
|
||||
|
||||
return ddsData;
|
||||
} // end of toDdsData()
|
||||
|
||||
@@ -53,7 +53,7 @@ void TcpSocket::doConnect()
|
||||
this, &TcpSocket::onConnected);
|
||||
connect(m_socket, &QTcpSocket::disconnected,
|
||||
this, &TcpSocket::onDisonnected);
|
||||
connect(m_socket, QOverload<QAbstractSocket::SocketError>::of(&QTcpSocket::error),
|
||||
connect(m_socket, &QTcpSocket::errorOccurred,
|
||||
this, &TcpSocket::onError);
|
||||
connect(m_socket, &QTcpSocket::readyRead,
|
||||
this, &TcpSocket::onReadyRead);
|
||||
|
||||
+2
-1
@@ -9,6 +9,7 @@
|
||||
#include "central_aes_byte_reader.h"
|
||||
|
||||
#include <LtsUtilsCore/qbytearray_byteaccess.h>
|
||||
#include <AreaEffectSimulation/aes_enums.hpp>
|
||||
|
||||
#include "main_handler.h"
|
||||
#include "settings.h"
|
||||
@@ -387,7 +388,7 @@ bool CentralAesByteReader::getDdsEnumVal(size_t &pos, T &ddsEnumVal) const
|
||||
|
||||
bool result = LtsUtils::get4Byte(m_data, pos, tempVal);
|
||||
|
||||
ddsEnumVal = static_cast<typename T::inner_enum>(tempVal);
|
||||
ddsEnumVal = static_cast<T>(tempVal);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
+3
-3
@@ -329,9 +329,9 @@ void HandlerOcSituationData::sendParticipantData(int requestId)
|
||||
}
|
||||
|
||||
ParticipantManagement::ModifyParticipantDataRequest *newRequest = new ParticipantManagement::ModifyParticipantDataRequest();
|
||||
newRequest->requestId(requestId);
|
||||
newRequest->data(LtsUtils::convert<std::vector<ParticipantManagement::ParticipantData>>(m_participantData));
|
||||
newRequest->forceAddWithId(true);
|
||||
newRequest->requestId = requestId;
|
||||
newRequest->data = LtsUtils::convert<std::vector<ParticipantManagement::ParticipantData>>(m_participantData);
|
||||
newRequest->forceAddWithId = true;
|
||||
m_modifiyRequests.insert(requestId, newRequest);
|
||||
m_participantData.clear();
|
||||
|
||||
|
||||
+7
-7
@@ -26,12 +26,12 @@ bool HandlerReportData::generateChargeAdminResult(const CreateModifyReportReques
|
||||
q.prepare(QLatin1String("INSERT INTO rep_charge_administration (report_id, effect_source_id, charge_type_id ) VALUES (:reportId, :effectSourceId, :chargeTypeId )"));
|
||||
q.bindValue(QLatin1String(":reportId"), reportId);
|
||||
|
||||
for (auto it1 = request.effectSources().begin(); it1 != request.effectSources().end(); ++it1)
|
||||
for (auto it1 = request.effectSources.begin(); it1 != request.effectSources.end(); ++it1)
|
||||
{
|
||||
ProjectDataManagement::EffectSource effectSourceId = *it1;
|
||||
q.bindValue(QLatin1String(":effectSourceId"), effectSourceId.underlying());
|
||||
q.bindValue(QLatin1String(":effectSourceId"), static_cast<int>(effectSourceId));
|
||||
|
||||
for (auto it2 = request.chargeTypeIds().begin(); it2 != request.chargeTypeIds().end(); ++it2)
|
||||
for (auto it2 = request.chargeTypeIds.begin(); it2 != request.chargeTypeIds.end(); ++it2)
|
||||
{
|
||||
int chargeTypeId = *it2;
|
||||
if (chargeTypeId == 0)
|
||||
@@ -45,7 +45,7 @@ bool HandlerReportData::generateChargeAdminResult(const CreateModifyReportReques
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!calculateStock(chargeTypeId, effectSourceId, request.startTime(), request.endTime(), request.partyId(), reportId))
|
||||
if (!calculateStock(chargeTypeId, effectSourceId, request.startTime, request.endTime, request.partyId, reportId))
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -69,7 +69,7 @@ bool HandlerReportData::calculateStock(int chargeTypeId, const ProjectDataManage
|
||||
QString stmt = QLatin1String("SELECT amount, planned, used, sample_time, charge_type_id "
|
||||
" FROM rec_charge_administration "
|
||||
" WHERE effect_source_id = ")
|
||||
+ QString::number(es.underlying()) + QLatin1String(" AND sample_time > 0 AND sample_time < ") + QString::number(startTime)
|
||||
+ QString::number(static_cast<int>(es)) + QLatin1String(" AND sample_time > 0 AND sample_time < ") + QString::number(startTime)
|
||||
+ QLatin1String(" AND party_id = ") + QString::number(partyId) + QLatin1String(" AND charge_type_id = ") + QString::number(chargeTypeId)
|
||||
+ QLatin1String(" ORDER BY sample_time DESC LIMIT 1");
|
||||
|
||||
@@ -112,7 +112,7 @@ bool HandlerReportData::calculateStock(int chargeTypeId, const ProjectDataManage
|
||||
" FROM rec_charge_administration "
|
||||
" WHERE sample_time >= ")
|
||||
+ QString::number(startTime) + QLatin1String(" AND sample_time <= ") + QString::number(endTime) + QLatin1String(" AND party_id = ") + QString::number(partyId)
|
||||
+ QLatin1String(" AND charge_type_id = ") + QString::number(chargeTypeId) + QLatin1String(" AND effect_source_id = ") + QString::number(es.underlying())
|
||||
+ QLatin1String(" AND charge_type_id = ") + QString::number(chargeTypeId) + QLatin1String(" AND effect_source_id = ") + QString::number(static_cast<int>(es))
|
||||
+ QLatin1String(" ORDER BY sample_time ");
|
||||
|
||||
if (!qSelect.exec(stmt))
|
||||
@@ -151,7 +151,7 @@ bool HandlerReportData::calculateStock(int chargeTypeId, const ProjectDataManage
|
||||
+ QString::number(chargeData.chargePlanned) + QLatin1String(", ") + QLatin1String(" charge_available = ")
|
||||
+ QString::number(chargeData.chargeQuantity - chargeData.chargePlanned) + QLatin1String(" WHERE report_id = ") + QString::number(reportId)
|
||||
+ QLatin1String(" AND charge_type_id = ") + QString::number(chargeData.chargeTypeId) + QLatin1String(" AND effect_source_id = ")
|
||||
+ QString::number(es.underlying());
|
||||
+ QString::number(static_cast<int>(es));
|
||||
|
||||
DEBUG_LOG(m_logger) << "Update statement: " << stmt;
|
||||
|
||||
|
||||
+9
-9
@@ -21,8 +21,8 @@ bool HandlerReportData::generateMedevacNineLinerResult(const CreateModifyReportR
|
||||
{
|
||||
INFO_LOG(m_logger) << "Start generateMedevacNineLinerResult ";
|
||||
|
||||
LtsCoordTrans::UtmCoordinate coord(LtsCoordTrans::UtmCoordinate::fromGeographic(request.cornerBottomLeft().lon(),
|
||||
request.cornerBottomLeft().lat()));
|
||||
LtsCoordTrans::UtmCoordinate coord(LtsCoordTrans::UtmCoordinate::fromGeographic(request.cornerBottomLeft.lon,
|
||||
request.cornerBottomLeft.lat));
|
||||
|
||||
DBTransaction trans(m_db->database());
|
||||
|
||||
@@ -38,16 +38,16 @@ bool HandlerReportData::generateMedevacNineLinerResult(const CreateModifyReportR
|
||||
NSqlQuery q(m_db->database());
|
||||
q.setForwardOnly(false);
|
||||
|
||||
QString stmt = QLatin1String("SELECT id FROM san_nine_liner WHERE last_modified >= ") + QString::number(request.startTime()) +
|
||||
QLatin1String(" AND last_modified <= ") + QString::number(request.endTime());
|
||||
QString stmt = QLatin1String("SELECT id FROM san_nine_liner WHERE last_modified >= ") + QString::number(request.startTime) +
|
||||
QLatin1String(" AND last_modified <= ") + QString::number(request.endTime);
|
||||
|
||||
|
||||
if (request.width() > 0 && request.height() > 0)
|
||||
if (request.width > 0 && request.height > 0)
|
||||
{
|
||||
DEBUG_LOG(m_logger) << "#### Filtering data on geographic position";
|
||||
|
||||
double x1 = coord.x + request.height();
|
||||
double y1 = coord.y + request.width();
|
||||
double x1 = coord.x + request.height;
|
||||
double y1 = coord.y + request.width;
|
||||
DEBUG_LOG(m_logger) << "#### (x,x1,y,y1) = (" << coord.x << "," << x1 << "," << coord.y << "," << y1 << ")";
|
||||
|
||||
stmt += QLatin1String(" AND position_x_m >= ") + QString::number(coord.x);
|
||||
@@ -65,8 +65,8 @@ bool HandlerReportData::generateMedevacNineLinerResult(const CreateModifyReportR
|
||||
|
||||
if (!q.exec(stmt))
|
||||
{
|
||||
ERROR_LOG(m_logger) << "Error while selecting sanNineLiners for area (x) " << request.cornerBottomLeft().lon() << ", (y)" << request.cornerBottomLeft().lat()
|
||||
<< " width: " << request.width() << ", height: " << request.height();
|
||||
ERROR_LOG(m_logger) << "Error while selecting sanNineLiners for area (x) " << request.cornerBottomLeft.lon << ", (y)" << request.cornerBottomLeft.lat
|
||||
<< " width: " << request.width << ", height: " << request.height;
|
||||
ERROR_LOG(m_logger) << "stmt: " << stmt;
|
||||
return false;
|
||||
}
|
||||
|
||||
+38
-38
@@ -17,11 +17,11 @@ bool HandlerReportData::generateAirSupportResult(const CreateModifyReportRequest
|
||||
{
|
||||
INFO_LOG(m_logger) << "Start generateAirSupportResult - reportId: " << reportId;
|
||||
|
||||
if (request.chargeTypeIds().size() <= 0 || request.participantTypes().size() <= 0)
|
||||
if (request.chargeTypeIds.size() <= 0 || request.participantTypes.size() <= 0)
|
||||
{
|
||||
ERROR_LOG(m_logger) << "No elements selected to generate the report";
|
||||
DEBUG_LOG(m_logger) << "request.chargeTypeIds().size()" << request.chargeTypeIds().size();
|
||||
DEBUG_LOG(m_logger) << "request.participantTypes().size()" << request.participantTypes().size();
|
||||
DEBUG_LOG(m_logger) << "request.chargeTypeIds().size()" << request.chargeTypeIds.size();
|
||||
DEBUG_LOG(m_logger) << "request.participantTypes().size()" << request.participantTypes.size();
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -49,9 +49,9 @@ bool HandlerReportData::generateAirSupportResult(const CreateModifyReportRequest
|
||||
" (event_time BETWEEN :startTime AND :endTime) AND "
|
||||
" charge_type_id = :chargeId AND ");
|
||||
|
||||
if (request.participantTypes().size() > 0)
|
||||
if (request.participantTypes.size() > 0)
|
||||
{
|
||||
const QString pTypeIdsStr = intVecToString(request.participantTypes());
|
||||
const QString pTypeIdsStr = intVecToString(request.participantTypes);
|
||||
stmtSelect2 += QStringLiteral(" participant_type_id IN (%1) ").arg(pTypeIdsStr);
|
||||
}
|
||||
|
||||
@@ -75,9 +75,9 @@ bool HandlerReportData::generateAirSupportResult(const CreateModifyReportRequest
|
||||
|
||||
qInsert.bindValue(QStringLiteral(":reportId"), reportId);
|
||||
|
||||
qSelect1.bindValue(QStringLiteral(":partyId"), request.partyId());
|
||||
qSelect1.bindValue(QStringLiteral(":startTime"), request.startTime());
|
||||
qSelect1.bindValue(QStringLiteral(":endTime"), request.endTime());
|
||||
qSelect1.bindValue(QStringLiteral(":partyId"), request.partyId);
|
||||
qSelect1.bindValue(QStringLiteral(":startTime"), static_cast<qint64>(request.startTime));
|
||||
qSelect1.bindValue(QStringLiteral(":endTime"), static_cast<qint64>(request.endTime));
|
||||
|
||||
if (!qSelect1.exec())
|
||||
{
|
||||
@@ -86,9 +86,9 @@ bool HandlerReportData::generateAirSupportResult(const CreateModifyReportRequest
|
||||
}
|
||||
|
||||
DEBUG_LOG(m_logger) << "stmtSelect1: " << stmtSelect1;
|
||||
DEBUG_LOG(m_logger) << "partyId: " << request.partyId();
|
||||
DEBUG_LOG(m_logger) << "startTime: " << request.startTime();
|
||||
DEBUG_LOG(m_logger) << "endTime: " << request.endTime();
|
||||
DEBUG_LOG(m_logger) << "partyId: " << request.partyId;
|
||||
DEBUG_LOG(m_logger) << "startTime: " << request.startTime;
|
||||
DEBUG_LOG(m_logger) << "endTime: " << request.endTime;
|
||||
|
||||
// QMap<chargeTypeId, impacts>
|
||||
QMap<int,int> impactDataMap;
|
||||
@@ -114,9 +114,9 @@ bool HandlerReportData::generateAirSupportResult(const CreateModifyReportRequest
|
||||
return false;
|
||||
}
|
||||
|
||||
qSelect1.bindValue(QStringLiteral(":partyId"), request.partyId());
|
||||
qSelect1.bindValue(QStringLiteral(":startTime"), request.startTime());
|
||||
qSelect1.bindValue(QStringLiteral(":endTime"), request.endTime());
|
||||
qSelect1.bindValue(QStringLiteral(":partyId"), request.partyId);
|
||||
qSelect1.bindValue(QStringLiteral(":startTime"), static_cast<qint64>(request.startTime));
|
||||
qSelect1.bindValue(QStringLiteral(":endTime"), static_cast<qint64>(request.endTime));
|
||||
|
||||
if (!qSelect1.exec())
|
||||
{
|
||||
@@ -125,9 +125,9 @@ bool HandlerReportData::generateAirSupportResult(const CreateModifyReportRequest
|
||||
}
|
||||
|
||||
DEBUG_LOG(m_logger) << "stmtSelect1: " << stmtSelect1;
|
||||
DEBUG_LOG(m_logger) << "partyId: " << request.partyId();
|
||||
DEBUG_LOG(m_logger) << "startTime: " << request.startTime();
|
||||
DEBUG_LOG(m_logger) << "endTime: " << request.endTime();
|
||||
DEBUG_LOG(m_logger) << "partyId: " << request.partyId;
|
||||
DEBUG_LOG(m_logger) << "startTime: " << request.startTime;
|
||||
DEBUG_LOG(m_logger) << "endTime: " << request.endTime;
|
||||
|
||||
// QMap<chargeTypeId, eventTime>
|
||||
QMap<int,qint64> minEventTimeMap;
|
||||
@@ -152,9 +152,9 @@ bool HandlerReportData::generateAirSupportResult(const CreateModifyReportRequest
|
||||
return false;
|
||||
}
|
||||
|
||||
qSelect1.bindValue(QStringLiteral(":partyId"), request.partyId());
|
||||
qSelect1.bindValue(QStringLiteral(":startTime"), request.startTime());
|
||||
qSelect1.bindValue(QStringLiteral(":endTime"), request.endTime());
|
||||
qSelect1.bindValue(QStringLiteral(":partyId"), request.partyId);
|
||||
qSelect1.bindValue(QStringLiteral(":startTime"), static_cast<qint64>(request.startTime));
|
||||
qSelect1.bindValue(QStringLiteral(":endTime"), static_cast<qint64>(request.endTime));
|
||||
|
||||
if (!qSelect1.exec())
|
||||
{
|
||||
@@ -163,9 +163,9 @@ bool HandlerReportData::generateAirSupportResult(const CreateModifyReportRequest
|
||||
}
|
||||
|
||||
DEBUG_LOG(m_logger) << "stmtSelect1: " << stmtSelect1;
|
||||
DEBUG_LOG(m_logger) << "partyId: " << request.partyId();
|
||||
DEBUG_LOG(m_logger) << "startTime: " << request.startTime();
|
||||
DEBUG_LOG(m_logger) << "endTime: " << request.endTime();
|
||||
DEBUG_LOG(m_logger) << "partyId: " << request.partyId;
|
||||
DEBUG_LOG(m_logger) << "startTime: " << request.startTime;
|
||||
DEBUG_LOG(m_logger) << "endTime: " << request.endTime;
|
||||
|
||||
// QMap<chargeTypeId, eventTime>
|
||||
QMap<int,qint64> maxEventTimeMap;
|
||||
@@ -187,7 +187,7 @@ bool HandlerReportData::generateAirSupportResult(const CreateModifyReportRequest
|
||||
DEBUG_LOG(m_logger) << "Impacts = " << impacts;
|
||||
|
||||
// use only requested chargeTypeIds
|
||||
if (std::find(request.chargeTypeIds().begin(), request.chargeTypeIds().end(), chargeTypeId) == request.chargeTypeIds().end() || chargeTypeId == 0)
|
||||
if (std::find(request.chargeTypeIds.begin(), request.chargeTypeIds.end(), chargeTypeId) == request.chargeTypeIds.end() || chargeTypeId == 0)
|
||||
{
|
||||
WARNING_LOG(m_logger) << "ChargeTypeId " << chargeTypeId << " not found in list";
|
||||
continue;
|
||||
@@ -197,22 +197,22 @@ bool HandlerReportData::generateAirSupportResult(const CreateModifyReportRequest
|
||||
timeoutTimer.start();
|
||||
|
||||
qint64 t1;
|
||||
t1 = request.startTime();
|
||||
while (t1 <= request.endTime())
|
||||
t1 = request.startTime;
|
||||
while (t1 <= request.endTime)
|
||||
{
|
||||
checkElapsedTimer(timeoutTimer);
|
||||
qint64 t2 = qMin(qMax(t1, t1 + request.intervalTime() - 1), request.endTime());
|
||||
if (request.intervalTime() == 0) // || request.visualisationType() == VisualisationType::Table)
|
||||
t2 = request.endTime();
|
||||
qint64 t2 = qMin(qMax(t1, t1 + request.intervalTime - 1), request.endTime);
|
||||
if (request.intervalTime == 0) // || request.visualisationType == VisualisationType::Table)
|
||||
t2 = request.endTime;
|
||||
|
||||
qInsert.bindValue(QStringLiteral(":start"), t1);
|
||||
qInsert.bindValue(QStringLiteral(":end"), t2);
|
||||
qInsert.bindValue(QStringLiteral(":chargeTypeId"), chargeTypeId);
|
||||
|
||||
DEBUG_LOG(m_logger) << " Inserting: reportId, start, end, interval, name = " << reportId << " , " << t1 << " , " << t2 << " , "
|
||||
<< request.intervalTime();
|
||||
<< request.intervalTime;
|
||||
|
||||
qSelect2.bindValue(QStringLiteral(":aesPartyId"), request.partyId());
|
||||
qSelect2.bindValue(QStringLiteral(":aesPartyId"), request.partyId);
|
||||
qSelect2.bindValue(QStringLiteral(":chargeId"), chargeTypeId);
|
||||
qSelect2.bindValue(QStringLiteral(":startTime"), t1);
|
||||
qSelect2.bindValue(QStringLiteral(":endTime"), t2);
|
||||
@@ -220,7 +220,7 @@ bool HandlerReportData::generateAirSupportResult(const CreateModifyReportRequest
|
||||
DEBUG_LOG(m_logger) << "stmtSelect2: " << stmtSelect2;
|
||||
DEBUG_LOG(m_logger) << "startTime: " << t1;
|
||||
DEBUG_LOG(m_logger) << "endTime: " << t2;
|
||||
DEBUG_LOG(m_logger) << "aesPartyId: " << request.partyId();
|
||||
DEBUG_LOG(m_logger) << "aesPartyId: " << request.partyId;
|
||||
DEBUG_LOG(m_logger) << "chargeTypeId: " << chargeTypeId;
|
||||
|
||||
QMap<int, QVector<int>> vbgMap;
|
||||
@@ -238,9 +238,9 @@ bool HandlerReportData::generateAirSupportResult(const CreateModifyReportRequest
|
||||
|
||||
if (!vbgMap.contains(vbg))
|
||||
vbgMap.insert(vbg, {0, 0, 0});
|
||||
if (vbg == ProjectDataManagement::VulnerabilityState::CombatReady ||
|
||||
vbg == ProjectDataManagement::VulnerabilityState::NearMiss ||
|
||||
vbg == ProjectDataManagement::VulnerabilityState::HitWithNoEffect)
|
||||
if (vbg == static_cast<int>(ProjectDataManagement::VulnerabilityState::VulnerabilityState_CombatReady) ||
|
||||
vbg == static_cast<int>(ProjectDataManagement::VulnerabilityState::VulnerabilityState_NearMiss) ||
|
||||
vbg == static_cast<int>(ProjectDataManagement::VulnerabilityState::VulnerabilityState_HitWithNoEffect))
|
||||
continue;
|
||||
|
||||
vbgMap[vbg][0] += qSelect2.value(1).toInt(); // hits
|
||||
@@ -274,7 +274,7 @@ bool HandlerReportData::generateAirSupportResult(const CreateModifyReportRequest
|
||||
|
||||
if (vbgMap.isEmpty())
|
||||
{
|
||||
qInsert.bindValue(QStringLiteral(":vbg"),ProjectDataManagement::VulnerabilityState::NearMiss);
|
||||
qInsert.bindValue(QStringLiteral(":vbg"),static_cast<int>(ProjectDataManagement::VulnerabilityState::VulnerabilityState_NearMiss));
|
||||
qInsert.bindValue(QStringLiteral(":impacts"), impacts);
|
||||
qInsert.bindValue(QStringLiteral(":hit"), 0);
|
||||
qInsert.bindValue(QStringLiteral(":hit_ff"), 0);
|
||||
@@ -289,8 +289,8 @@ bool HandlerReportData::generateAirSupportResult(const CreateModifyReportRequest
|
||||
}
|
||||
}
|
||||
|
||||
t1 += request.intervalTime();
|
||||
if (request.intervalTime() == 0) // || request.visualisationType() == VisualisationType::Table)
|
||||
t1 += request.intervalTime;
|
||||
if (request.intervalTime == 0) // || request.visualisationType == VisualisationType::Table)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -40,7 +40,7 @@ bool HandlerReportData::generateBuildingDamageResult(const CreateModifyReportReq
|
||||
m_buildingDamageData.clear();
|
||||
|
||||
// in chargeTypeIds are saved buildingIds
|
||||
for (auto it = request.chargeTypeIds().begin(); it != request.chargeTypeIds().end(); ++it)
|
||||
for (auto it = request.chargeTypeIds.begin(); it != request.chargeTypeIds.end(); ++it)
|
||||
{
|
||||
BuildingDamageData bdDataStart, bdDataEnd;
|
||||
int buildingId = *it;
|
||||
@@ -50,10 +50,10 @@ bool HandlerReportData::generateBuildingDamageResult(const CreateModifyReportReq
|
||||
continue;
|
||||
|
||||
bdDataStart.buildingId = buildingId;
|
||||
bdDataStart.timePoint = request.startTime();
|
||||
bdDataStart.timePoint = request.startTime;
|
||||
|
||||
bdDataEnd.buildingId = buildingId;
|
||||
bdDataEnd.timePoint = request.endTime();
|
||||
bdDataEnd.timePoint = request.endTime;
|
||||
|
||||
qSelect.bindValue(QStringLiteral(":buildingId"), bdDataStart.buildingId);
|
||||
|
||||
|
||||
+14
-14
@@ -33,19 +33,19 @@ bool HandlerReportData::generateChargeResupplyResult(const CreateModifyReportReq
|
||||
QSet<int> usedGears;
|
||||
{
|
||||
QString stmt = QLatin1String("SELECT DISTINCT gear_id FROM rep_charge_resupply_data "
|
||||
" WHERE (event_time BETWEEN ") + QString::number(request.startTime()) + QLatin1String(" AND ") + QString::number(request.endTime()) + QLatin1String(") ");
|
||||
" WHERE (event_time BETWEEN ") + QString::number(request.startTime) + QLatin1String(" AND ") + QString::number(request.endTime) + QLatin1String(") ");
|
||||
|
||||
stmt += QLatin1String(" AND charge_type_id != 0");
|
||||
|
||||
if (request.chargeTypeIds().size() > 0)
|
||||
if (request.chargeTypeIds.size() > 0)
|
||||
{
|
||||
const QString chargeTypeIds = intVecToString(request.chargeTypeIds());
|
||||
const QString chargeTypeIds = intVecToString(request.chargeTypeIds);
|
||||
stmt += QLatin1String(" AND (charge_type_id IN (") + chargeTypeIds + QLatin1String(") OR charge_type_id < 0) ");
|
||||
}
|
||||
|
||||
if (request.participantIds().size() > 0)
|
||||
if (request.participantIds.size() > 0)
|
||||
{
|
||||
const QString participants = intVecToString(request.participantIds());
|
||||
const QString participants = intVecToString(request.participantIds);
|
||||
stmt += QStringLiteral(" AND participant_id IN (%1)").arg(participants);
|
||||
}
|
||||
|
||||
@@ -70,14 +70,14 @@ bool HandlerReportData::generateChargeResupplyResult(const CreateModifyReportReq
|
||||
{
|
||||
QString stmt = QLatin1String("SELECT party_id, event_time, participant_id, participant_type_id, charge_type_id, gear_type_id, "
|
||||
"gear_id, charge_fired, charge_remain FROM rep_charge_resupply_data "
|
||||
" WHERE (event_time BETWEEN ") + QString::number(request.startTime()) + QLatin1String(" AND ") + QString::number(request.endTime()) + QLatin1String(") ");
|
||||
" WHERE (event_time BETWEEN ") + QString::number(request.startTime) + QLatin1String(" AND ") + QString::number(request.endTime) + QLatin1String(") ");
|
||||
|
||||
stmt += QLatin1String(" AND charge_type_id != 0 ");
|
||||
|
||||
// for gears with more than one possible charge
|
||||
if (request.chargeTypeIds().size() > 0)
|
||||
if (request.chargeTypeIds.size() > 0)
|
||||
{
|
||||
const QString chargeTypeIds = intVecToString(request.chargeTypeIds());
|
||||
const QString chargeTypeIds = intVecToString(request.chargeTypeIds);
|
||||
stmt += QLatin1String(" AND (charge_type_id IN (") + chargeTypeIds + QLatin1String(") OR charge_type_id < 0) ");
|
||||
}
|
||||
|
||||
@@ -91,9 +91,9 @@ bool HandlerReportData::generateChargeResupplyResult(const CreateModifyReportReq
|
||||
stmt += QLatin1String(" AND gear_id IN (") + gears + QLatin1String(")");
|
||||
}
|
||||
|
||||
if (request.participantIds().size() > 0)
|
||||
if (request.participantIds.size() > 0)
|
||||
{
|
||||
const QString participants = intVecToString(request.participantIds());
|
||||
const QString participants = intVecToString(request.participantIds);
|
||||
stmt += QStringLiteral(" AND participant_id IN (%1)").arg(participants);
|
||||
}
|
||||
|
||||
@@ -170,13 +170,13 @@ bool HandlerReportData::generateChargeResupplyResult(const CreateModifyReportReq
|
||||
|
||||
// Alle Teilnehmer, die in der angegebenen Zeit kein Telegramm erzeugt haben, hier
|
||||
// hinzufügen
|
||||
for (const int participantId : request.participantIds())
|
||||
for (const int participantId : request.participantIds)
|
||||
{
|
||||
if (!m_crPartMap.contains(participantId))
|
||||
{
|
||||
checkElapsedTimer(timeoutTimer);
|
||||
// letzte Waffenzuordnung & Munitionsvorat holen und in m_crPartMap / m_crGear eintragen
|
||||
getLastGearSetting(participantId, request.chargeTypeIds(), request.startTime());
|
||||
getLastGearSetting(participantId, request.chargeTypeIds, request.startTime);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -308,7 +308,7 @@ bool HandlerReportData::generateChargeResupplyResult(const CreateModifyReportReq
|
||||
}
|
||||
else
|
||||
{
|
||||
start = getStart(x.participantId, x.gearId, x.chargeTypeId, request.startTime(), 0);
|
||||
start = getStart(x.participantId, x.gearId, x.chargeTypeId, request.startTime, 0);
|
||||
DEBUG_LOG(m_logger) << "### ChargeType changed - 1st: MunV, therefore, START = " << start;
|
||||
}
|
||||
}
|
||||
@@ -435,7 +435,7 @@ bool HandlerReportData::generateChargeResupplyResult(const CreateModifyReportReq
|
||||
{
|
||||
for (const ChargeResupplyResult &res : qAsConst(ctmap)) // Per ChargeType
|
||||
{
|
||||
if (request.participantIds().size() > 0 && !contains(request.participantIds(), res.participantId))
|
||||
if (request.participantIds.size() > 0 && !contains(request.participantIds, res.participantId))
|
||||
continue;
|
||||
|
||||
finalMap[res.participantTypeId][res.chargeTypeId].chargeTypeId = res.chargeTypeId;
|
||||
|
||||
+52
-52
@@ -102,21 +102,21 @@ void HandlerReportData::onCreateModifyReportRequest(const rti::core::SampleIdent
|
||||
|
||||
m_updateReportCookie = cookie;
|
||||
|
||||
m_reply.errorString(std::string());
|
||||
m_reply.replyState(Core::FtReplyState::InProgress);
|
||||
m_reply.currentTime(QDateTime::currentMSecsSinceEpoch());
|
||||
m_reply.errorString = std::string();
|
||||
m_reply.replyState = Core::FtReplyState::InProgress;
|
||||
m_reply.currentTime = QDateTime::currentMSecsSinceEpoch();
|
||||
|
||||
m_ddsHandler->fts()->createModifyReportReply(m_updateReportCookie, m_reply);
|
||||
|
||||
qint32 reportId;
|
||||
bool ok = true;
|
||||
|
||||
if (request.id() == 0) // add
|
||||
if (request.id == 0) // add
|
||||
reportId = 0;
|
||||
else // modify
|
||||
{
|
||||
reportId = request.id();
|
||||
ReportType repType = request.reportType(); // assuming this cannot be changed by this request
|
||||
reportId = request.id;
|
||||
ReportType repType = request.reportType; // assuming this cannot be changed by this request
|
||||
ok = removeReportData(reportId, repType); // remove old data
|
||||
if (!ok)
|
||||
WARNING_LOG(m_logger) << "Cannot remove old data for report id = " << reportId;
|
||||
@@ -125,17 +125,17 @@ void HandlerReportData::onCreateModifyReportRequest(const rti::core::SampleIdent
|
||||
if (!insertReportData(request, reportId))
|
||||
{
|
||||
ERROR_LOG(m_logger) << "Error while creating report!";
|
||||
m_reply.errorString(tr_lts("dds","Error while creating report"));
|
||||
m_reply.replyState(Core::FtReplyState::Error);
|
||||
m_reply.currentTime(QDateTime::currentMSecsSinceEpoch());
|
||||
m_reply.errorString = tr_lts("dds","Error while creating report");
|
||||
m_reply.replyState = Core::FtReplyState::Error;
|
||||
m_reply.currentTime = QDateTime::currentMSecsSinceEpoch();
|
||||
m_ddsHandler->fts()->createModifyReportReply(m_updateReportCookie, m_reply);
|
||||
return;
|
||||
}
|
||||
|
||||
m_reply.id(reportId);
|
||||
m_reply.id = reportId;
|
||||
|
||||
// Generate data per reportType
|
||||
switch (request.reportType().underlying())
|
||||
switch (request.reportType)
|
||||
{
|
||||
case ReportManagement::ReportType::UnitPower:
|
||||
{
|
||||
@@ -226,16 +226,16 @@ void HandlerReportData::onCreateModifyReportRequest(const rti::core::SampleIdent
|
||||
objRep->removeObject();
|
||||
m_objReportMap.remove(reportId);
|
||||
|
||||
ERROR_LOG(m_logger) << "Error generating report with type " << request.reportType();
|
||||
m_reply.errorString(tr_lts("dds", "Error generating report"));
|
||||
m_reply.replyState(Core::FtReplyState::Error);
|
||||
m_reply.currentTime(QDateTime::currentMSecsSinceEpoch());
|
||||
ERROR_LOG(m_logger) << "Error generating report with type " << request.reportType;
|
||||
m_reply.errorString = tr_lts("dds", "Error generating report");
|
||||
m_reply.replyState = Core::FtReplyState::Error;
|
||||
m_reply.currentTime = QDateTime::currentMSecsSinceEpoch();
|
||||
}
|
||||
else
|
||||
{
|
||||
m_reply.errorString(std::string());
|
||||
m_reply.replyState(Core::FtReplyState::Completed);
|
||||
m_reply.currentTime(QDateTime::currentMSecsSinceEpoch());
|
||||
m_reply.errorString = std::string();
|
||||
m_reply.replyState = Core::FtReplyState::Completed;
|
||||
m_reply.currentTime = QDateTime::currentMSecsSinceEpoch();
|
||||
}
|
||||
|
||||
m_ddsHandler->fts()->createModifyReportReply(m_updateReportCookie, m_reply);
|
||||
@@ -247,13 +247,13 @@ void HandlerReportData::onRemoveReportRequest(const rti::core::SampleIdentity &c
|
||||
{
|
||||
DEBUG_LOG(m_logger) << "onRemoveReportRequest " << request;
|
||||
|
||||
int reportId = request.id();
|
||||
int reportId = request.id;
|
||||
|
||||
Core::FunctionReplyObject ret;
|
||||
ObjectReportInfo *ifs = m_objReportMap.value(reportId);
|
||||
if (ifs == nullptr)
|
||||
{
|
||||
ret = Core::FunctionReplyObject(request.id(), tr_lts("dds", "Report with id %1 not found")).arg(reportId);
|
||||
ret = Core::FunctionReplyObject(request.id, tr_lts("dds", "Report with id %1 not found")).arg(reportId);
|
||||
m_ddsHandler->fts()->removeReportReply(cookie, ret);
|
||||
return;
|
||||
}
|
||||
@@ -286,7 +286,7 @@ bool HandlerReportData::removeReportData(int reportId, ReportType repType)
|
||||
|
||||
bool ok = true;
|
||||
|
||||
switch (repType.underlying())
|
||||
switch (repType)
|
||||
{
|
||||
case ReportManagement::ReportType::UnitPower:
|
||||
{
|
||||
@@ -380,10 +380,10 @@ void HandlerReportData::onReportChangeStatusRequest(const rti::core::SampleIdent
|
||||
const ReportChangeStatusRequest &request)
|
||||
{
|
||||
DEBUG_LOG(m_logger) << "onReportChangeStatusRequest " << request;
|
||||
ObjectReportInfo *ifs = m_objReportMap.value(request.id());
|
||||
ObjectReportInfo *ifs = m_objReportMap.value(request.id);
|
||||
if (ifs == nullptr)
|
||||
{
|
||||
Core::FunctionReplyObject ret = Core::FunctionReplyObject(request.id(), tr_lts("dds", "Report with id %1 not found")).arg(request.id());
|
||||
Core::FunctionReplyObject ret = Core::FunctionReplyObject(request.id, tr_lts("dds", "Report with id %1 not found")).arg(request.id);
|
||||
m_ddsHandler->fts()->reportChangeStatusReply(cookie, ret);
|
||||
return;
|
||||
}
|
||||
@@ -399,26 +399,26 @@ bool HandlerReportData::insertReportData(const CreateModifyReportRequest &reques
|
||||
{
|
||||
Database::RepReport data;
|
||||
|
||||
data.name = QString::fromStdString(request.name());
|
||||
data.description = QString::fromStdString(request.description());
|
||||
data.partyId = request.partyId();
|
||||
data.startTime = request.startTime();
|
||||
data.endTime = request.endTime();
|
||||
data.reportTypeId = request.reportType();
|
||||
data.visualisationType = request.visualisationType();
|
||||
data.intervalTime = request.intervalTime();
|
||||
data.lastModified = request.lastModified();
|
||||
data.operatorId = request.operatorId();
|
||||
data.fileStatusId = request.fileStatus();
|
||||
data.name = QString::fromStdString(request.name);
|
||||
data.description = QString::fromStdString(request.description);
|
||||
data.partyId = request.partyId;
|
||||
data.startTime = request.startTime;
|
||||
data.endTime = request.endTime;
|
||||
data.reportTypeId = request.reportType;
|
||||
data.visualisationType = request.visualisationType;
|
||||
data.intervalTime = request.intervalTime;
|
||||
data.lastModified = request.lastModified;
|
||||
data.operatorId = request.operatorId;
|
||||
data.fileStatusId = request.fileStatus;
|
||||
// area
|
||||
data.width = request.width();
|
||||
data.height = request.height();
|
||||
data.position = QPointF(request.cornerBottomLeft().lon(), request.cornerBottomLeft().lat());
|
||||
data.width = request.width;
|
||||
data.height = request.height;
|
||||
data.position = QPointF(request.cornerBottomLeft.lon, request.cornerBottomLeft.lat);
|
||||
|
||||
const auto participants = m_ppmDtc->participants();
|
||||
QJsonArray participantIdArray;
|
||||
QJsonArray participantNamesArray;
|
||||
for (int id : request.participantIds())
|
||||
for (int id : request.participantIds)
|
||||
{
|
||||
participantIdArray.append(QJsonValue(id));
|
||||
QJsonValue name = QJsonValue(m_ppmDtc->hierarchyFromParticipant(id, participants));
|
||||
@@ -426,17 +426,17 @@ bool HandlerReportData::insertReportData(const CreateModifyReportRequest &reques
|
||||
}
|
||||
|
||||
QJsonArray superiorIdsArray;
|
||||
for (Superior sup : request.superiorIds())
|
||||
for (Superior sup : request.superiorIds)
|
||||
{
|
||||
QJsonObject jsonData;
|
||||
jsonData[QStringLiteral("participantId")] = sup.participantId();
|
||||
jsonData[QStringLiteral("superiorId")] = sup.superiorId();
|
||||
jsonData[QStringLiteral("participantId")] = sup.participantId;
|
||||
jsonData[QStringLiteral("superiorId")] = sup.superiorId;
|
||||
superiorIdsArray.append(jsonData);
|
||||
}
|
||||
|
||||
QJsonArray unitIdArray;
|
||||
QJsonArray unitNamesArray;
|
||||
for (int id : request.unitIds())
|
||||
for (int id : request.unitIds)
|
||||
{
|
||||
unitIdArray.append(QJsonValue(id));
|
||||
QJsonValue name = QJsonValue(m_ppmDtc->hierarchyFromParticipant(id, participants));
|
||||
@@ -444,34 +444,34 @@ bool HandlerReportData::insertReportData(const CreateModifyReportRequest &reques
|
||||
}
|
||||
|
||||
QJsonArray partTypeArray;
|
||||
for (int id : request.participantTypes())
|
||||
for (int id : request.participantTypes)
|
||||
partTypeArray.append(QJsonValue(id));
|
||||
|
||||
QJsonArray chargeTypeIdsArray;
|
||||
for (int id : request.chargeTypeIds())
|
||||
for (int id : request.chargeTypeIds)
|
||||
chargeTypeIdsArray.append(QJsonValue(id));
|
||||
|
||||
QJsonArray mineAreaIdsArray;
|
||||
QJsonArray mineAreaNamesArray;
|
||||
for (int id : request.mineAreaIds())
|
||||
for (int id : request.mineAreaIds)
|
||||
{
|
||||
mineAreaIdsArray.append(QJsonValue(id));
|
||||
QJsonValue name = QJsonValue(QString::fromStdString(m_aesDtc->mineArea(id).name()));
|
||||
QJsonValue name = QJsonValue(QString::fromStdString(m_aesDtc->mineArea(id).name));
|
||||
mineAreaNamesArray.append(name);
|
||||
}
|
||||
|
||||
QJsonArray nbcIdsArray;
|
||||
QJsonArray nbcNamesArray;
|
||||
for (int id : request.nbcIds())
|
||||
for (int id : request.nbcIds)
|
||||
{
|
||||
nbcIdsArray.append(QJsonValue(id));
|
||||
QJsonValue name = QJsonValue(QString::fromStdString(m_aesDtc->bCContamination(id).name()));
|
||||
QJsonValue name = QJsonValue(QString::fromStdString(m_aesDtc->bCContamination(id).name));
|
||||
nbcNamesArray.append(name);
|
||||
}
|
||||
|
||||
QJsonArray effectSourceArray;
|
||||
for (const ProjectDataManagement::EffectSource &es : request.effectSources())
|
||||
effectSourceArray.append(QJsonValue(es.underlying()));
|
||||
for (const ProjectDataManagement::EffectSource &es : request.effectSources)
|
||||
effectSourceArray.append(QJsonValue(static_cast<int>(es)));
|
||||
|
||||
QJsonObject obj;
|
||||
obj[QStringLiteral("participantIds")] = participantIdArray;
|
||||
@@ -480,7 +480,7 @@ bool HandlerReportData::insertReportData(const CreateModifyReportRequest &reques
|
||||
obj[QStringLiteral("superiorIds")] = superiorIdsArray;
|
||||
obj[QStringLiteral("unitNames")] = unitNamesArray;
|
||||
obj[QStringLiteral("participantTypes")] = partTypeArray;
|
||||
obj[QStringLiteral("groupByParty")] = request.groupByParty();
|
||||
obj[QStringLiteral("groupByParty")] = request.groupByParty;
|
||||
obj[QStringLiteral("chargeTypeIds")] = chargeTypeIdsArray;
|
||||
obj[QStringLiteral("mineAreaIds")] = mineAreaIdsArray;
|
||||
obj[QStringLiteral("mineAreaNames")] = mineAreaNamesArray;
|
||||
@@ -567,7 +567,7 @@ void HandlerReportData::checkElapsedTimer(QElapsedTimer &t)
|
||||
void HandlerReportData::updateReportReply()
|
||||
{
|
||||
DEBUG_LOG(m_logger) << "updateReportReply: " << m_reply;
|
||||
m_reply.currentTime(QDateTime::currentMSecsSinceEpoch());
|
||||
m_reply.currentTime = QDateTime::currentMSecsSinceEpoch();
|
||||
m_ddsHandler->fts()->createModifyReportReply(m_updateReportCookie, m_reply);
|
||||
m_ddsHandler->pacemaker()->publishState();
|
||||
}
|
||||
|
||||
+1
-1
@@ -88,7 +88,7 @@ struct AirSupportImpactData
|
||||
struct ChargeTypeData
|
||||
{
|
||||
int chargeTypeId = 0;
|
||||
ProjectDataManagement::EffectSource effectSourceId = ProjectDataManagement::EffectSource::get_default();
|
||||
ProjectDataManagement::EffectSource effectSourceId = ProjectDataManagement::EffectSource::ES_Unknown;
|
||||
int chargeQuantity = 0;
|
||||
int usedCharge = 0;
|
||||
int chargeAddition = 0;
|
||||
|
||||
+19
-19
@@ -17,12 +17,12 @@ bool HandlerReportData::generateFiringsResult(const CreateModifyReportRequest &r
|
||||
{
|
||||
INFO_LOG(m_logger) << "Start generateFiringsResult - reportId: " << reportId;
|
||||
|
||||
if (request.chargeTypeIds().size() <= 0 || request.participantIds().size() <= 0 || request.participantTypes().size() <= 0)
|
||||
if (request.chargeTypeIds.size() <= 0 || request.participantIds.size() <= 0 || request.participantTypes.size() <= 0)
|
||||
{
|
||||
ERROR_LOG(m_logger) << "No elements selected to generate the report";
|
||||
DEBUG_LOG(m_logger) << "request.chargeTypeIds().size()" << request.chargeTypeIds().size();
|
||||
DEBUG_LOG(m_logger) << "request.participantIds().size()" << request.participantIds().size();
|
||||
DEBUG_LOG(m_logger) << "request.participantTypes().size()" << request.participantTypes().size();
|
||||
DEBUG_LOG(m_logger) << "request.chargeTypeIds().size()" << request.chargeTypeIds.size();
|
||||
DEBUG_LOG(m_logger) << "request.participantIds().size()" << request.participantIds.size();
|
||||
DEBUG_LOG(m_logger) << "request.participantTypes().size()" << request.participantTypes.size();
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -37,9 +37,9 @@ bool HandlerReportData::generateFiringsResult(const CreateModifyReportRequest &r
|
||||
"(event_time BETWEEN :startTime AND :endTime) AND "
|
||||
" charge_type_id = :chargeId AND ");
|
||||
|
||||
if (request.participantTypes().size() > 0)
|
||||
if (request.participantTypes.size() > 0)
|
||||
{
|
||||
const QString pTypeIdsStr = intVecToString(request.participantTypes());
|
||||
const QString pTypeIdsStr = intVecToString(request.participantTypes);
|
||||
stmtSelect += QStringLiteral(" participant_type_id IN (%1) ").arg(pTypeIdsStr);
|
||||
}
|
||||
|
||||
@@ -64,7 +64,7 @@ bool HandlerReportData::generateFiringsResult(const CreateModifyReportRequest &r
|
||||
|
||||
QElapsedTimer timeoutTimer;
|
||||
timeoutTimer.start();
|
||||
for (const int &chargeId : qAsConst(request.chargeTypeIds()))
|
||||
for (const int &chargeId : qAsConst(request.chargeTypeIds))
|
||||
{
|
||||
if (chargeId == 0) continue; // skip 0
|
||||
|
||||
@@ -73,21 +73,21 @@ bool HandlerReportData::generateFiringsResult(const CreateModifyReportRequest &r
|
||||
DEBUG_LOG(m_logger) << "Charge id = " << chargeId;
|
||||
|
||||
qint64 t1;
|
||||
t1 = request.startTime();
|
||||
while (t1 <= request.endTime())
|
||||
t1 = request.startTime;
|
||||
while (t1 <= request.endTime)
|
||||
{
|
||||
checkElapsedTimer(timeoutTimer);
|
||||
qint64 t2 = qMin(qMax(t1, t1 + request.intervalTime() - 1), request.endTime());
|
||||
if (request.intervalTime() == 0) // || request.visualisationType() == VisualisationType::Table)
|
||||
t2 = request.endTime();
|
||||
qint64 t2 = qMin(qMax(t1, t1 + request.intervalTime - 1), request.endTime);
|
||||
if (request.intervalTime == 0) // || request.visualisationType == VisualisationType::Table)
|
||||
t2 = request.endTime;
|
||||
|
||||
qInsert.bindValue(QStringLiteral(":start"), t1);
|
||||
qInsert.bindValue(QStringLiteral(":end"), t2);
|
||||
|
||||
DEBUG_LOG(m_logger) << " Inserting: reportId, start, end, interval = " << reportId << " , " << t1 << " , " << t2 << " , "
|
||||
<< request.intervalTime();
|
||||
<< request.intervalTime;
|
||||
|
||||
qSelect.bindValue(QStringLiteral(":partyId"), request.partyId());
|
||||
qSelect.bindValue(QStringLiteral(":partyId"), request.partyId);
|
||||
qSelect.bindValue(QStringLiteral(":chargeId"), chargeId);
|
||||
qSelect.bindValue(QStringLiteral(":startTime"), t1);
|
||||
qSelect.bindValue(QStringLiteral(":endTime"), t2);
|
||||
@@ -105,9 +105,9 @@ bool HandlerReportData::generateFiringsResult(const CreateModifyReportRequest &r
|
||||
int vbg = qSelect.value(0).toInt();
|
||||
if (!vbgMap.contains(vbg))
|
||||
vbgMap.insert(vbg, {0, 0, 0});
|
||||
if (vbg == ProjectDataManagement::VulnerabilityState::CombatReady ||
|
||||
vbg == ProjectDataManagement::VulnerabilityState::NearMiss ||
|
||||
vbg == ProjectDataManagement::VulnerabilityState::HitWithNoEffect)
|
||||
if (vbg == static_cast<int>(ProjectDataManagement::VulnerabilityState::VulnerabilityState_CombatReady) ||
|
||||
vbg == static_cast<int>(ProjectDataManagement::VulnerabilityState::VulnerabilityState_NearMiss) ||
|
||||
vbg == static_cast<int>(ProjectDataManagement::VulnerabilityState::VulnerabilityState_HitWithNoEffect))
|
||||
vbgMap[vbg][0] ++; // firings
|
||||
|
||||
vbgMap[vbg][1] += qSelect.value(1).toInt(); // hits
|
||||
@@ -131,8 +131,8 @@ bool HandlerReportData::generateFiringsResult(const CreateModifyReportRequest &r
|
||||
}
|
||||
}
|
||||
|
||||
t1 += request.intervalTime();
|
||||
if (request.intervalTime() == 0) // || request.visualisationType() == VisualisationType::Table)
|
||||
t1 += request.intervalTime;
|
||||
if (request.intervalTime == 0) // || request.visualisationType == VisualisationType::Table)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
+24
-24
@@ -40,9 +40,9 @@ bool HandlerReportGetData::init() { return true; }
|
||||
void HandlerReportGetData::onGetReportDataRequest(const rti::core::SampleIdentity &cookie, const GetReportDataRequest &request)
|
||||
{
|
||||
GetReportDataReply ret = getReportDataRequest(request);
|
||||
if (ret.errorString().size() != 0)
|
||||
if (ret.errorString.size() != 0)
|
||||
{
|
||||
Core::FunctionReplyObject fro(ret.id(), ret.errorString(), ret.errorParams());
|
||||
Core::FunctionReplyObject fro(ret.id, ret.errorString, ret.errorParams);
|
||||
WARNING_LOG(m_logger) << "error: " << fro();
|
||||
}
|
||||
m_ddsHandler->fts()->getReportDataReply(cookie, ret);
|
||||
@@ -55,54 +55,54 @@ GetReportDataReply HandlerReportGetData::getReportDataRequest(const GetReportDat
|
||||
|
||||
// Get data per reportType
|
||||
QByteArray reportData;
|
||||
switch (request.reportType().underlying())
|
||||
switch (request.reportType)
|
||||
{
|
||||
case ReportManagement::ReportType::UnitPower:
|
||||
reportData = getUnitPowerResult(request.reportId());
|
||||
reportData = getUnitPowerResult(request.reportId);
|
||||
break;
|
||||
case ReportManagement::ReportType::ParticipantDistance:
|
||||
reportData = getParticipantDistanceResult(request.reportId());
|
||||
reportData = getParticipantDistanceResult(request.reportId);
|
||||
break;
|
||||
case ReportManagement::ReportType::MineArea:
|
||||
reportData = getMineAreaResult(request.reportId());
|
||||
reportData = getMineAreaResult(request.reportId);
|
||||
break;
|
||||
case ReportManagement::ReportType::Nbc:
|
||||
reportData = getNbcResult(request.reportId());
|
||||
reportData = getNbcResult(request.reportId);
|
||||
break;
|
||||
case ReportManagement::ReportType::Firings:
|
||||
case ReportManagement::ReportType::ExplosiveDevice:
|
||||
reportData = getFiringsResult(request.reportId());
|
||||
reportData = getFiringsResult(request.reportId);
|
||||
break;
|
||||
case ReportManagement::ReportType::AirSupport:
|
||||
reportData = getAirSupportResult(request.reportId());
|
||||
reportData = getAirSupportResult(request.reportId);
|
||||
break;
|
||||
|
||||
case ReportManagement::ReportType::ChargeResupply:
|
||||
reportData = getChargeResupplyResult(request.reportId());
|
||||
reportData = getChargeResupplyResult(request.reportId);
|
||||
break;
|
||||
case ReportManagement::ReportType::ChargeAdministration:
|
||||
reportData = getChargeAdminResult(request.reportId());
|
||||
reportData = getChargeAdminResult(request.reportId);
|
||||
break;
|
||||
case ReportManagement::ReportType::VehicleRepair:
|
||||
case ReportManagement::ReportType::Decontamination:
|
||||
reportData = getMaintenanceResult(request.reportId());
|
||||
reportData = getMaintenanceResult(request.reportId);
|
||||
break;
|
||||
case ReportManagement::ReportType::BuildingDamage:
|
||||
reportData = getBuildingDamageResult(request.reportId());
|
||||
reportData = getBuildingDamageResult(request.reportId);
|
||||
break;
|
||||
case ReportManagement::ReportType::SanitationMaterial:
|
||||
reportData = getSanitationMaterialResult(request.reportId());
|
||||
reportData = getSanitationMaterialResult(request.reportId);
|
||||
break;
|
||||
case ReportManagement::ReportType::MedevacNineLiner:
|
||||
reportData = getSanNineLinerResult(request.reportId());
|
||||
reportData = getSanNineLinerResult(request.reportId);
|
||||
break;
|
||||
case ReportManagement::ReportType::Treatment:
|
||||
case ReportManagement::ReportType::TreatmentPriority:
|
||||
case ReportManagement::ReportType::TreatmentChain:
|
||||
reportData = getTreatmentResult(request.reportId());
|
||||
reportData = getTreatmentResult(request.reportId);
|
||||
break;
|
||||
case ReportManagement::ReportType::TreatmentTimeline:
|
||||
reportData = getTreatmentTimelineResult(request.reportId());
|
||||
reportData = getTreatmentTimelineResult(request.reportId);
|
||||
break;
|
||||
default:
|
||||
WARNING_LOG(m_logger) << "Report Type unknown, no generating.";
|
||||
@@ -110,16 +110,16 @@ GetReportDataReply HandlerReportGetData::getReportDataRequest(const GetReportDat
|
||||
}
|
||||
|
||||
GetReportDataReply ret;
|
||||
ret.id(request.reportId());
|
||||
ret.id = request.reportId;
|
||||
|
||||
if (reportData.isEmpty())
|
||||
{
|
||||
Core::FunctionReplyObject fro = Core::FunctionReplyObject(tr_lts("dds", "No data for this report (report type: %1)")).arg(request.reportType().underlying());
|
||||
ret.errorString(fro.str());
|
||||
ret.errorParams(fro.args());
|
||||
Core::FunctionReplyObject fro = Core::FunctionReplyObject(tr_lts("dds", "No data for this report (report type: %1)")).arg(static_cast<int>(request.reportType));
|
||||
ret.errorString = fro.str();
|
||||
ret.errorParams = fro.args();
|
||||
}
|
||||
else
|
||||
ret.reportData(LtsUtils::convert<std::vector<uint8_t>>(reportData));
|
||||
ret.reportData = LtsUtils::convert<std::vector<uint8_t>>(reportData);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -326,7 +326,7 @@ QByteArray HandlerReportGetData::getChargeAdminResult(int reportId) const
|
||||
|
||||
object.insert(QLatin1String("id"), data.id);
|
||||
object.insert(QLatin1String("charge_type_id"), data.chargeTypeId);
|
||||
object.insert(QLatin1String("effect_source_id"), data.effectSourceId.underlying());
|
||||
object.insert(QLatin1String("effect_source_id"), static_cast<int>(data.effectSourceId));
|
||||
object.insert(QLatin1String("charge_start"), data.chargeStart);
|
||||
object.insert(QLatin1String("charge_resupplied"), data.chargeResupplied);
|
||||
object.insert(QLatin1String("charge_end"), data.chargeEnd);
|
||||
@@ -536,7 +536,7 @@ QByteArray HandlerReportGetData::getTreatmentTimelineResult(int reportId) const
|
||||
object.insert(QLatin1String("vulnerability"), data.vulnerability);
|
||||
object.insert(QLatin1String("vulnerability_state"), data.vulnerabilityState);
|
||||
object.insert(QLatin1String("vitality"), data.vitality);
|
||||
object.insert(QLatin1String("event_type_id"), data.eventTypeId.underlying());
|
||||
object.insert(QLatin1String("event_type_id"), static_cast<int>(data.eventTypeId));
|
||||
object.insert(QLatin1String("event_time"), data.eventTime);
|
||||
object.insert(QLatin1String("properties"), data.properties);
|
||||
|
||||
|
||||
+10
-10
@@ -28,27 +28,27 @@ bool HandlerReportData::generateMaintenanceResult(const CreateModifyReportReques
|
||||
QString stmtSelect = QStringLiteral("SELECT participant_type_id, participant_id, time_event, time_position_changed, time_vulnerability "
|
||||
"FROM rep_maintenance_data "
|
||||
"WHERE party_id = :partyId AND (time_event between :startTime and :endTime) ");
|
||||
if (request.participantTypes().size() > 0)
|
||||
if (request.participantTypes.size() > 0)
|
||||
{
|
||||
const QString pTypeIdsStr = intVecToString(request.participantTypes());
|
||||
const QString pTypeIdsStr = intVecToString(request.participantTypes);
|
||||
stmtSelect += QStringLiteral(" AND participant_type_id IN (%1) ").arg(pTypeIdsStr);
|
||||
}
|
||||
if (request.participantIds().size() > 0)
|
||||
if (request.participantIds.size() > 0)
|
||||
{
|
||||
const QString pIdsStr = intVecToString(request.participantIds());
|
||||
const QString pIdsStr = intVecToString(request.participantIds);
|
||||
stmtSelect += QStringLiteral(" AND participant_id IN (%1) ").arg(pIdsStr);
|
||||
}
|
||||
stmtSelect += QStringLiteral(" ORDER by participant_type_id, participant_id, time_event");
|
||||
|
||||
DEBUG_LOG(m_logger) << "Statement: " << stmtSelect;
|
||||
DEBUG_LOG(m_logger) << "Party Id = " << request.partyId();
|
||||
DEBUG_LOG(m_logger) << "Start Time = " << request.startTime();
|
||||
DEBUG_LOG(m_logger) << "End Time = " << request.endTime();
|
||||
DEBUG_LOG(m_logger) << "Party Id = " << request.partyId;
|
||||
DEBUG_LOG(m_logger) << "Start Time = " << request.startTime;
|
||||
DEBUG_LOG(m_logger) << "End Time = " << request.endTime;
|
||||
|
||||
qSelect.prepare(stmtSelect);
|
||||
qSelect.bindValue(QStringLiteral(":startTime"), request.startTime());
|
||||
qSelect.bindValue(QStringLiteral(":endTime"), request.endTime());
|
||||
qSelect.bindValue(QStringLiteral(":partyId"), request.partyId());
|
||||
qSelect.bindValue(QStringLiteral(":startTime"), static_cast<qint64>(request.startTime));
|
||||
qSelect.bindValue(QStringLiteral(":endTime"), static_cast<qint64>(request.endTime));
|
||||
qSelect.bindValue(QStringLiteral(":partyId"), request.partyId);
|
||||
|
||||
if (!qSelect.exec())
|
||||
{
|
||||
|
||||
+6
-6
@@ -27,12 +27,12 @@ bool HandlerReportData::generateMineAreaResult(const CreateModifyReportRequest &
|
||||
NSqlQuery qSelect(m_db->database());
|
||||
NSqlQuery qInsert(m_db->database());
|
||||
|
||||
const QString mineAreaIdsStr = intVecToString(request.mineAreaIds());
|
||||
const QString mineAreaIdsStr = intVecToString(request.mineAreaIds);
|
||||
|
||||
QString stmtSelect = QStringLiteral("SELECT mine_area_id, participant_type_id, SUM(hit) as hit, SUM(hit_friendly_fire) as hit_friendly_fire "
|
||||
" FROM rep_mine_area_data "
|
||||
" WHERE party_id = :partyId AND (event_time between :startTime and :endTime ) ");
|
||||
if (request.mineAreaIds().size() > 0)
|
||||
if (request.mineAreaIds.size() > 0)
|
||||
stmtSelect += QStringLiteral(" AND mine_area_id IN (%1)").arg(mineAreaIdsStr);
|
||||
stmtSelect += QStringLiteral(" GROUP BY mine_area_id, participant_type_id ");
|
||||
stmtSelect += QStringLiteral(" ORDER by mine_area_id, participant_type_id ");
|
||||
@@ -45,9 +45,9 @@ bool HandlerReportData::generateMineAreaResult(const CreateModifyReportRequest &
|
||||
return false;
|
||||
}
|
||||
|
||||
qSelect.bindValue(QStringLiteral(":startTime"), request.startTime());
|
||||
qSelect.bindValue(QStringLiteral(":endTime"), request.endTime());
|
||||
qSelect.bindValue(QStringLiteral(":partyId"), request.partyId());
|
||||
qSelect.bindValue(QStringLiteral(":startTime"), static_cast<qint64>(request.startTime));
|
||||
qSelect.bindValue(QStringLiteral(":endTime"), static_cast<qint64>(request.endTime));
|
||||
qSelect.bindValue(QStringLiteral(":partyId"), request.partyId);
|
||||
|
||||
if (!qSelect.exec())
|
||||
{
|
||||
@@ -79,7 +79,7 @@ bool HandlerReportData::generateMineAreaResult(const CreateModifyReportRequest &
|
||||
INFO_LOG(m_logger) << "hit_ff: " << hitFriendlyFire;
|
||||
|
||||
qInsert.bindValue(QStringLiteral(":mineAreaId") , mineAreaId);
|
||||
QString mineAreaName = QString::fromStdString(aesDtc->mineArea(mineAreaId).name());
|
||||
QString mineAreaName = QString::fromStdString(aesDtc->mineArea(mineAreaId).name);
|
||||
qInsert.bindValue(QStringLiteral(":mineAreaName") , mineAreaName);
|
||||
qInsert.bindValue(QStringLiteral(":pTypeId") , participantTypeId);
|
||||
qInsert.bindValue(QStringLiteral(":hit") , hit);
|
||||
|
||||
+6
-6
@@ -21,14 +21,14 @@ bool HandlerReportData::generateNbcResult(const CreateModifyReportRequest &reque
|
||||
{
|
||||
INFO_LOG(m_logger) << "Start generateNbcResult - reportId: " << reportId;
|
||||
|
||||
if (request.nbcIds().size() <= 0)
|
||||
if (request.nbcIds.size() <= 0)
|
||||
{
|
||||
ERROR_LOG(m_logger) << "No elements selected to generate the report";
|
||||
DEBUG_LOG(m_logger) << "request.nbcIds().size()" << request.nbcIds().size();
|
||||
DEBUG_LOG(m_logger) << "request.nbcIds().size()" << request.nbcIds.size();
|
||||
return false;
|
||||
}
|
||||
|
||||
const QString nbcIdsStr = intVecToString(request.nbcIds());
|
||||
const QString nbcIdsStr = intVecToString(request.nbcIds);
|
||||
|
||||
DBTransaction trans(m_db->database());
|
||||
NSqlQuery qSelect(m_db->database());
|
||||
@@ -48,8 +48,8 @@ bool HandlerReportData::generateNbcResult(const CreateModifyReportRequest &reque
|
||||
ERROR_LOG(m_logger) << "Error preparing select statement: " << stmtSelect;
|
||||
return false;
|
||||
}
|
||||
qSelect.bindValue(QStringLiteral(":startTime"), request.startTime());
|
||||
qSelect.bindValue(QStringLiteral(":endTime"), request.endTime());
|
||||
qSelect.bindValue(QStringLiteral(":startTime"), static_cast<qint64>(request.startTime));
|
||||
qSelect.bindValue(QStringLiteral(":endTime"), static_cast<qint64>(request.endTime));
|
||||
|
||||
if (!qSelect.exec())
|
||||
{
|
||||
@@ -86,7 +86,7 @@ bool HandlerReportData::generateNbcResult(const CreateModifyReportRequest &reque
|
||||
|
||||
qInsert.bindValue(QStringLiteral(":reportId"), reportId);
|
||||
qInsert.bindValue(QStringLiteral(":nbcId"), nbcId);
|
||||
QString nbcName = QString::fromStdString(aesDtc->bCContamination(nbcId).name());
|
||||
QString nbcName = QString::fromStdString(aesDtc->bCContamination(nbcId).name);
|
||||
qInsert.bindValue(QStringLiteral(":nbcName"), nbcName);
|
||||
qInsert.bindValue(QStringLiteral(":aesType"), aesType);
|
||||
qInsert.bindValue(QStringLiteral(":chargeId"), chargeTypeId);
|
||||
|
||||
+11
-11
@@ -32,15 +32,15 @@ bool HandlerReportData::generateParticipantDistanceResult(const CreateModifyRepo
|
||||
"WHERE party_id = :partyId AND (sample_time between :startTime and :endTime) "
|
||||
"AND (pos_lon > 0 OR pos_lat > 0)"); // ignore (0,0)
|
||||
|
||||
if (request.participantTypes().size() > 0)
|
||||
if (request.participantTypes.size() > 0)
|
||||
{
|
||||
const QString pTypeIdsStr = intVecToString(request.participantTypes());
|
||||
const QString pTypeIdsStr = intVecToString(request.participantTypes);
|
||||
stmtSelect += QStringLiteral(" AND participant_type_id IN (%1) ").arg(pTypeIdsStr);
|
||||
}
|
||||
|
||||
if (request.participantIds().size() > 0)
|
||||
if (request.participantIds.size() > 0)
|
||||
{
|
||||
const QString participants = intVecToString(request.participantIds());
|
||||
const QString participants = intVecToString(request.participantIds);
|
||||
stmtSelect += QStringLiteral(" AND participant_id IN (%1)").arg(participants);
|
||||
}
|
||||
|
||||
@@ -48,14 +48,14 @@ bool HandlerReportData::generateParticipantDistanceResult(const CreateModifyRepo
|
||||
|
||||
qSelect.prepare(stmtSelect);
|
||||
|
||||
qSelect.bindValue(QStringLiteral(":startTime"), request.startTime());
|
||||
qSelect.bindValue(QStringLiteral(":endTime"), request.endTime());
|
||||
qSelect.bindValue(QStringLiteral(":partyId"), request.partyId());
|
||||
qSelect.bindValue(QStringLiteral(":startTime"), static_cast<qint64>(request.startTime));
|
||||
qSelect.bindValue(QStringLiteral(":endTime"), static_cast<qint64>(request.endTime));
|
||||
qSelect.bindValue(QStringLiteral(":partyId"), request.partyId);
|
||||
|
||||
DEBUG_LOG(m_logger) << "Select statement: " << stmtSelect;
|
||||
DEBUG_LOG(m_logger) << "Party id = " << request.partyId();
|
||||
DEBUG_LOG(m_logger) << "StartTime = " << request.startTime();
|
||||
DEBUG_LOG(m_logger) << "EndTime = " << request.endTime();
|
||||
DEBUG_LOG(m_logger) << "Party id = " << request.partyId;
|
||||
DEBUG_LOG(m_logger) << "StartTime = " << request.startTime;
|
||||
DEBUG_LOG(m_logger) << "EndTime = " << request.endTime;
|
||||
|
||||
if (!qSelect.exec())
|
||||
{
|
||||
@@ -137,7 +137,7 @@ bool HandlerReportData::generateParticipantDistanceResult(const CreateModifyRepo
|
||||
}
|
||||
|
||||
qInsert.bindValue(QStringLiteral(":reportId"), reportId);
|
||||
qInsert.bindValue(QStringLiteral(":partyId"), request.partyId());
|
||||
qInsert.bindValue(QStringLiteral(":partyId"), request.partyId);
|
||||
|
||||
for (auto it = m_distanceMapType.cbegin(); it != m_distanceMapType.cend(); ++it)
|
||||
{
|
||||
|
||||
+21
-21
@@ -32,25 +32,25 @@ bool HandlerReportData::generateTreatmentResult(const CreateModifyReportRequest
|
||||
"FROM rep_treatment_data "
|
||||
// "WHERE party_id = :partyId AND (time_treatment between :startTime and :endTime) ");
|
||||
"WHERE party_id = :partyId AND (time_vulnerability between :startTime and :endTime) ");
|
||||
if (request.participantTypes().size() > 0)
|
||||
if (request.participantTypes.size() > 0)
|
||||
{
|
||||
const QString pTypeIdsStr = intVecToString(request.participantTypes());
|
||||
const QString pTypeIdsStr = intVecToString(request.participantTypes);
|
||||
stmtSelect += QStringLiteral(" AND participant_type_id IN (%1) ").arg(pTypeIdsStr);
|
||||
}
|
||||
if (request.participantIds().size() > 0)
|
||||
if (request.participantIds.size() > 0)
|
||||
{
|
||||
const QString pIdsStr = intVecToString(request.participantIds());
|
||||
const QString pIdsStr = intVecToString(request.participantIds);
|
||||
stmtSelect += QStringLiteral(" AND participant_id IN (%1) ").arg(pIdsStr);
|
||||
}
|
||||
|
||||
if (request.width() > 0 && request.height() > 0)
|
||||
if (request.width > 0 && request.height > 0)
|
||||
{
|
||||
DEBUG_LOG(m_logger) << "#### Filtering data on geographic position";
|
||||
LtsCoordTrans::UtmCoordinate coord(LtsCoordTrans::UtmCoordinate::fromGeographic(request.cornerBottomLeft().lon(),
|
||||
request.cornerBottomLeft().lat()));
|
||||
LtsCoordTrans::UtmCoordinate coord(LtsCoordTrans::UtmCoordinate::fromGeographic(request.cornerBottomLeft.lon,
|
||||
request.cornerBottomLeft.lat));
|
||||
|
||||
double x1 = coord.x + request.height();
|
||||
double y1 = coord.y + request.width();
|
||||
double x1 = coord.x + request.height;
|
||||
double y1 = coord.y + request.width;
|
||||
DEBUG_LOG(m_logger) << "#### (x,x1,y,y1) = (" << coord.x << "," << x1 << "," << coord.y << "," << y1 << ")";
|
||||
|
||||
stmtSelect += QLatin1String(" AND position_x_m >= ") + QString::number(coord.x);
|
||||
@@ -63,14 +63,14 @@ bool HandlerReportData::generateTreatmentResult(const CreateModifyReportRequest
|
||||
stmtSelect += QStringLiteral(" ORDER by time_vulnerability");
|
||||
|
||||
DEBUG_LOG(m_logger) << "Statement: " << stmtSelect;
|
||||
DEBUG_LOG(m_logger) << "Party Id = " << request.partyId();
|
||||
DEBUG_LOG(m_logger) << "Start Time = " << request.startTime();
|
||||
DEBUG_LOG(m_logger) << "End Time = " << request.endTime();
|
||||
DEBUG_LOG(m_logger) << "Party Id = " << request.partyId;
|
||||
DEBUG_LOG(m_logger) << "Start Time = " << request.startTime;
|
||||
DEBUG_LOG(m_logger) << "End Time = " << request.endTime;
|
||||
|
||||
qSelect.prepare(stmtSelect);
|
||||
qSelect.bindValue(QStringLiteral(":startTime"), request.startTime());
|
||||
qSelect.bindValue(QStringLiteral(":endTime"), request.endTime());
|
||||
qSelect.bindValue(QStringLiteral(":partyId"), request.partyId());
|
||||
qSelect.bindValue(QStringLiteral(":startTime"), static_cast<qint64>(request.startTime));
|
||||
qSelect.bindValue(QStringLiteral(":endTime"), static_cast<qint64>(request.endTime));
|
||||
qSelect.bindValue(QStringLiteral(":partyId"), request.partyId);
|
||||
|
||||
if (!qSelect.exec())
|
||||
{
|
||||
@@ -105,7 +105,7 @@ bool HandlerReportData::generateTreatmentResult(const CreateModifyReportRequest
|
||||
tData.pos_y_m = qSelect.value(19).toDouble();
|
||||
|
||||
tData.area_id = qSelect.value(20).toInt();
|
||||
tData.area_name = qSelect.value(21).toInt();
|
||||
tData.area_name = qSelect.value(21).toString();
|
||||
|
||||
m_treatmentData.append(tData);
|
||||
}
|
||||
@@ -147,7 +147,7 @@ bool HandlerReportData::generateTreatmentResult(const CreateModifyReportRequest
|
||||
|
||||
bool kiaAfterWia = false;
|
||||
// Check if KIA is also KIA after WIA
|
||||
if (tData.vulnerabilityState == ProjectDataManagement::VulnerabilityState::CatastrophicKill)
|
||||
if (tData.vulnerabilityState == static_cast<int>(ProjectDataManagement::VulnerabilityState::VulnerabilityState_CatastrophicKill))
|
||||
kiaAfterWia = checkVulnerabilityStateWIA(tData.participantId, tData.time_vulnerability);
|
||||
|
||||
qInsert.bindValue(QStringLiteral(":kia_after_wia"), kiaAfterWia);
|
||||
@@ -197,7 +197,7 @@ bool HandlerReportData::generateTreatmentResult(const CreateModifyReportRequest
|
||||
QString area_name;
|
||||
if (area_id > 0)
|
||||
{
|
||||
area_name = QString::fromStdString(m_aesDtc->functionalArea(area_id).name());
|
||||
area_name = QString::fromStdString(m_aesDtc->functionalArea(area_id).name);
|
||||
qInsert.bindValue(QStringLiteral(":area_id"), area_id);
|
||||
qInsert.bindValue(QStringLiteral(":area_name"), area_name);
|
||||
}
|
||||
@@ -231,7 +231,7 @@ bool HandlerReportData::generateTreatmentResult(const CreateModifyReportRequest
|
||||
if (tData.time_treatment > 0)
|
||||
{
|
||||
bool pCorrect = false;
|
||||
pCorrect = getPriorityCorrect(participant.id(), tData.time_treatment, tData.priority);
|
||||
pCorrect = getPriorityCorrect(participant.id, tData.time_treatment, tData.priority);
|
||||
qInsert.bindValue(QStringLiteral(":pCorrect"), pCorrect);
|
||||
}
|
||||
|
||||
@@ -549,8 +549,8 @@ bool HandlerReportData::checkVulnerabilityStateWIA(int participantId, qint64 cur
|
||||
|
||||
qSelect.prepare(stmtSelect);
|
||||
qSelect.bindValue(QStringLiteral(":currTime"), currTime);
|
||||
qSelect.bindValue(QStringLiteral(":eventTypeId"), ReportManagement::EventType::VBGSet);
|
||||
qSelect.bindValue(QStringLiteral(":vulnerabilityState"), ProjectDataManagement::VulnerabilityState::CatastrophicKill);
|
||||
qSelect.bindValue(QStringLiteral(":eventTypeId"), static_cast<int>(ReportManagement::EventType::VBGSet));
|
||||
qSelect.bindValue(QStringLiteral(":vulnerabilityState"), static_cast<int>(ProjectDataManagement::VulnerabilityState::VulnerabilityState_CatastrophicKill));
|
||||
qSelect.bindValue(QStringLiteral(":participantId"), participantId);
|
||||
|
||||
if (!qSelect.exec())
|
||||
|
||||
+12
-12
@@ -30,28 +30,28 @@ bool HandlerReportData::generateTreatmentTimelineResult(const CreateModifyReport
|
||||
QString stmtSelect = QStringLiteral("SELECT participant_type_id, participant_id, vitality, vulnerability, vulnerability_state, event_time, event_type_id, properties "
|
||||
"FROM rep_treatment_timeline_data "
|
||||
"WHERE party_id = :partyId AND (event_time between :startTime and :endTime) ");
|
||||
if (request.participantTypes().size() > 0)
|
||||
if (request.participantTypes.size() > 0)
|
||||
{
|
||||
const QString pTypeIdsStr = intVecToString(request.participantTypes());
|
||||
const QString pTypeIdsStr = intVecToString(request.participantTypes);
|
||||
stmtSelect += QStringLiteral(" AND participant_type_id IN (%1) ").arg(pTypeIdsStr);
|
||||
}
|
||||
if (request.participantIds().size() > 0)
|
||||
if (request.participantIds.size() > 0)
|
||||
{
|
||||
const QString pIdsStr = intVecToString(request.participantIds());
|
||||
const QString pIdsStr = intVecToString(request.participantIds);
|
||||
stmtSelect += QStringLiteral(" AND participant_id IN (%1) ").arg(pIdsStr);
|
||||
}
|
||||
|
||||
stmtSelect += QStringLiteral(" ORDER by participant_type_id, participant_id, event_time, event_type_id");
|
||||
|
||||
DEBUG_LOG(m_logger) << "Statement: " << stmtSelect;
|
||||
DEBUG_LOG(m_logger) << "Party Id = " << request.partyId();
|
||||
DEBUG_LOG(m_logger) << "Start Time = " << request.startTime();
|
||||
DEBUG_LOG(m_logger) << "End Time = " << request.endTime();
|
||||
DEBUG_LOG(m_logger) << "Party Id = " << request.partyId;
|
||||
DEBUG_LOG(m_logger) << "Start Time = " << request.startTime;
|
||||
DEBUG_LOG(m_logger) << "End Time = " << request.endTime;
|
||||
|
||||
qSelect.prepare(stmtSelect);
|
||||
qSelect.bindValue(QStringLiteral(":startTime"), request.startTime());
|
||||
qSelect.bindValue(QStringLiteral(":endTime"), request.endTime());
|
||||
qSelect.bindValue(QStringLiteral(":partyId"), request.partyId());
|
||||
qSelect.bindValue(QStringLiteral(":startTime"), static_cast<qint64>(request.startTime));
|
||||
qSelect.bindValue(QStringLiteral(":endTime"), static_cast<qint64>(request.endTime));
|
||||
qSelect.bindValue(QStringLiteral(":partyId"), request.partyId);
|
||||
|
||||
if (!qSelect.exec())
|
||||
{
|
||||
@@ -80,8 +80,8 @@ bool HandlerReportData::generateTreatmentTimelineResult(const CreateModifyReport
|
||||
tData.properties = qSelect.value(7).toString();
|
||||
|
||||
// 2 events TransportInitiated one after another, we save only first one
|
||||
if (oldData.eventTypeId == ReportManagement::EventType::TransportInitiated &&
|
||||
tData.eventTypeId == ReportManagement::EventType::TransportInitiated)
|
||||
if (oldData.eventTypeId == static_cast<int>(ReportManagement::EventType::TransportInitiated) &&
|
||||
tData.eventTypeId == static_cast<int>(ReportManagement::EventType::TransportInitiated))
|
||||
continue;
|
||||
|
||||
m_treatmentTimelineData.append(tData);
|
||||
|
||||
+14
-14
@@ -142,7 +142,7 @@ bool HandlerReportData::generateUnitPowerResult(const CreateModifyReportRequest
|
||||
// request.participantIds() == auszuwertende Participants (wird im MMI ausgefüllt)
|
||||
|
||||
|
||||
QString keyStr = request.groupByParty() ? QStringLiteral("party_id") : QStringLiteral("participant_type_id");
|
||||
QString keyStr = request.groupByParty ? QStringLiteral("party_id") : QStringLiteral("participant_type_id");
|
||||
// 1. ParticipantVec - only participantIds
|
||||
// QSet<int> participantIds;
|
||||
// for (auto it = request.participantIds().begin(); it != request.participantIds().end(); ++it)
|
||||
@@ -151,9 +151,9 @@ bool HandlerReportData::generateUnitPowerResult(const CreateModifyReportRequest
|
||||
// participantId -> ParticipantKeyData
|
||||
QMap<int, ParticipantKeyData> resultMapPrevious;
|
||||
|
||||
if (!getParticipantInitial(LtsUtils::convert<QVector<int>>(request.participantIds()),
|
||||
request.startTime(),
|
||||
request.endTime(),
|
||||
if (!getParticipantInitial(LtsUtils::convert<QVector<int>>(request.participantIds),
|
||||
request.startTime,
|
||||
request.endTime,
|
||||
keyStr,
|
||||
resultMapPrevious))
|
||||
return false;
|
||||
@@ -165,9 +165,9 @@ bool HandlerReportData::generateUnitPowerResult(const CreateModifyReportRequest
|
||||
QString stmt = QStringLiteral("SELECT participant_id, ready, vulnerability_state, event_time "
|
||||
" FROM rep_unit_power_data WHERE event_time > :intervalStart"
|
||||
" AND event_time <= :intervalEnd ");
|
||||
if (request.participantIds().size() > 0)
|
||||
if (request.participantIds.size() > 0)
|
||||
{
|
||||
const QString participantIdStr = intVecToString(request.participantIds());
|
||||
const QString participantIdStr = intVecToString(request.participantIds);
|
||||
stmt += QStringLiteral(" AND participant_id IN (%1)").arg(participantIdStr);
|
||||
}
|
||||
stmt += QStringLiteral(" ORDER by event_time");
|
||||
@@ -178,8 +178,8 @@ bool HandlerReportData::generateUnitPowerResult(const CreateModifyReportRequest
|
||||
if (!q.prepare(stmt))
|
||||
return false; // ...
|
||||
|
||||
q.bindValue(QStringLiteral(":intervalStart"), request.startTime());
|
||||
q.bindValue(QStringLiteral(":intervalEnd"), request.endTime());
|
||||
q.bindValue(QStringLiteral(":intervalStart"), static_cast<qint64>(request.startTime));
|
||||
q.bindValue(QStringLiteral(":intervalEnd"), static_cast<qint64>(request.endTime));
|
||||
|
||||
if (!q.exec())
|
||||
{
|
||||
@@ -200,15 +200,15 @@ bool HandlerReportData::generateUnitPowerResult(const CreateModifyReportRequest
|
||||
|
||||
DEBUG_LOG(m_logger) << "dataVec size: " << dataVec.size();
|
||||
|
||||
qint64 t1 = request.startTime();
|
||||
qint64 t1 = request.startTime;
|
||||
int startIndex = 0;
|
||||
QElapsedTimer timeoutTimer;
|
||||
timeoutTimer.start();
|
||||
while (t1 <= request.endTime())
|
||||
while (t1 <= request.endTime)
|
||||
{
|
||||
checkElapsedTimer(timeoutTimer);
|
||||
qint64 t2 = qMin(qMax(t1, t1 + request.intervalTime() - 1), request.endTime());
|
||||
if (request.intervalTime() == 0) t2 = request.endTime();
|
||||
qint64 t2 = qMin(qMax(t1, t1 + request.intervalTime - 1), request.endTime);
|
||||
if (request.intervalTime == 0) t2 = request.endTime;
|
||||
|
||||
INFO_LOG(m_logger) << "Generating report data for interval t1: " << t1 << ", t2: " << t2;
|
||||
|
||||
@@ -229,8 +229,8 @@ bool HandlerReportData::generateUnitPowerResult(const CreateModifyReportRequest
|
||||
return false;
|
||||
trans.commit();
|
||||
|
||||
t1 += request.intervalTime();
|
||||
if (request.intervalTime() == 0) break;
|
||||
t1 += request.intervalTime;
|
||||
if (request.intervalTime == 0) break;
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
+7
-7
@@ -28,19 +28,19 @@ bool HandlerReportData::generateSanitationMaterialResult(const CreateModifyRepor
|
||||
// find all sanitation unique ids
|
||||
QSet<qint64> sanitationIds;
|
||||
QString stmt = QLatin1String("SELECT DISTINCT sanitation_unique_id FROM rep_sanitation_material_data "
|
||||
" WHERE (event_time BETWEEN ") + QString::number(request.startTime()) + QLatin1String(" AND ") + QString::number(request.endTime()) + QLatin1String(") ");
|
||||
" WHERE (event_time BETWEEN ") + QString::number(request.startTime) + QLatin1String(" AND ") + QString::number(request.endTime) + QLatin1String(") ");
|
||||
|
||||
stmt += QLatin1String(" AND material_id != 0 ");
|
||||
|
||||
if (request.chargeTypeIds().size() > 0)
|
||||
if (request.chargeTypeIds.size() > 0)
|
||||
{
|
||||
const QString chargeTypeIds = intVecToString(request.chargeTypeIds());
|
||||
const QString chargeTypeIds = intVecToString(request.chargeTypeIds);
|
||||
stmt += QLatin1String(" AND (material_id IN (") + chargeTypeIds + QLatin1String("))");
|
||||
}
|
||||
|
||||
if (request.participantIds().size() > 0)
|
||||
if (request.participantIds.size() > 0)
|
||||
{
|
||||
const QString participants = intVecToString(request.participantIds());
|
||||
const QString participants = intVecToString(request.participantIds);
|
||||
stmt += QStringLiteral(" AND participant_id IN (%1)").arg(participants);
|
||||
}
|
||||
|
||||
@@ -74,7 +74,7 @@ bool HandlerReportData::generateSanitationMaterialResult(const CreateModifyRepor
|
||||
for (int qualif : qualifications)
|
||||
{
|
||||
qInsert.bindValue(QLatin1String(":qualif"), qualif);
|
||||
for (auto it = request.chargeTypeIds().begin(); it != request.chargeTypeIds().end(); ++it)
|
||||
for (auto it = request.chargeTypeIds.begin(); it != request.chargeTypeIds.end(); ++it)
|
||||
{
|
||||
int materialId = *it;
|
||||
if (materialId == 0) continue; // skip 0
|
||||
@@ -87,7 +87,7 @@ bool HandlerReportData::generateSanitationMaterialResult(const CreateModifyRepor
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!calculateSanitationMaterialStock(sanitationId, materialId, request.startTime(), request.endTime(), request.partyId(), reportId, qualif))
|
||||
if (!calculateSanitationMaterialStock(sanitationId, materialId, request.startTime, request.endTime, request.partyId, reportId, qualif))
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
+33
-33
@@ -98,9 +98,9 @@ Core::FunctionReplyObject ObjectReportInfo::changeStatus(const ReportChangeStatu
|
||||
if (!isValid())
|
||||
return Core::FunctionReplyObject(m_data.id, tr_lts("dds", "Trying to update an already removed Report object with id = %1")).arg(m_data.id);
|
||||
|
||||
m_data.fileStatusId = request.fileStatus();
|
||||
m_data.operatorId = request.operatorId();
|
||||
m_data.lastModified = request.lastModified();
|
||||
m_data.fileStatusId = request.fileStatus;
|
||||
m_data.operatorId = request.operatorId;
|
||||
m_data.lastModified = request.lastModified;
|
||||
|
||||
// Publish Data via DTS
|
||||
onPublishData();
|
||||
@@ -149,11 +149,11 @@ static inline std::vector<Superior> fromJsonArrayToSuperior(const QJsonArray &ar
|
||||
{
|
||||
Superior sup;
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(5, 10, 0)
|
||||
sup.participantId(obj[QStringLiteral("participantId")].toInt());
|
||||
sup.superiorId(obj[QStringLiteral("superiorId")].toInt());
|
||||
sup.participantId = obj[QStringLiteral("participantId")].toInt();
|
||||
sup.superiorId = obj[QStringLiteral("superiorId")].toInt();
|
||||
#else
|
||||
sup.participantId(obj.toObject().value(QStringLiteral("participantId")).toInt());
|
||||
sup.superiorId(obj.toObject().value(QStringLiteral("superiorId")).toInt());
|
||||
sup.participantId = obj.toObject().value(QStringLiteral("participantId")).toInt();
|
||||
sup.superiorId = obj.toObject().value(QStringLiteral("superiorId")).toInt();
|
||||
|
||||
#endif
|
||||
ret.push_back(sup);
|
||||
@@ -171,38 +171,38 @@ ReportInfo ObjectReportInfo::toDdsData(const Database::RepReport &dbData)
|
||||
{
|
||||
ReportInfo ddsData;
|
||||
|
||||
ddsData.id(dbData.id);
|
||||
ddsData.name(dbData.name.toStdString());
|
||||
ddsData.description(dbData.description.toStdString());
|
||||
ddsData.reportType(dbData.reportTypeId);
|
||||
ddsData.partyId(dbData.partyId);
|
||||
ddsData.startTime(dbData.startTime);
|
||||
ddsData.endTime(dbData.endTime);
|
||||
ddsData.visualisationType(dbData.visualisationType);
|
||||
ddsData.intervalTime(dbData.intervalTime);
|
||||
ddsData.lastModified(dbData.lastModified);
|
||||
ddsData.operatorId(dbData.operatorId);
|
||||
ddsData.fileStatus(dbData.fileStatusId);
|
||||
ddsData.id = dbData.id;
|
||||
ddsData.name = dbData.name.toStdString();
|
||||
ddsData.description = dbData.description.toStdString();
|
||||
ddsData.reportType = dbData.reportTypeId;
|
||||
ddsData.partyId = dbData.partyId;
|
||||
ddsData.startTime = dbData.startTime;
|
||||
ddsData.endTime = dbData.endTime;
|
||||
ddsData.visualisationType = dbData.visualisationType;
|
||||
ddsData.intervalTime = dbData.intervalTime;
|
||||
ddsData.lastModified = dbData.lastModified;
|
||||
ddsData.operatorId = dbData.operatorId;
|
||||
ddsData.fileStatus = dbData.fileStatusId;
|
||||
|
||||
// area
|
||||
ddsData.cornerBottomLeft(Core::GeoPosition2D(dbData.position.x(), dbData.position.y()));
|
||||
ddsData.width(dbData.width);
|
||||
ddsData.height(dbData.height);
|
||||
ddsData.cornerBottomLeft = Core::GeoPosition2D(dbData.position.x(), dbData.position.y());
|
||||
ddsData.width = dbData.width;
|
||||
ddsData.height = dbData.height;
|
||||
|
||||
QJsonObject obj = QJsonDocument::fromJson(dbData.parameter.toUtf8()).object();
|
||||
ddsData.groupByParty(obj[QStringLiteral("groupByParty")].toBool());
|
||||
ddsData.groupByParty = obj[QStringLiteral("groupByParty")].toBool();
|
||||
|
||||
// convert QJSonArray to std::vector
|
||||
ddsData.chargeTypeIds(fromJsonArray(obj[QStringLiteral("chargeTypeIds")].toArray()));
|
||||
ddsData.mineAreaIds(fromJsonArray(obj[QStringLiteral("mineAreaIds")].toArray()));
|
||||
ddsData.nbcIds(fromJsonArray(obj[QStringLiteral("nbcIds")].toArray()));
|
||||
ddsData.participantIds(fromJsonArray(obj[QStringLiteral("participantIds")].toArray()));
|
||||
ddsData.participantTypes(fromJsonArray(obj[QStringLiteral("participantTypes")].toArray()));
|
||||
ddsData.unitIds(fromJsonArray(obj[QStringLiteral("unitIds")].toArray()));
|
||||
ddsData.participantNames(fromJsonArrayToString(obj[QStringLiteral("participantNames")].toArray()));
|
||||
ddsData.unitNames(fromJsonArrayToString(obj[QStringLiteral("unitNames")].toArray()));
|
||||
ddsData.superiorIds(fromJsonArrayToSuperior(obj[QStringLiteral("superiorIds")].toArray()));
|
||||
ddsData.effectSources(fromJsonArray(obj[QStringLiteral("effectSources")].toArray()));
|
||||
ddsData.chargeTypeIds = fromJsonArray(obj[QStringLiteral("chargeTypeIds")].toArray());
|
||||
ddsData.mineAreaIds = fromJsonArray(obj[QStringLiteral("mineAreaIds")].toArray());
|
||||
ddsData.nbcIds = fromJsonArray(obj[QStringLiteral("nbcIds")].toArray());
|
||||
ddsData.participantIds = fromJsonArray(obj[QStringLiteral("participantIds")].toArray());
|
||||
ddsData.participantTypes = fromJsonArray(obj[QStringLiteral("participantTypes")].toArray());
|
||||
ddsData.unitIds = fromJsonArray(obj[QStringLiteral("unitIds")].toArray());
|
||||
ddsData.participantNames = fromJsonArrayToString(obj[QStringLiteral("participantNames")].toArray());
|
||||
ddsData.unitNames = fromJsonArrayToString(obj[QStringLiteral("unitNames")].toArray());
|
||||
ddsData.superiorIds = fromJsonArrayToSuperior(obj[QStringLiteral("superiorIds")].toArray());
|
||||
ddsData.effectSources = fromJsonArray(obj[QStringLiteral("effectSources")].toArray());
|
||||
|
||||
return ddsData;
|
||||
}
|
||||
|
||||
@@ -100,6 +100,33 @@ docker run --rm \
|
||||
# svcInfrastructureManagement QtCore to the Qt SCXML module in Qt6
|
||||
# exmStateMachineTest (Qt6::StateMachine). No qt6-scxml-dev in
|
||||
# the image and qstatemachine.h is absent.
|
||||
# svcBuildings - its generated record_replay_plugin
|
||||
# (bld_record_replay_plugin.cpp) calls
|
||||
# fromQVariant() for the nested foreign
|
||||
# ProjectDataManagement types
|
||||
# VulnerabilityState /
|
||||
# StateChangeOriginator, for which no
|
||||
# specialization is generated (they are
|
||||
# not Buildings' own types), leaving the
|
||||
# generic fromQVariant template
|
||||
# undefined -> link error.
|
||||
# svcParticipantManagement - its record_replay custom header
|
||||
# (RecordReplay/ppm_record_replay_plugin_custom.h)
|
||||
# declares Q_INTERFACES(RecordReplay::
|
||||
# RecordReplayPlugin) on a class that also
|
||||
# inherits ParticipantHandling::BaseDataProvider
|
||||
# (a second Q_OBJECT base the other record_replay
|
||||
# custom plugins lack). Qt6's MOC reports
|
||||
# "Undefined interface" for the Q_INTERFACES in
|
||||
# that multi-Q_OBJECT-base context (RecordReplay::
|
||||
# RecordReplayPlugin is a Q_GADGET, not a Q_OBJECT),
|
||||
# so the plugin autogen step fails before link.
|
||||
# (The nested-foreign-PDM fromQVariant link error
|
||||
# that also applied is now resolved by the
|
||||
# fromQVariant primary-template body added to
|
||||
# svc_record_replay_plugin.cpp.grantlee.) The PPM
|
||||
# client/common/server libs still build; only this
|
||||
# exe is excluded.
|
||||
make -j8 \
|
||||
ddscore ddsftccore ddsQoS ddsconnector ddsfts migration_tests \
|
||||
NGLLogger nglapplication nglcompression nglcoreapplication ngldb \
|
||||
@@ -112,7 +139,7 @@ docker run --rm \
|
||||
svcAsmClient svcAsmCommon svcAsmServer svcAssetManagement \
|
||||
svcAudioVideoManagement \
|
||||
svcAvmClient svcAvmCommon svcAvmServer \
|
||||
svcBldClient svcBldCommon svcBldServer svcBuildings \
|
||||
svcBldClient svcBldCommon svcBldServer \
|
||||
svcCentralEffectSimulation \
|
||||
svcCesClient svcCesCommon svcCesDDSCommon svcCesGeoPairingImpl svcCesServer \
|
||||
svcCmoClient svcCmoCommon svcCmoServer \
|
||||
@@ -146,7 +173,6 @@ docker run --rm \
|
||||
svcOreDummy \
|
||||
svcOscClient svcOscCommon svcOscServer \
|
||||
svcOssClient svcOssCommon svcOssServer \
|
||||
svcParticipantManagement \
|
||||
svcPdmClient svcPdmCommon svcPdmServer svcPedDummy \
|
||||
svcPpmClient svcPpmCommon svcPpmServer \
|
||||
svcPreClient svcPreCommon svcPreServer svcProjectDataManagement svcPwsCommon \
|
||||
|
||||
@@ -65,6 +65,11 @@ if(BUILD_TESTING)
|
||||
list(FILTER EXISTING_SOURCES EXCLUDE REGEX "test_lts_app_descriptor_editor\\.cpp")
|
||||
# Exclude Qt Test-based tests (conflict with gtest main())
|
||||
list(FILTER EXISTING_SOURCES EXCLUDE REGEX "test_lts_app_descriptor\\.cpp")
|
||||
# Exclude test_skl_dtc: "Skeleton" is a placeholder service (no source
|
||||
# dir, no svcSklCommon target, no codegen output). Its stub header was
|
||||
# converted to a build-dir wrapper (commit 5501d1e5) that includes a
|
||||
# non-existent generated file, so the compilation test cannot resolve.
|
||||
list(FILTER EXISTING_SOURCES EXCLUDE REGEX "test_skl_dtc\\.cpp")
|
||||
|
||||
# Exclude Grantlee-related tests when BUILD_GRANTLEE is OFF
|
||||
if(NOT BUILD_GRANTLEE)
|
||||
@@ -138,6 +143,20 @@ if(BUILD_TESTING)
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
# test_ces_dtc / test_scm_dtc include the CentralEffectSimulation and
|
||||
# ServiceManagement rtiddsgen/codegen outputs (ces_dtc.h, scm_dtc.h)
|
||||
# from build4/Lts/Services; test_cmo_dtc / test_gna_dtc include the
|
||||
# ComponentMonitor and GuezNasat outputs (cmo_dtc.h, gna_dtc.h) from
|
||||
# build4/Lts/Proxies. Same ordering requirement as the blocks above:
|
||||
# without these deps a parallel make can start migration_tests before
|
||||
# those headers exist.
|
||||
foreach(_extra_common IN ITEMS
|
||||
svcCesCommon svcCmoCommon svcGnaCommon svcScmCommon)
|
||||
if(TARGET ${_extra_common})
|
||||
add_dependencies(migration_tests ${_extra_common})
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
# test_core_enums includes Lts/DDS/Core/core_enums.hpp, an rtiddsgen
|
||||
# output built by ddscore. ddscore is in the make target list, but a
|
||||
# parallel make gives no ordering between it and migration_tests.
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
/**
|
||||
* @file test_scm_dtc.cpp
|
||||
* @brief Compilation test for the migrated ScenarioManagement/scm_dtc.h
|
||||
* @brief Compilation test for the migrated ServiceManagement/scm_dtc.h
|
||||
*
|
||||
* This test verifies that the migrated header compiles correctly with Qt6/C++23.
|
||||
* Resolves to the codegen-generated header (BUILD_GRANTLEE=ON / BUILD_RTI=ON).
|
||||
*/
|
||||
|
||||
#include "ScenarioManagement/scm_dtc.h"
|
||||
#include "ServiceManagement/scm_dtc.h"
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
|
||||
Reference in new issue
Block a user