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 2b957d1edb
commit 598fc2560e
1718 files changed
+126739 -18495

No files matched your search

@@ -22,7 +22,7 @@ namespace core
{
inline uint qHash(ProjectDataManagement::PdmEventType et)
{
return ::qHash(et.underlying());
return ::qHash(et);
}
}
}
@@ -71,21 +71,21 @@ bool CesMissionPlanHandler::init()
void CesMissionPlanHandler::updateMissionPlanList(const ParticipantManagement::MissionPlan &data)
{
CesMissionPlanObject *obj = m_missionPlanObjects.value(data.id(), nullptr);
CesMissionPlanObject *obj = m_missionPlanObjects.value(data.id, nullptr);
if (obj)
{
m_missionPlanObjects[data.id()]->setMissionPlan(data);
m_missionPlanObjects[data.id]->setMissionPlan(data);
return;
}
// check if mission start is in the future before proceeding..
DEBUG_LOG(m_logger)<<" -- [updateMissionPlanList] new missionPlan : "<<data.name()<< " planId: "<<data.id();
DEBUG_LOG(m_logger)<<" -- [updateMissionPlanList] new missionPlan : "<<data.name<< " planId: "<<data.id;
if (data.missionStart() < m_ddsHandler->currentPartitionTime())
if (data.missionStart < m_ddsHandler->currentPartitionTime())
{
WARNING_LOG(m_logger) << " -- updateMissionPlanList mission startTime ("<<data.missionStart()<<") in the past ignore mission plan id: "<<data.id()
<< " name: " << data.name() << " - now: " << m_ddsHandler->currentPartitionTime();
WARNING_LOG(m_logger) << " -- updateMissionPlanList mission startTime ("<<data.missionStart<<") in the past ignore mission plan id: "<<data.id
<< " name: " << data.name << " - now: " << m_ddsHandler->currentPartitionTime();
return;
}
@@ -101,25 +101,25 @@ void CesMissionPlanHandler::updateMissionPlanList(const ParticipantManagement::M
};
connect(obj, &CesMissionPlanObject::destroyed, this, onDeleteObj);
m_missionPlanObjects.insert(data.id(), obj);
m_missionPlanObjects.insert(data.id, obj);
}
void CesMissionPlanHandler::onUasChanged(const ParticipantManagement::UAS &data, DataModification modType)
{
Q_UNUSED(modType)
DEBUG_LOG(m_logger)<<" -- onUasChanged : uas.id = "<<data.id() <<" participantId = "<<data.participantId();
DEBUG_LOG(m_logger)<<" -- onUasChanged : uas.id = "<<data.id <<" participantId = "<<data.participantId;
// get mission object of corresponding uas participant
// if drone status is manual mode then cancel mission.
if (data.uasState() != ProjectDataManagement::UasState::Manual && modType != DataModification::eRemoved)
if (data.uasState != ProjectDataManagement::UasState::UasState_Manual && modType != DataModification::eRemoved)
return;
for (auto planObj : m_missionPlanObjects)
{
if (planObj->participantId() != data.participantId())
if (planObj->participantId() != data.participantId)
continue;
// if waypoint started and state switched to manual abord mission
if (planObj->missionPlan().missionStart() < m_ddsHandler->currentPartitionTime())
if (planObj->missionPlan().missionStart < m_ddsHandler->currentPartitionTime())
planObj->abortMission();
break;
}
@@ -127,8 +127,8 @@ void CesMissionPlanHandler::onUasChanged(const ParticipantManagement::UAS &data,
void CesMissionPlanHandler::onMissionPlanChanged(const ParticipantManagement::MissionPlan &data, DataModification modType)
{
DEBUG_LOG(m_logger)<<" -- onMissionPlanChanged : missionPlanName: "<<data.name() << ", modType: " << (int)modType;
if (data.id() <= 0)
DEBUG_LOG(m_logger)<<" -- onMissionPlanChanged : missionPlanName: "<<data.name << ", modType: " << (int)modType;
if (data.id <= 0)
return;
switch (modType)
{
@@ -138,12 +138,12 @@ void CesMissionPlanHandler::onMissionPlanChanged(const ParticipantManagement::Mi
break;
case DataModification::eRemoved:
{
auto obj = m_missionPlanObjects.value(data.id(), nullptr);
auto obj = m_missionPlanObjects.value(data.id, nullptr);
if (!obj)
return;
delete obj;
m_missionPlanObjects.remove(data.id());
m_missionPlanObjects.remove(data.id);
}
break;
default:
@@ -157,15 +157,15 @@ bool CesMissionPlanHandler::isUasInAutoMode(int participantId)
m_ddsHandler->dtcPpm()->waitForHistoricalDataUAS(3000);
const auto uas = m_ddsHandler->dtcPpm()->getUasByParticipantId(participantId, m_ddsHandler->getExerciseId());
if (uas.id() < 1)
if (uas.id < 1)
{
ERROR_LOG(m_logger) << "no uas for pid " << participantId;
return false;
}
DEBUG_LOG(m_logger) << "uas with pid " << participantId << " is in mode: " << (int)uas.uasState().underlying();
DEBUG_LOG(m_logger) << "uas with pid " << participantId << " is in mode: " << (int)uas.uasState;
return (uas.uasState() == ProjectDataManagement::UasState::UasState_Auto);
return (uas.uasState == ProjectDataManagement::UasState::UasState_Auto);
}
// stolen from Lts/Plugins/ParticipantManagement/Gui/ParticipantInfo/participant_info_dialog.cpp
@@ -175,53 +175,53 @@ bool CesMissionPlanHandler::isUasCombatReady(int participantId)
m_ddsHandler->dtcPpm()->waitForHistoricalDataDynamicParticipantData(3000);
const auto data = m_ddsHandler->dtcPpm()->dynamicParticipantData(participantId);
if (data.participantId() == 0)
if (data.participantId == 0)
{
return false;
}
//Current State
DEBUG_LOG(m_logger) << "stateHistory count" << data.stateHistory().size();
if (data.stateHistory().empty())
DEBUG_LOG(m_logger) << "stateHistory count" << data.stateHistory.size();
if (data.stateHistory.empty())
{
return false;
}
const auto &history = data.stateHistory();
const auto &history = data.stateHistory;
//LasState is the last "real" state, that has a VBG <=8 (Castastrophic)
//It's not the last state received, as there can be other state changes like Sanitation, or NearMiss
auto lastState = m_ddsHandler->dtcPpm()->youngestStateInformation(history/*, true*/ /* debug */);
decltype(lastState) youngestState;
youngestState.stateTime(0);
youngestState.stateTime = 0;
for (const auto &si : history)
{
DEBUG_LOG(m_logger) << "StateInformation "
<< " time=" << si.stateTime()
<< " vulnerabilityBits=" << si.vulnerabilityBits()
<< " vulnerabilityKindId=" << si.vulnerabilityKindId();
if (youngestState.stateTime() < si.stateTime())
<< " time=" << si.stateTime
<< " vulnerabilityBits=" << si.vulnerabilityBits
<< " vulnerabilityKindId=" << si.vulnerabilityKindId;
if (youngestState.stateTime < si.stateTime)
youngestState = si;
}
return (youngestState.vulnerabilityState() == ProjectDataManagement::VulnerabilityState::VulnerabilityState_CombatReady);
return (youngestState.vulnerabilityState == ProjectDataManagement::VulnerabilityState::VulnerabilityState_CombatReady);
}
void CesMissionPlanHandler::onSendNextMissionAction(const ParticipantManagement::MissionAction &msa)
{
auto missionPlan = m_missionPlanObjects.value(msa.planId(), nullptr);
auto missionPlan = m_missionPlanObjects.value(msa.planId, nullptr);
if (!missionPlan)
{
DEBUG_LOG(m_logger)<<" -- [SEND NEXT MISSION] Object not found. PlanId: "<<msa.planId();
DEBUG_LOG(m_logger)<<" -- [SEND NEXT MISSION] Object not found. PlanId: "<<msa.planId;
return;
}
// send to TAB
const auto participantId = missionPlan->m_missionPlan.participantId();
const auto participantId = missionPlan->m_missionPlan.participantId;
const auto participant = m_handlerParticipant->participant(participantId);
if (!participant.equipmentNumber())
if (!participant.equipmentNumber)
{
ERROR_LOG(m_logger) << "unable to send next mission action to uav without equipment number";
return;
@@ -245,12 +245,12 @@ void CesMissionPlanHandler::onSendNextMissionAction(const ParticipantManagement:
return;
}
const auto eqId = participant.equipmentNumber().value();
const auto eqId = participant.equipmentNumber.value();
try
{
// send action to uav via tab - if this doesn't throw, waypoint is now executing
m_ddsHandler->ftcTab()->sendUasWaypointRequest(TrainingAreaBase::SendUasWaypointRequest(eqId, participantId, msa.actionNumber(), msa.itemNumber(), msa.planId(), msa.name(), msa.properties()));
m_ddsHandler->ftcTab()->sendUasWaypointRequest(TrainingAreaBase::SendUasWaypointRequest(eqId, participantId, msa.actionNumber, msa.itemNumber, msa.planId, msa.name, msa.properties));
// PPM will send a change request to the current active action, which in return tell us (updateMissionPlanList) and finally we will start the next action - so we are done here for now
}
catch (const std::exception &ex)
@@ -29,9 +29,9 @@ CesMissionPlanObject::CesMissionPlanObject(const ParticipantManagement::MissionP
m_missionStartimer->setSingleShot(true);
connect(m_missionStartimer, &QTimer::timeout, this, &CesMissionPlanObject::sendNextMissionAction);
if (missionPlan.missionStart() > m_ddsHandler->currentPartitionTime())
if (missionPlan.missionStart > m_ddsHandler->currentPartitionTime())
{
const int time = m_missionPlan.missionStart() - m_ddsHandler->currentPartitionTime();
const int time = m_missionPlan.missionStart - m_ddsHandler->currentPartitionTime();
// DEBUG_LOG(m_logger)<<" -- [CesMissionPlanObject] start mission after << "<<time/1000<<" sec.";
m_missionStartimer->start(time);
}
@@ -53,74 +53,74 @@ void CesMissionPlanObject::setMissionActionFulfilled(const ParticipantManagement
//DEBUG_LOG(m_logger)<<" -- [setMissionActionFullfiled] -> msa.number: "<<msa.actionNumber()<<" planId: "<<msa.planId();
// actionNumb=-1 && itemNumb=-1 |-> mission will be aborted
if (msa.itemNumber() < 0 && msa.actionNumber() < 0)
if (msa.itemNumber < 0 && msa.actionNumber < 0)
{
ParticipantManagement::SetMissionActionFulfilledRequest abortReq(m_missionPlan.id(),
ParticipantManagement::SetMissionActionFulfilledRequest abortReq(m_missionPlan.id,
m_ddsHandler->currentPartitionTime(),
-1,
-1);
if ( !m_ddsHandler->ftcPpm()->setMissionActionFulfilledRequest(abortReq))
WARNING_LOG(m_logger) << " -- unable to abort mission with planId:"<<abortReq.missionId();
WARNING_LOG(m_logger) << " -- unable to abort mission with planId:"<<abortReq.missionId;
return;
}
if (msa.itemNumber() >= static_cast<int>(m_missionPlan.items().size()) )
if (msa.itemNumber >= static_cast<int>(m_missionPlan.items.size()) )
{
//WARNING_LOG(m_logger)<<" -- [setMissionActionFulfilled] item size invalid !!";
return;
}
const int actionCount = m_missionPlan.items()[msa.itemNumber()].actions().size();
if (msa.actionNumber() >= actionCount)
const int actionCount = m_missionPlan.items[msa.itemNumber].actions.size();
if (msa.actionNumber >= actionCount)
{
//WARNING_LOG(m_logger)<<" -- [setMissionActionFulfilled] actions size invalid !!";
return;
}
auto &action = m_missionPlan.items()[msa.itemNumber()].actions()[msa.actionNumber()];
action.fulfilled(m_ddsHandler->currentPartitionTime());
auto &action = m_missionPlan.items[msa.itemNumber].actions[msa.actionNumber];
action.fulfilled = m_ddsHandler->currentPartitionTime();
ParticipantManagement::SetMissionActionFulfilledRequest req;
req.actionNumber(action.actionNumber());
req.fulfilled(action.fulfilled());
req.itemNumber(action.itemNumber());
req.missionId(m_missionPlan.id());
req.actionNumber = action.actionNumber;
req.fulfilled = action.fulfilled;
req.itemNumber = action.itemNumber;
req.missionId = m_missionPlan.id;
if (!m_ddsHandler->ftcPpm()->setMissionActionFulfilledRequest(req))
WARNING_LOG(m_logger) << " -- unable to setMissionActionFulfilledRequest: planId:"<<req.missionId();
WARNING_LOG(m_logger) << " -- unable to setMissionActionFulfilledRequest: planId:"<<req.missionId;
}
int CesMissionPlanObject::planId() const
{
return m_missionPlan.id();
return m_missionPlan.id;
}
int CesMissionPlanObject::participantId() const
{
return m_missionPlan.participantId();
return m_missionPlan.participantId;
}
bool CesMissionPlanObject::isMissionFulfilled(const ParticipantManagement::MissionPlan &mission)
{
int itemCount = 0;
int actionCount = 0;
for (const auto &item : mission.items())
for (const auto &item : mission.items)
{
actionCount = 0;
for (const auto &a : item.actions())
for (const auto &a : item.actions)
{
//DEBUG_LOG(m_logger)<<" -- [setMissionPlan] action.Num : "<<a.actionNumber()<<" itemNum: "<<a.itemNumber()<<" fulfilled: "<<a.fulfilled();
if (a.fulfilled() > 0)
if (a.fulfilled > 0)
actionCount++;
else
return false;
}
if (actionCount == (int) item.actions().size())
if (actionCount == (int) item.actions.size())
itemCount++;
}
return (itemCount == (int)mission.items().size());
return (itemCount == (int)mission.items.size());
}
void CesMissionPlanObject::sendActionAttact()
@@ -130,7 +130,7 @@ void CesMissionPlanObject::sendActionAttact()
//3- setActionFulfilled
int ret = m_ddsHandler->ftcAes()->explosionClusterSingleEffectOnlyModifyRequest(getExplosionCluster());
if (!ret)
WARNING_LOG(m_logger)<<" -- sendActionAttact ret error for planId: "<<m_missionPlan.id();
WARNING_LOG(m_logger)<<" -- sendActionAttact ret error for planId: "<<m_missionPlan.id;
setMissionActionFulfilled(getNextAction());
}
@@ -139,28 +139,28 @@ AreaEffectSimulation::ExplosionClusterSingleEffectOnlyRequest CesMissionPlanObje
{
auto msa = getNextAction();
QJsonObject jsobj = QJsonDocument::fromJson(QByteArray::fromStdString(msa.properties())).object();
QJsonObject jsobj = QJsonDocument::fromJson(QByteArray::fromStdString(msa.properties)).object();
const int chargeTypeId = jsobj.value(QStringLiteral("chargeTypeId")).toInt();
const ParticipantManagement::Participant participant = m_ddsHandler->dtcPpm()->participant(m_missionPlan.participantId());
const ParticipantManagement::UAS uas = m_ddsHandler->dtcPpm()->getUasByParticipantId(m_missionPlan.participantId(),
const ParticipantManagement::Participant participant = m_ddsHandler->dtcPpm()->participant(m_missionPlan.participantId);
const ParticipantManagement::UAS uas = m_ddsHandler->dtcPpm()->getUasByParticipantId(m_missionPlan.participantId,
m_ddsHandler->dds()->getPartitionId());
QDateTime timeStamp = QDateTime::fromMSecsSinceEpoch(m_ddsHandler->currentPartitionTime());
timeStamp = timeStamp.addSecs(10);
const QString exploName = QStringLiteral("%1_%2").arg(QString::fromStdString(uas.deviceIdentifier())).arg(DTG::toStringMSec(timeStamp.toMSecsSinceEpoch(), DTG::DisplayFormat::Short));
const QString exploName = QStringLiteral("%1_%2").arg(QString::fromStdString(uas.deviceIdentifier)).arg(DTG::toStringMSec(timeStamp.toMSecsSinceEpoch(), DTG::DisplayFormat::Short));
Core::GeoPosition geoPos(jsobj.value(QStringLiteral("location_x")).toDouble(),
jsobj.value(QStringLiteral("location_y")).toDouble(), 0.0);
AreaEffectSimulation::ExplosionClusterSingleEffectOnlyRequest ecReq;
ecReq.id(0);
ecReq.effectStart(timeStamp.toMSecsSinceEpoch());
ecReq.name(exploName.toStdString());
ecReq.element(ecReq.name());
ecReq.impactPosition(geoPos);
ecReq.chargeTypeId(chargeTypeId);
ecReq.partyId(participant.partyId());
ecReq.id = 0;
ecReq.effectStart = timeStamp.toMSecsSinceEpoch();
ecReq.name = exploName.toStdString();
ecReq.element = ecReq.name;
ecReq.impactPosition = geoPos;
ecReq.chargeTypeId = chargeTypeId;
ecReq.partyId = participant.partyId;
// ecReq.externalId(0); // not used!!
return ecReq;
@@ -180,14 +180,14 @@ void CesMissionPlanObject::sendNextMissionAction()
//DEBUG_LOG(m_logger)<<" -- ########## ###### SEND NEXT ACTION ###### #############";
// set mission plan completed! or aborted
if (isMissionFulfilled(m_missionPlan) || m_missionPlan.aborted())
if (isMissionFulfilled(m_missionPlan) || m_missionPlan.aborted)
{
DEBUG_LOG(m_logger)<<" -- [sendNextMissionAction] No action mission Completed for plan id: "<<m_missionPlan.id();
DEBUG_LOG(m_logger)<<" -- [sendNextMissionAction] No action mission Completed for plan id: "<<m_missionPlan.id;
deleteMissionPlanObject();
return;
}
switch (action.actionType().underlying()) {
switch (action.actionType) {
case ParticipantManagement::MissionActionType::MoveTo:
{
emit ready2SendNextAction(action);
@@ -195,7 +195,7 @@ void CesMissionPlanObject::sendNextMissionAction()
}
case ParticipantManagement::MissionActionType::Loiter:
{
m_loiterTimer->start(action.duration() * 1000); // duration is in sec -> in msec: x * 1000
m_loiterTimer->start(action.duration * 1000); // duration is in sec -> in msec: x * 1000
return;
}
case ParticipantManagement::MissionActionType::Attack:
@@ -215,14 +215,14 @@ void CesMissionPlanObject::setMissionPlan(const ParticipantManagement::MissionPl
///3- send Next Mission Action
m_missionPlan = plan;
if (plan.missionStart() > m_ddsHandler->currentPartitionTime())
if (plan.missionStart > m_ddsHandler->currentPartitionTime())
{
//DEBUG_LOG(m_logger)<<" -- [setMissionPlan] restart Timer for plan.id: "<<plan.id();
m_missionStartimer->start(m_missionPlan.missionStart() - m_ddsHandler->currentPartitionTime());
m_missionStartimer->start(m_missionPlan.missionStart - m_ddsHandler->currentPartitionTime());
return;
}
if (isMissionFulfilled(plan) || plan.aborted())
if (isMissionFulfilled(plan) || plan.aborted)
{
DEBUG_LOG(m_logger) << "setMissionPlan deleteMissionPlanObject";
deleteMissionPlanObject();
@@ -240,21 +240,21 @@ ParticipantManagement::MissionPlan &CesMissionPlanObject::missionPlan()
const ParticipantManagement::MissionAction CesMissionPlanObject::getNextAction()
{
DEBUG_LOG(m_logger)<<" -- [getNextAction]: planId: "<<m_missionPlan.id()<<" itemSize: "<<m_missionPlan.items().size();
std::vector<ParticipantManagement::MissionItem> items = m_missionPlan.items();
DEBUG_LOG(m_logger)<<" -- [getNextAction]: planId: "<<m_missionPlan.id<<" itemSize: "<<m_missionPlan.items.size();
std::vector<ParticipantManagement::MissionItem> items = m_missionPlan.items;
// std::sort(items.begin(), items.end(), [](const ParticipantManagement::MissionItem &itemA, const ParticipantManagement::MissionItem &itemB){ return (itemA.itemNumber() < itemB.itemNumber()); });
for (auto &item : m_missionPlan.items())
for (auto &item : m_missionPlan.items)
{
for (auto &msa : item.actions())
for (auto &msa : item.actions)
{
if (msa.fulfilled() > 0)
if (msa.fulfilled > 0)
{
continue;
}
DEBUG_LOG(m_logger)<<" -- [getNextActopm]mission with planId: " << m_missionPlan.id() << " // action_number " << msa.actionNumber()
<< " // action_type " << msa.actionType();
DEBUG_LOG(m_logger)<<" -- [getNextActopm]mission with planId: " << m_missionPlan.id << " // action_number " << msa.actionNumber
<< " // action_type " << msa.actionType;
return msa;
}
@@ -267,14 +267,14 @@ void CesMissionPlanObject::setMissionCompleted()
{
const ParticipantManagement::MissionPlan &msp = m_missionPlan;
ParticipantManagement::ModifyMissionPlanRequest req;
req.missionStart(msp.missionStart());
req.jumpToStart(msp.jumpToStart());
req.id(msp.id());
req.items(msp.items());
req.name(msp.name());
req.participantId(msp.participantId());
req.properties(msp.properties());
req.repeat(msp.repeat());
req.missionStart = msp.missionStart;
req.jumpToStart = msp.jumpToStart;
req.id = msp.id;
req.items = msp.items;
req.name = msp.name;
req.participantId = msp.participantId;
req.properties = msp.properties;
req.repeat = msp.repeat;
if (!m_ddsHandler->ftcPpm()->modifyMissionPlanRequest(req))
ERROR_LOG(m_logger)<<" -- couldn't modify mission plan ";
@@ -292,16 +292,16 @@ void CesMissionPlanObject::setMissionCompleted()
*/
void CesMissionPlanObject::abortMission()
{
DEBUG_LOG(m_logger)<<" -- [abortMission] abord mission with planId: "<<m_missionPlan.id()<<" // uas id: "<<m_missionPlan.participantId();
DEBUG_LOG(m_logger)<<" -- [abortMission] abord mission with planId: "<<m_missionPlan.id<<" // uas id: "<<m_missionPlan.participantId;
ParticipantManagement::MissionAction msa = getNextAction();
msa.actionNumber(-1);
msa.itemNumber(-1);
msa.actionNumber = -1;
msa.itemNumber = -1;
setMissionActionFulfilled(msa);
}
void CesMissionPlanObject::deleteMissionPlanObject()
{
DEBUG_LOG(m_logger)<<" -- [DELETE OBJECT] plan fullfiled: delete Object planId: "<<m_missionPlan.id();
DEBUG_LOG(m_logger)<<" -- [DELETE OBJECT] plan fullfiled: delete Object planId: "<<m_missionPlan.id;
deleteLater();
}