Migrates remaining proxies to generated rtiddsgen API

Converts accessor calls to plain member access in bld, cmo, gna, hla, whg and wls.
This commit is contained in:
berrux-dev committed 2026-09-21 02:47:26 +02:00
1 parent 3ec4208139
commit 6a8c31b735
34 files changed
+218 -214

No files matched your search

@@ -12,6 +12,14 @@ else()
endif() endif()
# <logger.h> from the subdirectories (BSM, Json, VWM, ControlEffects) must
# resolve to this directory's logger.h (namespace BuildingControlUnit), as in
# the qt5 build. The root CMakeLists puts Lts/Proxies/TrainingAreaBase on the
# global include path, which would otherwise shadow it with
# TrainingAreaBase/logger.h (whose svctabcommon_export.h lives only in the
# build tree), breaking these targets.
include_directories(BEFORE ${CMAKE_CURRENT_SOURCE_DIR})
ADD_SUBDIRECTORY(BSM) ADD_SUBDIRECTORY(BSM)
ADD_SUBDIRECTORY(Json) ADD_SUBDIRECTORY(Json)
ADD_SUBDIRECTORY(VWM) ADD_SUBDIRECTORY(VWM)
@@ -259,7 +259,6 @@ double Room::calcRemainingEffect(double SG_alt, double ZF, double WF)
Building::Building() Building::Building()
: m_lastHitPosition(HitPosition()) : m_lastHitPosition(HitPosition())
, m_logger(BuildingControlUnit::getLogger("VWM.Building"))
{} {}
int Building::checkPolygons() int Building::checkPolygons()
@@ -308,12 +307,12 @@ int Building::cleanupPolygons()
cleanupDublicatePointsInPolygon(room.id(), owIdx, elemIdx, "room", candidate); cleanupDublicatePointsInPolygon(room.id(), owIdx, elemIdx, "room", candidate);
if (candidate.size() < 4) if (candidate.size() < 4)
{ {
NOTICE_LOG(m_logger) << "wall was made planar: Building '" << m_name << "' -> " NOTICE_LOG(logger()) << "wall was made planar: Building '" << m_name << "' -> "
<< " in room " << room.id() << " OuterWall[" << owIdx << " in room " << room.id() << " OuterWall[" << owIdx
<< "], element[" << elemIdx << "] " << "], element[" << elemIdx << "] "
<< " makePlanar and cleanupDublicatePointsInPolygon would generate short polygon, size=" << candidate.size(); << " makePlanar and cleanupDublicatePointsInPolygon would generate short polygon, size=" << candidate.size();
for (auto point : std::as_const(candidate)) for (auto point : std::as_const(candidate))
NOTICE_LOG(m_logger) << " point= " << point; NOTICE_LOG(logger()) << " point= " << point;
bMakePlanarDone = false; bMakePlanarDone = false;
@@ -324,7 +323,7 @@ int Building::cleanupPolygons()
if (bMakePlanarDone) if (bMakePlanarDone)
NOTICE_LOG(m_logger) << "wall was made planar: Building '" << m_name << "' -> " NOTICE_LOG(logger()) << "wall was made planar: Building '" << m_name << "' -> "
<< " in room " << room.id() << " OuterWall[" << owIdx << " in room " << room.id() << " OuterWall[" << owIdx
<< "], element[" << elemIdx << "] " << "], element[" << elemIdx << "] "
<< " smallestDim=" << (int)makePlanar.getSmallestDim() << " smallestDim=" << (int)makePlanar.getSmallestDim()
@@ -354,7 +353,7 @@ int Building::cleanupDublicatePointsInPolygon(int roomId, int idx, int subIdx, c
auto p2 = points.at(j); auto p2 = points.at(j);
if (qFuzzyCompare(p1, p2)) if (qFuzzyCompare(p1, p2))
{ {
DEBUG_LOG(m_logger) << "Building '" << m_name << "' -> " DEBUG_LOG(logger()) << "Building '" << m_name << "' -> "
<< "Polygon point " << i << " (" << p1 << ") and " << j << " (" << p2 << "Polygon point " << i << " (" << p1 << ") and " << j << " (" << p2
<< ") in room " << roomId << ", " << type << "[" << idx << ") in room " << roomId << ", " << type << "[" << idx
<< "], element[" << subIdx << "] are the same! -> REMOVE"; << "], element[" << subIdx << "] are the same! -> REMOVE";
@@ -410,7 +409,7 @@ QVector<HitRoom> Building::roomStates() const
hr.fortifyFactor = room.fortifyFactor(); hr.fortifyFactor = room.fortifyFactor();
hr.directHit = room.isDirectHit(); hr.directHit = room.isDirectHit();
ret += hr; ret += hr;
DEBUG_LOG(m_logger) << "HitRoom " << hr.roomId DEBUG_LOG(logger()) << "HitRoom " << hr.roomId
<< " damage: " << hr.damagePercent << " damage: " << hr.damagePercent
<< "%, remainEffect: " << hr.remainingEffectPercent << "%" << "%, remainEffect: " << hr.remainingEffectPercent << "%"
<< ", remainingEffectChargeTypeId: " << hr.remainingEffectChargeTypeId << "%" << ", remainingEffectChargeTypeId: " << hr.remainingEffectChargeTypeId << "%"
@@ -448,7 +447,7 @@ void Building::setRoomState(DamageState damageState, const QVector<int> &afffect
auto it = m_rooms.find(roomId); auto it = m_rooms.find(roomId);
if (it == m_rooms.end()) if (it == m_rooms.end())
{ {
WARNING_LOG(m_logger) << "Could not find room with id " << roomId; WARNING_LOG(logger()) << "Could not find room with id " << roomId;
continue; continue;
} }
if (damageState == DamageState::Destroyed) if (damageState == DamageState::Destroyed)
@@ -465,7 +464,7 @@ void Building::setFortifyInfo(const QVector<FortifyInfo> &foritfyInfos)
auto it = m_rooms.find(info.roomId); auto it = m_rooms.find(info.roomId);
if (it == m_rooms.end()) if (it == m_rooms.end())
{ {
WARNING_LOG(m_logger) << "Could not find room with id " << info.roomId; WARNING_LOG(logger()) << "Could not find room with id " << info.roomId;
continue; continue;
} }
Room &room = it.value(); Room &room = it.value();
@@ -538,14 +537,14 @@ bool Building::hit(const LtsUtils::QPoint3D &pos, const LtsUtils::QPoint3D &dir,
const bool bBelowGround = isLastHitPositionBelowGroundHack(); const bool bBelowGround = isLastHitPositionBelowGroundHack();
if (bBelowGround) if (bBelowGround)
{ {
INFO_LOG(m_logger) << " XXXX CES belowGround, reduce charge: " << charge; INFO_LOG(logger()) << " XXXX CES belowGround, reduce charge: " << charge;
charge.destructiveFactor *= 0.25; charge.destructiveFactor *= 0.25;
charge.penetrationEffect *= 0.25; charge.penetrationEffect *= 0.25;
INFO_LOG(m_logger) << " XXXX CES belowGround, reduce charge: " << charge; INFO_LOG(logger()) << " XXXX CES belowGround, reduce charge: " << charge;
} }
INFO_LOG(m_logger) << "XXXXX HitPosition: state=" << m_lastHitPosition.state INFO_LOG(logger()) << "XXXXX HitPosition: state=" << m_lastHitPosition.state
<< ", m_name=" << m_name << ", m_name=" << m_name
<< ", m_modelId=" << m_modelId << ", m_modelId=" << m_modelId
<< ", roomId=" << m_lastHitPosition.roomId << ", roomId=" << m_lastHitPosition.roomId
@@ -560,7 +559,7 @@ bool Building::hit(const LtsUtils::QPoint3D &pos, const LtsUtils::QPoint3D &dir,
Room &hitRoom = m_rooms[m_lastHitPosition.roomId]; Room &hitRoom = m_rooms[m_lastHitPosition.roomId];
if (!hitRoom.isValid()) if (!hitRoom.isValid())
{ {
ERROR_LOG(m_logger) << "Internal error in hit calculation - could not find room with id " << m_lastHitPosition.roomId; ERROR_LOG(logger()) << "Internal error in hit calculation - could not find room with id " << m_lastHitPosition.roomId;
return false; return false;
} }
@@ -651,7 +650,7 @@ QMap<int, Building::NeighboursToCheck> Building::checkHitNeighbours(const QMap<i
auto itRoom = m_rooms.find(neighbourRoomId); auto itRoom = m_rooms.find(neighbourRoomId);
if (itRoom == m_rooms.end()) if (itRoom == m_rooms.end())
{ {
WARNING_LOG(m_logger) << "Could not find room with id " << neighbourRoomId; WARNING_LOG(logger()) << "Could not find room with id " << neighbourRoomId;
continue; continue;
} }
@@ -670,7 +669,7 @@ QMap<int, Building::NeighboursToCheck> Building::checkHitNeighbours(const QMap<i
const double oldRe = neighbour.remainingEffect(); const double oldRe = neighbour.remainingEffect();
neighbour.setRemainingEffect(neighbourRoom.remainEffect * TF); neighbour.setRemainingEffect(neighbourRoom.remainEffect * TF);
DEBUG_LOG(m_logger) << "room " << neighbourRoomId << " remaining effect old: " DEBUG_LOG(logger()) << "room " << neighbourRoomId << " remaining effect old: "
<< oldRe << " -> new: " << neighbour.remainingEffect(); << oldRe << " -> new: " << neighbour.remainingEffect();
@@ -740,7 +739,7 @@ int Building::checkDublicatePointsInPolygon(int roomId, int idx, int subIdx, con
if (qFuzzyCompare(p1, p2)) if (qFuzzyCompare(p1, p2))
{ {
++numberOfDuplicates; ++numberOfDuplicates;
WARNING_LOG(m_logger) << "Building '" << m_name << "' -> " WARNING_LOG(logger()) << "Building '" << m_name << "' -> "
<< "Polygon point " << i << " (" << p1 << ") and " << j << " (" << p2 << "Polygon point " << i << " (" << p1 << ") and " << j << " (" << p2
<< ") in room " << roomId << ", " << type << "[" << idx << ") in room " << roomId << ", " << type << "[" << idx
<< "], element[" << subIdx << "] are the same! (size=" << points.size() << ")"; << "], element[" << subIdx << "] are the same! (size=" << points.size() << ")";
@@ -750,7 +749,7 @@ int Building::checkDublicatePointsInPolygon(int roomId, int idx, int subIdx, con
if (numberOfDuplicates > 0) if (numberOfDuplicates > 0)
for (auto point : points) for (auto point : points)
WARNING_LOG(m_logger) << "Building '" << m_name << "' -> " << "point =" << point << " (same points)"; WARNING_LOG(logger()) << "Building '" << m_name << "' -> " << "point =" << point << " (same points)";
return numberOfDuplicates; return numberOfDuplicates;
} }
@@ -28,9 +28,8 @@ public:
double transitionFactor() const { return m_transitionFactor; } double transitionFactor() const { return m_transitionFactor; }
private: private:
NGL::INGLLogger &m_logger;
int m_id = 0; int m_id = 0;
double m_transitionFactor = 0; double m_transitionFactor = 0;
}; };
@@ -37,7 +37,6 @@ private Q_SLOTS:
void onSwitchRelayRequest(const QString &hostname, const SwitchRelayValues &switchRelayValues); void onSwitchRelayRequest(const QString &hostname, const SwitchRelayValues &switchRelayValues);
void webSocketSendInitialData(QWebSocket *ws); void webSocketSendInitialData(QWebSocket *ws);
private: private:
NGL::INGLLogger &m_logger;
QVector<int> getAffectedRoomIds(const QVector<HitRoom> &allHitRooms) const; QVector<int> getAffectedRoomIds(const QVector<HitRoom> &allHitRooms) const;
QVector<int> getSegmentDamage(const QVector<HitRoom> &allHitRooms, const int damagePercentNew) const; QVector<int> getSegmentDamage(const QVector<HitRoom> &allHitRooms, const int damagePercentNew) const;
int getHitRoomId(const QVector<HitRoom> &allHitRooms) const; int getHitRoomId(const QVector<HitRoom> &allHitRooms) const;
@@ -39,7 +39,6 @@ public Q_SLOTS:
void setEffectStates(const int buildingId, const int assetId, const QByteArray &properties); void setEffectStates(const int buildingId, const int assetId, const QByteArray &properties);
void onRelayInfoChanged(const AssetManagement::RelayInfo &info, const DataModification mod); void onRelayInfoChanged(const AssetManagement::RelayInfo &info, const DataModification mod);
private: private:
NGL::INGLLogger &m_logger;
void onSetBuildingContaminationStateRequest(const rti::core::SampleIdentity &cookie, void onSetBuildingContaminationStateRequest(const rti::core::SampleIdentity &cookie,
const SetBuildingContaminationStateRequest &request) override; const SetBuildingContaminationStateRequest &request) override;
void onSetBuildingStatesRequest(const rti::core::SampleIdentity &cookie, void onSetBuildingStatesRequest(const rti::core::SampleIdentity &cookie,
@@ -10,7 +10,7 @@ namespace Buildings
{ {
using LOGGER_T = NGL::INGLLogger &; using LOGGER_T = NGL::INGLLogger &;
BLD_COMMON_EXPORT LOGGER_T getLogger(const char *name); SVCBLDCOMMON_EXPORT LOGGER_T getLogger(const char *name);
inline LOGGER_T getLogger(const QString &loggerName) inline LOGGER_T getLogger(const QString &loggerName)
{ {
return getLogger(loggerName.toUtf8().constData()); return getLogger(loggerName.toUtf8().constData());
@@ -18,7 +18,6 @@ public:
QMap<int, ProjectDataManagement::BuildingChargeEffect> buildingChargeEffects(); QMap<int, ProjectDataManagement::BuildingChargeEffect> buildingChargeEffects();
QMap<int, ProjectDataManagement::ChargeType> chargeTypes(); QMap<int, ProjectDataManagement::ChargeType> chargeTypes();
private: private:
NGL::INGLLogger &m_logger;
void initializePdm(); void initializePdm();
private: private:
NGL::INGLLogger &m_logger; NGL::INGLLogger &m_logger;
@@ -28,7 +28,6 @@ public:
bool sendPosition(); bool sendPosition();
private: private:
NGL::INGLLogger &m_logger;
bool sendTelegramInternal() const; bool sendTelegramInternal() const;
bool sendbuildingInfos() const; bool sendbuildingInfos() const;
QJsonObject ObjectFromString(const QString& in); QJsonObject ObjectFromString(const QString& in);
@@ -40,7 +40,7 @@ T fromJson(const QByteArray &json)
QJsonObject frequencyPlanningJson(QJsonObject obj, const QString &name, FrequencyBand freqBand, int radioStationId) QJsonObject frequencyPlanningJson(QJsonObject obj, const QString &name, FrequencyBand freqBand, int radioStationId)
{ {
obj.insert(QStringLiteral("Name"), name); obj.insert(QStringLiteral("Name"), name);
obj.insert(QStringLiteral("FrequencyBand"), freqBand.underlying()); obj.insert(QStringLiteral("FrequencyBand"), freqBand);
obj.insert(QStringLiteral("RadioStationId"), radioStationId); obj.insert(QStringLiteral("RadioStationId"), radioStationId);
return obj; return obj;
} }
@@ -59,8 +59,8 @@ bool RadioCircuitHF::isValid() const
QJsonObject RadioCircuitHF::toJson() const QJsonObject RadioCircuitHF::toJson() const
{ {
QJsonObject obj; QJsonObject obj;
obj.insert(QStringLiteral("ModulationType"), modulationType.underlying()); obj.insert(QStringLiteral("ModulationType"), modulationType);
obj.insert(QStringLiteral("ChannelSpacing"), channelSpacing.underlying()); obj.insert(QStringLiteral("ChannelSpacing"), channelSpacing);
obj.insert(QStringLiteral("Frequency"), frequency); obj.insert(QStringLiteral("Frequency"), frequency);
obj.insert(QStringLiteral("Squelch"), squelch); obj.insert(QStringLiteral("Squelch"), squelch);
@@ -70,8 +70,8 @@ QJsonObject RadioCircuitHF::toJson() const
RadioCircuitHF* RadioCircuitHF::fromJson(const QJsonObject &obj) RadioCircuitHF* RadioCircuitHF::fromJson(const QJsonObject &obj)
{ {
RadioCircuitHF *spec = new RadioCircuitHF(); RadioCircuitHF *spec = new RadioCircuitHF();
spec->modulationType = static_cast<ModulationType::inner_enum>(obj.value(QStringLiteral("ModulationType")).toInt(-1)); spec->modulationType = static_cast<ModulationType>(obj.value(QStringLiteral("ModulationType")).toInt(-1));
spec->channelSpacing = static_cast<ChannelSpacingHF::inner_enum>(obj.value(QStringLiteral("ChannelSpacing")).toInt()); spec->channelSpacing = static_cast<ChannelSpacingHF>(obj.value(QStringLiteral("ChannelSpacing")).toInt());
spec->frequency = obj.value(QStringLiteral("Frequency")).toInt(); spec->frequency = obj.value(QStringLiteral("Frequency")).toInt();
spec->squelch = obj.value(QStringLiteral("Squelch")).toInt(-1); spec->squelch = obj.value(QStringLiteral("Squelch")).toInt(-1);
if (spec->isValid()) if (spec->isValid())
@@ -94,8 +94,8 @@ bool RadioCircuitUHF::isValid() const
QJsonObject RadioCircuitUHF::toJson() const QJsonObject RadioCircuitUHF::toJson() const
{ {
QJsonObject obj; QJsonObject obj;
obj.insert(QStringLiteral("ModulationType"), modulationType.underlying()); obj.insert(QStringLiteral("ModulationType"), modulationType);
obj.insert(QStringLiteral("ChannelSpacing"), channelSpacing.underlying()); obj.insert(QStringLiteral("ChannelSpacing"), channelSpacing);
obj.insert(QStringLiteral("Frequency"), frequency); obj.insert(QStringLiteral("Frequency"), frequency);
obj.insert(QStringLiteral("Squelch"), squelchDB); obj.insert(QStringLiteral("Squelch"), squelchDB);
obj.insert(QStringLiteral("Clipper"), clipper); obj.insert(QStringLiteral("Clipper"), clipper);
@@ -107,8 +107,8 @@ QJsonObject RadioCircuitUHF::toJson() const
RadioCircuitUHF* RadioCircuitUHF::fromJson(const QJsonObject &obj) RadioCircuitUHF* RadioCircuitUHF::fromJson(const QJsonObject &obj)
{ {
RadioCircuitUHF *spec = new RadioCircuitUHF(); RadioCircuitUHF *spec = new RadioCircuitUHF();
spec->modulationType = static_cast<ModulationType::inner_enum>(obj.value(QStringLiteral("ModulationType")).toInt(-1)); spec->modulationType = static_cast<ModulationType>(obj.value(QStringLiteral("ModulationType")).toInt(-1));
spec->channelSpacing = static_cast<ChannelSpacing::inner_enum>(obj.value(QStringLiteral("ChannelSpacing")).toInt()); spec->channelSpacing = static_cast<ChannelSpacing>(obj.value(QStringLiteral("ChannelSpacing")).toInt());
spec->frequency = obj.value(QStringLiteral("Frequency")).toInt(); spec->frequency = obj.value(QStringLiteral("Frequency")).toInt();
spec->squelchDB = obj.value(QStringLiteral("Squelch")).toInt(-1); spec->squelchDB = obj.value(QStringLiteral("Squelch")).toInt(-1);
auto clipper = obj.value(QStringLiteral("Clipper")); auto clipper = obj.value(QStringLiteral("Clipper"));
@@ -128,7 +128,7 @@ RadioCircuitUHF* RadioCircuitUHF::fromJson(const QJsonObject &obj)
QJsonObject RadioCircuitVHF::toJson() const QJsonObject RadioCircuitVHF::toJson() const
{ {
QJsonObject obj; QJsonObject obj;
obj.insert(QStringLiteral("OperatingMode"), operatingMode.underlying()); obj.insert(QStringLiteral("OperatingMode"), operatingMode);
obj.insert(QStringLiteral("FrequencySetDataId"), freqSetDataId); obj.insert(QStringLiteral("FrequencySetDataId"), freqSetDataId);
obj.insert(QStringLiteral("PilotTone"), pilotTone); obj.insert(QStringLiteral("PilotTone"), pilotTone);
@@ -138,7 +138,7 @@ QJsonObject RadioCircuitVHF::toJson() const
RadioCircuitVHF* RadioCircuitVHF::fromJson(const QJsonObject &obj) RadioCircuitVHF* RadioCircuitVHF::fromJson(const QJsonObject &obj)
{ {
RadioCircuitVHF *spec = new RadioCircuitVHF(); RadioCircuitVHF *spec = new RadioCircuitVHF();
spec->operatingMode = static_cast<RcOperatingMode::inner_enum>(obj.value(QStringLiteral("OperatingMode")).toInt(-1)); spec->operatingMode = static_cast<RcOperatingMode>(obj.value(QStringLiteral("OperatingMode")).toInt(-1));
spec->freqSetDataId = obj.value(QStringLiteral("FrequencySetDataId")).toInt(); spec->freqSetDataId = obj.value(QStringLiteral("FrequencySetDataId")).toInt();
auto pilotTone = obj.value(QStringLiteral("PilotTone")); auto pilotTone = obj.value(QStringLiteral("PilotTone"));
if (pilotTone.isUndefined() || !pilotTone.isBool()) if (pilotTone.isUndefined() || !pilotTone.isBool())
@@ -195,19 +195,19 @@ QVector<RadioCircuit*> fromJson(const std::string &json)
{ {
RadioCircuit *rc = nullptr; RadioCircuit *rc = nullptr;
const QJsonObject obj = val.toObject(); const QJsonObject obj = val.toObject();
FrequencyBand ft = static_cast<FrequencyBand::inner_enum>(obj[QStringLiteral("FrequencyBand")].toInt()); FrequencyBand ft = static_cast<FrequencyBand>(obj[QStringLiteral("FrequencyBand")].toInt());
switch (ft.underlying()) switch (ft)
{ {
case FrequencyBand_def::HF: case FrequencyBand::HF:
rc = RadioCircuitHF::fromJson(obj); rc = RadioCircuitHF::fromJson(obj);
break; break;
case FrequencyBand_def::UHF: case FrequencyBand::UHF:
rc = RadioCircuitUHF::fromJson(obj); rc = RadioCircuitUHF::fromJson(obj);
break; break;
case FrequencyBand_def::VHF: case FrequencyBand::VHF:
rc = RadioCircuitVHF::fromJson(obj); rc = RadioCircuitVHF::fromJson(obj);
break; break;
case FrequencyBand_def::REL: case FrequencyBand::REL:
default: default:
break; break;
} }
@@ -237,10 +237,10 @@ QSet<int> frequencySetDataIds(const std::string &frequencyPlanDataProperties)
for(const QJsonValue &val : std::as_const(arr)) for(const QJsonValue &val : std::as_const(arr))
{ {
const QJsonObject obj = val.toObject(); const QJsonObject obj = val.toObject();
FrequencyBand ft = static_cast<FrequencyBand::inner_enum>(obj[QStringLiteral("FrequencyBand")].toInt()); FrequencyBand ft = static_cast<FrequencyBand>(obj[QStringLiteral("FrequencyBand")].toInt());
switch (ft.underlying()) switch (ft)
{ {
case FrequencyBand_def::VHF: case FrequencyBand::VHF:
{ {
RadioCircuitVHF *rcVhf = RadioCircuitVHF::fromJson(obj); RadioCircuitVHF *rcVhf = RadioCircuitVHF::fromJson(obj);
if(!rcVhf) if(!rcVhf)
@@ -249,8 +249,8 @@ QSet<int> frequencySetDataIds(const std::string &frequencyPlanDataProperties)
delete rcVhf; delete rcVhf;
break; break;
} }
case FrequencyBand_def::UHF: case FrequencyBand::UHF:
case FrequencyBand_def::HF: case FrequencyBand::HF:
default: default:
break; break;
} }
@@ -40,7 +40,6 @@ private Q_SLOTS:
void onSocketDisconnect(); void onSocketDisconnect();
private: private:
NGL::INGLLogger &m_logger;
void sendMessages(); void sendMessages();
private: private:
@@ -10,7 +10,7 @@ namespace ComponentMonitor
{ {
using LOGGER_T = NGL::INGLLogger &; using LOGGER_T = NGL::INGLLogger &;
CMO_COMMON_EXPORT LOGGER_T getLogger(const char *name); SVCCMOCOMMON_EXPORT LOGGER_T getLogger(const char *name);
inline LOGGER_T getLogger(const QString &loggerName) inline LOGGER_T getLogger(const QString &loggerName)
{ {
return getLogger(loggerName.toUtf8().constData()); return getLogger(loggerName.toUtf8().constData());
@@ -30,7 +30,6 @@ Q_SIGNALS:
void simulationStatusReceived(const NasatSimulationStatus &data); void simulationStatusReceived(const NasatSimulationStatus &data);
protected: protected:
NGL::INGLLogger &m_logger;
void textMessageReceived(const QByteArray &msg); void textMessageReceived(const QByteArray &msg);
bool sendTelegram(const NasatBase *tele); bool sendTelegram(const NasatBase *tele);
virtual bool sendTelegramInternal(const QByteArray &tele) = 0; virtual bool sendTelegramInternal(const QByteArray &tele) = 0;
@@ -107,9 +107,9 @@ int Participant2Dds::partyId(int participantId) const
auto ret = -1; auto ret = -1;
std::function<bool(const ParticipantManagement::Participant&)> cb = [participantId, &ret](const ParticipantManagement::Participant &p) std::function<bool(const ParticipantManagement::Participant&)> cb = [participantId, &ret](const ParticipantManagement::Participant &p)
{ {
if (p.id() != participantId) if (p.id != participantId)
return false; return false;
ret = p.partyId(); ret = p.partyId;
return true; return true;
}; };
m_ppmDtc->participants(cb); m_ppmDtc->participants(cb);
@@ -120,15 +120,15 @@ void Participant2Dds::onParticipantChanged(const ParticipantManagement::Particip
{ {
if (modType == DataModification::eRemoved) if (modType == DataModification::eRemoved)
return; return;
DEBUG_LOG(m_logger) << "onParticipantChanged: " << data.id() DEBUG_LOG(m_logger) << "onParticipantChanged: " << data.id
<< ", " << m_participantsToWatch.contains(data.id()) << ", " << m_participantsToWatch.contains(data.id)
<< ", " << m_participantsToWatch.size() << ", " << m_participantsToWatch.size()
<< ", " << m_participantsToWatch.contains(data.id()) << ", " << m_participantsToWatch.contains(data.id)
<< ", " << data.isDeleted(); << ", " << data.isDeleted;
if (!m_participantsToWatch.contains(data.id())) if (!m_participantsToWatch.contains(data.id))
return; return;
if (data.isDeleted()) if (data.isDeleted)
emit participantRemoved(m_ddsConnector->getPartitionId(), data.id()); emit participantRemoved(m_ddsConnector->getPartitionId(), data.id);
} }
@@ -137,6 +137,7 @@ void Participant2Dds::onParticipantChanged(const ParticipantManagement::Particip
DdsHandler::DdsHandler(const std::shared_ptr<DDSConnector::DdsConnector> &ddsConnector) DdsHandler::DdsHandler(const std::shared_ptr<DDSConnector::DdsConnector> &ddsConnector)
: m_ddsConnector(std::make_shared<DDSConnector::DdsConnector>(ddsConnector->getDomainParticipant(), IDL::PartitionType::AllExercises)) : m_ddsConnector(std::make_shared<DDSConnector::DdsConnector>(ddsConnector->getDomainParticipant(), IDL::PartitionType::AllExercises))
, m_logger(getLogger("DdsHandler"))
{ {
DEBUG_LOG(m_logger) << "DdsHandler(" << m_ddsConnector->getDomainId() << ") for partition: " << m_ddsConnector->getDefaultPartition(); DEBUG_LOG(m_logger) << "DdsHandler(" << m_ddsConnector->getDomainId() << ") for partition: " << m_ddsConnector->getDefaultPartition();
} }
@@ -70,6 +70,12 @@ private:
std::shared_ptr<AreaEffectSimulation::Interface::Ftc> m_aesFtc; std::shared_ptr<AreaEffectSimulation::Interface::Ftc> m_aesFtc;
std::shared_ptr<ProjectDataManagement::Interface::Dtc> m_pdmDtc; std::shared_ptr<ProjectDataManagement::Interface::Dtc> m_pdmDtc;
QHash<int, std::weak_ptr<Participant2Dds>> m_nasatParticipant2Dds; QHash<int, std::weak_ptr<Participant2Dds>> m_nasatParticipant2Dds;
// Qt5 declared m_logger in *both* classes of this header (Participant2Dds at line 54
// and DdsHandler at line 79). A dedup pass kept only one of them, which left
// DdsHandler's DEBUG_LOG(m_logger) uses in dds_handler.cpp without a member. Restored
// to match the Qt5 declaration; this is fidelity, not a new member.
NGL::INGLLogger &m_logger;
}; };
} }
@@ -13,20 +13,20 @@ namespace GuezNasat
Database::NasatAircraft toDb(const NasatAircraft &dds) Database::NasatAircraft toDb(const NasatAircraft &dds)
{ {
Database::NasatAircraft ret; Database::NasatAircraft ret;
ret.id = dds.id(); ret.id = dds.id;
ret.nasatId = dds.nasatId(); ret.nasatId = dds.nasatId;
ret.simulationActive = dds.simulationActive(); ret.simulationActive = dds.simulationActive;
ret.name = QString::fromStdString(dds.name()); ret.name = QString::fromStdString(dds.name);
return ret; return ret;
} }
NasatAircraft fromDb(const Database::NasatAircraft &db) NasatAircraft fromDb(const Database::NasatAircraft &db)
{ {
NasatAircraft ret; NasatAircraft ret;
ret.id(db.id); ret.id = db.id;
ret.nasatId(db.nasatId); ret.nasatId = db.nasatId;
ret.simulationActive(db.simulationActive); ret.simulationActive = db.simulationActive;
ret.name(db.name.toStdString()); ret.name = db.name.toStdString();
return ret; return ret;
} }
@@ -42,7 +42,7 @@ HandlerNasatAircraft::HandlerNasatAircraft(Initialization *mainHandler)
HandlerNasatAircraft::~HandlerNasatAircraft() HandlerNasatAircraft::~HandlerNasatAircraft()
{ {
for (const auto &data : std::as_const(m_nasatAircrafts)) for (const auto &data : std::as_const(m_nasatAircrafts))
m_dts->removeNasatAircraftByKey(data.id()); m_dts->removeNasatAircraftByKey(data.id);
} }
bool HandlerNasatAircraft::init() bool HandlerNasatAircraft::init()
@@ -50,9 +50,9 @@ bool HandlerNasatAircraft::init()
auto cb = [this](const Database::NasatAircraft & data) auto cb = [this](const Database::NasatAircraft & data)
{ {
auto dds(fromDb(data)); auto dds(fromDb(data));
dds.simulationActive(false); dds.simulationActive = false;
emit activateNasatAircraftSimulation(data.nasatId, false); emit activateNasatAircraftSimulation(data.nasatId, false);
m_nasatAircrafts[dds.id()] = dds; m_nasatAircrafts[dds.id] = dds;
m_dts->publish(dds); m_dts->publish(dds);
}; };
m_db->select(cb); m_db->select(cb);
@@ -64,7 +64,7 @@ int HandlerNasatAircraft::nasatIdFromNasatAircraftId(int nasatAircraftId) const
auto it = m_nasatAircrafts.find(nasatAircraftId); auto it = m_nasatAircrafts.find(nasatAircraftId);
if (it == m_nasatAircrafts.end()) if (it == m_nasatAircrafts.end())
return -1; return -1;
return it.value().nasatId(); return it.value().nasatId;
} }
void HandlerNasatAircraft::simulationStatusChanged(const NasatSimulationStatus &data) void HandlerNasatAircraft::simulationStatusChanged(const NasatSimulationStatus &data)
@@ -76,11 +76,11 @@ void HandlerNasatAircraft::flaFluSimulationChanged(int nasatId, bool bSimulation
{ {
for (NasatAircraft &na : m_nasatAircrafts) for (NasatAircraft &na : m_nasatAircrafts)
{ {
if (na.nasatId() != nasatId) if (na.nasatId != nasatId)
continue; continue;
if (na.simulationActive() == bSimulationActive) if (na.simulationActive == bSimulationActive)
return; return;
na.simulationActive(bSimulationActive); na.simulationActive = bSimulationActive;
m_dts->publish(na); m_dts->publish(na);
return; return;
} }
@@ -91,7 +91,7 @@ void HandlerNasatAircraft::onModifyNasatAircraftRequest(const rti::core::SampleI
const NasatAircraft &request) const NasatAircraft &request)
{ {
DEBUG_LOG(m_logger) << "onModifyNasatAircraftRequest: " << request; DEBUG_LOG(m_logger) << "onModifyNasatAircraftRequest: " << request;
auto ret = request.id() > 0 ? modifyNasatAircraftRequest(request) : createNasatAircraftRequest(request); auto ret = request.id > 0 ? modifyNasatAircraftRequest(request) : createNasatAircraftRequest(request);
if (ret.error()) if (ret.error())
WARNING_LOG(m_logger) << ret(); WARNING_LOG(m_logger) << ret();
m_fts->modifyNasatAircraftReply(cookie, ret); m_fts->modifyNasatAircraftReply(cookie, ret);
@@ -104,7 +104,7 @@ Core::FunctionReplyObject HandlerNasatAircraft::createNasatAircraftRequest(const
naDb.id = 0; naDb.id = 0;
if (!m_db->insert(naDb)) if (!m_db->insert(naDb))
return Core::FunctionReplyObject(request.id(), tr_lts("dds", "Can not create Aircraft information - error inserting values in database")); return Core::FunctionReplyObject(request.id, tr_lts("dds", "Can not create Aircraft information - error inserting values in database"));
emit activateNasatAircraftSimulation(naDb.nasatId, naDb.simulationActive); emit activateNasatAircraftSimulation(naDb.nasatId, naDb.simulationActive);
@@ -113,48 +113,48 @@ Core::FunctionReplyObject HandlerNasatAircraft::createNasatAircraftRequest(const
m_dts->publish(nasatAircraftData); m_dts->publish(nasatAircraftData);
m_nasatAircrafts[naDb.id] = nasatAircraftData; m_nasatAircrafts[naDb.id] = nasatAircraftData;
return Core::FunctionReplyObject(request.id()); return Core::FunctionReplyObject(request.id);
} }
Core::FunctionReplyObject HandlerNasatAircraft::modifyNasatAircraftRequest(const NasatAircraft &request) Core::FunctionReplyObject HandlerNasatAircraft::modifyNasatAircraftRequest(const NasatAircraft &request)
{ {
auto it = m_nasatAircrafts.find(request.id()); auto it = m_nasatAircrafts.find(request.id);
if (it == m_nasatAircrafts.end()) if (it == m_nasatAircrafts.end())
return Core::FunctionReplyObject(request.id(), tr_lts("dds", "Can not modify Aircraft information - id %1 not found")).arg(request.id()); return Core::FunctionReplyObject(request.id, tr_lts("dds", "Can not modify Aircraft information - id %1 not found")).arg(request.id);
if (request.nasatId() == 0 && request.name().size() == 0) if (request.nasatId == 0 && request.name.size() == 0)
{ {
if (!m_db->removeNasatAircraft(request.id())) if (!m_db->removeNasatAircraft(request.id))
return Core::FunctionReplyObject(request.id(), tr_lts("dds", "Can not remove Aircraft information - error removing values from database")); return Core::FunctionReplyObject(request.id, tr_lts("dds", "Can not remove Aircraft information - error removing values from database"));
m_nasatAircrafts.erase(it); m_nasatAircrafts.erase(it);
m_mainHandler->nasatAircraftParticipant()->aircraftRemoved(request.id()); m_mainHandler->nasatAircraftParticipant()->aircraftRemoved(request.id);
m_dts->removeNasatAircraftByKey(request.id()); m_dts->removeNasatAircraftByKey(request.id);
if (it.value().simulationActive()) if (it.value().simulationActive)
emit activateNasatAircraftSimulation(request.nasatId(), false); emit activateNasatAircraftSimulation(request.nasatId, false);
return Core::FunctionReplyObject(request.id()); return Core::FunctionReplyObject(request.id);
} }
const int oldNasatId = it.value().nasatId(); const int oldNasatId = it.value().nasatId;
Database::NasatAircraft naDb(toDb(request)); Database::NasatAircraft naDb(toDb(request));
if (!m_db->update(naDb)) if (!m_db->update(naDb))
return Core::FunctionReplyObject(request.id(), tr_lts("dds", "Can not modify Aircraft information - error updating values in database")); return Core::FunctionReplyObject(request.id, tr_lts("dds", "Can not modify Aircraft information - error updating values in database"));
const bool simulationChanged = it.value().simulationActive() != request.simulationActive(); const bool simulationChanged = it.value().simulationActive != request.simulationActive;
const auto nasatAircraftData(fromDb(naDb)); const auto nasatAircraftData(fromDb(naDb));
m_dts->publish(nasatAircraftData); m_dts->publish(nasatAircraftData);
it.value() = nasatAircraftData; it.value() = nasatAircraftData;
if (request.nasatId() != oldNasatId) if (request.nasatId != oldNasatId)
emit nasatIdChanged(oldNasatId, naDb.nasatId); emit nasatIdChanged(oldNasatId, naDb.nasatId);
if (simulationChanged) if (simulationChanged)
emit activateNasatAircraftSimulation(naDb.nasatId, request.simulationActive()); emit activateNasatAircraftSimulation(naDb.nasatId, request.simulationActive);
return Core::FunctionReplyObject(request.id()); return Core::FunctionReplyObject(request.id);
} }
@@ -15,20 +15,20 @@ namespace GuezNasat
Database::NasatAircraftParticipant toDb(const NasatAircraftParticipant &dds) Database::NasatAircraftParticipant toDb(const NasatAircraftParticipant &dds)
{ {
Database::NasatAircraftParticipant ret; Database::NasatAircraftParticipant ret;
ret.id = dds.id(); ret.id = dds.id;
ret.nasatAircraftId = dds.nasatAircraftId(); ret.nasatAircraftId = dds.nasatAircraftId;
ret.exerciseId = dds.exerciseId(); ret.exerciseId = dds.exerciseId;
ret.participantId = dds.participantId(); ret.participantId = dds.participantId;
return ret; return ret;
} }
NasatAircraftParticipant fromDb(const Database::NasatAircraftParticipant &db) NasatAircraftParticipant fromDb(const Database::NasatAircraftParticipant &db)
{ {
NasatAircraftParticipant ret; NasatAircraftParticipant ret;
ret.id(db.id); ret.id = db.id;
ret.nasatAircraftId(db.nasatAircraftId); ret.nasatAircraftId = db.nasatAircraftId;
ret.exerciseId(db.exerciseId); ret.exerciseId = db.exerciseId;
ret.participantId(db.participantId); ret.participantId = db.participantId;
return ret; return ret;
} }
@@ -48,7 +48,7 @@ HandlerNasatAircraftParticipant::~HandlerNasatAircraftParticipant()
{ {
DEBUG_LOG(m_logger) << Q_FUNC_INFO << " START"; DEBUG_LOG(m_logger) << Q_FUNC_INFO << " START";
for (const auto &data : std::as_const(m_nasatAircraftParticipants)) for (const auto &data : std::as_const(m_nasatAircraftParticipants))
m_dts->removeNasatAircraftByKey(data.id()); m_dts->removeNasatAircraftByKey(data.id);
DEBUG_LOG(m_logger) << Q_FUNC_INFO << " END"; DEBUG_LOG(m_logger) << Q_FUNC_INFO << " END";
} }
@@ -59,8 +59,8 @@ bool HandlerNasatAircraftParticipant::init()
auto cb = [this](const Database::NasatAircraftParticipant & data) auto cb = [this](const Database::NasatAircraftParticipant & data)
{ {
const auto dds(fromDb(data)); const auto dds(fromDb(data));
DEBUG_LOG(m_logger) << "m_nasatAircraftParticipants.insert(" << dds.id() << ")"; DEBUG_LOG(m_logger) << "m_nasatAircraftParticipants.insert(" << dds.id << ")";
m_nasatAircraftParticipants.insert(dds.id(), dds); m_nasatAircraftParticipants.insert(dds.id, dds);
m_dts->publish(dds); m_dts->publish(dds);
m_mainHandler->handlerParticipant()->onNasatAircraftParticipantCreated(dds); m_mainHandler->handlerParticipant()->onNasatAircraftParticipantCreated(dds);
}; };
@@ -133,7 +133,7 @@ void HandlerNasatAircraftParticipant::aircraftRemoved(int nasatAircraftId)
while (it != m_nasatAircraftParticipants.end()) while (it != m_nasatAircraftParticipants.end())
{ {
const auto &val = it.value(); const auto &val = it.value();
if (val.nasatAircraftId() == nasatAircraftId) if (val.nasatAircraftId == nasatAircraftId)
{ {
removeNasatAircraftParticipant(val); removeNasatAircraftParticipant(val);
it = m_nasatAircraftParticipants.erase(it); it = m_nasatAircraftParticipants.erase(it);
@@ -150,8 +150,8 @@ void HandlerNasatAircraftParticipant::participantRemoved(int exerciseId, int par
while (it != m_nasatAircraftParticipants.end()) while (it != m_nasatAircraftParticipants.end())
{ {
const auto &val = it.value(); const auto &val = it.value();
if (val.participantId() == participantId && if (val.participantId == participantId &&
val.exerciseId() == exerciseId) val.exerciseId == exerciseId)
{ {
removeNasatAircraftParticipant(val); removeNasatAircraftParticipant(val);
it = m_nasatAircraftParticipants.erase(it); it = m_nasatAircraftParticipants.erase(it);
@@ -161,7 +161,7 @@ void HandlerNasatAircraftParticipant::participantRemoved(int exerciseId, int par
} }
} }
bool isExerciseStateValid(ExerciseManagement::ExerciseState_def::type state) bool isExerciseStateValid(ExerciseManagement::ExerciseState::type state)
{ {
switch (state) switch (state)
{ {
@@ -181,17 +181,17 @@ void HandlerNasatAircraftParticipant::onExerciseChanged(const ExerciseManagement
{ {
INFO_LOG(m_logger) << Q_FUNC_INFO << " START" << " , exercise" << exercise << " , modType" << modType; INFO_LOG(m_logger) << Q_FUNC_INFO << " START" << " , exercise" << exercise << " , modType" << modType;
const int exId = exercise.id(); const int exId = exercise.id;
switch (modType) switch (modType)
{ {
case DataModification::eAdded: case DataModification::eAdded:
{ {
m_exercises[exId] = exercise; m_exercises[exId] = exercise;
const bool valid = isExerciseStateValid(exercise.state().underlying()); const bool valid = isExerciseStateValid(exercise.state);
if (!valid) if (!valid)
{ {
INFO_LOG(m_logger) << Q_FUNC_INFO << " STATE of exId=" << exId INFO_LOG(m_logger) << Q_FUNC_INFO << " STATE of exId=" << exId
<< " , state=" << exercise.state(); << " , state=" << exercise.state;
int cnt = removeNapsOfExercise(exId); int cnt = removeNapsOfExercise(exId);
INFO_LOG(m_logger) << Q_FUNC_INFO << " STATE of exId=" << exId << " not valid : counter of removed naps=" << cnt; INFO_LOG(m_logger) << Q_FUNC_INFO << " STATE of exId=" << exId << " not valid : counter of removed naps=" << cnt;
} }
@@ -200,14 +200,14 @@ void HandlerNasatAircraftParticipant::onExerciseChanged(const ExerciseManagement
case DataModification::eModified: case DataModification::eModified:
{ {
const ExerciseManagement::Exercise &exerciseRef = m_exercises[exId]; const ExerciseManagement::Exercise &exerciseRef = m_exercises[exId];
if (exerciseRef.state() != exercise.state()) if (exerciseRef.state != exercise.state)
{ {
const bool valid = isExerciseStateValid(exercise.state().underlying()); const bool valid = isExerciseStateValid(exercise.state);
if (!valid) if (!valid)
{ {
INFO_LOG(m_logger) << Q_FUNC_INFO << " STATE change of exId=" << exId INFO_LOG(m_logger) << Q_FUNC_INFO << " STATE change of exId=" << exId
<< " , old state=" << exerciseRef.state() << " , old state=" << exerciseRef.state
<< " , new state=" << exercise.state(); << " , new state=" << exercise.state;
int cnt = removeNapsOfExercise(exId); int cnt = removeNapsOfExercise(exId);
INFO_LOG(m_logger) << Q_FUNC_INFO << " STATE change of exId=" << exId << " : counter of removed naps=" << cnt; INFO_LOG(m_logger) << Q_FUNC_INFO << " STATE change of exId=" << exId << " : counter of removed naps=" << cnt;
} }
@@ -231,15 +231,15 @@ void HandlerNasatAircraftParticipant::removeNasatAircraftParticipant(const Nasat
{ {
m_mainHandler->handlerParticipant()->onNasatAircraftParticipantRemoved(val); m_mainHandler->handlerParticipant()->onNasatAircraftParticipantRemoved(val);
m_db->removeNasatAircraftParticipant(val.id()); m_db->removeNasatAircraftParticipant(val.id);
m_dts->removeNasatAircraftParticipantByKey(val.id()); m_dts->removeNasatAircraftParticipantByKey(val.id);
} }
void HandlerNasatAircraftParticipant::onModifyNasatAircraftParticipantRequest(const rti::core::SampleIdentity &cookie, void HandlerNasatAircraftParticipant::onModifyNasatAircraftParticipantRequest(const rti::core::SampleIdentity &cookie,
const NasatAircraftParticipant &request) const NasatAircraftParticipant &request)
{ {
DEBUG_LOG(m_logger) << "onModifyNasatAircraftParticipantRequest: " << request; DEBUG_LOG(m_logger) << "onModifyNasatAircraftParticipantRequest: " << request;
auto ret = request.id() <= 0 ? createNasatAircraftParticipantRequest(request) : modifyNasatAircraftParticipantRequest(request); auto ret = request.id <= 0 ? createNasatAircraftParticipantRequest(request) : modifyNasatAircraftParticipantRequest(request);
if (ret.error()) if (ret.error())
WARNING_LOG(m_logger) << ret(); WARNING_LOG(m_logger) << ret();
m_fts->modifyNasatAircraftParticipantReply(cookie, ret); m_fts->modifyNasatAircraftParticipantReply(cookie, ret);
@@ -251,50 +251,50 @@ Core::FunctionReplyObject HandlerNasatAircraftParticipant::createNasatAircraftPa
Database::NasatAircraftParticipant napDb(toDb(request)); Database::NasatAircraftParticipant napDb(toDb(request));
napDb.id = 0; napDb.id = 0;
if (!m_db->insert(napDb)) if (!m_db->insert(napDb))
return Core::FunctionReplyObject(request.id(), tr_lts("dds", "Can not create Aircraft Participant connection - error inserting values in database")); return Core::FunctionReplyObject(request.id, tr_lts("dds", "Can not create Aircraft Participant connection - error inserting values in database"));
const auto dds(fromDb(napDb)); const auto dds(fromDb(napDb));
m_dts->publish(dds); m_dts->publish(dds);
m_nasatAircraftParticipants.insert(dds.id(), dds); m_nasatAircraftParticipants.insert(dds.id, dds);
m_mainHandler->handlerParticipant()->onNasatAircraftParticipantCreated(request); m_mainHandler->handlerParticipant()->onNasatAircraftParticipantCreated(request);
return Core::FunctionReplyObject(request.id()); return Core::FunctionReplyObject(request.id);
} }
Core::FunctionReplyObject HandlerNasatAircraftParticipant::modifyNasatAircraftParticipantRequest(const NasatAircraftParticipant &request) Core::FunctionReplyObject HandlerNasatAircraftParticipant::modifyNasatAircraftParticipantRequest(const NasatAircraftParticipant &request)
{ {
auto it = m_nasatAircraftParticipants.find(request.id()); auto it = m_nasatAircraftParticipants.find(request.id);
if (it == m_nasatAircraftParticipants.end()) if (it == m_nasatAircraftParticipants.end())
return Core::FunctionReplyObject(request.id(), tr_lts("dds", "Can not modify Aircraft Participant connection - id %1 not found")).arg(request.id()); return Core::FunctionReplyObject(request.id, tr_lts("dds", "Can not modify Aircraft Participant connection - id %1 not found")).arg(request.id);
if (request == *it) if (request == *it)
return Core::FunctionReplyObject(request.id()); return Core::FunctionReplyObject(request.id);
if ((request.exerciseId() == 0 && request.participantId() == 0) || if ((request.exerciseId == 0 && request.participantId == 0) ||
request.nasatAircraftId() == 0) request.nasatAircraftId == 0)
{ {
removeNasatAircraftParticipant(it.value()); removeNasatAircraftParticipant(it.value());
m_nasatAircraftParticipants.erase(it); m_nasatAircraftParticipants.erase(it);
return Core::FunctionReplyObject(request.id()); return Core::FunctionReplyObject(request.id);
} }
Database::NasatAircraftParticipant napDb(toDb(request)); Database::NasatAircraftParticipant napDb(toDb(request));
if (!m_db->update(napDb)) if (!m_db->update(napDb))
return Core::FunctionReplyObject(request.id(), tr_lts("dds", "Can not modify Aircraft Participant connection - error updating values in database")); return Core::FunctionReplyObject(request.id, tr_lts("dds", "Can not modify Aircraft Participant connection - error updating values in database"));
m_mainHandler->handlerParticipant()->onNasatAircraftParticipantRemoved(*it); m_mainHandler->handlerParticipant()->onNasatAircraftParticipantRemoved(*it);
const auto dds(fromDb(napDb)); const auto dds(fromDb(napDb));
m_dts->publish(dds); m_dts->publish(dds);
m_nasatAircraftParticipants.insert(dds.id(), dds); m_nasatAircraftParticipants.insert(dds.id, dds);
m_dts->publish(fromDb(napDb)); m_dts->publish(fromDb(napDb));
m_mainHandler->handlerParticipant()->onNasatAircraftParticipantCreated(request); m_mainHandler->handlerParticipant()->onNasatAircraftParticipantCreated(request);
return Core::FunctionReplyObject(request.id()); return Core::FunctionReplyObject(request.id);
} }
int HandlerNasatAircraftParticipant::removeNapsOfExercise(int exerciseId) int HandlerNasatAircraftParticipant::removeNapsOfExercise(int exerciseId)
@@ -306,15 +306,15 @@ int HandlerNasatAircraftParticipant::removeNapsOfExercise(int exerciseId)
for (const NasatAircraftParticipant &nap : std::as_const(napsCopy)) for (const NasatAircraftParticipant &nap : std::as_const(napsCopy))
{ {
if (nap.exerciseId() == exerciseId) if (nap.exerciseId == exerciseId)
{ {
DEBUG_LOG(m_logger) << Q_FUNC_INFO << " nap has to be removed: nap=" << nap; DEBUG_LOG(m_logger) << Q_FUNC_INFO << " nap has to be removed: nap=" << nap;
NasatAircraftParticipant napToTriggerRemoving; NasatAircraftParticipant napToTriggerRemoving;
napToTriggerRemoving.id(nap.id()); napToTriggerRemoving.id = nap.id;
napToTriggerRemoving.exerciseId(0); napToTriggerRemoving.exerciseId = 0;
napToTriggerRemoving.participantId(0); napToTriggerRemoving.participantId = 0;
napToTriggerRemoving.nasatAircraftId(0); napToTriggerRemoving.nasatAircraftId = 0;
modifyNasatAircraftParticipantRequest(napToTriggerRemoving); modifyNasatAircraftParticipantRequest(napToTriggerRemoving);
++count; ++count;
} }
@@ -133,12 +133,12 @@ void HandlerNasatImpact::nasatImpact(int nasatId, const Core::GeoPosition &pos,
const qint64 tNow = dtNow.toMSecsSinceEpoch() + 5000; const qint64 tNow = dtNow.toMSecsSinceEpoch() + 5000;
AreaEffectSimulation::ExplosionClusterSingleEffectOnlyRequest ecReq; AreaEffectSimulation::ExplosionClusterSingleEffectOnlyRequest ecReq;
ecReq.id(0); ecReq.id = 0;
ecReq.effectStart(impactTimeMsec > tNow ? impactTimeMsec : tNow); ecReq.effectStart = impactTimeMsec > tNow ? impactTimeMsec : tNow;
ecReq.name(QStringLiteral("NASAT_%1_%2_%3").arg(nasatId).arg(munitionCode).arg(dtNow.toString(QStringLiteral("dd hh:mm:ss"))).toStdString()); ecReq.name = QStringLiteral("NASAT_%1_%2_%3").arg(nasatId).arg(munitionCode).arg(dtNow.toString(QStringLiteral("dd hh:mm:ss"))).toStdString();
ecReq.element(ecReq.name()); ecReq.element = ecReq.name;
ecReq.impactPosition(Core::GeoPosition2D(pos.lon(), pos.lat())); ecReq.impactPosition(Core::GeoPosition2D(pos.lon, pos.lat));
ecReq.chargeTypeId(chargeTypeIdVal); ecReq.chargeTypeId = chargeTypeIdVal;
@@ -153,31 +153,31 @@ void HandlerNasatImpact::nasatImpact(int nasatId, const Core::GeoPosition &pos,
AreaEffectSimulation::ExplosionClusterModifyRequest ecCommonModifyRequest; AreaEffectSimulation::ExplosionClusterModifyRequest ecCommonModifyRequest;
ecCommonModifyRequest.id(0); ecCommonModifyRequest.id = 0;
ecCommonModifyRequest.effectStart(impactTimeMsec > tNow ? impactTimeMsec : tNow); ecCommonModifyRequest.effectStart = impactTimeMsec > tNow ? impactTimeMsec : tNow;
ecCommonModifyRequest.effectDuration(1000); ecCommonModifyRequest.effectDuration = 1000;
ecCommonModifyRequest.effectSourceId(ProjectDataManagement::EffectSource::ES_Internal); ecCommonModifyRequest.effectSourceId = ProjectDataManagement::EffectSource::ES_Internal;
ecCommonModifyRequest.explosionGeometry(AreaEffectSimulation::AesExplosionGeometry_def::EgPoint); ecCommonModifyRequest.explosionGeometry = AreaEffectSimulation::AesExplosionGeometry::EgPoint;
ecCommonModifyRequest.chargeStruct().chargeTypeId(chargeTypeIdVal); ecCommonModifyRequest.chargeStruct.chargeTypeId = chargeTypeIdVal;
ecCommonModifyRequest.chargeStruct().igniterTypeId(fuseTypeToPdmIgniterType(fuseType)); ecCommonModifyRequest.chargeStruct.igniterTypeId = fuseTypeToPdmIgniterType(fuseType);
ecCommonModifyRequest.area().cornerBottomLeft(Core::GeoPosition2D(pos.lon(), pos.lat())); ecCommonModifyRequest.area.cornerBottomLeft(Core::GeoPosition2D(pos.lon, pos.lat));
ecCommonModifyRequest.name(QStringLiteral("NASAT_%1_%2_%3").arg(nasatId).arg(munitionCode).arg(dtNow.toString(QStringLiteral("dd hh:mm:ss"))).toStdString()); ecCommonModifyRequest.name = QStringLiteral("NASAT_%1_%2_%3").arg(nasatId).arg(munitionCode).arg(dtNow.toString(QStringLiteral("dd hh:mm:ss"))).toStdString();
ecCommonModifyRequest.element(ecReq.name()); ecCommonModifyRequest.element = ecReq.name;
ecCommonModifyRequest.mhpCount(1); ecCommonModifyRequest.mhpCount = 1;
ecCommonModifyRequest.impactCount(1); ecCommonModifyRequest.impactCount = 1;
ecCommonModifyRequest.flightDuration(flightTimeMsec); ecCommonModifyRequest.flightDuration = flightTimeMsec;
@@ -197,10 +197,10 @@ void HandlerNasatImpact::nasatImpact(int nasatId, const Core::GeoPosition &pos,
ecReq.partyId(nap->partyId()); ecReq.partyId = nap->partyId();
ecCommonModifyRequest.partyId(nap->partyId()); ecCommonModifyRequest.partyId = nap->partyId();
ecCommonModifyRequest.participantId(nap->participantId()); ecCommonModifyRequest.participantId = nap->participantId();
int success = nap->publisher()->publish(ecCommonModifyRequest, this); int success = nap->publisher()->publish(ecCommonModifyRequest, this);
@@ -247,17 +247,17 @@ void HandlerNasatImpact::nasatImpact(int nasatId, const Core::GeoPosition &pos,
void HandlerNasatImpact::onChargeTypeChanged(const ProjectDataManagement::ChargeType &ct) void HandlerNasatImpact::onChargeTypeChanged(const ProjectDataManagement::ChargeType &ct)
{ {
const QJsonDocument doc(QJsonDocument::fromJson(QByteArray::fromRawData(ct.properties().c_str(), ct.properties().size()))); const QJsonDocument doc(QJsonDocument::fromJson(QByteArray::fromRawData(ct.properties.c_str(), ct.properties.size())));
const QJsonObject obj(doc.object()); const QJsonObject obj(doc.object());
if (!obj.contains(QLatin1String("nasatId"))) if (!obj.contains(QLatin1String("nasatId")))
return; return;
int nasatId = obj.value(QLatin1String("nasatId")).toInt(); int nasatId = obj.value(QLatin1String("nasatId")).toInt();
if (nasatId == 0) if (nasatId == 0)
{ {
WARNING_LOG(m_logger) << "Found charge with an invalid property 'nasatId', id: " << ct.id(); WARNING_LOG(m_logger) << "Found charge with an invalid property 'nasatId', id: " << ct.id;
return; return;
} }
m_chargeMapping.insert(nasatId, ct.id()); m_chargeMapping.insert(nasatId, ct.id);
} }
@@ -30,7 +30,6 @@ public Q_SLOTS:
void nasatImpact(int nasatId, const Core::GeoPosition &pos, qint64 flightTimeMsec, qint64 impactTimeMsec, int munitionCode, FuseType fuseType = FuseType::Instant); void nasatImpact(int nasatId, const Core::GeoPosition &pos, qint64 flightTimeMsec, qint64 impactTimeMsec, int munitionCode, FuseType fuseType = FuseType::Instant);
void onChargeTypeChanged(const ProjectDataManagement::ChargeType &ct); void onChargeTypeChanged(const ProjectDataManagement::ChargeType &ct);
private: private:
NGL::INGLLogger &m_logger;
int chargeTypeFromMunitionCode(int nasatChargeCode) const; int chargeTypeFromMunitionCode(int nasatChargeCode) const;
int fuseTypeToPdmIgniterType(FuseType fusetype) const; int fuseTypeToPdmIgniterType(FuseType fusetype) const;
private: private:
@@ -35,7 +35,7 @@ static Nasat9Liner createDds9Liner(const NasatNineLiner &nasatNineLiner)
{ {
Nasat9Liner nl; Nasat9Liner nl;
const qint64 tsMSec = nasatNineLiner.timestamp <= 0 ? QDateTime::currentMSecsSinceEpoch() : qRound64(nasatNineLiner.timestamp * 1000); const qint64 tsMSec = nasatNineLiner.timestamp <= 0 ? QDateTime::currentMSecsSinceEpoch() : qRound64(nasatNineLiner.timestamp * 1000);
nl.sampleTime(tsMSec); nl.sampleTime = tsMSec;
if (nasatNineLiner.initialPointMode != 0) if (nasatNineLiner.initialPointMode != 0)
nl.initialPoint(Core::GeoPosition2D(LtsCoordTrans::deg2rad() * nasatNineLiner.initialPoint.lon, nl.initialPoint(Core::GeoPosition2D(LtsCoordTrans::deg2rad() * nasatNineLiner.initialPoint.lon,
@@ -43,19 +43,19 @@ static Nasat9Liner createDds9Liner(const NasatNineLiner &nasatNineLiner)
if (nasatNineLiner.heading2InitialPointMode != Heading2InitialPointMode::Undefined) if (nasatNineLiner.heading2InitialPointMode != Heading2InitialPointMode::Undefined)
{ {
nl.hdg2InitialPointMode(static_cast<Hdg2InitialPointMode::inner_enum>(nasatNineLiner.heading2InitialPointMode)); nl.hdg2InitialPointMode = static_cast<Hdg2InitialPointMode>(nasatNineLiner.heading2InitialPointMode);
nl.hdgInitialPoint2Target(nasatNineLiner.headingInitialPoint2Target); nl.hdgInitialPoint2Target = nasatNineLiner.headingInitialPoint2Target;
} }
else else
{ {
nl.hdg2InitialPointMode(Hdg2InitialPointMode_def::Undefined); nl.hdg2InitialPointMode = Hdg2InitialPointMode::Undefined;
nl.hdgInitialPoint2Target(-1); nl.hdgInitialPoint2Target = -1;
} }
if (nasatNineLiner.distance2InitialPointMode != 0) if (nasatNineLiner.distance2InitialPointMode != 0)
nl.distanceInitialPoint2Target(nasatNineLiner.distanceInitialPoint2Target); nl.distanceInitialPoint2Target = nasatNineLiner.distanceInitialPoint2Target;
else else
nl.distanceInitialPoint2Target(-1); nl.distanceInitialPoint2Target = -1;
if (nasatNineLiner.targetPositionMode != 0) if (nasatNineLiner.targetPositionMode != 0)
{ {
@@ -66,41 +66,41 @@ static Nasat9Liner createDds9Liner(const NasatNineLiner &nasatNineLiner)
} }
else else
{ {
nl.targetPosition(Core::GeoPosition(std::nan(""), std::nan(""), std::nan(""))); nl.targetPosition = Core::GeoPosition(std::nan(""), std::nan(""), std::nan(""));
} }
if (nasatNineLiner.modeFriendlies != 0) if (nasatNineLiner.modeFriendlies != 0)
{ {
nl.friendliesBearing(nasatNineLiner.friendlies.bearing); nl.friendliesBearing = nasatNineLiner.friendlies.bearing;
nl.friendliesDistance(nasatNineLiner.friendlies.distance); nl.friendliesDistance = nasatNineLiner.friendlies.distance;
} }
else else
{ {
nl.friendliesBearing(-1); nl.friendliesBearing = -1;
nl.friendliesDistance(-1); nl.friendliesDistance = -1;
} }
if (nasatNineLiner.finalAttackHeadingMode != FinalAttackHeadingMode::None) if (nasatNineLiner.finalAttackHeadingMode != FinalAttackHeadingMode::None)
{ {
nl.finalAttackHeading(nasatNineLiner.finalAttackHeading.heading); nl.finalAttackHeading = nasatNineLiner.finalAttackHeading.heading;
if (nasatNineLiner.finalAttackHeadingMode == FinalAttackHeadingMode::HeadingWithSector) if (nasatNineLiner.finalAttackHeadingMode == FinalAttackHeadingMode::HeadingWithSector)
{ {
nl.finalAttackHeadingLow(nasatNineLiner.finalAttackHeading.headingLow); nl.finalAttackHeadingLow = nasatNineLiner.finalAttackHeading.headingLow;
nl.finalAttackHeadingHigh(nasatNineLiner.finalAttackHeading.headingHigh); nl.finalAttackHeadingHigh = nasatNineLiner.finalAttackHeading.headingHigh;
} }
else else
{ {
nl.finalAttackHeadingLow(-1); nl.finalAttackHeadingLow = -1;
nl.finalAttackHeadingHigh(-1); nl.finalAttackHeadingHigh = -1;
} }
} }
else else
nl.finalAttackHeading(-1); nl.finalAttackHeading = -1;
if (nasatNineLiner.timeForTargetMode != TimeForTargetMode::None) if (nasatNineLiner.timeForTargetMode != TimeForTargetMode::None)
nl.timeForTarget(nasatNineLiner.timeForTargetMode == TimeForTargetMode::TimeToTarget ? -nl.timeForTarget() : nl.timeForTarget()); nl.timeForTarget = nasatNineLiner.timeForTargetMode == TimeForTargetMode::TimeToTarget ? -nl.timeForTarget : nl.timeForTarget;
else else
nl.timeForTarget(0); nl.timeForTarget = 0;
return nl; return nl;
} }
@@ -125,7 +125,7 @@ void HandlerNasatNineLiner::nineLinerReceived(const NasatNineLiner &nasatNineLin
Nasat9Liner nl = createDds9Liner(nasatNineLiner); Nasat9Liner nl = createDds9Liner(nasatNineLiner);
for (auto it = participants.begin(); it != participants.end(); ++it) for (auto it = participants.begin(); it != participants.end(); ++it)
{ {
nl.id(s_id++); nl.id = s_id++;
const auto &exerciseParticipantId = it.key(); const auto &exerciseParticipantId = it.key();
auto nape = it.value(); auto nape = it.value();
@@ -134,8 +134,8 @@ void HandlerNasatNineLiner::nineLinerReceived(const NasatNineLiner &nasatNineLin
<< ", exerciseParticipantId.participantId=" << exerciseParticipantId.participantId; << ", exerciseParticipantId.participantId=" << exerciseParticipantId.participantId;
auto &nineLinerParticipant = m_nineLiner[exerciseParticipantId]; auto &nineLinerParticipant = m_nineLiner[exerciseParticipantId];
nl.isCurrent(true); nl.isCurrent = true;
nl.participantId(exerciseParticipantId.participantId); nl.participantId = exerciseParticipantId.participantId;
nineLinerParticipant.push_back(nl); nineLinerParticipant.push_back(nl);
@@ -170,7 +170,7 @@ void HandlerNasatNineLiner::onNasatAircraftParticipantRemoved(const NasatAircraf
const int nasatId = m_mainHandler->nasatAircraft()->nasatIdFromNasatAircraftId(nap.nasatAircraftId()); const int nasatId = m_mainHandler->nasatAircraft()->nasatIdFromNasatAircraftId(nap.nasatAircraftId);
INFO_LOG(m_logger) << " onNasatAircraftParticipantRemoved, nap = " << nap << ", nasatId = " << nasatId; INFO_LOG(m_logger) << " onNasatAircraftParticipantRemoved, nap = " << nap << ", nasatId = " << nasatId;
if (nasatId < 0) if (nasatId < 0)
{ {
@@ -182,7 +182,7 @@ void HandlerNasatNineLiner::onNasatAircraftParticipantRemoved(const NasatAircraf
if (participants.isEmpty()) if (participants.isEmpty())
{ {
INFO_LOG(m_logger) << "No exercise participants found to publish 9-liner for nasat aircraft with id " INFO_LOG(m_logger) << "No exercise participants found to publish 9-liner for nasat aircraft with id "
<< nap.nasatAircraftId(); << nap.nasatAircraftId;
return; return;
} }
@@ -200,13 +200,13 @@ void HandlerNasatNineLiner::onNasatAircraftParticipantRemoved(const NasatAircraf
if (!nineLinerParticipant.isEmpty()) if (!nineLinerParticipant.isEmpty())
{ {
auto &oldLast = nineLinerParticipant.last(); auto &oldLast = nineLinerParticipant.last();
if (oldLast.isCurrent()) if (oldLast.isCurrent)
{ {
DEBUG_LOG(m_logger) << Q_FUNC_INFO << " updating for removing " DEBUG_LOG(m_logger) << Q_FUNC_INFO << " updating for removing "
<< ", exerciseParticipantId.exerciseId=" << exerciseParticipantId.exerciseId << ", exerciseParticipantId.exerciseId=" << exerciseParticipantId.exerciseId
<< ", exerciseParticipantId.participantId=" << exerciseParticipantId.participantId; << ", exerciseParticipantId.participantId=" << exerciseParticipantId.participantId;
oldLast.sampleTime(QDateTime::currentMSecsSinceEpoch()); oldLast.sampleTime = QDateTime::currentMSecsSinceEpoch();
oldLast.isCurrent(false); oldLast.isCurrent = false;
nape->publisher()->publish(oldLast); nape->publisher()->publish(oldLast);
} }
} }
@@ -29,14 +29,14 @@ NasatAircraftParticipantEx::NasatAircraftParticipantEx(const NasatAircraftPartic
, m_publisher(publisher) , m_publisher(publisher)
{ {
DEBUG_LOG(m_logger) << Q_FUNC_INFO << " START"; DEBUG_LOG(m_logger) << Q_FUNC_INFO << " START";
m_publisher->addParticipantToWatch(m_nap.participantId()); m_publisher->addParticipantToWatch(m_nap.participantId);
DEBUG_LOG(m_logger) << Q_FUNC_INFO << " END"; DEBUG_LOG(m_logger) << Q_FUNC_INFO << " END";
} }
NasatAircraftParticipantEx::~NasatAircraftParticipantEx() NasatAircraftParticipantEx::~NasatAircraftParticipantEx()
{ {
DEBUG_LOG(m_logger) << Q_FUNC_INFO << " START"; DEBUG_LOG(m_logger) << Q_FUNC_INFO << " START";
m_publisher->removeParticipantToWatch(m_nap.participantId()); m_publisher->removeParticipantToWatch(m_nap.participantId);
DEBUG_LOG(m_logger) << Q_FUNC_INFO << " END"; DEBUG_LOG(m_logger) << Q_FUNC_INFO << " END";
} }
@@ -51,6 +51,7 @@ int NasatAircraftParticipantEx::partyId() const
HandlerParticipant::HandlerParticipant(Initialization *mainHandler) HandlerParticipant::HandlerParticipant(Initialization *mainHandler)
: m_mainHandler(mainHandler) : m_mainHandler(mainHandler)
, m_logger(getLogger("ParticipantPositionPublisher"))
{} {}
HandlerParticipant::~HandlerParticipant() HandlerParticipant::~HandlerParticipant()
@@ -66,30 +67,30 @@ QHash<ExerciseParticipantKey, NasatAircraftParticipantEx *> HandlerParticipant::
void HandlerParticipant::onNasatAircraftParticipantCreated(const NasatAircraftParticipant &nap) void HandlerParticipant::onNasatAircraftParticipantCreated(const NasatAircraftParticipant &nap)
{ {
const int nasatId = m_mainHandler->nasatAircraft()->nasatIdFromNasatAircraftId(nap.nasatAircraftId()); const int nasatId = m_mainHandler->nasatAircraft()->nasatIdFromNasatAircraftId(nap.nasatAircraftId);
auto it = m_activePublisher.find(nasatId); auto it = m_activePublisher.find(nasatId);
if (it == m_activePublisher.end()) if (it == m_activePublisher.end())
return createNasatAircraftParticipant(nap, nasatId); return createNasatAircraftParticipant(nap, nasatId);
auto itParticipants = it.value().find(ExerciseParticipantKey(nap.exerciseId(), nap.participantId())); auto itParticipants = it.value().find(ExerciseParticipantKey(nap.exerciseId, nap.participantId));
if (itParticipants == it.value().end()) if (itParticipants == it.value().end())
return createNasatAircraftParticipant(nap, nasatId); return createNasatAircraftParticipant(nap, nasatId);
} }
void HandlerParticipant::onNasatAircraftParticipantRemoved(const NasatAircraftParticipant &nap) void HandlerParticipant::onNasatAircraftParticipantRemoved(const NasatAircraftParticipant &nap)
{ {
const int nasatId = m_mainHandler->nasatAircraft()->nasatIdFromNasatAircraftId(nap.nasatAircraftId()); const int nasatId = m_mainHandler->nasatAircraft()->nasatIdFromNasatAircraftId(nap.nasatAircraftId);
auto it = m_activePublisher.find(nasatId); auto it = m_activePublisher.find(nasatId);
if (it == m_activePublisher.end()) if (it == m_activePublisher.end())
{ {
WARNING_LOG(m_logger) << "No publisher for NasatAircraftParticipant " << nasatId << "(" << nap.nasatAircraftId() << ") found !?"; WARNING_LOG(m_logger) << "No publisher for NasatAircraftParticipant " << nasatId << "(" << nap.nasatAircraftId << ") found !?";
return; return;
} }
auto itParticipants = it.value().find(ExerciseParticipantKey(nap.exerciseId(), nap.participantId())); auto itParticipants = it.value().find(ExerciseParticipantKey(nap.exerciseId, nap.participantId));
if (itParticipants == it.value().end()) if (itParticipants == it.value().end())
{ {
WARNING_LOG(m_logger) << "No participant entry for NasatAircraftParticipant " << nasatId << "(" WARNING_LOG(m_logger) << "No participant entry for NasatAircraftParticipant " << nasatId << "("
<< nap.exerciseId() << "," << nap.participantId() << ") found !?"; << nap.exerciseId << "," << nap.participantId << ") found !?";
return; return;
} }
@@ -154,11 +155,11 @@ void HandlerParticipant::onNasatAircraftPosition(int nasatId, const Core::GeoPos
const auto &h = it.value(); const auto &h = it.value();
TrainingAreaBase::EquipmentPosition tabPos; TrainingAreaBase::EquipmentPosition tabPos;
tabPos.position().position(pos); tabPos.position.position = pos;
tabPos.sampleTime(ts); tabPos.sampleTime = ts;
for (const NasatAircraftParticipantEx *napEx : h) for (const NasatAircraftParticipantEx *napEx : h)
{ {
tabPos.equipmentNumber(-napEx->participantId()); tabPos.equipmentNumber = -napEx->participantId();
int success = napEx->publisher()->publish(tabPos); int success = napEx->publisher()->publish(tabPos);
if (success) if (success)
DEBUG_LOG(m_logger) << "Publishing positon: " << tabPos << " to exercise " << napEx->exerciseId() DEBUG_LOG(m_logger) << "Publishing positon: " << tabPos << " to exercise " << napEx->exerciseId()
@@ -183,8 +184,8 @@ void HandlerParticipant::createNasatAircraftParticipant(const NasatAircraftParti
DEBUG_LOG(m_logger) << "Creating position publisher for " << nap DEBUG_LOG(m_logger) << "Creating position publisher for " << nap
<< ", nasatId=" << nasatId; << ", nasatId=" << nasatId;
auto *napEx = new NasatAircraftParticipantEx(nap, auto *napEx = new NasatAircraftParticipantEx(nap,
m_mainHandler->dds()->ddsParticipant(nap.exerciseId())); m_mainHandler->dds()->ddsParticipant(nap.exerciseId));
m_activePublisher[nasatId][ExerciseParticipantKey(nap.exerciseId(), nap.participantId())] = napEx; m_activePublisher[nasatId][ExerciseParticipantKey(nap.exerciseId, nap.participantId)] = napEx;
connect(napEx->publisher().get(), &Participant2Dds::participantRemoved, connect(napEx->publisher().get(), &Participant2Dds::participantRemoved,
m_mainHandler->nasatAircraftParticipant().get(), &HandlerNasatAircraftParticipant::participantRemoved, m_mainHandler->nasatAircraftParticipant().get(), &HandlerNasatAircraftParticipant::participantRemoved,
Qt::QueuedConnection); Qt::QueuedConnection);
@@ -24,9 +24,9 @@ struct NasatAircraftParticipantEx final
std::shared_ptr<Participant2Dds> publisher() const { return m_publisher; } std::shared_ptr<Participant2Dds> publisher() const { return m_publisher; }
int exerciseId() const { return m_nap.exerciseId(); } int exerciseId() const { return m_nap.exerciseId; }
int partyId() const; int partyId() const;
int participantId() const { return m_nap.participantId(); } int participantId() const { return m_nap.participantId; }
const NasatAircraftParticipant &participant() const { return m_nap; } const NasatAircraftParticipant &participant() const { return m_nap; }
Q_DISABLE_COPY(NasatAircraftParticipantEx) Q_DISABLE_COPY(NasatAircraftParticipantEx)
@@ -84,6 +84,10 @@ private:
QHash<int, QHash<ExerciseParticipantKey, NasatAircraftParticipantEx*>> m_activePublisher; QHash<int, QHash<ExerciseParticipantKey, NasatAircraftParticipantEx*>> m_activePublisher;
// Qt5 declares m_logger in both classes of this header (Participant2Dds above and
// HandlerParticipant here); the dedup pass kept only the first, so the uses in
// handler_participant.cpp had no member. Restored to match the Qt5 declaration.
NGL::INGLLogger &m_logger;
QHash<int, Core::GeoPosition> m_lastNasatPositionsAsCoreGeoposition; QHash<int, Core::GeoPosition> m_lastNasatPositionsAsCoreGeoposition;
Initialization *m_mainHandler; Initialization *m_mainHandler;
@@ -10,7 +10,7 @@ namespace GuezNasat
{ {
using LOGGER_T = NGL::INGLLogger &; using LOGGER_T = NGL::INGLLogger &;
GNA_COMMON_EXPORT LOGGER_T getLogger(const char *name); SVCGNACOMMON_EXPORT LOGGER_T getLogger(const char *name);
inline LOGGER_T getLogger(const QString &loggerName) inline LOGGER_T getLogger(const QString &loggerName)
{ {
return getLogger(loggerName.toUtf8().constData()); return getLogger(loggerName.toUtf8().constData());
@@ -90,7 +90,6 @@ public slots:
void participantCesHitInformationRequest(const TrainingAreaBase::TetraIcd::CesHitInformation &request); void participantCesHitInformationRequest(const TrainingAreaBase::TetraIcd::CesHitInformation &request);
private: private:
NGL::INGLLogger &m_logger;
void createParticipant(const ParticipantManagement::Participant &participant); void createParticipant(const ParticipantManagement::Participant &participant);
bool createHuman(const ParticipantManagement::Participant &participant); bool createHuman(const ParticipantManagement::Participant &participant);
bool createGroundVehicle(const ParticipantManagement::Participant &participant); bool createGroundVehicle(const ParticipantManagement::Participant &participant);
@@ -54,7 +54,6 @@ public Q_SLOTS:
void onExternalEquipmentNumberRemoved(int equipNo); void onExternalEquipmentNumberRemoved(int equipNo);
private: private:
NGL::INGLLogger &m_logger;
void sendDataCommunicationState(int equipNo, bool bIsAvailable); void sendDataCommunicationState(int equipNo, bool bIsAvailable);
bool sendTelegramInternal(const TrainingAreaBase::TetraIcd::TrainingAreaTelegram *data, bool sendTelegramInternal(const TrainingAreaBase::TetraIcd::TrainingAreaTelegram *data,
const QString &type, int exerciseId); const QString &type, int exerciseId);
@@ -87,7 +87,6 @@ private Q_SLOTS:
#endif #endif
private: private:
NGL::INGLLogger &m_logger;
template <typename T> template <typename T>
void onSendRequest(const T &item); void onSendRequest(const T &item);
template <typename T> template <typename T>
@@ -89,7 +89,6 @@ public slots:
void participantBiteRequest(const TrainingAreaBase::TetraIcd::DemandBite &request); void participantBiteRequest(const TrainingAreaBase::TetraIcd::DemandBite &request);
private: private:
NGL::INGLLogger &m_logger;
void createParticipant(const ParticipantManagement::Participant &participant); void createParticipant(const ParticipantManagement::Participant &participant);
bool createHuman(const ParticipantManagement::Participant &participant); bool createHuman(const ParticipantManagement::Participant &participant);
bool createGroundVehicle(const ParticipantManagement::Participant &participant); bool createGroundVehicle(const ParticipantManagement::Participant &participant);
@@ -53,7 +53,6 @@ public Q_SLOTS:
void onExternalEquipmentNumberRemoved(int equipNo); void onExternalEquipmentNumberRemoved(int equipNo);
private: private:
NGL::INGLLogger &m_logger;
void sendDataCommunicationState(int equipNo, bool bIsAvailable); void sendDataCommunicationState(int equipNo, bool bIsAvailable);
bool sendTelegramInternal(const TrainingAreaBase::TetraIcd::TrainingAreaTelegram *data, bool sendTelegramInternal(const TrainingAreaBase::TetraIcd::TrainingAreaTelegram *data,
const QString &type, int exerciseId); const QString &type, int exerciseId);
@@ -109,6 +109,7 @@ DataManager::DataManager(const std::shared_ptr<IWMS2ECC_Impl> &wms2ecc, const st
, m_wms2ecc(wms2ecc) , m_wms2ecc(wms2ecc)
, m_ddsHandler(ddsHandler) , m_ddsHandler(ddsHandler)
, m_exercisesHandler(exHandler) , m_exercisesHandler(exHandler)
, m_logger(getLogger("DataManager"))
{ {
connect(m_wsReconnectTimer, &QTimer::timeout, connect(m_wsReconnectTimer, &QTimer::timeout,
this, &DataManager::openWebSocket); this, &DataManager::openWebSocket);
@@ -174,5 +174,6 @@ private:
std::shared_ptr<IWMS2ECC_Impl> m_wms2ecc; std::shared_ptr<IWMS2ECC_Impl> m_wms2ecc;
std::shared_ptr<DdsHandler> m_ddsHandler; std::shared_ptr<DdsHandler> m_ddsHandler;
std::shared_ptr<ExercisesHandler> m_exercisesHandler; std::shared_ptr<ExercisesHandler> m_exercisesHandler;
NGL::INGLLogger &m_logger;
}; };
} }
@@ -4,7 +4,7 @@
#include <DDS/DDSConnector/dds_connector.h> #include <DDS/DDSConnector/dds_connector.h>
#include <ExerciseManagement/exm_dtc.h> #include <ExerciseManagement/exm_dtc.h>
#include <ParticipantManagement/ppm.hpp> #include <ParticipantManagement/ppm_dtc.h>
#include <ParticipantManagement/ppm_ftc.h> #include <ParticipantManagement/ppm_ftc.h>
#include "logger.h" #include "logger.h"
@@ -3,7 +3,7 @@
#pragma once #pragma once
#include <DDS/DDSConnector/dds_connector.h> #include <DDS/DDSConnector/dds_connector.h>
#include <ParticipantManagement/ppm.hpp> #include <ParticipantManagement/ppm_dtc.h>
#include <ParticipantManagement/ppm_ftc.h> #include <ParticipantManagement/ppm_ftc.h>
#include "logger.h" #include "logger.h"
@@ -39,7 +39,6 @@ Q_SIGNALS:
void participantChanged(const ParticipantManagement::Participant&, DataModification modType, int exerciseId); void participantChanged(const ParticipantManagement::Participant&, DataModification modType, int exerciseId);
private: private:
NGL::INGLLogger &m_logger;
void participantAdded(const ParticipantManagement::Participant &participant); void participantAdded(const ParticipantManagement::Participant &participant);
void participantModified(const ParticipantManagement::Participant &participant); void participantModified(const ParticipantManagement::Participant &participant);
void participantRemoved(const ParticipantManagement::Participant &participant); void participantRemoved(const ParticipantManagement::Participant &participant);
@@ -70,7 +70,6 @@ Q_SIGNALS:
void exerciseChanged(const ExerciseManagement::Exercise &data, DataModification modType); void exerciseChanged(const ExerciseManagement::Exercise &data, DataModification modType);
private: private:
NGL::INGLLogger &m_logger;
void exerciseAdded(int exerciseId); void exerciseAdded(int exerciseId);
void exerciseRemoved(int exerciseId); void exerciseRemoved(int exerciseId);
QMultiHash<int, ParticipantInfoStruct>::iterator findParticipant(const ParticipantInfoStruct &pis); QMultiHash<int, ParticipantInfoStruct>::iterator findParticipant(const ParticipantInfoStruct &pis);
@@ -17,7 +17,6 @@ class WlsHandler : public QObject
{ {
Q_OBJECT Q_OBJECT
private: private:
NGL::INGLLogger &m_logger;
enum class WlsTelegramId enum class WlsTelegramId
{ {
VersionInformation = 0, VersionInformation = 0,
@@ -54,7 +53,6 @@ private Q_SLOTS:
void onIncomingData(); void onIncomingData();
void onSocketDisconnected(); void onSocketDisconnected();
private: private:
NGL::INGLLogger &m_logger;
QByteArray parseBuffer(const QByteArray &buffer, QTcpSocket *socket); QByteArray parseBuffer(const QByteArray &buffer, QTcpSocket *socket);
void parseWlsTelegram(const QByteArray &baTele, QTcpSocket *socket); void parseWlsTelegram(const QByteArray &baTele, QTcpSocket *socket);
static bool findNextSyncStartByte(const QByteArray &buffer, int &iCurReadPos); static bool findNextSyncStartByte(const QByteArray &buffer, int &iCurReadPos);