Migrates AreaEffectSimulation to generated rtiddsgen API
Converts accessor calls to plain member access across aes service and plugin.
This commit is contained in:
102 files changed
+3307
-3313
No files matched your search
+138
-138
@@ -28,8 +28,8 @@ namespace AreaEffectSimulation
|
||||
HandlerEffectCluster::HandlerEffectCluster(MainHandler *mainHandler)
|
||||
: HandlerBaseTmpl<ObjectEffectCluster>(mainHandler,
|
||||
QStringLiteral("EffectCluster"),
|
||||
s_areaCount[AesType::AtEffectCluster],
|
||||
s_areaCountCentral[AesType::AtEffectCluster])
|
||||
s_areaCount[static_cast<int>(AesType::AtEffectCluster)],
|
||||
s_areaCountCentral[static_cast<int>(AesType::AtEffectCluster)])
|
||||
, Interface::Fts::EffectClusterModifyRequestHandler(mainHandler->dds()->fts())
|
||||
, Interface::Fts::EffectClusterModifyActorRequestHandler(mainHandler->dds()->fts())
|
||||
, Interface::Fts::EffectClusterSingleEffectOnlyModifyRequestHandler(mainHandler->dds()->fts())
|
||||
@@ -147,12 +147,12 @@ void HandlerEffectCluster::onFireCommandReceived(const TrainingAreaBase::EX_Fire
|
||||
// get fireReference
|
||||
if (modtype == DataModification::eRemoved)
|
||||
return;
|
||||
DEBUG_LOG(m_logger) << "got EX_Fire for ref: " << fire.reference() << " internal mapsize " << m_referenceToClusterId.size();
|
||||
auto *ifs = m_objectMap.value(m_referenceToClusterId.value(QString::fromStdString(fire.reference())));
|
||||
DEBUG_LOG(m_logger) << "got EX_Fire for ref: " << fire.reference << " internal mapsize " << m_referenceToClusterId.size();
|
||||
auto *ifs = m_objectMap.value(m_referenceToClusterId.value(QString::fromStdString(fire.reference)));
|
||||
if (!ifs)
|
||||
return;
|
||||
|
||||
ifs->sendFireCommand(AdlerJson::waffensystemkennerMap.key(fire.effectorId()));
|
||||
ifs->sendFireCommand(AdlerJson::waffensystemkennerMap.key(fire.effectorId));
|
||||
}
|
||||
|
||||
void HandlerEffectCluster::onFireHoldReceived(const TrainingAreaBase::EX_CeaseFiring &ceaseFire, DataModification modType)
|
||||
@@ -162,7 +162,7 @@ void HandlerEffectCluster::onFireHoldReceived(const TrainingAreaBase::EX_CeaseFi
|
||||
return;
|
||||
}
|
||||
|
||||
int HandlerEffectCluster::totalAreasCentral() const { return s_areaCountCentral[AesType::AtEffectCluster]; }
|
||||
int HandlerEffectCluster::totalAreasCentral() const { return s_areaCountCentral[static_cast<int>(AesType::AtEffectCluster)]; }
|
||||
|
||||
// Appends
|
||||
/*
|
||||
@@ -179,69 +179,69 @@ static void fillData(const EffectClusterModifyRequest &src,
|
||||
QVector<Database::AesEffectorData> &dstEffectorVector,
|
||||
MainHandler *mainHandler)
|
||||
{
|
||||
if (src.id() < 0) // is the id given as negative? set id -> used by OC-Laptop
|
||||
dst.id = src.id();
|
||||
if (src.id < 0) // is the id given as negative? set id -> used by OC-Laptop
|
||||
dst.id = src.id;
|
||||
|
||||
dst.name = QString::fromStdString(src.name());
|
||||
dst.element = QString::fromStdString(src.element());
|
||||
dst.name = QString::fromStdString(src.name);
|
||||
dst.element = QString::fromStdString(src.element);
|
||||
|
||||
dst.impactPosition.rx() = src.area().cornerBottomLeft().lon();
|
||||
dst.impactPosition.ry() = src.area().cornerBottomLeft().lat();
|
||||
dst.impactLength = src.area().height();
|
||||
dst.impactWidth = src.area().width();
|
||||
dst.rotationAngle = src.area().rotation();
|
||||
dst.impactPosition.rx() = src.area.cornerBottomLeft.lon;
|
||||
dst.impactPosition.ry() = src.area.cornerBottomLeft.lat;
|
||||
dst.impactLength = src.area.height;
|
||||
dst.impactWidth = src.area.width;
|
||||
dst.rotationAngle = src.area.rotation;
|
||||
|
||||
const bool bIsPointSimilar = (src.explosionGeometry() == AreaEffectSimulation::AesExplosionGeometry_def::EgAimPoint)
|
||||
|| (src.explosionGeometry() == AreaEffectSimulation::AesExplosionGeometry_def::EgPoint);
|
||||
const bool bIsPointSimilar = (src.explosionGeometry == AreaEffectSimulation::AesExplosionGeometry::EgAimPoint)
|
||||
|| (src.explosionGeometry == AreaEffectSimulation::AesExplosionGeometry::EgPoint);
|
||||
|
||||
dstEffectorVector.reserve(src.effectors().size());
|
||||
dstEffectorVector.reserve(src.effectors.size());
|
||||
Database::AesEffectorData dstEffector;
|
||||
int localImpactCount = 0;
|
||||
int firstChargeTypeId = 0;
|
||||
for (const auto &effector : src.effectors())
|
||||
for (const auto &effector : src.effectors)
|
||||
{
|
||||
// copy from Source Request.
|
||||
dstEffector.angleOfFall = effector.angleOfFall();
|
||||
dstEffector.chargeAmount = effector.chargeAmount();
|
||||
dstEffector.chargeTypeId = effector.chargeStruct().chargeTypeId();
|
||||
dstEffector.entityId = src.id();
|
||||
dstEffector.flightTime = effector.flightTime();
|
||||
dstEffector.igniterTypeId = effector.chargeStruct().igniterTypeId();
|
||||
dstEffector.igniterFunctionId = effector.chargeStruct().igniterFunctionId();
|
||||
dstEffector.interval = effector.interval();
|
||||
dstEffector.mhpPosition.rx() = effector.mhpPosition().lon();
|
||||
dstEffector.mhpPosition.ry() = effector.mhpPosition().lat();
|
||||
dstEffector.mhpPosition.rz() = effector.mhpPosition().z(); // [E01562-399]
|
||||
dstEffector.properties = QString::fromStdString(effector.properties());
|
||||
dstEffector.angleOfFall = effector.angleOfFall;
|
||||
dstEffector.chargeAmount = effector.chargeAmount;
|
||||
dstEffector.chargeTypeId = effector.chargeStruct.chargeTypeId;
|
||||
dstEffector.entityId = src.id;
|
||||
dstEffector.flightTime = effector.flightTime;
|
||||
dstEffector.igniterTypeId = effector.chargeStruct.igniterTypeId;
|
||||
dstEffector.igniterFunctionId = effector.chargeStruct.igniterFunctionId;
|
||||
dstEffector.interval = effector.interval;
|
||||
dstEffector.mhpPosition.rx() = effector.mhpPosition.lon;
|
||||
dstEffector.mhpPosition.ry() = effector.mhpPosition.lat;
|
||||
dstEffector.mhpPosition.rz() = effector.mhpPosition.z; // [E01562-399]
|
||||
dstEffector.properties = QString::fromStdString(effector.properties);
|
||||
// FillScatterData
|
||||
if (effector.mhpScatterLenght() > 0.0)
|
||||
dstEffector.mhpScatterLenght = effector.mhpScatterLenght();
|
||||
if (effector.mhpScatterLenght > 0.0)
|
||||
dstEffector.mhpScatterLenght = effector.mhpScatterLenght;
|
||||
else
|
||||
dstEffector.mhpScatterLenght = Settings::getScatterLenghtDefault();
|
||||
dstEffector.mhpScatterLengthDetonationHeight = effector.mhpScatterLengthDetonationHeight();
|
||||
if (effector.mhpScatterWidth() > 0.0)
|
||||
dstEffector.mhpScatterWidth = effector.mhpScatterWidth();
|
||||
dstEffector.mhpScatterLengthDetonationHeight = effector.mhpScatterLengthDetonationHeight;
|
||||
if (effector.mhpScatterWidth > 0.0)
|
||||
dstEffector.mhpScatterWidth = effector.mhpScatterWidth;
|
||||
else
|
||||
dstEffector.mhpScatterWidth = Settings::getScatterWidthDefault();
|
||||
dstEffector.mhpScatterWidthDetonationHeight = effector.mhpScatterWidthDetonationHeight();
|
||||
dstEffector.mhpScatterWidthDetonationHeight = effector.mhpScatterWidthDetonationHeight;
|
||||
// Fill rest
|
||||
dstEffector.participantId = effector.participantId();
|
||||
dstEffector.peakHeight = effector.peakHeight();
|
||||
dstEffector.trajectory = QString::fromStdString(TrajectoryRelative::toString(effector.trajectoryRelative()));
|
||||
dstEffector.participantId = effector.participantId;
|
||||
dstEffector.peakHeight = effector.peakHeight;
|
||||
dstEffector.trajectory = QString::fromStdString(TrajectoryRelative::toString(effector.trajectoryRelative));
|
||||
// sanity stuff
|
||||
localImpactCount = localImpactCount + dstEffector.chargeAmount;
|
||||
if (firstChargeTypeId <= 0)
|
||||
firstChargeTypeId = effector.chargeStruct().chargeTypeId();
|
||||
firstChargeTypeId = effector.chargeStruct.chargeTypeId;
|
||||
// check if it's a single fire
|
||||
if (bIsPointSimilar && ((src.area().width() <= 0) || (src.area().height() <= 0)))
|
||||
if (bIsPointSimilar && ((src.area.width <= 0) || (src.area.height <= 0)))
|
||||
{
|
||||
const Core::GeoPosition2D &cornerBottomLeft = src.area().cornerBottomLeft();
|
||||
const double impactDiameter = mainHandler->dds()->pdmDtc()->impactRadius(effector.chargeStruct().chargeTypeId(),
|
||||
effector.chargeStruct().igniterTypeId(),
|
||||
effector.chargeStruct().igniterFunctionId())
|
||||
const Core::GeoPosition2D &cornerBottomLeft = src.area.cornerBottomLeft;
|
||||
const double impactDiameter = mainHandler->dds()->pdmDtc()->impactRadius(effector.chargeStruct.chargeTypeId,
|
||||
effector.chargeStruct.igniterTypeId,
|
||||
effector.chargeStruct.igniterFunctionId)
|
||||
* 2.0; // GUEZE-2634
|
||||
|
||||
const QPointF bottomLeft(Polygons::centerPoint2BottomLeft(QPointF(cornerBottomLeft.lon(), cornerBottomLeft.lat()), impactDiameter, impactDiameter, 0));
|
||||
const QPointF bottomLeft(Polygons::centerPoint2BottomLeft(QPointF(cornerBottomLeft.lon, cornerBottomLeft.lat), impactDiameter, impactDiameter, 0));
|
||||
|
||||
dstEffector.mhpPosition.rx() = bottomLeft.x();
|
||||
dstEffector.mhpPosition.ry() = bottomLeft.y();
|
||||
@@ -252,14 +252,14 @@ static void fillData(const EffectClusterModifyRequest &src,
|
||||
}
|
||||
// Save the mhpCountRequest for later
|
||||
dst.mhpCountRequest = dstEffectorVector.size();
|
||||
dst.explosionGeometryId = src.explosionGeometry();
|
||||
dst.tla = src.tla();
|
||||
dst.explosionGeometryId = src.explosionGeometry;
|
||||
dst.tla = src.tla;
|
||||
|
||||
dst.effectStart = src.effectStart().is_set() && src.effectStart().get() > 0 ? QDateTime::fromMSecsSinceEpoch(src.effectStart().get()) : QDateTime();
|
||||
dst.effectStart = src.effectStart.is_set() && src.effectStart.get() > 0 ? QDateTime::fromMSecsSinceEpoch(src.effectStart.get()) : QDateTime();
|
||||
// Effect Duration might be set and will be used for the AutoFire
|
||||
// -- Module Duration
|
||||
if (src.effectDuration())
|
||||
dst.effectDuration = src.effectDuration();
|
||||
if (src.effectDuration)
|
||||
dst.effectDuration = src.effectDuration;
|
||||
else
|
||||
{
|
||||
// Sometimes there is no effectDuration
|
||||
@@ -267,20 +267,20 @@ static void fillData(const EffectClusterModifyRequest &src,
|
||||
dst.effectDuration = DEFAULT_EFFECT_DURATION;
|
||||
}
|
||||
|
||||
dst.effectSourceId = src.effectSourceId();
|
||||
dst.effectSourceId = src.effectSourceId;
|
||||
|
||||
dst.firePurposeId = src.firePurposeId();
|
||||
dst.firePurposeId = src.firePurposeId;
|
||||
|
||||
dst.partyId = src.partyId().is_set() ? src.partyId().get() : 0;
|
||||
dst.participantId = src.participantId().is_set() ? src.participantId().get() : -1; // -1 -> avoid trajectory
|
||||
dst.partyId = src.partyId.is_set() ? src.partyId.get() : 0;
|
||||
dst.participantId = src.participantId.is_set() ? src.participantId.get() : -1; // -1 -> avoid trajectory
|
||||
|
||||
dst.altitude = -1;
|
||||
|
||||
dst.effectMarkingInTa = src.effectMarkingInTa();
|
||||
dst.externalId = src.externalId().is_set() ? src.externalId().get() : 0;
|
||||
dst.effectMarkingInTa = src.effectMarkingInTa;
|
||||
dst.externalId = src.externalId.is_set() ? src.externalId.get() : 0;
|
||||
|
||||
dst.properties = QString::fromStdString(src.properties());
|
||||
dst.esmParticipantIds = LtsUtils::IntArray(src.esmParticipantIds());
|
||||
dst.properties = QString::fromStdString(src.properties);
|
||||
dst.esmParticipantIds = LtsUtils::IntArray(src.esmParticipantIds);
|
||||
// some modules:
|
||||
// if (dst.impactCount == 0 && localImpactCount > 0)
|
||||
|
||||
@@ -297,8 +297,8 @@ void HandlerEffectCluster::onEffectClusterModifyRequest(const rti::core::SampleI
|
||||
// DEBUG_LOG(m_logger) << "************************************ start onEffectClusterModifyRequest: " << request;
|
||||
Core::FunctionReplyObject ret = effectClusterModifyRequest(cookie, request);
|
||||
if (ret.error())
|
||||
WARNING_LOG(m_logger) << ret() << ", effectStart :" << request.effectStart();
|
||||
ret.setAdditionalInfo(request.properties().c_str());
|
||||
WARNING_LOG(m_logger) << ret() << ", effectStart :" << request.effectStart;
|
||||
ret.setAdditionalInfo(request.properties.c_str());
|
||||
// DEBUG_LOG(m_logger) << "************************************ SEND REPLY FOR onEffectClusterModifyRequest: " << request;
|
||||
|
||||
m_mainHandler->dds()->fts()->effectClusterModifyReply(cookie, ret);
|
||||
@@ -309,7 +309,7 @@ void HandlerEffectCluster::onEffectClusterModifyActorRequest(const rti::core::Sa
|
||||
// DEBUG_LOG(m_logger) << "************************************ start onEffectClusterModifyActorRequest: " << request;
|
||||
|
||||
Core::FunctionReplyObject ret;
|
||||
ObjectEffectCluster *ifs = getObjectFromMap(m_objectMap, request.aesId(), ret);
|
||||
ObjectEffectCluster *ifs = getObjectFromMap(m_objectMap, request.aesId, ret);
|
||||
if (!ifs)
|
||||
{
|
||||
m_mainHandler->dds()->fts()->effectClusterModifyActorReply(cookie, ret);
|
||||
@@ -380,28 +380,28 @@ void HandlerEffectCluster::onEffectClusterOcModifyRequest(const rti::core::Sampl
|
||||
|
||||
EffectClusterModifyRequest ecCommonModifyRequest;
|
||||
|
||||
ecCommonModifyRequest.id(request.id());
|
||||
ecCommonModifyRequest.id = request.id;
|
||||
// ecCommonModifyRequest.externalId(request.externalId());
|
||||
|
||||
ecCommonModifyRequest.effectStart(request.effectStart());
|
||||
ecCommonModifyRequest.effectDuration(request.effectDuration());
|
||||
ecCommonModifyRequest.effectStart = request.effectStart;
|
||||
ecCommonModifyRequest.effectDuration = request.effectDuration;
|
||||
|
||||
// charge and geometry:
|
||||
ecCommonModifyRequest.area(request.area());
|
||||
ecCommonModifyRequest.area = request.area;
|
||||
|
||||
int impactCount = 0;
|
||||
for (const auto &effector : request.effectors())
|
||||
effector.chargeAmount();
|
||||
for (const auto &effector : request.effectors)
|
||||
effector.chargeAmount;
|
||||
if (impactCount == 1)
|
||||
ecCommonModifyRequest.explosionGeometry(AreaEffectSimulation::AesExplosionGeometry_def::EgPoint);
|
||||
ecCommonModifyRequest.explosionGeometry = AreaEffectSimulation::AesExplosionGeometry::EgPoint;
|
||||
else
|
||||
ecCommonModifyRequest.explosionGeometry(AreaEffectSimulation::AesExplosionGeometry_def::EgArea);
|
||||
ecCommonModifyRequest.explosionGeometry = AreaEffectSimulation::AesExplosionGeometry::EgArea;
|
||||
// ecCommonModifyRequest.zog(0);
|
||||
ecCommonModifyRequest.effectors(request.effectors());
|
||||
ecCommonModifyRequest.name(request.name()); // ZpNummer
|
||||
ecCommonModifyRequest.element(ecCommonModifyRequest.element()); // element
|
||||
ecCommonModifyRequest.effectors = request.effectors;
|
||||
ecCommonModifyRequest.name = request.name; // ZpNummer
|
||||
ecCommonModifyRequest.element = ecCommonModifyRequest.element; // element
|
||||
|
||||
ecCommonModifyRequest.partyId(request.partyId());
|
||||
ecCommonModifyRequest.partyId = request.partyId;
|
||||
// ecCommonModifyRequest.participantId(-1); // -1 -> avoid trajectory
|
||||
|
||||
// ToDo: no trajectory needed, but how can we transfer the rotation of MhpAreas?
|
||||
@@ -423,26 +423,26 @@ Core::FunctionReplyObject HandlerEffectCluster::effectClusterCreateRequest(const
|
||||
// external (externalId==0) -> partyId required
|
||||
// We keep the old charge behavior
|
||||
// and also ignore it from ADLER?
|
||||
const int externalIdValue = request.externalId().is_set() ? request.externalId().get() : 0;
|
||||
if (request.effectors().size() == 0)
|
||||
const int externalIdValue = request.externalId.is_set() ? request.externalId.get() : 0;
|
||||
if (request.effectors.size() == 0)
|
||||
return Core::FunctionReplyObject(tr_lts("dds", "Invalid Effector Count"));
|
||||
|
||||
// We assume that there is no mixture of GeraClasses between charges
|
||||
const ProjectDataManagement::GearClass gearClass = m_mainHandler->gearClassOfChargeTypeId(request.effectors().at(0).chargeStruct().chargeTypeId());
|
||||
const ProjectDataManagement::GearClass gearClass = m_mainHandler->gearClassOfChargeTypeId(request.effectors.at(0).chargeStruct.chargeTypeId);
|
||||
|
||||
const bool bDoClaimPlannedCharge = (request.id() == 0) && (externalIdValue == 0)
|
||||
&& (gearClass != ProjectDataManagement::GearClass_def::AirSupport
|
||||
const bool bDoClaimPlannedCharge = (request.id == 0) && (externalIdValue == 0)
|
||||
&& (gearClass != ProjectDataManagement::GearClass::GearClass_AirSupport
|
||||
//&& (m_mainHandler->dds()->pdmDtc()->isAdlerChargeType(request.chargeTypeId()))
|
||||
)
|
||||
&& 1 == 2 && (request.effectSourceId() == ProjectDataManagement::EffectSource::ES_Internal);
|
||||
&& 1 == 2 && (request.effectSourceId == ProjectDataManagement::EffectSource::ES_Internal);
|
||||
|
||||
if (bDoClaimPlannedCharge)
|
||||
{
|
||||
// get full charge amount per charge
|
||||
|
||||
QMap<int, int> mapChargeTypeAmount; // QMp<chargeTypeId, chargeAmount>
|
||||
for (const auto &effector : request.effectors())
|
||||
mapChargeTypeAmount.insert(effector.chargeStruct().chargeTypeId(), mapChargeTypeAmount.value(effector.chargeStruct().chargeTypeId()) + effector.chargeAmount());
|
||||
for (const auto &effector : request.effectors)
|
||||
mapChargeTypeAmount.insert(effector.chargeStruct.chargeTypeId, mapChargeTypeAmount.value(effector.chargeStruct.chargeTypeId) + effector.chargeAmount);
|
||||
QMapIterator<int, int> it(mapChargeTypeAmount);
|
||||
while (it.hasNext())
|
||||
{
|
||||
@@ -452,14 +452,14 @@ Core::FunctionReplyObject HandlerEffectCluster::effectClusterCreateRequest(const
|
||||
if (chargeNeeded <= 0)
|
||||
return Core::FunctionReplyObject(tr_lts("dds", "Invalid impact count (<= 0)."));
|
||||
|
||||
if (request.id() == 0)
|
||||
if (request.id == 0)
|
||||
{
|
||||
int chargeLeft = m_mainHandler->chargeAdministrationHandler()->availableCharge(it.key(), request.partyId().get());
|
||||
int chargeLeft = m_mainHandler->chargeAdministrationHandler()->availableCharge(it.key(), request.partyId.get());
|
||||
|
||||
QString chargeName = QString::fromStdString(m_mainHandler->dds()->pdmDtc()->chargeType(it.key()).name());
|
||||
QString chargeName = QString::fromStdString(m_mainHandler->dds()->pdmDtc()->chargeType(it.key()).name);
|
||||
QString fireUnitName;
|
||||
if (request.participantId().is_set())
|
||||
fireUnitName = QString::fromStdString(m_mainHandler->dds()->ppmDtc()->participant(request.participantId().get()).designator());
|
||||
if (request.participantId.is_set())
|
||||
fireUnitName = QString::fromStdString(m_mainHandler->dds()->ppmDtc()->participant(request.participantId.get()).designator);
|
||||
|
||||
if (chargeNeeded > chargeLeft)
|
||||
return Core::FunctionReplyObject(tr_lts("dds", "Invalid impact count. Fire Unit '%1' has %2 charges (%3), but for this cluster %4 are needed."))
|
||||
@@ -474,11 +474,11 @@ Core::FunctionReplyObject HandlerEffectCluster::effectClusterCreateRequest(const
|
||||
Database::AesEffectCluster newData;
|
||||
QVector<Database::AesEffectorData> newEffectorDataVec;
|
||||
|
||||
const QJsonObject propertiesObject = QJsonDocument::fromJson(QByteArray::fromStdString(request.properties())).object();
|
||||
const QJsonObject propertiesObject = QJsonDocument::fromJson(QByteArray::fromStdString(request.properties)).object();
|
||||
|
||||
fillData(request, newData, newEffectorDataVec, m_mainHandler);
|
||||
DEBUG_LOG(m_logger) << "AUTO newData " << newData.impactCount;
|
||||
if (!request.properties().empty() && (!request.effectStart().is_set() || request.effectStart().get() == 0))
|
||||
if (!request.properties.empty() && (!request.effectStart.is_set() || request.effectStart.get() == 0))
|
||||
{
|
||||
newData.isUsingEffectStateReceived = propertiesObject.value(QStringLiteral("useReceived")).toBool();
|
||||
}
|
||||
@@ -513,7 +513,7 @@ Core::FunctionReplyObject HandlerEffectCluster::effectClusterCreateRequest(const
|
||||
return Core::FunctionReplyObject(1, tr_lts("dds", "Too many active air supports."));
|
||||
}
|
||||
}
|
||||
else if (totalAreasCentral() >= (s_maxActiveAreasCentral[AesType::AtEffectCluster]) + (s_currentAirSupportCount) && request.effectStart().is_set())
|
||||
else if (totalAreasCentral() >= (s_maxActiveAreasCentral[static_cast<int>(AesType::AtEffectCluster)]) + (s_currentAirSupportCount) && request.effectStart.is_set())
|
||||
{
|
||||
ifs->removeObject(); // Not finally deleted from db after this,Fallback if DB deletion is not working correct
|
||||
ifs->removeObjectFromDb();
|
||||
@@ -543,21 +543,21 @@ Core::FunctionReplyObject HandlerEffectCluster::effectClusterModifyRequest(const
|
||||
// // externalId maybe set be HLA interface:
|
||||
// // from external (externalIdValue>0) -> no partyId required
|
||||
// // from internal (externalIdValue==0) -> partyId required
|
||||
// const int externalIdValue = request.externalId().is_set() ? request.externalId().get() : 0;
|
||||
// if (externalIdValue == 0 && !request.partyId().is_set())
|
||||
// const int externalIdValue = request.externalId.is_set() ? request.externalId.get() : 0;
|
||||
// if (externalIdValue == 0 && !request.partyId.is_set())
|
||||
// return Core::FunctionReplyObject(tr_lts("dds", "Explosion areas need a party id."));
|
||||
|
||||
DEBUG_LOG(m_logger) << "request.effectStart :" << request.effectStart() << ", effectDuration :"
|
||||
<< request.effectDuration()
|
||||
DEBUG_LOG(m_logger) << "request.effectStart :" << request.effectStart << ", effectDuration :"
|
||||
<< request.effectDuration
|
||||
// << ", flightDuration :" << request.flightDuration()
|
||||
// << ", tapTime :" << request.tapTime()
|
||||
<< ", properties: " << request.properties();
|
||||
<< ", properties: " << request.properties;
|
||||
|
||||
Core::FunctionReplyObject ret;
|
||||
if (request.id() == 0 || ((request.id() < 0) && !getObjectFromMap(m_objectMap, std::abs(request.id()), ret)))
|
||||
if (request.id == 0 || ((request.id < 0) && !getObjectFromMap(m_objectMap, std::abs(request.id), ret)))
|
||||
return effectClusterCreateRequest(request);
|
||||
|
||||
ObjectEffectCluster *ifs = getObjectFromMap(m_objectMap, std::abs(request.id()), ret);
|
||||
ObjectEffectCluster *ifs = getObjectFromMap(m_objectMap, std::abs(request.id), ret);
|
||||
if (!ifs)
|
||||
return ret;
|
||||
|
||||
@@ -569,12 +569,12 @@ Core::FunctionReplyObject HandlerEffectCluster::effectClusterModifyRequest(const
|
||||
const QJsonObject propertiesObject = QJsonDocument::fromJson(QByteArray::fromStdString(aea.properties.toStdString())).object();
|
||||
|
||||
// Context NASAT: check via chargeTypeId:
|
||||
const ProjectDataManagement::GearClass gc = m_mainHandler->gearClassOfChargeTypeId(request.effectors().at(0).chargeStruct().chargeTypeId());
|
||||
const ProjectDataManagement::GearClass gc = m_mainHandler->gearClassOfChargeTypeId(request.effectors.at(0).chargeStruct.chargeTypeId);
|
||||
|
||||
const bool bChargeIsAirSupport = (gc == ProjectDataManagement::GearClass::GearClass_AirSupport);
|
||||
ifs->setAirSupportSource(bChargeIsAirSupport);
|
||||
// For counting, only Elements being at least prepared are important:
|
||||
if (request.effectStart().is_set() && ifs->isObjectModifiable()) // ToDo: check
|
||||
if (request.effectStart.is_set() && ifs->isObjectModifiable()) // ToDo: check
|
||||
{
|
||||
// Calculate new polygon here. Not nice, though
|
||||
auto poly = Polygons::effectClusterArea(aea);
|
||||
@@ -590,20 +590,20 @@ Core::FunctionReplyObject HandlerEffectCluster::effectClusterModifyRequest(const
|
||||
}
|
||||
else
|
||||
{
|
||||
if (totalAreasCentral() >= (s_maxActiveAreasCentral[AesType::AtEffectCluster] + (s_currentAirSupportCount)) && request.effectStart().is_set()
|
||||
if (totalAreasCentral() >= (s_maxActiveAreasCentral[static_cast<int>(AesType::AtEffectCluster)] + (s_currentAirSupportCount)) && request.effectStart.is_set()
|
||||
&& ((wasCentral && !ifs->isActivationTimeSet()) || !wasCentral))
|
||||
return Core::FunctionReplyObject(1, tr_lts("dds", "Too many active central effect clusters."));
|
||||
}
|
||||
// For counting, only Elements being at least prepared are important:
|
||||
}
|
||||
|
||||
if (request.id() < 0 && checkStateForSfm(ifs))
|
||||
if (request.id < 0 && checkStateForSfm(ifs))
|
||||
{
|
||||
DEBUG_LOG(m_logger) << "Overwrite Effect State for OC";
|
||||
aea.effectStateId = AesEffectState::EsPrepared;
|
||||
}
|
||||
|
||||
DEBUG_LOG(m_logger) << "request.properties()" << request.properties() << " aea.properties=" << aea.properties;
|
||||
DEBUG_LOG(m_logger) << "request.properties()" << request.properties << " aea.properties=" << aea.properties;
|
||||
// ifs->setEffectors(effectorDataVec);
|
||||
// updateProperties(aea, effectorDataVec); <- done in fillData
|
||||
// update internalMap
|
||||
@@ -656,7 +656,7 @@ void HandlerEffectCluster::onEffectClusterPauseResumeRequest(const rti::core::Sa
|
||||
{
|
||||
DEBUG_LOG(m_logger) << "onEffectClusterPauseResumeRequest" << request;
|
||||
Core::FunctionReplyObject ret;
|
||||
ObjectEffectCluster *ifs = getObjectFromMap(m_objectMap, request.id(), ret);
|
||||
ObjectEffectCluster *ifs = getObjectFromMap(m_objectMap, request.id, ret);
|
||||
if (!ifs)
|
||||
{
|
||||
m_mainHandler->dds()->fts()->effectClusterPauseResumeReply(cookie, ret);
|
||||
@@ -677,13 +677,13 @@ void HandlerEffectCluster::onEffectClusterFireHaltRequest(const rti::core::Sampl
|
||||
|
||||
Core::FunctionReplyObject ret;
|
||||
|
||||
ProjectDataManagement::L22_FireHaltCategory categorie = request.fireHaltCategory();
|
||||
ProjectDataManagement::L22_FireHaltCategory categorie = request.fireHaltCategory;
|
||||
|
||||
QMap<int, ObjectEffectCluster *> effectClusterPartyMap;
|
||||
|
||||
for (const auto *area : qAsConst(m_objectMap))
|
||||
{
|
||||
if (area->data().partyId == request.partyId())
|
||||
if (area->data().partyId == request.partyId)
|
||||
{
|
||||
ObjectEffectCluster *ifs = getObjectFromMap(m_objectMap, area->data().id, ret);
|
||||
if (!ifs)
|
||||
@@ -696,7 +696,7 @@ void HandlerEffectCluster::onEffectClusterFireHaltRequest(const rti::core::Sampl
|
||||
}
|
||||
}
|
||||
|
||||
switch (categorie.underlying())
|
||||
switch (categorie)
|
||||
{
|
||||
case ProjectDataManagement::L22_FireHaltCategory::L22_FireHaltCategory_A: // Feuer Halt Allgemein
|
||||
{
|
||||
@@ -705,9 +705,9 @@ void HandlerEffectCluster::onEffectClusterFireHaltRequest(const rti::core::Sampl
|
||||
{
|
||||
EffectClusterPauseResumeRequest req;
|
||||
|
||||
req.id(ifs->data().id);
|
||||
req.remainingDuration(ifs->data().effectDuration);
|
||||
req.resumeExecution(false); // false -> pause aes
|
||||
req.id = ifs->data().id;
|
||||
req.remainingDuration = ifs->data().effectDuration;
|
||||
req.resumeExecution = false; // false -> pause aes
|
||||
|
||||
ret = ifs->resumePause(req);
|
||||
}
|
||||
@@ -720,9 +720,9 @@ void HandlerEffectCluster::onEffectClusterFireHaltRequest(const rti::core::Sampl
|
||||
// the fire hold with the corresponding target coordinate and circular area.
|
||||
for (auto *ifs : qAsConst(effectClusterPartyMap))
|
||||
{
|
||||
const double lonRad = request.longitude().is_set() ? request.longitude().get() * LtsCoordTrans::deg2rad() : 0.0;
|
||||
const double latRad = request.latitude().is_set() ? request.latitude().get() * LtsCoordTrans::deg2rad() : 0.0;
|
||||
const int radius = request.radius().is_set() ? request.radius().get() : 0;
|
||||
const double lonRad = request.longitude.is_set() ? request.longitude.get() * LtsCoordTrans::deg2rad() : 0.0;
|
||||
const double latRad = request.latitude.is_set() ? request.latitude.get() * LtsCoordTrans::deg2rad() : 0.0;
|
||||
const int radius = request.radius.is_set() ? request.radius.get() : 0;
|
||||
|
||||
DEBUG_LOG(m_logger) << "[Feuer Halt Referenziert] " << "lonRad : " << lonRad << " " << "latRad : " << latRad << " " << "radius : " << radius;
|
||||
|
||||
@@ -731,9 +731,9 @@ void HandlerEffectCluster::onEffectClusterFireHaltRequest(const rti::core::Sampl
|
||||
DEBUG_LOG(m_logger) << "[Feuer Halt Referenziert ----- intersectWithCircle] " << "effectClusterId: " << ifs->data().id;
|
||||
|
||||
EffectClusterPauseResumeRequest req;
|
||||
req.id(ifs->data().id);
|
||||
req.remainingDuration(ifs->data().effectDuration);
|
||||
req.resumeExecution(false); // false -> pause aes
|
||||
req.id = ifs->data().id;
|
||||
req.remainingDuration = ifs->data().effectDuration;
|
||||
req.resumeExecution = false; // false -> pause aes
|
||||
|
||||
ifs->resumePause(req);
|
||||
}
|
||||
@@ -750,7 +750,7 @@ void HandlerEffectCluster::onEffectClusterFireHaltRequest(const rti::core::Sampl
|
||||
{
|
||||
DEBUG_LOG(m_logger) << "[Feuer Einstellen ----- markAsExpired] " << "effectClusterId: " << ifs->data().id;
|
||||
|
||||
ifs->markAsExpired(request.entladenSchuss().is_set() ? request.entladenSchuss().get() : false);
|
||||
ifs->markAsExpired(request.entladenSchuss.is_set() ? request.entladenSchuss.get() : false);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -760,8 +760,8 @@ void HandlerEffectCluster::onEffectClusterFireHaltRequest(const rti::core::Sampl
|
||||
DEBUG_LOG(m_logger) << "[Aufheben Feuer Halt Allgemein] " << "effectClusterId: " << ifs->data().id;
|
||||
|
||||
EffectClusterPauseResumeRequest req;
|
||||
req.remainingDuration(ifs->data().effectDuration);
|
||||
req.resumeExecution(true); // true -> resume aes
|
||||
req.remainingDuration = ifs->data().effectDuration;
|
||||
req.resumeExecution = true; // true -> resume aes
|
||||
|
||||
ifs->resumePause(req);
|
||||
}
|
||||
@@ -770,9 +770,9 @@ void HandlerEffectCluster::onEffectClusterFireHaltRequest(const rti::core::Sampl
|
||||
{
|
||||
for (auto *ifs : qAsConst(effectClusterPartyMap))
|
||||
{
|
||||
const double lonRad = request.longitude().is_set() ? request.longitude().get() * LtsCoordTrans::deg2rad() : 0.0; // optional<lonRad>
|
||||
const double latRad = request.latitude().is_set() ? request.latitude().get() * LtsCoordTrans::deg2rad() : 0.0; // optional <latRad>
|
||||
const int radius = request.radius().is_set() ? request.radius().get() : 0;
|
||||
const double lonRad = request.longitude.is_set() ? request.longitude.get() * LtsCoordTrans::deg2rad() : 0.0; // optional<lonRad>
|
||||
const double latRad = request.latitude.is_set() ? request.latitude.get() * LtsCoordTrans::deg2rad() : 0.0; // optional <latRad>
|
||||
const int radius = request.radius.is_set() ? request.radius.get() : 0;
|
||||
|
||||
DEBUG_LOG(m_logger) << "[Aufheben Feuer Halt Referenziert] " << "lonRad : " << lonRad << " " << "latRad : " << latRad << " " << "radius : " << radius;
|
||||
|
||||
@@ -782,9 +782,9 @@ void HandlerEffectCluster::onEffectClusterFireHaltRequest(const rti::core::Sampl
|
||||
|
||||
EffectClusterPauseResumeRequest req;
|
||||
|
||||
req.id(ifs->data().id);
|
||||
req.remainingDuration(ifs->data().effectDuration);
|
||||
req.resumeExecution(true); // true -> resume aes
|
||||
req.id = ifs->data().id;
|
||||
req.remainingDuration = ifs->data().effectDuration;
|
||||
req.resumeExecution = true; // true -> resume aes
|
||||
|
||||
ifs->resumePause(req);
|
||||
}
|
||||
@@ -792,7 +792,7 @@ void HandlerEffectCluster::onEffectClusterFireHaltRequest(const rti::core::Sampl
|
||||
break;
|
||||
}
|
||||
default:
|
||||
INFO_LOG(m_logger) << "EX-FH missing or wrong FireHaltCategory" << categorie.underlying();
|
||||
INFO_LOG(m_logger) << "EX-FH missing or wrong FireHaltCategory" << categorie;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -805,8 +805,8 @@ void HandlerEffectCluster::onEffectClusterFireHaltRequest(const rti::core::Sampl
|
||||
void HandlerEffectCluster::onEffectClusterReleaseReceivedRequest(const rti::core::SampleIdentity &cookie, const EffectClusterReleaseReceivedRequest &request)
|
||||
{
|
||||
DEBUG_LOG(m_logger) << "onEffectClusterReleaseReceivedRequest" << request;
|
||||
Core::FunctionReplyObject ret(request.id());
|
||||
ObjectEffectCluster *ifs = getObjectFromMap(m_objectMap, request.id(), ret);
|
||||
Core::FunctionReplyObject ret(request.id);
|
||||
ObjectEffectCluster *ifs = getObjectFromMap(m_objectMap, request.id, ret);
|
||||
if (!ifs)
|
||||
{
|
||||
ERROR_LOG(m_logger) << ret();
|
||||
@@ -816,7 +816,7 @@ void HandlerEffectCluster::onEffectClusterReleaseReceivedRequest(const rti::core
|
||||
|
||||
if (!ifs->isUsingEffectStateReceived())
|
||||
{
|
||||
ret = ret.setStr(tr_lts("dds", "EffectCluster with id %1 is not using EffectState Received")).arg(request.id());
|
||||
ret = ret.setStr(tr_lts("dds", "EffectCluster with id %1 is not using EffectState Received")).arg(request.id);
|
||||
ERROR_LOG(m_logger) << ret();
|
||||
m_mainHandler->dds()->fts()->effectClusterReleaseReceivedReply(cookie, ret);
|
||||
return;
|
||||
@@ -832,9 +832,9 @@ void HandlerEffectCluster::onEffectClusterReleaseReceivedRequest(const rti::core
|
||||
|
||||
void HandlerEffectCluster::onAcknowledgeExternalAesItemRequest(const rti::core::SampleIdentity &cookie, const AcknowledgeExternalAesItemRequest &request)
|
||||
{
|
||||
DEBUG_LOG(m_logger) << "HandlerEffectCluster::onAcknowledgeExternalAesItemRequest for aesItem" << request.aesId();
|
||||
Core::FunctionReplyObject ret(request.aesId());
|
||||
ObjectEffectCluster *ifs = getObjectFromMap(m_objectMap, request.aesId(), ret);
|
||||
DEBUG_LOG(m_logger) << "HandlerEffectCluster::onAcknowledgeExternalAesItemRequest for aesItem" << request.aesId;
|
||||
Core::FunctionReplyObject ret(request.aesId);
|
||||
ObjectEffectCluster *ifs = getObjectFromMap(m_objectMap, request.aesId, ret);
|
||||
if (!ifs)
|
||||
{
|
||||
ERROR_LOG(m_logger) << ret();
|
||||
@@ -852,18 +852,18 @@ void HandlerEffectCluster::onAcknowledgeExternalAesItemRequest(const rti::core::
|
||||
|
||||
void HandlerEffectCluster::onSetAesItemEffectorStateRequest(const rti::core::SampleIdentity &cookie, const SetAesItemEffectorStateRequest &request)
|
||||
{
|
||||
DEBUG_LOG(m_logger) << "HandlerEffectCluster::onSetAesItemEffectorStateRequest for aesItem" << request.aesId() << " to State: " << request.newEffectorState();
|
||||
Core::FunctionReplyObject ret(request.aesId());
|
||||
ObjectEffectCluster *ifs = getObjectFromMap(m_objectMap, request.aesId(), ret);
|
||||
DEBUG_LOG(m_logger) << "HandlerEffectCluster::onSetAesItemEffectorStateRequest for aesItem" << request.aesId << " to State: " << request.newEffectorState;
|
||||
Core::FunctionReplyObject ret(request.aesId);
|
||||
ObjectEffectCluster *ifs = getObjectFromMap(m_objectMap, request.aesId, ret);
|
||||
if (!ifs)
|
||||
{
|
||||
ERROR_LOG(m_logger) << ret();
|
||||
m_mainHandler->dds()->fts()->setAesItemEffectorStateReply(cookie, ret);
|
||||
return;
|
||||
}
|
||||
if (!ifs->overrideEffectorStates(request.newEffectorState()))
|
||||
if (!ifs->overrideEffectorStates(request.newEffectorState))
|
||||
{
|
||||
ret.setStr(tr_lts("dds", "EffectCluster with id %1 can't change to new State")).arg(request.aesId());
|
||||
ret.setStr(tr_lts("dds", "EffectCluster with id %1 can't change to new State")).arg(request.aesId);
|
||||
}
|
||||
|
||||
m_mainHandler->dds()->fts()->setAesItemEffectorStateReply(cookie, ret);
|
||||
@@ -901,7 +901,7 @@ void HandlerEffectCluster::onTrajectoryAdlerModifyRequest(const rti::core::Sampl
|
||||
{
|
||||
DEBUG_LOG(m_logger) << "onTrajectoryAdlerModifyRequest" << request;
|
||||
Core::FunctionReplyObject ret;
|
||||
ObjectEffectCluster *ifs = getObjectFromMap(m_objectMap, request.aesItemId(), ret);
|
||||
ObjectEffectCluster *ifs = getObjectFromMap(m_objectMap, request.aesItemId, ret);
|
||||
if (!ifs)
|
||||
{
|
||||
m_mainHandler->dds()->fts()->trajectoryAdlerModifyReply(cookie, ret);
|
||||
|
||||
Reference in new issue
Block a user