Complete Qt6 migration: full clean build green across groups G1-G12 incl. runtime plugin set

new_docker_build.sh gains Group 12 (212 GUI/Data plugins); fixes LtsUtilsGuiDds visibility (LTO-stripped exports), LtsProjectionWorkstation unity name shadow, 6 unity-off dirs (dup file-scope statics, ddsftc INTERFACE sources) and reconfigures BUILD_FILTERMANAGEMENT/BUILD_PLUGINS_SERVICEMONITOR=ON
This commit is contained in:
berrux-dev committed 2026-10-20 09:36:57 +02:00
1 parent eb1d949edc
commit 815e16368e
1718 files changed
+126739 -18495

No files matched your search

@@ -25,7 +25,7 @@ namespace core
{
inline uint qHash(ProjectDataManagement::PdmEventType et)
{
return ::qHash(et.underlying());
return ::qHash(et);
}
}
}
@@ -166,43 +166,43 @@ void HandlerMineAreas::onMineTriggeredReply(const Core::FunctionReplyObject &rep
// ///////////////////////////////////
void HandlerMineAreas::onAesItemViewChanged(const AreaEffectSimulation::AesItemView &data, DataModification modType)
{
if (data.aesTypeId() != AreaEffectSimulation::AesType::AtMineAreaSingleMines
&& data.aesTypeId() != AreaEffectSimulation::AesType::AtMineArea
&& data.aesTypeId() != AreaEffectSimulation::AesType::AtMineCorridor)
if (data.aesTypeId != AreaEffectSimulation::AesType::AtMineAreaSingleMines
&& data.aesTypeId != AreaEffectSimulation::AesType::AtMineArea
&& data.aesTypeId != AreaEffectSimulation::AesType::AtMineCorridor)
{
DEBUG_LOG(m_logger) << "AesItemView return";
return;
}
const AreaEffectSimulation::MineArea &ma = m_ddsHandler->dtcAes()->mineArea(data.aesItemId());
DEBUG_LOG(m_logger) << "aesItemId=" << data.aesItemId()
<< " chargeTypeId=" << data.chargeStruct().chargeTypeId()
<< " isCentral=" << ma.isCentral();
const AreaEffectSimulation::MineArea &ma = m_ddsHandler->dtcAes()->mineArea(data.aesItemId);
DEBUG_LOG(m_logger) << "aesItemId=" << data.aesItemId
<< " chargeTypeId=" << data.chargeStruct.chargeTypeId
<< " isCentral=" << ma.isCentral;
// 240 = Verlegemine muss immer berechnet werden.
if (!ma.isCentral() && (data.chargeStruct().chargeTypeId() != 240))
if (!ma.isCentral && (data.chargeStruct.chargeTypeId != 240))
return;
if (data.effectStateId() == AreaEffectSimulation::AesEffectState::EsExpired)
if (data.effectStateId == AreaEffectSimulation::AesEffectState::EsExpired)
{
DEBUG_LOG(m_logger) << "AesItemView expired return id=" << data.aesItemId();
aesItemViewRemoved(data.aesItemId());
DEBUG_LOG(m_logger) << "AesItemView expired return id=" << data.aesItemId;
aesItemViewRemoved(data.aesItemId);
return;
}
if (m_ddsHandler->isDus(data.chargeStruct()))
if (m_ddsHandler->isDus(data.chargeStruct))
{
DEBUG_LOG(m_logger) << "isDus aesItemId=" << data.aesItemId()
<< " chargeTypeId=" << data.chargeStruct().chargeTypeId() << " do not consider";
DEBUG_LOG(m_logger) << "isDus aesItemId=" << data.aesItemId
<< " chargeTypeId=" << data.chargeStruct.chargeTypeId << " do not consider";
return;
}
const int aesItemId = data.aesItemId();
const int aesItemId = data.aesItemId;
DEBUG_LOG(m_logger) << "Got AesItemView id: " << aesItemId
<< ", type: " << data.aesTypeId()
<< ", effectState: " << data.effectStateId()
<< ", type: " << data.aesTypeId
<< ", effectState: " << data.effectStateId
<< ", modType: " << modType;
DEBUG_LOG(m_logger) << " m_aesItemViews.size=" << m_aesItemViews.size();
@@ -213,7 +213,7 @@ void HandlerMineAreas::onAesItemViewChanged(const AreaEffectSimulation::AesItemV
return;
}
if (data.aesTypeId() == AreaEffectSimulation::AesType::AtMineAreaSingleMines)
if (data.aesTypeId == AreaEffectSimulation::AesType::AtMineAreaSingleMines)
{
if (!m_aesItemViews.contains(aesItemId))
{
@@ -222,21 +222,21 @@ void HandlerMineAreas::onAesItemViewChanged(const AreaEffectSimulation::AesItemV
}
// build Polygon Mines:
DEBUG_LOG(m_logger) << " m_aesItemViews.size=" << m_aesItemViews.size();
auto &formMines = m_aesItemViews[data.aesItemId()].formMines;
auto &formMines = m_aesItemViews[data.aesItemId].formMines;
DEBUG_LOG(m_logger) << " m_aesItemViews.size=" << m_aesItemViews.size();
int &zone = m_aesItemViews[data.aesItemId()].zone;
int &zone = m_aesItemViews[data.aesItemId].zone;
DEBUG_LOG(m_logger) << " m_aesItemViews.size=" << m_aesItemViews.size();
formMines.clear();
formMines.reserve(data.form().size());
for (const Core::GeoPosition2D &pointGeo : data.form())
formMines.reserve(data.form.size());
for (const Core::GeoPosition2D &pointGeo : data.form)
formMines.push_back(CentralEffectSimulation::geographic2Utm(pointGeo, &zone));
return;
}
const AreaEffectSimulation::AesEffectState &effectState = data.effectStateId();
const double impactRadius = m_ddsHandler->chargeTypeRadius(data.chargeStruct());
const AreaEffectSimulation::AesEffectState &effectState = data.effectStateId;
const double impactRadius = m_ddsHandler->chargeTypeRadius(data.chargeStruct);
DEBUG_LOG(m_logger) << "impactRadius=" << impactRadius;
switch (effectState.underlying())
switch (effectState)
{
case AreaEffectSimulation::AesEffectState::EsPrepared:
{
@@ -244,11 +244,11 @@ void HandlerMineAreas::onAesItemViewChanged(const AreaEffectSimulation::AesItemV
}
case AreaEffectSimulation::AesEffectState::EsActivated:
{
const auto aesItemViewUtm(CentralEffectSimulation::AesItemViewUtm::create(data, m_aesItemViews[data.aesItemId()], impactRadius));
const auto aesItemViewUtm(CentralEffectSimulation::AesItemViewUtm::create(data, m_aesItemViews[data.aesItemId], impactRadius));
DEBUG_LOG(m_logger) << "EsActivated m_aesItemViews.insert data.aesItemId()= " << data.aesItemId()
DEBUG_LOG(m_logger) << "EsActivated m_aesItemViews.insert data.aesItemId()= " << data.aesItemId
<< " m_aesItemViews.size=" << m_aesItemViews.size();
m_aesItemViews.insert(data.aesItemId(), aesItemViewUtm);
m_aesItemViews.insert(data.aesItemId, aesItemViewUtm);
DEBUG_LOG(m_logger) << " m_aesItemViews.size=" << m_aesItemViews.size();
printAesItemViews();
@@ -277,13 +277,13 @@ void HandlerMineAreas::onNewOutdoorPosition(const CentralEffectSimulation::Handl
if (m_handlerParticipant->isOutdated(participantPosition))
return;
if (m_handlerParticipant->getEquipmentNumber(participantPosition.participantId()) == 0)
if (m_handlerParticipant->getEquipmentNumber(participantPosition.participantId) == 0)
{
DEBUG_LOG(m_logger) << "Not handle position: participant has no equipment number";
return;
}
ParticipantManagement::TypeClass typeClass = m_handlerParticipant->typeClassFromTypeId(participantPosition.participantTypeId());
ParticipantManagement::TypeClass typeClass = m_handlerParticipant->typeClassFromTypeId(participantPosition.participantTypeId);
// can happen since the positions are collected for all participants (no check if it is a SupportEntity or similar)
if (typeClass == ParticipantManagement::TypeClass::Unit ||
typeClass == ParticipantManagement::TypeClass::SupportUnit ||
@@ -292,51 +292,51 @@ void HandlerMineAreas::onNewOutdoorPosition(const CentralEffectSimulation::Handl
typeClass == ParticipantManagement::TypeClass::Vessel ||
typeClass == ParticipantManagement::TypeClass::Unknown)
{
DEBUG_LOG(m_logger) << "return New Position Participant with id " << participantPosition.participantId()
DEBUG_LOG(m_logger) << "return New Position Participant with id " << participantPosition.participantId
<< " has invalid typeClass: " << typeClass;
return;
}
int equipmentNumber = m_ddsHandler->participantId2EquipNo(participantPosition.participantId());
int equipmentNumber = m_ddsHandler->participantId2EquipNo(participantPosition.participantId);
if (equipmentNumber <= 0)
{
TRACE_LOG(m_logger) << "return New Position - participant has no equipment number"
<< " participantId=" << participantPosition.participantId()
<< " participantId=" << participantPosition.participantId
<< " typeClass=" << typeClass;
return;
}
if (participantPosition.vulnerabilityState == ProjectDataManagement::VulnerabilityState::CatastrophicKill)
if (participantPosition.vulnerabilityState == ProjectDataManagement::VulnerabilityState::VulnerabilityState_CatastrophicKill)
{
DEBUG_LOG(m_logger) << "New Position CatastrophicKill return";
return;
}
if (m_mineLists.contains(participantPosition.participantId()))
if (m_mineLists.contains(participantPosition.participantId))
{
DEBUG_LOG(m_logger) << "Naechste Mine schicken ohne Bounding-Box-Check... return"
<< " Anzahl Minen in Liste:" << m_mineLists[participantPosition.participantId()].size()
<< " Anzahl Minen in Liste:" << m_mineLists[participantPosition.participantId].size()
<< " cesMaxPeriodForCashedMines=" << Settings::cesPeriodStoredMinesOutdated();
//DEBUG_LOG(m_logger) << "Settings::cesMaxPeriodForCashedMines() =" << Settings::cesMaxPeriodForCashedMines();
if ((m_mineLists[participantPosition.participantId()].size() > 0)
&& (QDateTime::currentMSecsSinceEpoch() - m_mineLists[participantPosition.participantId()][0].time < Settings::cesPeriodStoredMinesOutdated()))
if ((m_mineLists[participantPosition.participantId].size() > 0)
&& (QDateTime::currentMSecsSinceEpoch() - m_mineLists[participantPosition.participantId][0].time < Settings::cesPeriodStoredMinesOutdated()))
{
DEBUG_LOG(m_logger) << "Send Stored mines";
// Search mine with the next no distance
int distance = m_mineLists[participantPosition.participantId()][0].distance;
int distance = m_mineLists[participantPosition.participantId][0].distance;
int index = 0;
for (int i = 0; i < m_mineLists[participantPosition.participantId()].size(); i++)
for (int i = 0; i < m_mineLists[participantPosition.participantId].size(); i++)
{
if (m_mineLists[participantPosition.participantId()][i].distance < distance)
if (m_mineLists[participantPosition.participantId][i].distance < distance)
{
distance = m_mineLists[participantPosition.participantId()][i].distance;
distance = m_mineLists[participantPosition.participantId][i].distance;
index = i;
}
}
//m_mineLists[participantPos.participantId()].value()
int mineIndex = m_mineLists[participantPosition.participantId()][index].mineIndex;
int aesItemId = m_mineLists[participantPosition.participantId()][index].aesItemId;
int mineIndex = m_mineLists[participantPosition.participantId][index].mineIndex;
int aesItemId = m_mineLists[participantPosition.participantId][index].aesItemId;
if (!m_aesItemViews.contains(aesItemId))
return;
@@ -349,12 +349,12 @@ void HandlerMineAreas::onNewOutdoorPosition(const CentralEffectSimulation::Handl
// << " z=" << minePosGeo.z();
sendParticipantEvent(m_aesItemViews[aesItemId], minePosition, ProjectDataManagement::PdmEventType::EventType_HitMine);
m_mineLists[participantPosition.participantId()].remove(index);
m_mineLists[participantPosition.participantId].remove(index);
if (m_mineLists[participantPosition.participantId()].size() == 0)
if (m_mineLists[participantPosition.participantId].size() == 0)
{
m_mineLists[participantPosition.participantId()].clear();
m_mineLists.remove(participantPosition.participantId());
m_mineLists[participantPosition.participantId].clear();
m_mineLists.remove(participantPosition.participantId);
}
return;
}
@@ -363,13 +363,13 @@ void HandlerMineAreas::onNewOutdoorPosition(const CentralEffectSimulation::Handl
DEBUG_LOG(m_logger) << "Stored mines are outdated!"
<< " actTime=" << QDateTime::currentMSecsSinceEpoch()
<< " Settings::cesPeriodStoredMinesOutdated()=" << Settings::cesPeriodStoredMinesOutdated();
m_mineLists[participantPosition.participantId()].clear();
m_mineLists.remove(participantPosition.participantId());
m_mineLists[participantPosition.participantId].clear();
m_mineLists.remove(participantPosition.participantId);
}// end if time-check
}
DEBUG_LOG(m_logger) << "HandlerParticipantArea::calculateAesParticipant paricipantId: " << participantPosition.participantId()
DEBUG_LOG(m_logger) << "HandlerParticipantArea::calculateAesParticipant paricipantId: " << participantPosition.participantId
<< " m_aesItemViews.size=" << m_aesItemViews.size();
// const QVector<QPointF> utmStepPoly = m_handlerParticipant->getParticipantStep(participantPos.participantId(), m_zone);
@@ -392,29 +392,29 @@ void HandlerMineAreas::onNewOutdoorPosition(const CentralEffectSimulation::Handl
if (typeClass == ParticipantManagement::TypeClass::Human && m_ddsHandler->isAtMine(itemView.chargeStruct))
continue;
if (itemView.aesTypeId.underlying() == AreaEffectSimulation::AesType::AtMineArea)
if (itemView.aesTypeId == AreaEffectSimulation::AesType::AtMineArea)
{
// checks whether the participant has been positioned in the minefield or across it.
bool inBoundingBox = inBoundingBoxCheck(itemView, participantPosition);
if (!inBoundingBox)
{
bool intersectsBoundingBox = intersectsBoundingBoxCheck(itemView, participantPosition.participantId());
bool intersectsBoundingBox = intersectsBoundingBoxCheck(itemView, participantPosition.participantId);
if (!intersectsBoundingBox)
{
DEBUG_LOG(m_logger) << "Continue nach Bounding BoxCheck itemView: " << itemView.aesItemId << ", "
<< " paricipantId=" << participantPosition.participantId();
<< " paricipantId=" << participantPosition.participantId;
continue;
}
}
DEBUG_LOG(m_logger) << "Weiter nach Bounding BoxCheck itemView: " << itemView.aesItemId << ", "
<< " paricipantId=" << participantPosition.participantId();
<< " paricipantId=" << participantPosition.participantId;
bool inFormCheckResult = inFormCheck(itemView, participantPosition);
if (!inFormCheckResult)
{
DEBUG_LOG(m_logger) << "!inForm";
if (!intersectFormCheck(itemView, participantPosition.participantId()))
if (!intersectFormCheck(itemView, participantPosition.participantId))
{
DEBUG_LOG(m_logger) << "!intersectForm continue";
continue;
@@ -436,14 +436,14 @@ void HandlerMineAreas::onNewOutdoorPosition(const CentralEffectSimulation::Handl
void HandlerMineAreas::onNewParticipantState(const CentralEffectSimulation::HandlerParticipant::CesParticipantData &participantPos)
{
DEBUG_LOG(m_logger) << "onNewParticipantState ";
if (participantPos.vulnerabilityState == ProjectDataManagement::VulnerabilityState::CombatReady)
if (participantPos.vulnerabilityState == ProjectDataManagement::VulnerabilityState::VulnerabilityState_CombatReady)
{
DEBUG_LOG(m_logger) << "m_mineLists.contains(participantPos.participantId():" << m_mineLists.contains(participantPos.participantId());
if (m_mineLists.contains(participantPos.participantId()))
DEBUG_LOG(m_logger) << "m_mineLists.contains(participantPos.participantId():" << m_mineLists.contains(participantPos.participantId);
if (m_mineLists.contains(participantPos.participantId))
{
DEBUG_LOG(m_logger) << "onNewParticipantState CombatReady, loesche Minenliste Eintrag";
m_mineLists[participantPos.participantId()].clear();
m_mineLists.remove(participantPos.participantId());
m_mineLists[participantPos.participantId].clear();
m_mineLists.remove(participantPos.participantId);
}
DEBUG_LOG(m_logger) << "onNewParticipantState CombatReady, loesche Minenliste";
}
@@ -465,11 +465,11 @@ bool HandlerMineAreas::intersectMineRadiusCheck(const CentralEffectSimulation::A
int32_t bitFieldIdx = 0;
const double impactRadius = m_ddsHandler->chargeTypeRadius(itemView.chargeStruct);
const QPolygonF utmStep = m_handlerParticipant->getParticipantStep(participantPosition.participantId(), itemView.zone);
const QPolygonF utmStep = m_handlerParticipant->getParticipantStep(participantPosition.participantId, itemView.zone);
for (const auto &itPos : itemView.formMines)
{
DEBUG_LOG(m_logger) << " itemId=" << itemView.aesItemId
<< " chargeTypeId=" << itemView.chargeStruct.chargeTypeId()
<< " chargeTypeId=" << itemView.chargeStruct.chargeTypeId
<< ", MinePosUtm: " << CentralEffectSimulation::debug(itPos)
<< " utmStep:" << utmStep[0].x() << utmStep[0].y()
<< ", " << utmStep[1].x() << utmStep[1].y();
@@ -478,7 +478,7 @@ bool HandlerMineAreas::intersectMineRadiusCheck(const CentralEffectSimulation::A
if (m_triggeredImpacts.contains(itemView.aesItemId))
{
const AreaEffectSimulation::TriggeredImpacts &triggeredImpact = m_triggeredImpacts[itemView.aesItemId];
if (!LtsUtils::BitArray::testBit(triggeredImpact.bitfield(), bitFieldIdx))
if (!LtsUtils::BitArray::testBit(triggeredImpact.bitfield, bitFieldIdx))
{
++bitFieldIdx;
DEBUG_LOG(m_logger) << "Mine is active continue bitFieldIdx=" << bitFieldIdx;
@@ -490,7 +490,7 @@ bool HandlerMineAreas::intersectMineRadiusCheck(const CentralEffectSimulation::A
? itemView.dusMineId : bitFieldIdx + 1; // mineIdx in minefield starts at 1
// Check, if participant is inside danger-radius of the mine
distance = crossCircle(itPos, impactRadius, participantPosition.participantId(), itemView.zone);
distance = crossCircle(itPos, impactRadius, participantPosition.participantId, itemView.zone);
DEBUG_LOG(m_logger) << "distance=" << distance;
if (distance < 0.0)
{
@@ -507,17 +507,17 @@ bool HandlerMineAreas::intersectMineRadiusCheck(const CentralEffectSimulation::A
mineListItem.mineIndex = mineIdx;
mineListItem.minePos = minePos;
mineListItem.time = QDateTime::currentMSecsSinceEpoch();
m_mineLists[participantPosition.participantId()].append(mineListItem);
m_mineLists[participantPosition.participantId].append(mineListItem);
mineListIndex++;
DEBUG_LOG(m_logger) << " m_mineLists[" << participantPosition.participantId()
<< "].length=" << m_mineLists[participantPosition.participantId()].length();
DEBUG_LOG(m_logger) << " m_mineLists[" << participantPosition.participantId
<< "].length=" << m_mineLists[participantPosition.participantId].length();
if (distance < lastDistance)
{
DEBUG_LOG(m_logger) << " distance < lastDistance crossCircle for aesItemId: " << itemView.aesItemId
<< ", mineIdx: " << mineIdx
<< ", impactRadius:" << impactRadius
<< ", participantId: " << participantPosition.participantId()
<< ", participantId: " << participantPosition.participantId
<< ", lastDistance:" << lastDistance
<< ", distance:" << distance;
minePos = itPos;
@@ -528,12 +528,12 @@ bool HandlerMineAreas::intersectMineRadiusCheck(const CentralEffectSimulation::A
bitFieldIdx++;
} // for each mine
DEBUG_LOG(m_logger) << "End of for-loop participantId=" << participantPosition.participantId()
DEBUG_LOG(m_logger) << "End of for-loop participantId=" << participantPosition.participantId
<< " mineIndex=" << mineIndex
<< " lastDistance=" << lastDistance;
if (lastDistance > 0)
{
DEBUG_LOG(m_logger) << "sendEffectTypeEvent participantId=" << participantPosition.participantId()
DEBUG_LOG(m_logger) << "sendEffectTypeEvent participantId=" << participantPosition.participantId
<< " mineIndex=" << mineIndex;
// TODO Minenposition fuer den Event nehmen und nicht die Participant-Position
sendFtcMineTrigger(itemView.aesItemId, mineIndex - 1);
@@ -545,7 +545,7 @@ bool HandlerMineAreas::intersectMineRadiusCheck(const CentralEffectSimulation::A
// << " z=" << minePosGeo.z();
sendParticipantEvent(itemView, minePosition, ProjectDataManagement::PdmEventType::EventType_HitMine);
// aktuell verarbeitete Mine aus der Liste entfernen.
m_mineLists[participantPosition.participantId()].remove(mineListItemIndex);
m_mineLists[participantPosition.participantId].remove(mineListItemIndex);
}
return false;
}
@@ -605,14 +605,14 @@ bool HandlerMineAreas::inBoundingBoxCheck(const CentralEffectSimulation::AesItem
boundingBoxTopRight);
const QPointF participantPosUtmPoint = CentralEffectSimulation::geographic2Utm(participantPosition.pos(), itemView.zone);
const QPointF participantPosUtmPoint = CentralEffectSimulation::geographic2Utm(participantPosition.pos, itemView.zone);
if (boundingBoxImpact.contains(participantPosUtmPoint))
{
DEBUG_LOG(m_logger) << "inBoundingBoxCheck Paricipant " << participantPosition.participantId()
DEBUG_LOG(m_logger) << "inBoundingBoxCheck Paricipant " << participantPosition.participantId
<< " inside AesItemView:" << itemView.aesItemId << " return true";
return true;
}
DEBUG_LOG(m_logger) << "inBoundingBoxCheck Paricipant " << participantPosition.participantId()
DEBUG_LOG(m_logger) << "inBoundingBoxCheck Paricipant " << participantPosition.participantId
<< " outside AesItemView:" << itemView.aesItemId << " return false";
return false;
}
@@ -622,15 +622,15 @@ bool HandlerMineAreas::inFormCheck(const CentralEffectSimulation::AesItemViewUtm
const CentralEffectSimulation::HandlerParticipant::CesParticipantData &participantPosition)
{
const QPointF participantPosUtmPoint = CentralEffectSimulation::geographic2Utm(participantPosition.pos(), itemView.zone);
DEBUG_LOG(m_logger) << "inFormCheck start, paricipantId: " << participantPosition.participantId()
const QPointF participantPosUtmPoint = CentralEffectSimulation::geographic2Utm(participantPosition.pos, itemView.zone);
DEBUG_LOG(m_logger) << "inFormCheck start, paricipantId: " << participantPosition.participantId
<< ", aesItemId: " << itemView.aesItemId
<< ", aesTypeId: " << itemView.aesTypeId
<< ", form.size: " << itemView.form.size();
if (itemView.form.containsPoint(participantPosUtmPoint, Qt::FillRule::OddEvenFill))
{
DEBUG_LOG(m_logger) << "inside AES form, paricipantId: " << participantPosition.participantId()
DEBUG_LOG(m_logger) << "inside AES form, paricipantId: " << participantPosition.participantId
<< ", aesItemId: " << itemView.aesItemId;
return true;
} // if inside
@@ -670,7 +670,7 @@ void HandlerMineAreas::onTriggeredImpactsChanged(const AreaEffectSimulation::Tri
return;
DEBUG_LOG(m_logger) << "Got TriggeredImpacts: ";
switch (data.aesTypeId().underlying())
switch (data.aesTypeId)
{
case AreaEffectSimulation::AesType::AtExplosionArea:
case AreaEffectSimulation::AesType::AtExplosionSingle:
@@ -682,7 +682,7 @@ void HandlerMineAreas::onTriggeredImpactsChanged(const AreaEffectSimulation::Tri
case AreaEffectSimulation::AesType::AtMineArea:
// participant run on mine
// => store Mine-State and take into account when a participant runs to one of this mines
m_triggeredImpacts.insert(data.aesItemId(), data);
m_triggeredImpacts.insert(data.aesItemId, data);
break;
default:
//nothigng
@@ -694,36 +694,36 @@ void HandlerMineAreas::onTriggeredImpactsChanged(const AreaEffectSimulation::Tri
void HandlerMineAreas::calculateImpacts(const AreaEffectSimulation::TriggeredImpacts &data)
{
if ((data.aesTypeId() == AreaEffectSimulation::AesType::AtExplosionAreaSingleExplosions)
|| (data.aesTypeId() == AreaEffectSimulation::AesType::AtExplosionClusterSingleExplosions))
if ((data.aesTypeId == AreaEffectSimulation::AesType::AtExplosionAreaSingleExplosions)
|| (data.aesTypeId == AreaEffectSimulation::AesType::AtExplosionClusterSingleExplosions))
return;
auto it = m_aesItemViews.find(data.aesItemId());
auto it = m_aesItemViews.find(data.aesItemId);
if (it == m_aesItemViews.end())
{
WARNING_LOG(m_logger) << "Could not find item view for aes with id " << data.aesItemId();
WARNING_LOG(m_logger) << "Could not find item view for aes with id " << data.aesItemId;
return;
}
CentralEffectSimulation::AesItemViewUtm &aesItemView = *it;
// older then 10sec? ignore
if (data.sampleTime() < m_ddsHandler->currentPartitionTime() - 10 * 1000)
if (data.sampleTime < m_ddsHandler->currentPartitionTime() - 10 * 1000)
{
if (aesItemView.sampleTimeHandledImpacts < data.sampleTime())
if (aesItemView.sampleTimeHandledImpacts < data.sampleTime)
{
aesItemView.sampleTimeHandledImpacts = data.sampleTime();
aesItemView.handledImpacts = data.bitfield();
aesItemView.sampleTimeHandledImpacts = data.sampleTime;
aesItemView.handledImpacts = data.bitfield;
}
return;
}
QVector<int> bitsToCheck;
aesItemView.handledImpacts.resize(data.bitfield().size(), 0xFF);
for (int bitFieldIdx = 0; bitFieldIdx < data.impactCount(); ++bitFieldIdx)
aesItemView.handledImpacts.resize(data.bitfield.size(), 0xFF);
for (int bitFieldIdx = 0; bitFieldIdx < data.impactCount; ++bitFieldIdx)
{
// not yet triggered (bit is still 1)
if (LtsUtils::BitArray::testBit(data.bitfield(), bitFieldIdx))
if (LtsUtils::BitArray::testBit(data.bitfield, bitFieldIdx))
continue;
// already checked (bit is already 0)
@@ -734,17 +734,17 @@ void HandlerMineAreas::calculateImpacts(const AreaEffectSimulation::TriggeredImp
}
// remember handled impacts
aesItemView.sampleTimeHandledImpacts = data.sampleTime();
aesItemView.handledImpacts = data.bitfield();
aesItemView.sampleTimeHandledImpacts = data.sampleTime;
aesItemView.handledImpacts = data.bitfield;
const auto participantPositions = m_handlerParticipant->positions();
for (const CentralEffectSimulation::HandlerParticipant::CesParticipantData &pPos : participantPositions)
{
DEBUG_LOG(m_logger) << "pos participantId=" << pPos.participantId()
<< " buildingId=" << pPos.buildingId()
DEBUG_LOG(m_logger) << "pos participantId=" << pPos.participantId
<< " buildingId=" << pPos.buildingId
<< " insideBuilding=" << pPos.insideBuilding()
<< " positionValid=" << pPos.positionValid;
if (pPos.vulnerabilityState == ProjectDataManagement::VulnerabilityState::CatastrophicKill)
if (pPos.vulnerabilityState == ProjectDataManagement::VulnerabilityState::VulnerabilityState_CatastrophicKill)
continue;
if (pPos.insideBuilding())
continue;
@@ -763,7 +763,7 @@ void HandlerMineAreas::calculateImpacts(const CentralEffectSimulation::AesItemVi
// get radius of munition
const double impactRadius = m_ddsHandler->chargeTypeRadius(itemView.chargeStruct);
const QPointF participantPosUtmPoint = CentralEffectSimulation::geographic2Utm(participantPosition.pos(), itemView.zone);
const QPointF participantPosUtmPoint = CentralEffectSimulation::geographic2Utm(participantPosition.pos, itemView.zone);
for (int bitFieldIdx : impactsToCheck)
{
@@ -789,20 +789,20 @@ void HandlerMineAreas::sendCesHitRequest(const CentralEffectSimulation::AesItemV
DEBUG_LOG(m_logger) << "sendCesHitRequest "
<< " insideWlsArea=" << std::boolalpha << participantPosition.insideWlsArea()
<< " participantId=" << participantPosition.participantId();
const int equipNo = m_ddsHandler->participantId2EquipNo(participantPosition.participantId());
DEBUG_LOG(m_logger) << " ftc sendCESHit to Participant participantId = " << participantPosition.participantId()
<< " participantId=" << participantPosition.participantId;
const int equipNo = m_ddsHandler->participantId2EquipNo(participantPosition.participantId);
DEBUG_LOG(m_logger) << " ftc sendCESHit to Participant participantId = " << participantPosition.participantId
<< " equipNo = " << equipNo
<< " aesItemId =" << itemView.aesItemId;
// participantPosition.participantPosition == 0 -> send to all
if (participantPosition.participantId() != 0 && equipNo <= 0)
if (participantPosition.participantId != 0 && equipNo <= 0)
{
DEBUG_LOG(m_logger) << "participantPosition.participantId != 0 && equipNo <= 0" ;
return;
}
if (participantPosition.participantId() != 0 &&
participantPosition.vulnerabilityState == ProjectDataManagement::VulnerabilityState::CatastrophicKill)
if (participantPosition.participantId != 0 &&
participantPosition.vulnerabilityState == ProjectDataManagement::VulnerabilityState::VulnerabilityState_CatastrophicKill)
{
DEBUG_LOG(m_logger) << "participantPosition.participantId != 0 CatastrophicKill)";
return;
@@ -810,18 +810,18 @@ void HandlerMineAreas::sendCesHitRequest(const CentralEffectSimulation::AesItemV
int32_t originatorParticipantId = m_aesItemId2partIdMap.value(itemView.aesItemId, 0);
const TrainingAreaBase::TabPosition pos(participantPosition.pos(),
const TrainingAreaBase::TabPosition pos(participantPosition.pos,
Core::PositionReportingSource::Gps, // irrelevant
participantPosition.buildingId(),
participantPosition.roomId());
participantPosition.buildingId,
participantPosition.roomId);
const int originatorEquipNo = m_ddsHandler->participantId2EquipNo(originatorParticipantId);
const ProjectDataManagement::PdmEventType eventType = ProjectDataManagement::PdmEventType::EventType_Unknown;
TrainingAreaBase::SendCesHitRequest requestTab(
equipNo, // equipmentNumber
participantPosition.participantId(), // participantId
itemView.chargeStruct.chargeTypeId(), // chargeTypeId
participantPosition.participantId, // participantId
itemView.chargeStruct.chargeTypeId, // chargeTypeId
itemView.aesItemId, // aesId
originatorEquipNo, // originatorEquipmentNumber
remaining, // remainEffectPercent ( no protection outside Building )
@@ -831,8 +831,8 @@ void HandlerMineAreas::sendCesHitRequest(const CentralEffectSimulation::AesItemV
itemView.partyId, // originPartyId
mineFieldBitIndex
);
DEBUG_LOG(m_logger) << " participantId=" << participantPosition.participantId()
<< " chargeTypeId=" << itemView.chargeStruct.chargeTypeId();
DEBUG_LOG(m_logger) << " participantId=" << participantPosition.participantId
<< " chargeTypeId=" << itemView.chargeStruct.chargeTypeId;
m_sendCesHitRequestQueue.enqueue(requestTab);
if (m_sendCesHitRequestQueue.size() == 1)
@@ -847,45 +847,45 @@ void HandlerMineAreas::sendCesHitRequest(const AreaEffectSimulation::AesItemView
qint64 effectTime,
int mineFieldBitIndex)
{
int remaining = m_ddsHandler->remainingTasCode(itemView.chargeStruct());
int remaining = m_ddsHandler->remainingTasCode(itemView.chargeStruct);
int32_t legacyChargeTypeId = 0;
legacyChargeTypeId = m_ddsHandler->getLegacyIdFromChargeTypeId(itemView.chargeStruct());
legacyChargeTypeId = m_ddsHandler->getLegacyIdFromChargeTypeId(itemView.chargeStruct);
DEBUG_LOG(m_logger) << "sendCesHitRequest"
<< " insideWlsArea=" << std::boolalpha << participantPosition.insideWlsArea()
<< " participantId=" << participantPosition.participantId();
<< " participantId=" << participantPosition.participantId;
const int equipmentNumber = m_ddsHandler->participantId2EquipNo(participantPosition.participantId());
DEBUG_LOG(m_logger) << " ftc sendCESHit to Participant participantId = " << participantPosition.participantId()
<< " equipNo = " << equipmentNumber << " aesItemId =" << itemView.aesItemId();
const int equipmentNumber = m_ddsHandler->participantId2EquipNo(participantPosition.participantId);
DEBUG_LOG(m_logger) << " ftc sendCESHit to Participant participantId = " << participantPosition.participantId
<< " equipNo = " << equipmentNumber << " aesItemId =" << itemView.aesItemId;
// participantPosition.participantPosition == 0 -> send to all
if (participantPosition.participantId() != 0 && equipmentNumber <= 0)
if (participantPosition.participantId != 0 && equipmentNumber <= 0)
{
DEBUG_LOG(m_logger) << "participantPosition.participantId != 0 && equipNo <= 0" ;
return;
} // if
if (participantPosition.participantId() != 0 &&
participantPosition.vulnerabilityState == ProjectDataManagement::VulnerabilityState::CatastrophicKill)
if (participantPosition.participantId != 0 &&
participantPosition.vulnerabilityState == ProjectDataManagement::VulnerabilityState::VulnerabilityState_CatastrophicKill)
{
DEBUG_LOG(m_logger) << "participantPosition.participantId != 0 CatastrophicKill)";
return;
} // if
int32_t originatorParticipantId = m_aesItemId2partIdMap.value(itemView.aesItemId(), 0);
int32_t originatorParticipantId = m_aesItemId2partIdMap.value(itemView.aesItemId, 0);
const int originatorEquipmentNumber = m_ddsHandler->participantId2EquipNo(originatorParticipantId);
const TrainingAreaBase::TabPosition pos(
participantPosition.pos(), Core::PositionReportingSource::Gps, participantPosition.buildingId(),
participantPosition.roomId()
participantPosition.pos, Core::PositionReportingSource::Gps, participantPosition.buildingId,
participantPosition.roomId
);
const ProjectDataManagement::PdmEventType eventType = ProjectDataManagement::PdmEventType::EventType_Unknown;
TrainingAreaBase::SendCesHitRequest requestTab(
equipmentNumber, participantPosition.participantId(), legacyChargeTypeId, itemView.aesItemId(), originatorEquipmentNumber,
equipmentNumber, participantPosition.participantId, legacyChargeTypeId, itemView.aesItemId, originatorEquipmentNumber,
remaining, pos, effectTime, eventType, itemView.partyId.get(), mineFieldBitIndex
);
DEBUG_LOG(m_logger) << " participantId=" << participantPosition.participantId() << " chargeTypeId=" << itemView.chargeStruct().chargeTypeId()
DEBUG_LOG(m_logger) << " participantId=" << participantPosition.participantId << " chargeTypeId=" << itemView.chargeStruct.chargeTypeId
<< " legacyChargeTypeId=" << legacyChargeTypeId;
m_sendCesHitRequestQueue.enqueue(requestTab);
@@ -901,7 +901,7 @@ void HandlerMineAreas::sendParticipantEventEnterLeave(const CentralEffectSimulat
const bool inFormCheckResult)
{
const ProjectDataManagement::PdmEventType &lastEvent = m_eventStates[itemView.aesItemId][participantPosition.participantId()];
const ProjectDataManagement::PdmEventType &lastEvent = m_eventStates[itemView.aesItemId][participantPosition.participantId];
ProjectDataManagement::PdmEventType eventType = ProjectDataManagement::PdmEventType::EventType_EnterMineArea;
@@ -914,7 +914,7 @@ void HandlerMineAreas::sendParticipantEventEnterLeave(const CentralEffectSimulat
else
{
eventType = ProjectDataManagement::PdmEventType::EventType_EnterMineArea;
m_eventStates[itemView.aesItemId][participantPosition.participantId()] = ProjectDataManagement::PdmEventType::EventType_EnterMineArea;
m_eventStates[itemView.aesItemId][participantPosition.participantId] = ProjectDataManagement::PdmEventType::EventType_EnterMineArea;
}
}
else
@@ -924,7 +924,7 @@ void HandlerMineAreas::sendParticipantEventEnterLeave(const CentralEffectSimulat
else
{
eventType = ProjectDataManagement::PdmEventType::EventType_LeaveMineArea;
m_eventStates[itemView.aesItemId][participantPosition.participantId()] = ProjectDataManagement::PdmEventType::EventType_LeaveMineArea;
m_eventStates[itemView.aesItemId][participantPosition.participantId] = ProjectDataManagement::PdmEventType::EventType_LeaveMineArea;
}
}
@@ -939,31 +939,31 @@ void HandlerMineAreas::sendParticipantEvent(const CentralEffectSimulation::AesIt
DEBUG_LOG(m_logger) << "sendParticipantEvent " << itemView.aesItemId
<< " participantId=" << participantPosition.participantId()
<< " participantId=" << participantPosition.participantId
<< " eventType=" << eventType
<< " pos=" << participantPosition.pos().lat()
<< "/" << participantPosition.pos().lon()
<< "/" << participantPosition.pos().z();
<< " pos=" << participantPosition.pos.lat
<< "/" << participantPosition.pos.lon
<< "/" << participantPosition.pos.z;
int equipmentNumber = m_ddsHandler->participantId2EquipNo(participantPosition.participantId());
int equipmentNumber = m_ddsHandler->participantId2EquipNo(participantPosition.participantId);
const AreaEffectSimulation::MineArea &ma = m_ddsHandler->dtcAes()->mineArea(itemView.aesItemId);
CentralEffectSimulation::ParticipantEvent pe;
pe.id(m_ddsHandler->getParticipantEventId());
pe.id = m_ddsHandler->getParticipantEventId();
pe.eventTypeId(eventType.underlying());
pe.participantId(participantPosition.participantId());
pe.eventTime(participantPosition.sampleTime());
pe.aesItemId(itemView.aesItemId);
pe.partyId(participantPosition.partyId());
pe.aesName(ma.name());
pe.equipmentNumber(equipmentNumber);
pe.vulnerability(participantPosition.vulnerabilityState.underlying());
pe.position(participantPosition.pos());
pe.eventTypeId = eventType;
pe.participantId = participantPosition.participantId;
pe.eventTime = participantPosition.sampleTime;
pe.aesItemId = itemView.aesItemId;
pe.partyId = participantPosition.partyId;
pe.aesName = ma.name;
pe.equipmentNumber = equipmentNumber;
pe.vulnerability = static_cast<int>(participantPosition.vulnerabilityState);
pe.position = participantPosition.pos;
m_ddsHandler->dtsCes()->publish(pe);
const auto id = pe.id();
const auto id = pe.id;
QTimer::singleShot(1 * 60 * 1000, this, [id, this]() { m_ddsHandler->dtsCes()->removeParticipantEventByKey(id); });
}
@@ -974,11 +974,11 @@ void HandlerMineAreas::sendFtcMineTrigger(int aesItemId, int mineIndex)
auto ftcAes = m_ddsHandler->ftcAes();
AreaEffectSimulation::MineTriggeredRequest tr;
tr.mineAreaId(aesItemId);
tr.mineId(mineIndex);
tr.chargeTypeId(ma.chargeStruct().chargeTypeId());
DEBUG_LOG(m_logger) << "send sendFtcMineTrigger: aesItemId=" << tr.mineAreaId()
<< " MineIndex=" << tr.mineId();
tr.mineAreaId = aesItemId;
tr.mineId = mineIndex;
tr.chargeTypeId = ma.chargeStruct.chargeTypeId;
DEBUG_LOG(m_logger) << "send sendFtcMineTrigger: aesItemId=" << tr.mineAreaId
<< " MineIndex=" << tr.mineId;
ftcAes->mineTriggeredRequest(tr, this);
}
@@ -989,7 +989,7 @@ void HandlerMineAreas::sendEffectTypeEvent(const CentralEffectSimulation::AesIte
qint64 effectTime)
{
DEBUG_LOG(m_logger) << "sendEffectTypeEvent aesItemId=" << itemView.aesItemId
<< " participantId=" << participantPosition.participantId()
<< " participantId=" << participantPosition.participantId
<< " effectType=" << effectTime
<< " mineFieldBitIndex=" << mineFieldBitIndex;
Q_UNUSED(effectTime);
@@ -1001,7 +1001,7 @@ void HandlerMineAreas::sendEffectTypeEvent(const CentralEffectSimulation::AesIte
mfb = ", mineFieldBitIndex: " + QByteArray::number(mineFieldBitIndex);
const int ctasEffectType = static_cast<int>(effectType) & 0xffff;
DEBUG_LOG(m_logger) << "Sending EffectType event " << toString(effectType)
<< ", participant: " << participantPosition.participantId()
<< ", participant: " << participantPosition.participantId
<< ", aesItemId: " << itemView.aesItemId
<< mfb
<< ", ctasEffectType: " << ctasEffectType;
@@ -1082,7 +1082,7 @@ bool HandlerMineAreas::inExtededFormCheck(const CentralEffectSimulation::AesItem
const CentralEffectSimulation::HandlerParticipant::CesParticipantData &participantPosition) const
{
const double distance = m_ddsHandler->chargeTypeRadius(itemView.chargeStruct);
const QPointF participantPosUtmPoint = CentralEffectSimulation::geographic2Utm(participantPosition.pos(), itemView.zone);
const QPointF participantPosUtmPoint = CentralEffectSimulation::geographic2Utm(participantPosition.pos, itemView.zone);
///////////////////////////////////////////////////////////