Migrates EffectShow and AssetManagement to generated rtiddsgen API

Converts accessor calls to plain member access across esc and asm services.
This commit is contained in:
berrux-dev committed 2026-09-21 02:46:24 +02:00
1 parent a09979afdd
commit bdb2461737
39 files changed
+818 -818

No files matched your search

@@ -96,86 +96,86 @@ void AsmTests::setRequestData(AssetManagement::TrainingAreaModifyRequest &reques
std::vector<AssetManagement::MapDescription> elevation_param; std::vector<AssetManagement::MapDescription> elevation_param;
std::vector<AssetManagement::MapDescription> sceneObjects_param; std::vector<AssetManagement::MapDescription> sceneObjects_param;
mapDescription.name("Topographic 01"); mapDescription.name = "Topographic 01";
mapDescription.description("Description_01"); mapDescription.description = "Description_01";
mapDescription.isDeleted(false); mapDescription.isDeleted = false;
mapDescription.mapTypeId(AssetManagement::MapType_def::Topographic); mapDescription.mapTypeId = AssetManagement::MapType::Topographic;
mapDescription.mapDescriptionTypeId(AssetManagement::MapDescriptionType::Map2D); mapDescription.mapDescriptionTypeId = AssetManagement::MapDescriptionType::Map2D;
mapDescription.maxScale(20.0); mapDescription.maxScale = 20.0;
mapDescription.minScale(0.5); mapDescription.minScale = 0.5;
if (modId > 0) if (modId > 0)
{ {
mapDescription.trainingAreaId(modId); mapDescription.trainingAreaId = modId;
mapDescription.url("URL1 modified"); mapDescription.url = "URL1 modified";
} }
else else
mapDescription.url("URL1 initial"); mapDescription.url = "URL1 initial";
map2D_param.resize(2); map2D_param.resize(2);
map2D_param[0] = mapDescription; map2D_param[0] = mapDescription;
mapDescription.name("Topographic 02"); mapDescription.name = "Topographic 02";
mapDescription.description("Description_02"); mapDescription.description = "Description_02";
if (modId > 0) if (modId > 0)
{ {
mapDescription.trainingAreaId(modId); mapDescription.trainingAreaId = modId;
mapDescription.url("URL2 modified"); mapDescription.url = "URL2 modified";
} }
else else
mapDescription.url("URL2 initial"); mapDescription.url = "URL2 initial";
map2D_param[1] = mapDescription; map2D_param[1] = mapDescription;
request.map2D(map2D_param); request.map2D = map2D_param;
scene3D_param.resize(1); scene3D_param.resize(1);
mapDescription.mapTypeId(AssetManagement::MapType_def::Topographic); mapDescription.mapTypeId = AssetManagement::MapType::Topographic;
mapDescription.mapDescriptionTypeId(AssetManagement::MapDescriptionType::Scene3D); mapDescription.mapDescriptionTypeId = AssetManagement::MapDescriptionType::Scene3D;
mapDescription.description("Description_03"); mapDescription.description = "Description_03";
mapDescription.name("Scene3D"); mapDescription.name = "Scene3D";
if (modId > 0) if (modId > 0)
{ {
mapDescription.trainingAreaId(modId); mapDescription.trainingAreaId = modId;
mapDescription.url("URL3 modified"); mapDescription.url = "URL3 modified";
} }
else else
mapDescription.url("URL3 initial"); mapDescription.url = "URL3 initial";
scene3D_param[0] = mapDescription; scene3D_param[0] = mapDescription;
request.scene3D(scene3D_param); request.scene3D = scene3D_param;
if (modId == 0) if (modId == 0)
{ {
elevation_param.resize(1); elevation_param.resize(1);
mapDescription.mapTypeId(AssetManagement::MapType_def::Elevation); mapDescription.mapTypeId = AssetManagement::MapType::Elevation;
mapDescription.mapDescriptionTypeId(AssetManagement::MapDescriptionType::Elevation); mapDescription.mapDescriptionTypeId = AssetManagement::MapDescriptionType::Elevation;
mapDescription.url("URL4 initial"); mapDescription.url = "URL4 initial";
mapDescription.description("Description_04"); mapDescription.description = "Description_04";
mapDescription.name("Elevation"); mapDescription.name = "Elevation";
elevation_param[0] = mapDescription; elevation_param[0] = mapDescription;
request.elevation(elevation_param); request.elevation = elevation_param;
sceneObjects_param.resize(1); sceneObjects_param.resize(1);
mapDescription.mapTypeId(AssetManagement::MapType_def::SceneObjects); mapDescription.mapTypeId = AssetManagement::MapType::SceneObjects;
mapDescription.mapDescriptionTypeId(AssetManagement::MapDescriptionType::SceneObj); mapDescription.mapDescriptionTypeId = AssetManagement::MapDescriptionType::SceneObj;
mapDescription.url("URL5 initial"); mapDescription.url = "URL5 initial";
mapDescription.description("Description_05"); mapDescription.description = "Description_05";
mapDescription.name("SceneObjects"); mapDescription.name = "SceneObjects";
sceneObjects_param[0] = mapDescription; sceneObjects_param[0] = mapDescription;
request.sceneObjects(sceneObjects_param); request.sceneObjects = sceneObjects_param;
request.id(0); request.id = 0;
request.name("TestTrainingAreaCreate"); request.name = "TestTrainingAreaCreate";
request.bottomLeft(Core::GeoPosition2D(11.61/180*M_PI, 53.07/180*M_PI)); request.bottomLeft = Core::GeoPosition2D(11.61/180*M_PI, 53.07/180*M_PI);
request.height(100000); request.height = 100000;
request.width(100000); request.width = 100000;
request.image(imageVector); request.image = imageVector;
} }
else else
{ {
request.id(m_trainingAreaId); request.id = m_trainingAreaId;
request.name("TestTrainingAreaModified"); request.name = "TestTrainingAreaModified";
request.bottomLeft(Core::GeoPosition2D(11.61/180*M_PI, 53.07/180*M_PI)); request.bottomLeft = Core::GeoPosition2D(11.61/180*M_PI, 53.07/180*M_PI);
request.height(140000); request.height = 140000;
request.width(120000); request.width = 120000;
} }
} }
@@ -31,10 +31,10 @@ bool DtcImplCustom::isAARWorkstation(const QString &wsName)
int wsId = -1; int wsId = -1;
for (const auto &at : m_dtcAsset->readAlive()) for (const auto &at : m_dtcAsset->readAlive())
{ {
if (at.data().assetTypeId() == AssetManagement::AssetType::MobileAfterActionVehicle && if (at.data().assetTypeId == AssetManagement::AssetType::MobileAfterActionVehicle &&
QString::fromStdString(at.data().name()).toUpper() == wsName.toUpper()) QString::fromStdString(at.data().name).toUpper() == wsName.toUpper())
{ {
wsId = at.data().id(); wsId = at.data().id;
break; break;
} }
} }
@@ -53,9 +53,9 @@ int DtcImplCustom::getAssetId(const QString &wsName)
int wsId = -1; int wsId = -1;
for (const auto &at : m_dtcAsset->readAlive()) for (const auto &at : m_dtcAsset->readAlive())
{ {
if ( QString::fromStdString(at.data().name()).toUpper() == wsName.toUpper()) if ( QString::fromStdString(at.data().name).toUpper() == wsName.toUpper())
{ {
wsId = at.data().id(); wsId = at.data().id;
break; break;
} }
} }
@@ -20,31 +20,31 @@ inline TrainingArea convert(const AsmTrainingArea &dbData)
{ {
TrainingArea ddsData; TrainingArea ddsData;
ddsData.id(dbData.id); ddsData.id = dbData.id;
ddsData.name(dbData.name.toStdString()); ddsData.name = dbData.name.toStdString();
ddsData.bottomLeft(Core::GeoPosition2D(dbData.bottomLeft.x(), dbData.bottomLeft.y())); ddsData.bottomLeft = Core::GeoPosition2D(dbData.bottomLeft.x(), dbData.bottomLeft.y());
ddsData.height(dbData.height); ddsData.height = dbData.height;
ddsData.width(dbData.width); ddsData.width = dbData.width;
ddsData.image() = LtsUtils::convert<std::vector<uint8_t>>(dbData.image); ddsData.image = LtsUtils::convert<std::vector<uint8_t>>(dbData.image);
// init data not in db // init data not in db
ddsData.isDeleted(false); ddsData.isDeleted = false;
ddsData.isUsed(false); ddsData.isUsed = false;
return ddsData; return ddsData;
} }
inline MapDescription convert(const AsmMapDescription &dbData) inline MapDescription convert(const AsmMapDescription &dbData)
{ {
MapDescription ddsData; MapDescription ddsData;
ddsData.id(dbData.id); ddsData.id = dbData.id;
ddsData.name(dbData.name.toStdString()); ddsData.name = dbData.name.toStdString();
ddsData.description(dbData.description.toStdString()); ddsData.description = dbData.description.toStdString();
ddsData.mapDescriptionTypeId(dbData.mapDescriptionTypeId); ddsData.mapDescriptionTypeId = dbData.mapDescriptionTypeId;
ddsData.mapTypeId(dbData.mapTypeId); ddsData.mapTypeId = dbData.mapTypeId;
ddsData.maxScale(dbData.minScale); ddsData.maxScale = dbData.minScale;
ddsData.minScale(dbData.minScale); ddsData.minScale = dbData.minScale;
ddsData.trainingAreaId(dbData.trainingAreaId); ddsData.trainingAreaId = dbData.trainingAreaId;
ddsData.url(dbData.url.toStdString()); ddsData.url = dbData.url.toStdString();
return ddsData; return ddsData;
} }
} }
@@ -70,11 +70,11 @@ void HandlerAsset::onAssetModifyRequest(const rti::core::SampleIdentity &cookie,
Core::FunctionReplyObject HandlerAsset::assetModifyRequest(const Asset &request) Core::FunctionReplyObject HandlerAsset::assetModifyRequest(const Asset &request)
{ {
// modify // modify
if (request.id() > 0) if (request.id > 0)
{ {
ObjectAsset *ifs = m_objectAssetMap.value(request.id()); ObjectAsset *ifs = m_objectAssetMap.value(request.id);
if (!ifs) if (!ifs)
return Core::FunctionReplyObject(request.id(), tr_lts("dds", "Asset with id %1 not found")).arg(request.id()); return Core::FunctionReplyObject(request.id, tr_lts("dds", "Asset with id %1 not found")).arg(request.id);
return ifs->updateObject(request); return ifs->updateObject(request);
} }
// create // create
@@ -96,18 +96,18 @@ void HandlerAsset::onAssetRemoveRequest(const rti::core::SampleIdentity &cookie,
const Core::RemoveElementRequest &request) const Core::RemoveElementRequest &request)
{ {
Core::FunctionReplyObject ret; Core::FunctionReplyObject ret;
ObjectAsset *ifs = m_objectAssetMap.value(request.id()); ObjectAsset *ifs = m_objectAssetMap.value(request.id);
if (ifs == nullptr) if (ifs == nullptr)
{ {
ret = Core::FunctionReplyObject(request.id(), tr_lts("dds", "Asset with id %1 not found")).arg(request.id()); ret = Core::FunctionReplyObject(request.id, tr_lts("dds", "Asset with id %1 not found")).arg(request.id);
m_mainHandler->dds()->fts()->assetRemoveReply(cookie, ret); m_mainHandler->dds()->fts()->assetRemoveReply(cookie, ret);
return; return;
} }
if (m_mainHandler->dds()->topicLockMaster()->isLocked(ifs->getData(), m_mainHandler->exerciseId())) if (m_mainHandler->dds()->topicLockMaster()->isLocked(ifs->getData(), m_mainHandler->exerciseId()))
{ {
ret = Core::FunctionReplyObject(request.id(), tr_lts("dds", "Asset '%1' is used by another user!")).arg(ifs->getName()); ret = Core::FunctionReplyObject(request.id, tr_lts("dds", "Asset '%1' is used by another user!")).arg(ifs->getName());
m_mainHandler->dds()->fts()->assetRemoveReply(cookie, ret); m_mainHandler->dds()->fts()->assetRemoveReply(cookie, ret);
return; return;
} }
@@ -120,7 +120,7 @@ void HandlerAsset::onAssetRemoveRequest(const rti::core::SampleIdentity &cookie,
{ {
// delete ObjectAsset // delete ObjectAsset
delete ifs; delete ifs;
m_objectAssetMap.remove(request.id()); m_objectAssetMap.remove(request.id);
} }
m_mainHandler->dds()->fts()->assetRemoveReply(cookie, ret); m_mainHandler->dds()->fts()->assetRemoveReply(cookie, ret);
@@ -18,13 +18,13 @@ static inline Location toDdsData(const Database::AsmLocation &dbData)
{ {
Location ddsData; Location ddsData;
ddsData.id(dbData.id); ddsData.id = dbData.id;
ddsData.name(dbData.name.toStdString()); ddsData.name = dbData.name.toStdString();
ddsData.description(dbData.description.toStdString()); ddsData.description = dbData.description.toStdString();
// init data not in db // init data not in db
ddsData.isDeleted(false); ddsData.isDeleted = false;
ddsData.isUsed(false); ddsData.isUsed = false;
return ddsData; return ddsData;
} }
@@ -70,11 +70,11 @@ void HandlerRelayInfo::onRelayInfoModifyRequest(const rti::core::SampleIdentity
Core::FunctionReplyObject HandlerRelayInfo::relayInfoModifyRequest(const RelayInfo &request) Core::FunctionReplyObject HandlerRelayInfo::relayInfoModifyRequest(const RelayInfo &request)
{ {
// modify // modify
if (request.id() > 0) if (request.id > 0)
{ {
ObjectRelayInfo *ifs = m_objectRelayInfoMap.value(request.id()); ObjectRelayInfo *ifs = m_objectRelayInfoMap.value(request.id);
if (!ifs) if (!ifs)
return Core::FunctionReplyObject(request.id(), tr_lts("dds", "RelayInfo with id %1 not found")).arg(request.id()); return Core::FunctionReplyObject(request.id, tr_lts("dds", "RelayInfo with id %1 not found")).arg(request.id);
return ifs->updateObject(request); return ifs->updateObject(request);
} }
// create // create
@@ -96,18 +96,18 @@ void HandlerRelayInfo::onRelayInfoRemoveRequest(const rti::core::SampleIdentity
const Core::RemoveElementRequest &request) const Core::RemoveElementRequest &request)
{ {
Core::FunctionReplyObject ret; Core::FunctionReplyObject ret;
ObjectRelayInfo *ifs = m_objectRelayInfoMap.value(request.id()); ObjectRelayInfo *ifs = m_objectRelayInfoMap.value(request.id);
if (ifs == nullptr) if (ifs == nullptr)
{ {
ret = Core::FunctionReplyObject(request.id(), tr_lts("dds", "RelayInfo with id %1 not found")).arg(request.id()); ret = Core::FunctionReplyObject(request.id, tr_lts("dds", "RelayInfo with id %1 not found")).arg(request.id);
m_mainHandler->dds()->fts()->relayInfoRemoveReply(cookie, ret); m_mainHandler->dds()->fts()->relayInfoRemoveReply(cookie, ret);
return; return;
} }
if (m_mainHandler->dds()->topicLockMaster()->isLocked(ifs->getData(), m_mainHandler->exerciseId())) if (m_mainHandler->dds()->topicLockMaster()->isLocked(ifs->getData(), m_mainHandler->exerciseId()))
{ {
ret = Core::FunctionReplyObject(request.id(), tr_lts("dds", "RelayInfo '%1' is used by another user!")).arg(ifs->getName()); ret = Core::FunctionReplyObject(request.id, tr_lts("dds", "RelayInfo '%1' is used by another user!")).arg(ifs->getName());
m_mainHandler->dds()->fts()->relayInfoRemoveReply(cookie, ret); m_mainHandler->dds()->fts()->relayInfoRemoveReply(cookie, ret);
return; return;
} }
@@ -120,7 +120,7 @@ void HandlerRelayInfo::onRelayInfoRemoveRequest(const rti::core::SampleIdentity
{ {
// delete ObjectRelayInfo // delete ObjectRelayInfo
delete ifs; delete ifs;
m_objectRelayInfoMap.remove(request.id()); m_objectRelayInfoMap.remove(request.id);
} }
m_mainHandler->dds()->fts()->relayInfoRemoveReply(cookie, ret); m_mainHandler->dds()->fts()->relayInfoRemoveReply(cookie, ret);
@@ -54,21 +54,21 @@ bool HandlerTrainingArea::init()
if (mapDescriptionSeqences.contains(data.trainingAreaId)) if (mapDescriptionSeqences.contains(data.trainingAreaId))
mapDescriptionSeq = mapDescriptionSeqences.value(data.trainingAreaId); mapDescriptionSeq = mapDescriptionSeqences.value(data.trainingAreaId);
switch (data.mapDescriptionTypeId.underlying()) switch (data.mapDescriptionTypeId)
{ {
case AssetManagement::MapDescriptionType_def::Map2D: case AssetManagement::MapDescriptionType::Map2D:
mapDescriptionSeq.map2D.insert(data.objOrder, data); mapDescriptionSeq.map2D.insert(data.objOrder, data);
INFO_LOG(m_logger) << "map2D.insert order =" << data.objOrder; INFO_LOG(m_logger) << "map2D.insert order =" << data.objOrder;
break; break;
case AssetManagement::MapDescriptionType_def::Scene3D: case AssetManagement::MapDescriptionType::Scene3D:
mapDescriptionSeq.scene3D.insert(data.objOrder, data); mapDescriptionSeq.scene3D.insert(data.objOrder, data);
INFO_LOG(m_logger) << "Scene3D.insert order =" << data.objOrder; INFO_LOG(m_logger) << "Scene3D.insert order =" << data.objOrder;
break; break;
case AssetManagement::MapDescriptionType_def::Elevation: case AssetManagement::MapDescriptionType::Elevation:
mapDescriptionSeq.elevation.insert(data.objOrder, data); mapDescriptionSeq.elevation.insert(data.objOrder, data);
INFO_LOG(m_logger) << "Elevation.insert order =" << data.objOrder; INFO_LOG(m_logger) << "Elevation.insert order =" << data.objOrder;
break; break;
case AssetManagement::MapDescriptionType_def::SceneObj: case AssetManagement::MapDescriptionType::SceneObj:
mapDescriptionSeq.sceneObj.insert(data.objOrder, data); mapDescriptionSeq.sceneObj.insert(data.objOrder, data);
INFO_LOG(m_logger) << "sceneObj.insert order =" << data.objOrder; INFO_LOG(m_logger) << "sceneObj.insert order =" << data.objOrder;
break; break;
@@ -100,25 +100,25 @@ bool HandlerTrainingArea::init()
ObjectTrainingArea *ifs(new ObjectTrainingArea(m_mainHandler)); ObjectTrainingArea *ifs(new ObjectTrainingArea(m_mainHandler));
TrainingArea taData = convert(data); TrainingArea taData = convert(data);
// insert sequences // insert sequences
if (mapDescriptionSeqences.contains(taData.id()) ) if (mapDescriptionSeqences.contains(taData.id) )
{ {
const MapDescriptionSeq mapDescriptionSeq = mapDescriptionSeqences.value(taData.id()); const MapDescriptionSeq mapDescriptionSeq = mapDescriptionSeqences.value(taData.id);
taData.map2D().reserve(mapDescriptionSeq.map2D.size()); taData.map2D.reserve(mapDescriptionSeq.map2D.size());
for (const auto &dbDesc : mapDescriptionSeq.map2D) for (const auto &dbDesc : mapDescriptionSeq.map2D)
taData.map2D().push_back(ObjectMapDescription::toDdsData(dbDesc)); taData.map2D.push_back(ObjectMapDescription::toDdsData(dbDesc));
taData.scene3D().reserve(mapDescriptionSeq.scene3D.size()); taData.scene3D.reserve(mapDescriptionSeq.scene3D.size());
for (const auto &dbDesc : mapDescriptionSeq.scene3D) for (const auto &dbDesc : mapDescriptionSeq.scene3D)
taData.scene3D().push_back(ObjectMapDescription::toDdsData(dbDesc)); taData.scene3D.push_back(ObjectMapDescription::toDdsData(dbDesc));
taData.elevation().reserve(mapDescriptionSeq.elevation.size()); taData.elevation.reserve(mapDescriptionSeq.elevation.size());
for (const auto &dbDesc : mapDescriptionSeq.elevation) for (const auto &dbDesc : mapDescriptionSeq.elevation)
taData.elevation().push_back(ObjectMapDescription::toDdsData(dbDesc)); taData.elevation.push_back(ObjectMapDescription::toDdsData(dbDesc));
taData.sceneObjects().reserve(mapDescriptionSeq.sceneObj.size()); taData.sceneObjects.reserve(mapDescriptionSeq.sceneObj.size());
for (const auto &dbDesc : mapDescriptionSeq.sceneObj) for (const auto &dbDesc : mapDescriptionSeq.sceneObj)
taData.sceneObjects().push_back(ObjectMapDescription::toDdsData(dbDesc)); taData.sceneObjects.push_back(ObjectMapDescription::toDdsData(dbDesc));
} }
// end insert sequences // end insert sequences
Core::FunctionReplyObject ret = ifs->createObject(taData); Core::FunctionReplyObject ret = ifs->createObject(taData);
@@ -146,7 +146,7 @@ void HandlerTrainingArea::removeMapDescriptions(int trainingAreaId)
{ {
it.next(); it.next();
INFO_LOG(m_logger) << "remove map description key = " << it.key(); INFO_LOG(m_logger) << "remove map description key = " << it.key();
if ( it.value()->getData().trainingAreaId() == trainingAreaId) if ( it.value()->getData().trainingAreaId == trainingAreaId)
{ {
DEBUG_LOG(m_logger) << "remove id= " << it.key(); DEBUG_LOG(m_logger) << "remove id= " << it.key();
@@ -175,12 +175,12 @@ Core::FunctionReplyObject HandlerTrainingArea::trainingAreaModifyRequest(const T
ObjectTrainingArea *ifs; ObjectTrainingArea *ifs;
Core::FunctionReplyObject ret; Core::FunctionReplyObject ret;
if (request.id() > 0) if (request.id > 0)
{ {
ifs = m_objectTrainingAreaMap.value(request.id()); ifs = m_objectTrainingAreaMap.value(request.id);
if (ifs == nullptr) if (ifs == nullptr)
return Core::FunctionReplyObject(request.id(), tr_lts("dds", "Training area with id %1 not found")).arg(request.id()); return Core::FunctionReplyObject(request.id, tr_lts("dds", "Training area with id %1 not found")).arg(request.id);
ret = ifs->updateObject(ddsData); ret = ifs->updateObject(ddsData);
if (ret.error()) if (ret.error())
return ret; return ret;
@@ -198,7 +198,7 @@ Core::FunctionReplyObject HandlerTrainingArea::trainingAreaModifyRequest(const T
else else
m_objectTrainingAreaMap.insert(ifs->getId(), ifs); m_objectTrainingAreaMap.insert(ifs->getId(), ifs);
} }
if (request.id() > 0) // Modify if (request.id > 0) // Modify
{ {
DEBUG_LOG(m_logger) << "modify: delete old entries in map_description"; DEBUG_LOG(m_logger) << "modify: delete old entries in map_description";
removeMapDescriptions(ifs->getId()); removeMapDescriptions(ifs->getId());
@@ -206,19 +206,19 @@ Core::FunctionReplyObject HandlerTrainingArea::trainingAreaModifyRequest(const T
// insert new entries // insert new entries
auto &map2D = ddsData.map2D(); auto &map2D = ddsData.map2D;
map2D.resize(request.map2D().size()); map2D.resize(request.map2D.size());
for (unsigned int i = 0; i < request.map2D().size(); i++) for (unsigned int i = 0; i < request.map2D.size(); i++)
{ {
MapDescription mdData = request.map2D().at(i); MapDescription mdData = request.map2D.at(i);
ObjectMapDescription *md (new ObjectMapDescription(m_mainHandler)); ObjectMapDescription *md (new ObjectMapDescription(m_mainHandler));
mdData.id(0); mdData.id = 0;
mdData.trainingAreaId(ifs->getId()); mdData.trainingAreaId = ifs->getId();
ret = md->createObject(mdData, i); ret = md->createObject(mdData, i);
DEBUG_LOG(m_logger) << "insert topographic entries in map_description" DEBUG_LOG(m_logger) << "insert topographic entries in map_description"
<< " for training area id " << ifs->getId() << " for training area id " << ifs->getId()
<< " mapTypeId=" << mdData.mapTypeId() << " mapTypeId=" << mdData.mapTypeId
<< " mapDescriptionTypeId=" << mdData.mapDescriptionTypeId(); << " mapDescriptionTypeId=" << mdData.mapDescriptionTypeId;
if (!ret.error()) if (!ret.error())
{ {
map2D[i] = md->getData(); map2D[i] = md->getData();
@@ -231,19 +231,19 @@ Core::FunctionReplyObject HandlerTrainingArea::trainingAreaModifyRequest(const T
} }
} }
auto &elevation = ddsData.elevation(); auto &elevation = ddsData.elevation;
elevation.resize(request.elevation().size()); elevation.resize(request.elevation.size());
for (unsigned int i = 0; i < request.elevation().size(); i++) for (unsigned int i = 0; i < request.elevation.size(); i++)
{ {
MapDescription mdData = request.elevation().at(i); MapDescription mdData = request.elevation.at(i);
ObjectMapDescription *md (new ObjectMapDescription(m_mainHandler)); ObjectMapDescription *md (new ObjectMapDescription(m_mainHandler));
mdData.id(0); mdData.id = 0;
mdData.trainingAreaId(ifs->getId()); mdData.trainingAreaId = ifs->getId();
ret = md->createObject(mdData, i); ret = md->createObject(mdData, i);
DEBUG_LOG(m_logger) << "insert elevation entries in map_description" DEBUG_LOG(m_logger) << "insert elevation entries in map_description"
<< " for training area id " << ifs->getId() << " for training area id " << ifs->getId()
<< " mapTypeId=" << mdData.mapTypeId() << " mapTypeId=" << mdData.mapTypeId
<< " mapDescriptionTypeId=" << mdData.mapDescriptionTypeId(); << " mapDescriptionTypeId=" << mdData.mapDescriptionTypeId;
if (!ret.error()) if (!ret.error())
{ {
elevation[i] = md->getData(); elevation[i] = md->getData();
@@ -256,19 +256,19 @@ Core::FunctionReplyObject HandlerTrainingArea::trainingAreaModifyRequest(const T
} }
} }
auto &scene3D = ddsData.scene3D(); auto &scene3D = ddsData.scene3D;
scene3D.resize(request.scene3D().size()); scene3D.resize(request.scene3D.size());
for (unsigned int i = 0; i < request.scene3D().size(); i++) for (unsigned int i = 0; i < request.scene3D.size(); i++)
{ {
MapDescription mdData = request.scene3D().at(i); MapDescription mdData = request.scene3D.at(i);
ObjectMapDescription *md (new ObjectMapDescription(m_mainHandler)); ObjectMapDescription *md (new ObjectMapDescription(m_mainHandler));
mdData.id(0); mdData.id = 0;
mdData.trainingAreaId(ifs->getId()); mdData.trainingAreaId = ifs->getId();
ret = md->createObject(mdData, i); ret = md->createObject(mdData, i);
DEBUG_LOG(m_logger) << "insert scene3D entries in map_description" DEBUG_LOG(m_logger) << "insert scene3D entries in map_description"
<< " for training area id " << ifs->getId() << " for training area id " << ifs->getId()
<< " mapTypeId=" << mdData.mapTypeId() << " mapTypeId=" << mdData.mapTypeId
<< " mapDescriptionTypeId=" << mdData.mapDescriptionTypeId(); << " mapDescriptionTypeId=" << mdData.mapDescriptionTypeId;
if (!ret.error()) if (!ret.error())
{ {
scene3D[i] = md->getData(); scene3D[i] = md->getData();
@@ -281,19 +281,19 @@ Core::FunctionReplyObject HandlerTrainingArea::trainingAreaModifyRequest(const T
} }
} }
auto &sceneObj = ddsData.sceneObjects(); auto &sceneObj = ddsData.sceneObjects;
sceneObj.resize(request.sceneObjects().size()); sceneObj.resize(request.sceneObjects.size());
for (unsigned int i = 0; i < request.sceneObjects().size(); i++) for (unsigned int i = 0; i < request.sceneObjects.size(); i++)
{ {
MapDescription mdData = request.sceneObjects().at(i); MapDescription mdData = request.sceneObjects.at(i);
ObjectMapDescription *md (new ObjectMapDescription(m_mainHandler)); ObjectMapDescription *md (new ObjectMapDescription(m_mainHandler));
mdData.id(0); mdData.id = 0;
mdData.trainingAreaId(ifs->getId()); mdData.trainingAreaId = ifs->getId();
ret = md->createObject(mdData, i); ret = md->createObject(mdData, i);
DEBUG_LOG(m_logger) << "insert sceneObjects entries in map_description" DEBUG_LOG(m_logger) << "insert sceneObjects entries in map_description"
<< " for training area id " << ifs->getId() << " for training area id " << ifs->getId()
<< " mapTypeId=" << mdData.mapTypeId() << " mapTypeId=" << mdData.mapTypeId
<< " mapDescriptionTypeId=" << mdData.mapDescriptionTypeId(); << " mapDescriptionTypeId=" << mdData.mapDescriptionTypeId;
if (!ret.error()) if (!ret.error())
{ {
sceneObj[i] = md->getData(); sceneObj[i] = md->getData();
@@ -306,7 +306,7 @@ Core::FunctionReplyObject HandlerTrainingArea::trainingAreaModifyRequest(const T
} }
} }
ddsData.id(ifs->getId()); ddsData.id = ifs->getId();
return ifs->updateObject(ddsData); return ifs->updateObject(ddsData);
} }
@@ -315,17 +315,17 @@ void HandlerTrainingArea::onTrainingAreaRemoveRequest(const rti::core::SampleIde
const Core::RemoveElementRequest &request) const Core::RemoveElementRequest &request)
{ {
Core::FunctionReplyObject ret; Core::FunctionReplyObject ret;
ObjectTrainingArea *ifs = m_objectTrainingAreaMap.value(request.id()); ObjectTrainingArea *ifs = m_objectTrainingAreaMap.value(request.id);
if (ifs == nullptr) if (ifs == nullptr)
{ {
ret = Core::FunctionReplyObject(request.id(), tr_lts("dds", "Training area with id %1 not found")).arg(request.id()); ret = Core::FunctionReplyObject(request.id, tr_lts("dds", "Training area with id %1 not found")).arg(request.id);
m_mainHandler->dds()->fts()->trainingAreaRemoveReply(cookie, ret); m_mainHandler->dds()->fts()->trainingAreaRemoveReply(cookie, ret);
return; return;
} }
if (m_mainHandler->dds()->topicLockMaster()->isLocked(ifs->getData(), m_mainHandler->exerciseId())) if (m_mainHandler->dds()->topicLockMaster()->isLocked(ifs->getData(), m_mainHandler->exerciseId()))
{ {
ret = Core::FunctionReplyObject(request.id(), tr_lts("dds", "Training area '%1' is used by another user!")).arg(ifs->getName()); ret = Core::FunctionReplyObject(request.id, tr_lts("dds", "Training area '%1' is used by another user!")).arg(ifs->getName());
m_mainHandler->dds()->fts()->trainingAreaRemoveReply(cookie, ret); m_mainHandler->dds()->fts()->trainingAreaRemoveReply(cookie, ret);
return; return;
} }
@@ -340,8 +340,8 @@ void HandlerTrainingArea::onTrainingAreaRemoveRequest(const rti::core::SampleIde
{ {
// delete ObjectTrainingArea // delete ObjectTrainingArea
delete ifs; delete ifs;
m_objectTrainingAreaMap.remove(request.id()); m_objectTrainingAreaMap.remove(request.id);
removeMapDescriptions(request.id()); removeMapDescriptions(request.id);
trans.commit(); trans.commit();
} }
@@ -362,10 +362,10 @@ void HandlerTrainingArea::onMapDescriptionModifyRequest(const rti::core::SampleI
Core::FunctionReplyObject HandlerTrainingArea::mapDescriptionModifyRequest(const MapDescription &request) Core::FunctionReplyObject HandlerTrainingArea::mapDescriptionModifyRequest(const MapDescription &request)
{ {
ObjectMapDescription *ifs = m_objectMapDescriptionMap.value(request.id()); ObjectMapDescription *ifs = m_objectMapDescriptionMap.value(request.id);
if (ifs == nullptr) if (ifs == nullptr)
return Core::FunctionReplyObject(request.id(), tr_lts("dds", "MapDescription with id %1 not found")).arg(request.id()); return Core::FunctionReplyObject(request.id, tr_lts("dds", "MapDescription with id %1 not found")).arg(request.id);
return ifs->updateObject(request); return ifs->updateObject(request);
} }
@@ -375,17 +375,17 @@ void HandlerTrainingArea::onMapDescriptionRemoveRequest(const rti::core::SampleI
const Core::RemoveElementRequest &request) const Core::RemoveElementRequest &request)
{ {
Core::FunctionReplyObject ret; Core::FunctionReplyObject ret;
ObjectMapDescription *ifs = m_objectMapDescriptionMap.value(request.id()); ObjectMapDescription *ifs = m_objectMapDescriptionMap.value(request.id);
if (ifs == nullptr) if (ifs == nullptr)
{ {
ret = Core::FunctionReplyObject(request.id(), tr_lts("dds", "MapDescription with id %1 not found")).arg(request.id()); ret = Core::FunctionReplyObject(request.id, tr_lts("dds", "MapDescription with id %1 not found")).arg(request.id);
m_mainHandler->dds()->fts()->mapDescriptionRemoveReply(cookie, ret); m_mainHandler->dds()->fts()->mapDescriptionRemoveReply(cookie, ret);
return; return;
} }
if (m_mainHandler->dds()->topicLockMaster()->isLocked(ifs->getData(), m_mainHandler->exerciseId())) if (m_mainHandler->dds()->topicLockMaster()->isLocked(ifs->getData(), m_mainHandler->exerciseId()))
{ {
ret = Core::FunctionReplyObject(request.id(), tr_lts("dds", "MapDescription '%1' is used by another user!")).arg(ifs->getName()); ret = Core::FunctionReplyObject(request.id, tr_lts("dds", "MapDescription '%1' is used by another user!")).arg(ifs->getName());
m_mainHandler->dds()->fts()->mapDescriptionRemoveReply(cookie, ret); m_mainHandler->dds()->fts()->mapDescriptionRemoveReply(cookie, ret);
return; return;
} }
@@ -398,7 +398,7 @@ void HandlerTrainingArea::onMapDescriptionRemoveRequest(const rti::core::SampleI
{ {
// delete ObjectMapDescription // delete ObjectMapDescription
delete ifs; delete ifs;
m_objectMapDescriptionMap.remove(request.id()); m_objectMapDescriptionMap.remove(request.id);
} }
m_mainHandler->dds()->fts()->mapDescriptionRemoveReply(cookie, ret); m_mainHandler->dds()->fts()->mapDescriptionRemoveReply(cookie, ret);
@@ -33,9 +33,9 @@ HandlerWorkstationLogout::~HandlerWorkstationLogout()
void HandlerWorkstationLogout::onWorkstationLogoutRequest(const rti::core::SampleIdentity &cookie, const WorkstationLogout &request) void HandlerWorkstationLogout::onWorkstationLogoutRequest(const rti::core::SampleIdentity &cookie, const WorkstationLogout &request)
{ {
if (!m_logoutRequestMap.contains(request.originatorId())) if (!m_logoutRequestMap.contains(request.originatorId))
{ {
int originatorId = request.originatorId(); int originatorId = request.originatorId;
QTimer *dtLifetimeTimer = new QTimer(this); QTimer *dtLifetimeTimer = new QTimer(this);
dtLifetimeTimer->setSingleShot(true); dtLifetimeTimer->setSingleShot(true);
@@ -53,11 +53,11 @@ void HandlerWorkstationLogout::onWorkstationLogoutRequest(const rti::core::Sampl
} }
else else
{ {
m_logoutRequestMap.value(request.originatorId())->start(MAX_DATATOPIC_LIFETIME); m_logoutRequestMap.value(request.originatorId)->start(MAX_DATATOPIC_LIFETIME);
m_mainHandler->dds()->dts()->publish(request); m_mainHandler->dds()->dts()->publish(request);
} }
m_mainHandler->dds()->fts()->workstationLogoutReply(cookie, Core::FunctionReplyObject(request.originatorId())); m_mainHandler->dds()->fts()->workstationLogoutReply(cookie, Core::FunctionReplyObject(request.originatorId));
} }
bool HandlerWorkstationLogout::init() bool HandlerWorkstationLogout::init()
@@ -149,7 +149,7 @@ bool MainHandler::initAsmHandler()
ERROR_LOG(m_logger) << "Initialisation WebSocketInterfaceHandler failed."; ERROR_LOG(m_logger) << "Initialisation WebSocketInterfaceHandler failed.";
return false; return false;
} }
m_ddsHandler->pacemaker()->addPort(m_handlerWebSocket->serverWebSocketPort(), Core::PortType::WebSocketServer); m_ddsHandler->pacemaker()->addPort(m_handlerWebSocket->serverWebSocketPort(), Core::CorePortType::WebSocketServer);
DEBUG_LOG(m_logger) << "Initialisation WebSocketInterfaceHandler succesful."; DEBUG_LOG(m_logger) << "Initialisation WebSocketInterfaceHandler succesful.";
return true; return true;
@@ -25,19 +25,19 @@ ObjectAsset::ObjectAsset(MainHandler *mainHandler)
ObjectAsset::~ObjectAsset() ObjectAsset::~ObjectAsset()
{ {
if (isValid()) if (isValid())
m_mainHandler->dds()->dts()->removeAssetByKey(m_data.id()); m_mainHandler->dds()->dts()->removeAssetByKey(m_data.id);
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
bool ObjectAsset::isValid() const bool ObjectAsset::isValid() const
{ {
return m_data.id() > 0; return m_data.id > 0;
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
bool ObjectAsset::isUsed() const bool ObjectAsset::isUsed() const
{ {
return m_data.isUsed(); return m_data.isUsed;
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
@@ -45,79 +45,79 @@ Core::FunctionReplyObject ObjectAsset::createObject(const Asset &data)
{ {
m_data = data; m_data = data;
if (m_data.id() <= 0) if (m_data.id <= 0)
{ {
m_data.isUsed(false); m_data.isUsed = false;
Database::AsmAsset dbData(toDbData(data)); Database::AsmAsset dbData(toDbData(data));
if (!m_mainHandler->db()->insert(dbData)) if (!m_mainHandler->db()->insert(dbData))
return Core::FunctionReplyObject(0, tr_lts("dds", "Error inserting AsmAsset-data into database")); return Core::FunctionReplyObject(0, tr_lts("dds", "Error inserting AsmAsset-data into database"));
m_data.id(dbData.id); m_data.id = dbData.id;
DEBUG_LOG(m_logger) << "New assetId: " << m_data.id(); DEBUG_LOG(m_logger) << "New assetId: " << m_data.id;
} }
// Publish Data via DTS // Publish Data via DTS
onPublishData(); onPublishData();
return Core::FunctionReplyObject(m_data.id()); return Core::FunctionReplyObject(m_data.id);
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
Core::FunctionReplyObject ObjectAsset::updateObject(const Asset &data) Core::FunctionReplyObject ObjectAsset::updateObject(const Asset &data)
{ {
if (!isValid()) if (!isValid())
return Core::FunctionReplyObject(data.id(), tr_lts("dds", "Object not valid/blocked")); return Core::FunctionReplyObject(data.id, tr_lts("dds", "Object not valid/blocked"));
Database::AsmAsset dbData; Database::AsmAsset dbData;
dbData = toDbData(data); dbData = toDbData(data);
if (!m_mainHandler->db()->update(dbData)) if (!m_mainHandler->db()->update(dbData))
return Core::FunctionReplyObject(data.id(), tr_lts("dds", "Error updating AsmAsset-data into database")); return Core::FunctionReplyObject(data.id, tr_lts("dds", "Error updating AsmAsset-data into database"));
m_data = data; m_data = data;
DEBUG_LOG(m_logger) << "Data changed for assetId: " << m_data.id(); DEBUG_LOG(m_logger) << "Data changed for assetId: " << m_data.id;
// Publish Data via DTS // Publish Data via DTS
onPublishData(); onPublishData();
return Core::FunctionReplyObject(m_data.id()); return Core::FunctionReplyObject(m_data.id);
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
Core::FunctionReplyObject ObjectAsset::setUsed(bool isUsed) Core::FunctionReplyObject ObjectAsset::setUsed(bool isUsed)
{ {
if (!isValid()) if (!isValid())
return Core::FunctionReplyObject(m_data.id(), tr_lts("dds", "Trying to update an already removed AsmAsset object")); return Core::FunctionReplyObject(m_data.id, tr_lts("dds", "Trying to update an already removed AsmAsset object"));
m_data.isUsed(isUsed); m_data.isUsed = isUsed;
// Publish Data via DTS // Publish Data via DTS
onPublishData(); onPublishData();
return Core::FunctionReplyObject(m_data.id()); return Core::FunctionReplyObject(m_data.id);
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
Core::FunctionReplyObject ObjectAsset::removeObject() Core::FunctionReplyObject ObjectAsset::removeObject()
{ {
if (isUsed()) if (isUsed())
return Core::FunctionReplyObject(m_data.id(), tr_lts("dds", "Asset still in use")); return Core::FunctionReplyObject(m_data.id, tr_lts("dds", "Asset still in use"));
if (!m_mainHandler->db()->removeAsmAsset(m_data.id())) if (!m_mainHandler->db()->removeAsmAsset(m_data.id))
return Core::FunctionReplyObject(m_data.id(), tr_lts("dds", "Asset with id %1 can not be removed from DB")).arg(m_data.id()); return Core::FunctionReplyObject(m_data.id, tr_lts("dds", "Asset with id %1 can not be removed from DB")).arg(m_data.id);
if (!m_mainHandler->dds()->dts()->removeAssetByKey(m_data.id())) if (!m_mainHandler->dds()->dts()->removeAssetByKey(m_data.id))
return Core::FunctionReplyObject(m_data.id(), tr_lts("dds", "Asset with id %1 can not be removed from DDS")).arg(m_data.id()); return Core::FunctionReplyObject(m_data.id, tr_lts("dds", "Asset with id %1 can not be removed from DDS")).arg(m_data.id);
return Core::FunctionReplyObject(m_data.id()); return Core::FunctionReplyObject(m_data.id);
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
void ObjectAsset::onPublishData() void ObjectAsset::onPublishData()
{ {
INFO_LOG(m_logger) << "Publish AsmAsset-data to dds (" << m_data.id() << ") ..."; INFO_LOG(m_logger) << "Publish AsmAsset-data to dds (" << m_data.id << ") ...";
if (!m_mainHandler->dds()->dts()->publish(m_data)) if (!m_mainHandler->dds()->dts()->publish(m_data))
ERROR_LOG(m_logger) << "Error publishing AsmAsset-data to dds"; ERROR_LOG(m_logger) << "Error publishing AsmAsset-data to dds";
@@ -132,13 +132,13 @@ Database::AsmAsset ObjectAsset::toDbData(const Asset &ddsData)
{ {
Database::AsmAsset dbData; Database::AsmAsset dbData;
dbData.id = ddsData.id(); dbData.id = ddsData.id;
dbData.name = QString::fromStdString(ddsData.name()); dbData.name = QString::fromStdString(ddsData.name);
dbData.assetTypeId = ddsData.assetTypeId(); dbData.assetTypeId = ddsData.assetTypeId;
dbData.locationId = ddsData.locationId(); dbData.locationId = ddsData.locationId;
dbData.subLocation = ddsData.subLocation(); dbData.subLocation = ddsData.subLocation;
dbData.certificate = LtsUtils::toQByteArray(ddsData.certificate()); dbData.certificate = LtsUtils::toQByteArray(ddsData.certificate);
dbData.properties = QString::fromStdString(ddsData.properties()); dbData.properties = QString::fromStdString(ddsData.properties);
return dbData; return dbData;
} }
@@ -149,17 +149,17 @@ Asset ObjectAsset::toDdsData(const Database::AsmAsset &dbData)
{ {
Asset ddsData; Asset ddsData;
ddsData.id(dbData.id); ddsData.id = dbData.id;
ddsData.name(dbData.name.toStdString()); ddsData.name = dbData.name.toStdString();
ddsData.assetTypeId(dbData.assetTypeId); ddsData.assetTypeId = dbData.assetTypeId;
ddsData.locationId(dbData.locationId); ddsData.locationId = dbData.locationId;
ddsData.subLocation(dbData.subLocation); ddsData.subLocation = dbData.subLocation;
ddsData.certificate(LtsUtils::convert<std::vector<uint8_t>>(dbData.certificate)); ddsData.certificate = LtsUtils::convert<std::vector<uint8_t>>(dbData.certificate);
ddsData.properties(dbData.properties.toStdString()); ddsData.properties = dbData.properties.toStdString();
// init data not in db // init data not in db
ddsData.isDeleted(false); ddsData.isDeleted = false;
ddsData.isUsed(false); ddsData.isUsed = false;
return ddsData; return ddsData;
} }
@@ -34,8 +34,8 @@ public:
Core::FunctionReplyObject updateObject(const Asset &data); Core::FunctionReplyObject updateObject(const Asset &data);
Core::FunctionReplyObject removeObject(); Core::FunctionReplyObject removeObject();
qint32 getId() const { return m_data.id(); } qint32 getId() const { return m_data.id; }
QString getName() const { return QString::fromStdString(m_data.name()); } QString getName() const { return QString::fromStdString(m_data.name); }
const Asset &getData() const { return m_data; } const Asset &getData() const { return m_data; }
bool isValid() const; bool isValid() const;
@@ -21,16 +21,16 @@ ObjectMapDescription::ObjectMapDescription(MainHandler *mainHandler)
bool ObjectMapDescription::isValid() const bool ObjectMapDescription::isValid() const
{ {
return m_data.id() > 0; return m_data.id > 0;
} }
Core::FunctionReplyObject ObjectMapDescription::createObject(const MapDescription &data, int order) Core::FunctionReplyObject ObjectMapDescription::createObject(const MapDescription &data, int order)
{ {
m_data = data; m_data = data;
if (m_data.id() <= 0) if (m_data.id <= 0)
{ {
m_data.isUsed(false); m_data.isUsed = false;
Database::AsmMapDescription dbData(toDbData(data)); Database::AsmMapDescription dbData(toDbData(data));
dbData.objOrder = order; dbData.objOrder = order;
@@ -38,44 +38,44 @@ Core::FunctionReplyObject ObjectMapDescription::createObject(const MapDescriptio
if (!m_mainHandler->db()->insert(dbData)) if (!m_mainHandler->db()->insert(dbData))
return Core::FunctionReplyObject(0, tr_lts("dds", "Error inserting AsmMapDescription-data into database")); return Core::FunctionReplyObject(0, tr_lts("dds", "Error inserting AsmMapDescription-data into database"));
m_data.id(dbData.id); m_data.id = dbData.id;
DEBUG_LOG(m_logger) << "New MapDescription Id: " << m_data.id(); DEBUG_LOG(m_logger) << "New MapDescription Id: " << m_data.id;
} }
else if (order != m_order && m_order >= 0) else if (order != m_order && m_order >= 0)
{ {
Database::AsmMapDescription dbData(toDbData(data)); Database::AsmMapDescription dbData(toDbData(data));
dbData.objOrder = m_order; dbData.objOrder = m_order;
if (!m_mainHandler->db()->update(dbData)) if (!m_mainHandler->db()->update(dbData))
return Core::FunctionReplyObject(data.id(), tr_lts("dds", "Error updating AsmMapDescription-data into database")); return Core::FunctionReplyObject(data.id, tr_lts("dds", "Error updating AsmMapDescription-data into database"));
} }
m_order = order; m_order = order;
return Core::FunctionReplyObject(m_data.id()); return Core::FunctionReplyObject(m_data.id);
} }
Core::FunctionReplyObject ObjectMapDescription::updateObject(const MapDescription &data) Core::FunctionReplyObject ObjectMapDescription::updateObject(const MapDescription &data)
{ {
if (!isValid()) if (!isValid())
return Core::FunctionReplyObject(data.id(), tr_lts("dds", "Object not valid/blocked")); return Core::FunctionReplyObject(data.id, tr_lts("dds", "Object not valid/blocked"));
Database::AsmMapDescription dbData(toDbData(data)); Database::AsmMapDescription dbData(toDbData(data));
dbData.objOrder = m_order; dbData.objOrder = m_order;
if (!m_mainHandler->db()->update(dbData)) if (!m_mainHandler->db()->update(dbData))
return Core::FunctionReplyObject(data.id(), tr_lts("dds", "Error updating AsmMapDescription-data into database")); return Core::FunctionReplyObject(data.id, tr_lts("dds", "Error updating AsmMapDescription-data into database"));
m_data = data; m_data = data;
DEBUG_LOG(m_logger) << "Data changed for MapDescription Id: " << m_data.id(); DEBUG_LOG(m_logger) << "Data changed for MapDescription Id: " << m_data.id;
return Core::FunctionReplyObject(m_data.id()); return Core::FunctionReplyObject(m_data.id);
} }
Core::FunctionReplyObject ObjectMapDescription::removeObject() Core::FunctionReplyObject ObjectMapDescription::removeObject()
{ {
if (!m_mainHandler->db()->removeAsmMapDescription(m_data.id())) if (!m_mainHandler->db()->removeAsmMapDescription(m_data.id))
return Core::FunctionReplyObject(m_data.id(), tr_lts("dds", "MapDescription with id %1 can not be removed")).arg(m_data.id()); return Core::FunctionReplyObject(m_data.id, tr_lts("dds", "MapDescription with id %1 can not be removed")).arg(m_data.id);
return Core::FunctionReplyObject(m_data.id()); return Core::FunctionReplyObject(m_data.id);
} }
// ------------------------------------------------------------------------------------------------------- // -------------------------------------------------------------------------------------------------------
@@ -87,15 +87,15 @@ Database::AsmMapDescription ObjectMapDescription::toDbData(const MapDescription
{ {
Database::AsmMapDescription dbData; Database::AsmMapDescription dbData;
dbData.id = ddsData.id(); dbData.id = ddsData.id;
dbData.name = QString::fromStdString(ddsData.name()); dbData.name = QString::fromStdString(ddsData.name);
dbData.description = QString::fromStdString(ddsData.description()); dbData.description = QString::fromStdString(ddsData.description);
dbData.trainingAreaId = ddsData.trainingAreaId(); dbData.trainingAreaId = ddsData.trainingAreaId;
dbData.mapTypeId = ddsData.mapTypeId(); dbData.mapTypeId = ddsData.mapTypeId;
dbData.mapDescriptionTypeId = ddsData.mapDescriptionTypeId(); dbData.mapDescriptionTypeId = ddsData.mapDescriptionTypeId;
dbData.url = QString::fromStdString(ddsData.url()); dbData.url = QString::fromStdString(ddsData.url);
dbData.minScale = ddsData.minScale(); dbData.minScale = ddsData.minScale;
dbData.maxScale = ddsData.maxScale(); dbData.maxScale = ddsData.maxScale;
return dbData; return dbData;
} }
@@ -106,19 +106,19 @@ MapDescription ObjectMapDescription::toDdsData(const Database::AsmMapDescription
{ {
MapDescription ddsData; MapDescription ddsData;
ddsData.id(dbData.id); ddsData.id = dbData.id;
ddsData.name(dbData.name.toStdString()); ddsData.name = dbData.name.toStdString();
ddsData.description(dbData.description.toStdString()); ddsData.description = dbData.description.toStdString();
ddsData.trainingAreaId(dbData.trainingAreaId); ddsData.trainingAreaId = dbData.trainingAreaId;
ddsData.mapTypeId(dbData.mapTypeId); ddsData.mapTypeId = dbData.mapTypeId;
ddsData.mapDescriptionTypeId(dbData.mapDescriptionTypeId); ddsData.mapDescriptionTypeId = dbData.mapDescriptionTypeId;
ddsData.url(dbData.url.toStdString()); ddsData.url = dbData.url.toStdString();
ddsData.minScale(dbData.minScale); ddsData.minScale = dbData.minScale;
ddsData.maxScale(dbData.maxScale); ddsData.maxScale = dbData.maxScale;
// init data not in db // init data not in db
ddsData.isDeleted(false); ddsData.isDeleted = false;
ddsData.isUsed(false); ddsData.isUsed = false;
return ddsData; return ddsData;
} }
@@ -27,8 +27,8 @@ public:
Core::FunctionReplyObject updateObject(const MapDescription &data); Core::FunctionReplyObject updateObject(const MapDescription &data);
Core::FunctionReplyObject removeObject(); Core::FunctionReplyObject removeObject();
qint32 getId() const { return m_data.id(); } qint32 getId() const { return m_data.id; }
QString getName() const { return QString::fromStdString(m_data.name()); } QString getName() const { return QString::fromStdString(m_data.name); }
const MapDescription &getData() const { return m_data; } const MapDescription &getData() const { return m_data; }
bool isValid() const; bool isValid() const;
@@ -25,19 +25,19 @@ ObjectRelayInfo::ObjectRelayInfo(MainHandler *mainHandler)
ObjectRelayInfo::~ObjectRelayInfo() ObjectRelayInfo::~ObjectRelayInfo()
{ {
if (isValid()) if (isValid())
m_mainHandler->dds()->dts()->removeRelayInfoByKey(m_data.id()); m_mainHandler->dds()->dts()->removeRelayInfoByKey(m_data.id);
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
bool ObjectRelayInfo::isValid() const bool ObjectRelayInfo::isValid() const
{ {
return m_data.id() > 0; return m_data.id > 0;
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
bool ObjectRelayInfo::isUsed() const bool ObjectRelayInfo::isUsed() const
{ {
return m_data.isUsed(); return m_data.isUsed;
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
@@ -45,79 +45,79 @@ Core::FunctionReplyObject ObjectRelayInfo::createObject(const RelayInfo &data)
{ {
m_data = data; m_data = data;
if (m_data.id() < 0) if (m_data.id < 0)
{ {
m_data.isUsed(false); m_data.isUsed = false;
Database::AsmEgcuRelayInfo dbData(toDbData(data)); Database::AsmEgcuRelayInfo dbData(toDbData(data));
if (!m_mainHandler->db()->insert(dbData)) if (!m_mainHandler->db()->insert(dbData))
return Core::FunctionReplyObject(0, tr_lts("dds", "Error inserting AsmEgcuRelayInfo-data into database")); return Core::FunctionReplyObject(0, tr_lts("dds", "Error inserting AsmEgcuRelayInfo-data into database"));
m_data.id(dbData.id); m_data.id = dbData.id;
DEBUG_LOG(m_logger) << "New relayInfo Id: " << m_data.id(); DEBUG_LOG(m_logger) << "New relayInfo Id: " << m_data.id;
} }
// Publish Data via DTS // Publish Data via DTS
onPublishData(); onPublishData();
return Core::FunctionReplyObject(m_data.id()); return Core::FunctionReplyObject(m_data.id);
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
Core::FunctionReplyObject ObjectRelayInfo::updateObject(const RelayInfo &data) Core::FunctionReplyObject ObjectRelayInfo::updateObject(const RelayInfo &data)
{ {
if (!isValid()) if (!isValid())
return Core::FunctionReplyObject(data.id(), tr_lts("dds", "Object not valid/blocked")); return Core::FunctionReplyObject(data.id, tr_lts("dds", "Object not valid/blocked"));
Database::AsmEgcuRelayInfo dbData; Database::AsmEgcuRelayInfo dbData;
dbData = toDbData(data); dbData = toDbData(data);
if (!m_mainHandler->db()->update(dbData)) if (!m_mainHandler->db()->update(dbData))
return Core::FunctionReplyObject(data.id(), tr_lts("dds", "Error updating AsmEgcuRelayInfo-data into database")); return Core::FunctionReplyObject(data.id, tr_lts("dds", "Error updating AsmEgcuRelayInfo-data into database"));
m_data = data; m_data = data;
DEBUG_LOG(m_logger) << "Data changed for relayInfo Id: " << m_data.id(); DEBUG_LOG(m_logger) << "Data changed for relayInfo Id: " << m_data.id;
// Publish Data via DTS // Publish Data via DTS
onPublishData(); onPublishData();
return Core::FunctionReplyObject(m_data.id()); return Core::FunctionReplyObject(m_data.id);
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
Core::FunctionReplyObject ObjectRelayInfo::setUsed(bool isUsed) Core::FunctionReplyObject ObjectRelayInfo::setUsed(bool isUsed)
{ {
if (!isValid()) if (!isValid())
return Core::FunctionReplyObject(m_data.id(), tr_lts("dds", "Trying to update an already removed AsmEgcuRelayInfo object")); return Core::FunctionReplyObject(m_data.id, tr_lts("dds", "Trying to update an already removed AsmEgcuRelayInfo object"));
m_data.isUsed(isUsed); m_data.isUsed = isUsed;
// Publish Data via DTS // Publish Data via DTS
onPublishData(); onPublishData();
return Core::FunctionReplyObject(m_data.id()); return Core::FunctionReplyObject(m_data.id);
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
Core::FunctionReplyObject ObjectRelayInfo::removeObject() Core::FunctionReplyObject ObjectRelayInfo::removeObject()
{ {
if (isUsed()) if (isUsed())
return Core::FunctionReplyObject(m_data.id(), tr_lts("dds", "RelayInfo still in use")); return Core::FunctionReplyObject(m_data.id, tr_lts("dds", "RelayInfo still in use"));
if (!m_mainHandler->db()->removeAsmEgcuRelayInfo(m_data.id())) if (!m_mainHandler->db()->removeAsmEgcuRelayInfo(m_data.id))
return Core::FunctionReplyObject(m_data.id(), tr_lts("dds", "RelayInfo with id %1 can not be removed from DB")).arg(m_data.id()); return Core::FunctionReplyObject(m_data.id, tr_lts("dds", "RelayInfo with id %1 can not be removed from DB")).arg(m_data.id);
if (!m_mainHandler->dds()->dts()->removeRelayInfoByKey(m_data.id())) if (!m_mainHandler->dds()->dts()->removeRelayInfoByKey(m_data.id))
return Core::FunctionReplyObject(m_data.id(), tr_lts("dds", "RelayInfo with id %1 can not be removed from DDS")).arg(m_data.id()); return Core::FunctionReplyObject(m_data.id, tr_lts("dds", "RelayInfo with id %1 can not be removed from DDS")).arg(m_data.id);
return Core::FunctionReplyObject(m_data.id()); return Core::FunctionReplyObject(m_data.id);
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
void ObjectRelayInfo::onPublishData() void ObjectRelayInfo::onPublishData()
{ {
INFO_LOG(m_logger) << "Publish AsmEgcuRelayInfo-data to dds (" << m_data.id() << ") ..."; INFO_LOG(m_logger) << "Publish AsmEgcuRelayInfo-data to dds (" << m_data.id << ") ...";
if (!m_mainHandler->dds()->dts()->publish(m_data)) if (!m_mainHandler->dds()->dts()->publish(m_data))
ERROR_LOG(m_logger) << "Error publishing AsmEgcuRelayInfo-data to dds"; ERROR_LOG(m_logger) << "Error publishing AsmEgcuRelayInfo-data to dds";
@@ -132,11 +132,11 @@ Database::AsmEgcuRelayInfo ObjectRelayInfo::toDbData(const RelayInfo &ddsData)
{ {
Database::AsmEgcuRelayInfo dbData; Database::AsmEgcuRelayInfo dbData;
dbData.id = ddsData.id(); dbData.id = ddsData.id;
dbData.relayId = ddsData.id(); dbData.relayId = ddsData.id;
dbData.name = QString::fromStdString(ddsData.name()); dbData.name = QString::fromStdString(ddsData.name);
dbData.description = QString::fromStdString(ddsData.description()); dbData.description = QString::fromStdString(ddsData.description);
dbData.properties = QString::fromStdString(ddsData.property()); dbData.properties = QString::fromStdString(ddsData.property);
return dbData; return dbData;
} }
@@ -147,14 +147,14 @@ RelayInfo ObjectRelayInfo::toDdsData(const Database::AsmEgcuRelayInfo &dbData)
{ {
RelayInfo ddsData; RelayInfo ddsData;
ddsData.id(dbData.relayId); ddsData.id = dbData.relayId;
ddsData.name(dbData.name.toStdString()); ddsData.name = dbData.name.toStdString();
ddsData.description(dbData.description.toStdString()); ddsData.description = dbData.description.toStdString();
ddsData.property(dbData.properties.toStdString()); ddsData.property = dbData.properties.toStdString();
// init data not in db // init data not in db
ddsData.isDeleted(false); ddsData.isDeleted = false;
ddsData.isUsed(false); ddsData.isUsed = false;
return ddsData; return ddsData;
} }
@@ -34,8 +34,8 @@ public:
Core::FunctionReplyObject updateObject(const RelayInfo &data); Core::FunctionReplyObject updateObject(const RelayInfo &data);
Core::FunctionReplyObject removeObject(); Core::FunctionReplyObject removeObject();
qint32 getId() const { return m_data.id(); } qint32 getId() const { return m_data.id; }
QString getName() const { return QString::fromStdString(m_data.name()); } QString getName() const { return QString::fromStdString(m_data.name); }
const RelayInfo &getData() const { return m_data; } const RelayInfo &getData() const { return m_data; }
bool isValid() const; bool isValid() const;
@@ -24,19 +24,19 @@ ObjectTrainingArea::ObjectTrainingArea(MainHandler *mainHandler)
ObjectTrainingArea::~ObjectTrainingArea() ObjectTrainingArea::~ObjectTrainingArea()
{ {
if (isValid()) if (isValid())
m_mainHandler->dds()->dts()->removeTrainingAreaByKey(m_data.id()); m_mainHandler->dds()->dts()->removeTrainingAreaByKey(m_data.id);
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
bool ObjectTrainingArea::isValid() const bool ObjectTrainingArea::isValid() const
{ {
return m_data.id() > 0; return m_data.id > 0;
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
bool ObjectTrainingArea::isUsed() const bool ObjectTrainingArea::isUsed() const
{ {
return m_data.isUsed(); return m_data.isUsed;
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
@@ -44,79 +44,79 @@ Core::FunctionReplyObject ObjectTrainingArea::createObject(const TrainingArea &d
{ {
m_data = data; m_data = data;
if (m_data.id() <= 0) if (m_data.id <= 0)
{ {
m_data.isUsed(false); m_data.isUsed = false;
Database::AsmTrainingArea dbData(toDbData(data)); Database::AsmTrainingArea dbData(toDbData(data));
if (!m_mainHandler->db()->insert(dbData)) if (!m_mainHandler->db()->insert(dbData))
return Core::FunctionReplyObject(0, tr_lts("dds", "Error inserting AsmTrainingArea-data into database")); return Core::FunctionReplyObject(0, tr_lts("dds", "Error inserting AsmTrainingArea-data into database"));
m_data.id(dbData.id); m_data.id = dbData.id;
DEBUG_LOG(m_logger) << "New mapId: " << m_data.id(); DEBUG_LOG(m_logger) << "New mapId: " << m_data.id;
} }
// Publish Data via DTS // Publish Data via DTS
onPublishData(); onPublishData();
return Core::FunctionReplyObject(m_data.id()); return Core::FunctionReplyObject(m_data.id);
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
Core::FunctionReplyObject ObjectTrainingArea::updateObject(const TrainingArea &data) Core::FunctionReplyObject ObjectTrainingArea::updateObject(const TrainingArea &data)
{ {
if (!isValid()) if (!isValid())
return Core::FunctionReplyObject(data.id(), tr_lts("dds", "Object not valid/blocked")); return Core::FunctionReplyObject(data.id, tr_lts("dds", "Object not valid/blocked"));
Database::AsmTrainingArea dbData; Database::AsmTrainingArea dbData;
dbData = toDbData(data); dbData = toDbData(data);
if (!m_mainHandler->db()->update(dbData)) if (!m_mainHandler->db()->update(dbData))
return Core::FunctionReplyObject(data.id(), tr_lts("dds", "Error updating AsmTrainingArea-data into database")); return Core::FunctionReplyObject(data.id, tr_lts("dds", "Error updating AsmTrainingArea-data into database"));
m_data = data; m_data = data;
DEBUG_LOG(m_logger) << "Data changed for mapId: " << m_data.id(); DEBUG_LOG(m_logger) << "Data changed for mapId: " << m_data.id;
// Publish Data via DTS // Publish Data via DTS
onPublishData(); onPublishData();
return Core::FunctionReplyObject(m_data.id()); return Core::FunctionReplyObject(m_data.id);
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
Core::FunctionReplyObject ObjectTrainingArea::setUsed(bool isUsed) Core::FunctionReplyObject ObjectTrainingArea::setUsed(bool isUsed)
{ {
if (!isValid()) if (!isValid())
return Core::FunctionReplyObject(m_data.id(), tr_lts("dds", "Trying to update an already removed AsmTrainingArea object")); return Core::FunctionReplyObject(m_data.id, tr_lts("dds", "Trying to update an already removed AsmTrainingArea object"));
m_data.isUsed(isUsed); m_data.isUsed = isUsed;
// Publish Data via DTS // Publish Data via DTS
onPublishData(); onPublishData();
return Core::FunctionReplyObject(m_data.id()); return Core::FunctionReplyObject(m_data.id);
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
Core::FunctionReplyObject ObjectTrainingArea::removeObject() Core::FunctionReplyObject ObjectTrainingArea::removeObject()
{ {
if (isUsed()) if (isUsed())
return Core::FunctionReplyObject(m_data.id(), tr_lts("dds", "TrainingArea still in use")); return Core::FunctionReplyObject(m_data.id, tr_lts("dds", "TrainingArea still in use"));
if (!m_mainHandler->db()->removeAsmTrainingArea(m_data.id())) if (!m_mainHandler->db()->removeAsmTrainingArea(m_data.id))
return Core::FunctionReplyObject(m_data.id(), tr_lts("dds", "TrainingArea with id %1 can not be removed from DB")).arg(m_data.id()); return Core::FunctionReplyObject(m_data.id, tr_lts("dds", "TrainingArea with id %1 can not be removed from DB")).arg(m_data.id);
if (!m_mainHandler->dds()->dts()->removeTrainingAreaByKey(m_data.id())) if (!m_mainHandler->dds()->dts()->removeTrainingAreaByKey(m_data.id))
return Core::FunctionReplyObject(m_data.id(), tr_lts("dds", "TrainingArea with id %1 can not be removed from DDS")).arg(m_data.id()); return Core::FunctionReplyObject(m_data.id, tr_lts("dds", "TrainingArea with id %1 can not be removed from DDS")).arg(m_data.id);
return Core::FunctionReplyObject(m_data.id()); return Core::FunctionReplyObject(m_data.id);
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
void ObjectTrainingArea::onPublishData() void ObjectTrainingArea::onPublishData()
{ {
INFO_LOG(m_logger) << "Publish AsmTrainingArea-data to dds (" << m_data.id() << ") ..."; INFO_LOG(m_logger) << "Publish AsmTrainingArea-data to dds (" << m_data.id << ") ...";
if (!m_mainHandler->dds()->dts()->publish(m_data)) if (!m_mainHandler->dds()->dts()->publish(m_data))
ERROR_LOG(m_logger) << "Error publishing AsmTrainingArea-data to dds"; ERROR_LOG(m_logger) << "Error publishing AsmTrainingArea-data to dds";
@@ -131,13 +131,13 @@ Database::AsmTrainingArea ObjectTrainingArea::toDbData(const TrainingArea &ddsDa
{ {
Database::AsmTrainingArea dbData; Database::AsmTrainingArea dbData;
dbData.id = ddsData.id(); dbData.id = ddsData.id;
dbData.name = QString::fromStdString(ddsData.name()); dbData.name = QString::fromStdString(ddsData.name);
dbData.bottomLeft = QPointF(ddsData.bottomLeft().lon(), ddsData.bottomLeft().lat()); dbData.bottomLeft = QPointF(ddsData.bottomLeft.lon, ddsData.bottomLeft.lat);
dbData.height = ddsData.height(); dbData.height = ddsData.height;
dbData.width = ddsData.width(); dbData.width = ddsData.width;
dbData.image = QByteArray::fromRawData(reinterpret_cast<const char *>(&ddsData.image()[0]), ddsData.image().size()); dbData.image = QByteArray::fromRawData(reinterpret_cast<const char *>(&ddsData.image[0]), ddsData.image.size());
return dbData; return dbData;
} }
@@ -34,8 +34,8 @@ public:
Core::FunctionReplyObject updateObject(const TrainingArea &data); Core::FunctionReplyObject updateObject(const TrainingArea &data);
Core::FunctionReplyObject removeObject(); Core::FunctionReplyObject removeObject();
qint32 getId() const { return m_data.id(); } qint32 getId() const { return m_data.id; }
QString getName() const { return QString::fromStdString(m_data.name()); } QString getName() const { return QString::fromStdString(m_data.name); }
const TrainingArea &getData() const { return m_data; } const TrainingArea &getData() const { return m_data; }
bool isValid() const; bool isValid() const;
@@ -59,15 +59,15 @@ bool HandlerFiringExplosion::init()
//============================================================================= //=============================================================================
void HandlerFiringExplosion::setFiringClearanceDuration() void HandlerFiringExplosion::setFiringClearanceDuration()
{ {
if (m_firingExplosionEntity.firingClearanceTime().is_set()) if (m_firingExplosionEntity.firingClearanceTime.is_set())
{ {
qint64 pre = m_firingExplosionEntity.firingClearanceTime().get(); qint64 pre = m_firingExplosionEntity.firingClearanceTime.get();
qint64 post = pre; qint64 post = pre;
pre -= PRE_START_TIME; pre -= PRE_START_TIME;
post += m_firingExplosionEntity.duration() + POST_END_TIME; //as we already start "duration" earlier post += m_firingExplosionEntity.duration() + POST_END_TIME; //as we already start "duration" earlier
m_firingExplosionEntity.firingClearanceTime().set(pre); m_firingExplosionEntity.firingClearanceTime().set(pre);
m_firingExplosionEntity.endOfFiringClearanceTime().set(post); m_firingExplosionEntity.endOfFiringClearanceTime().set(post);
// m_firingExplosionEntity.firingClearanceTime().set(m_firingExplosionEntity.firingClearanceTime().get() - (2 * m_firingClearanceDuration)); // m_firingExplosionEntity.firingClearanceTime().set(m_firingExplosionEntity.firingClearanceTime.get() - (2 * m_firingClearanceDuration));
} }
else else
m_firingExplosionEntity.endOfFiringClearanceTime().reset(); m_firingExplosionEntity.endOfFiringClearanceTime().reset();
@@ -52,9 +52,9 @@ bool HandlerFiringSmoke::init()
//============================================================================= //=============================================================================
void HandlerFiringSmoke::setFiringClearanceDuration() void HandlerFiringSmoke::setFiringClearanceDuration()
{ {
if (m_firingSmokeEntity.firingClearanceTime().is_set()) if (m_firingSmokeEntity.firingClearanceTime.is_set())
{ {
qint64 pre = m_firingSmokeEntity.firingClearanceTime().get(); qint64 pre = m_firingSmokeEntity.firingClearanceTime.get();
qint64 post = pre; qint64 post = pre;
pre -= PRE_START_TIME; pre -= PRE_START_TIME;
post += m_firingSmokeEntity.duration() + POST_END_TIME; post += m_firingSmokeEntity.duration() + POST_END_TIME;
@@ -144,7 +144,7 @@ bool DdsHandler::init(const QStringList &qosFileList)
qint64 DdsHandler::currentPartitionTime() const qint64 DdsHandler::currentPartitionTime() const
{ {
return m_dtcCore->partitionTime().timeStamp(); return m_dtcCore->partitionTime().timeStamp;
} }
} // namespace EffectShowManagement } // namespace EffectShowManagement
@@ -40,7 +40,7 @@ Database::EsmEffectShow EffectShowEffectCluster::getEffectShow(int idx)
Database::EsmEffectShow esmEffectShow; Database::EsmEffectShow esmEffectShow;
if (!m_handlerPdmData->isSmoke(m_effectCluster.chargeStruct())) if (!m_handlerPdmData->isSmoke(m_effectCluster.chargeStruct))
{ {
int indX = idx % m_areasWidth.numOfAreas; int indX = idx % m_areasWidth.numOfAreas;
int indY = idx / m_areasWidth.numOfAreas; int indY = idx / m_areasWidth.numOfAreas;
@@ -67,15 +67,15 @@ Database::EsmEffectShow EffectShowEffectCluster::getEffectShow(int idx)
esmEffectShow.id = 0; esmEffectShow.id = 0;
esmEffectShow.name = QStringLiteral("EXP"); esmEffectShow.name = QStringLiteral("EXP");
esmEffectShow.startTime = m_effectCluster.effectStart().is_set() ? m_effectCluster.effectStart().get() : 0; esmEffectShow.startTime = m_effectCluster.effectStart.is_set() ? m_effectCluster.effectStart.get() : 0;
esmEffectShow.centerPosition = centerPosRotated.geographic(); esmEffectShow.centerPosition = centerPosRotated.geographic();
esmEffectShow.idAreaEffectSimulation = m_effectCluster.id(); esmEffectShow.idAreaEffectSimulation = m_effectCluster.id;
esmEffectShow.esmParticipantId = -1; esmEffectShow.esmParticipantId = -1;
esmEffectShow.nameAreaEfffectSimulation = QString::fromStdString(m_effectCluster.name()); esmEffectShow.nameAreaEfffectSimulation = QString::fromStdString(m_effectCluster.name);
esmEffectShow.numOfVolley = getNumberOfVolley(); esmEffectShow.numOfVolley = getNumberOfVolley();
esmEffectShow.shotsPerVolley = getShotsPerArea() / esmEffectShow.numOfVolley; esmEffectShow.shotsPerVolley = getShotsPerArea() / esmEffectShow.numOfVolley;
esmEffectShow.typeOfAmmunition = m_effectCluster.chargeStruct().chargeTypeId(); esmEffectShow.typeOfAmmunition = m_effectCluster.chargeStruct.chargeTypeId;
// can there be more then 48 shoots? // can there be more then 48 shoots?
if (esmEffectShow.shotsPerVolley > 48) if (esmEffectShow.shotsPerVolley > 48)
@@ -85,12 +85,12 @@ Database::EsmEffectShow EffectShowEffectCluster::getEffectShow(int idx)
DEBUG_LOG(m_logger) << "recalc effectDuration "; DEBUG_LOG(m_logger) << "recalc effectDuration ";
if (m_effectCluster.effectDuration() == DEFAULT_EFFECT_DURATION) if (m_effectCluster.effectDuration == DEFAULT_EFFECT_DURATION)
{ {
QJsonObject probObject = QJsonDocument::fromJson(QByteArray::fromStdString(m_effectCluster.properties())).object(); QJsonObject probObject = QJsonDocument::fromJson(QByteArray::fromStdString(m_effectCluster.properties)).object();
AreaEffectSimulation::FiringType firingType = AreaEffectSimulation::FiringType::ReportReadyToFire; AreaEffectSimulation::FiringType firingType = AreaEffectSimulation::FiringType::ReportReadyToFire;
if (probObject.contains(QStringLiteral("abfeuerungsArt"))) if (probObject.contains(QStringLiteral("abfeuerungsArt")))
firingType = static_cast<AreaEffectSimulation::FiringType::inner_enum>(probObject[QStringLiteral("abfeuerungsArt")].toInt()); firingType = static_cast<AreaEffectSimulation::FiringType>(probObject[QStringLiteral("abfeuerungsArt")].toInt());
if (firingType == AreaEffectSimulation::FiringType::FireOnCommand) if (firingType == AreaEffectSimulation::FiringType::FireOnCommand)
{ {
//use default //use default
@@ -100,25 +100,25 @@ Database::EsmEffectShow EffectShowEffectCluster::getEffectShow(int idx)
else else
{ {
// use cadence // use cadence
if (m_effectCluster.effectors().size()) //should always be there! if (m_effectCluster.effectors.size()) //should always be there!
{ {
esmEffectShow.duration = m_effectCluster.effectors().at(0).chargeAmount() * m_handlerPdmData.get()->getCadence(m_effectCluster.effectors().at(0).chargeStruct().chargeTypeId()); esmEffectShow.duration = m_effectCluster.effectors.at(0).chargeAmount * m_handlerPdmData.get()->getCadence(m_effectCluster.effectors.at(0).chargeStruct.chargeTypeId);
DEBUG_LOG(m_logger) << " recalc effectDuration use cadence value " << esmEffectShow.duration << " effector shots: " << m_effectCluster.effectors().at(0).chargeAmount() << " cadence " << m_handlerPdmData.get()->getCadence(m_effectCluster.effectors().at(0).chargeStruct().chargeTypeId()); DEBUG_LOG(m_logger) << " recalc effectDuration use cadence value " << esmEffectShow.duration << " effector shots: " << m_effectCluster.effectors.at(0).chargeAmount << " cadence " << m_handlerPdmData.get()->getCadence(m_effectCluster.effectors.at(0).chargeStruct.chargeTypeId);
} }
} }
} }
else else
{ {
DEBUG_LOG(m_logger) << "Use effectDuration directly "; DEBUG_LOG(m_logger) << "Use effectDuration directly ";
esmEffectShow.duration = m_effectCluster.effectDuration(); esmEffectShow.duration = m_effectCluster.effectDuration;
} }
esmEffectShow.lowerLeftPosition = lowerLeftPosRotated.geographic(); esmEffectShow.lowerLeftPosition = lowerLeftPosRotated.geographic();
esmEffectShow.areaWidth = m_areasWidth.side(indX); esmEffectShow.areaWidth = m_areasWidth.side(indX);
esmEffectShow.areaDepth = m_areasDepth.side(indY); esmEffectShow.areaDepth = m_areasDepth.side(indY);
esmEffectShow.areaRotation = m_effectCluster.area().rotation() + 90; esmEffectShow.areaRotation = m_effectCluster.area.rotation + 90;
DEBUG_LOG(m_logger) << "\nWidth: " << m_effectCluster.area().width() << " Height: " << m_effectCluster.area().height() DEBUG_LOG(m_logger) << "\nWidth: " << m_effectCluster.area.width << " Height: " << m_effectCluster.area.height
<< "\nRotated LL Pos: " << lowerLeftPosRotated.mgrs() << "\nRotated LL Pos: " << lowerLeftPosRotated.mgrs()
<< "\nduration: " << esmEffectShow.duration << "\nduration: " << esmEffectShow.duration
<< "\nRotated Center Pos: " << centerPosRotated.mgrs() << "\nRotated Center Pos: " << centerPosRotated.mgrs()
@@ -136,30 +136,30 @@ Database::EsmEffectShow EffectShowEffectCluster::getEffectShow(int idx)
// calculate center position // calculate center position
LtsCoordTrans::UtmCoordinate centerPos = lowerLeftPosRotated; LtsCoordTrans::UtmCoordinate centerPos = lowerLeftPosRotated;
centerPos.x = centerPos.x + m_effectCluster.area().width() / 2.; centerPos.x = centerPos.x + m_effectCluster.area.width / 2.;
centerPos.y = centerPos.y + m_effectCluster.area().height() / 2.; centerPos.y = centerPos.y + m_effectCluster.area.height / 2.;
LtsCoordTrans::UtmCoordinate centerPosRotated = rotate(centerPos, m_lowerLeftPos, rotationRad()); LtsCoordTrans::UtmCoordinate centerPosRotated = rotate(centerPos, m_lowerLeftPos, rotationRad());
esmEffectShow.id = 0; esmEffectShow.id = 0;
esmEffectShow.name = QStringLiteral("EXP"); esmEffectShow.name = QStringLiteral("EXP");
esmEffectShow.startTime = m_effectCluster.effectStart().is_set() ? m_effectCluster.effectStart().get() : 0; esmEffectShow.startTime = m_effectCluster.effectStart.is_set() ? m_effectCluster.effectStart.get() : 0;
esmEffectShow.duration = m_effectCluster.effectDuration(); esmEffectShow.duration = m_effectCluster.effectDuration;
esmEffectShow.centerPosition = centerPosRotated.geographic(); esmEffectShow.centerPosition = centerPosRotated.geographic();
esmEffectShow.idAreaEffectSimulation = m_effectCluster.id(); esmEffectShow.idAreaEffectSimulation = m_effectCluster.id;
esmEffectShow.esmParticipantId = -1; esmEffectShow.esmParticipantId = -1;
esmEffectShow.nameAreaEfffectSimulation = QString::fromStdString(m_effectCluster.name()); esmEffectShow.nameAreaEfffectSimulation = QString::fromStdString(m_effectCluster.name);
esmEffectShow.typeOfAmmunition = m_effectCluster.chargeStruct().chargeTypeId(); esmEffectShow.typeOfAmmunition = m_effectCluster.chargeStruct.chargeTypeId;
esmEffectShow.numOfVolley = 1; esmEffectShow.numOfVolley = 1;
esmEffectShow.shotsPerVolley = 1; esmEffectShow.shotsPerVolley = 1;
esmEffectShow.lowerLeftPosition = lowerLeftPosRotated.geographic(); esmEffectShow.lowerLeftPosition = lowerLeftPosRotated.geographic();
esmEffectShow.areaWidth = m_effectCluster.area().width(); esmEffectShow.areaWidth = m_effectCluster.area.width;
esmEffectShow.areaDepth = m_effectCluster.area().height(); esmEffectShow.areaDepth = m_effectCluster.area.height;
esmEffectShow.areaRotation = m_effectCluster.area().rotation() + 90; esmEffectShow.areaRotation = m_effectCluster.area.rotation + 90;
DEBUG_LOG(m_logger) << "\nWidth: " << m_effectCluster.area().width() << " Height: " << m_effectCluster.area().height() DEBUG_LOG(m_logger) << "\nWidth: " << m_effectCluster.area.width << " Height: " << m_effectCluster.area.height
<< "\nRotated LL Pos: " << lowerLeftPosRotated.mgrs() << "\nRotated LL Pos: " << lowerLeftPosRotated.mgrs()
<< "\nRotated Center Pos: " << centerPosRotated.mgrs() << "\nRotated Center Pos: " << centerPosRotated.mgrs()
<< "\nSide x,y: " << m_effectCluster.area().width() << " , " << m_effectCluster.area().height(); << "\nSide x,y: " << m_effectCluster.area.width << " , " << m_effectCluster.area.height;
} }
return esmEffectShow; return esmEffectShow;
@@ -169,18 +169,18 @@ void EffectShowEffectCluster::updateEffectShow(Database::EsmEffectShow &data)
{ {
DEBUG_LOG(m_logger) << "update EffectSHow for (" << data.id << ")"; DEBUG_LOG(m_logger) << "update EffectSHow for (" << data.id << ")";
data.nameAreaEfffectSimulation = QString::fromStdString(m_effectCluster.name()); data.nameAreaEfffectSimulation = QString::fromStdString(m_effectCluster.name);
data.startTime = m_effectCluster.effectStart().is_set() ? m_effectCluster.effectStart().get() : 0; data.startTime = m_effectCluster.effectStart.is_set() ? m_effectCluster.effectStart.get() : 0;
DEBUG_LOG(m_logger) << "Recalc effectDuration "; DEBUG_LOG(m_logger) << "Recalc effectDuration ";
if (m_effectCluster.effectDuration() == DEFAULT_EFFECT_DURATION) if (m_effectCluster.effectDuration == DEFAULT_EFFECT_DURATION)
{ {
QJsonObject probObject = QJsonDocument::fromJson(QByteArray::fromStdString(m_effectCluster.properties())).object(); QJsonObject probObject = QJsonDocument::fromJson(QByteArray::fromStdString(m_effectCluster.properties)).object();
AreaEffectSimulation::FiringType firingType = AreaEffectSimulation::FiringType::ReportReadyToFire; AreaEffectSimulation::FiringType firingType = AreaEffectSimulation::FiringType::ReportReadyToFire;
if (probObject.contains(QStringLiteral("abfeuerungsArt"))) if (probObject.contains(QStringLiteral("abfeuerungsArt")))
firingType = static_cast<AreaEffectSimulation::FiringType::inner_enum>(probObject[QStringLiteral("abfeuerungsArt")].toInt()); firingType = static_cast<AreaEffectSimulation::FiringType>(probObject[QStringLiteral("abfeuerungsArt")].toInt());
if (firingType == AreaEffectSimulation::FiringType::FireOnCommand) if (firingType == AreaEffectSimulation::FiringType::FireOnCommand)
{ {
//use default //use default
@@ -190,17 +190,17 @@ void EffectShowEffectCluster::updateEffectShow(Database::EsmEffectShow &data)
else else
{ {
// use cadence // use cadence
if (m_effectCluster.effectors().size()) //should always be there! if (m_effectCluster.effectors.size()) //should always be there!
{ {
data.duration = m_effectCluster.effectors().at(0).chargeAmount() * m_handlerPdmData.get()->getCadence(m_effectCluster.effectors().at(0).chargeStruct().chargeTypeId()); data.duration = m_effectCluster.effectors.at(0).chargeAmount * m_handlerPdmData.get()->getCadence(m_effectCluster.effectors.at(0).chargeStruct.chargeTypeId);
DEBUG_LOG(m_logger) << " recalc effectDuration use cadence value " << data.duration << " effector shots: " << m_effectCluster.effectors().at(0).chargeAmount() << " cadence " << m_handlerPdmData.get()->getCadence(m_effectCluster.effectors().at(0).chargeStruct().chargeTypeId()); DEBUG_LOG(m_logger) << " recalc effectDuration use cadence value " << data.duration << " effector shots: " << m_effectCluster.effectors.at(0).chargeAmount << " cadence " << m_handlerPdmData.get()->getCadence(m_effectCluster.effectors.at(0).chargeStruct.chargeTypeId);
} }
} }
} }
else else
{ {
DEBUG_LOG(m_logger) << "Use effectDuration directly "; DEBUG_LOG(m_logger) << "Use effectDuration directly ";
data.duration = m_effectCluster.effectDuration(); data.duration = m_effectCluster.effectDuration;
} }
if (data.shotsPerVolley > 48) if (data.shotsPerVolley > 48)
@@ -208,21 +208,21 @@ void EffectShowEffectCluster::updateEffectShow(Database::EsmEffectShow &data)
if (data.shotsPerVolley <= 0) if (data.shotsPerVolley <= 0)
data.shotsPerVolley = 1; data.shotsPerVolley = 1;
data.typeOfAmmunition = m_effectCluster.chargeStruct().chargeTypeId(); data.typeOfAmmunition = m_effectCluster.chargeStruct.chargeTypeId;
data.esmParticipantId = (m_effectCluster.esmParticipantIds().size() > 0) data.esmParticipantId = (m_effectCluster.esmParticipantIds.size() > 0)
? m_effectCluster.esmParticipantIds().at(0) ? m_effectCluster.esmParticipantIds.at(0)
: -1; : -1;
} }
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
void EffectShowEffectCluster::calculateSquare() void EffectShowEffectCluster::calculateSquare()
{ {
Core::GeoPosition2D geoPos = m_effectCluster.area().cornerBottomLeft(); Core::GeoPosition2D geoPos = m_effectCluster.area.cornerBottomLeft;
m_lowerLeftPos = LtsCoordTrans::UtmCoordinate::fromGeographic(geoPos.lon(), geoPos.lat()); m_lowerLeftPos = LtsCoordTrans::UtmCoordinate::fromGeographic(geoPos.lon, geoPos.lat);
// Calculate squares. // Calculate squares.
m_areasWidth = getAreasSideLength(m_effectCluster.area().width()); // Squares in x-direction m_areasWidth = getAreasSideLength(m_effectCluster.area.width); // Squares in x-direction
m_areasDepth = getAreasSideLength(m_effectCluster.area().height()); // Squares in y-direction m_areasDepth = getAreasSideLength(m_effectCluster.area.height); // Squares in y-direction
m_numOfEffectShows = m_handlerPdmData->effectShowCount(m_effectCluster.chargeStruct()); m_numOfEffectShows = m_handlerPdmData->effectShowCount(m_effectCluster.chargeStruct);
} }
//static ---------------------------------------------------------------------- //static ----------------------------------------------------------------------
LtsCoordTrans::UtmCoordinate EffectShowEffectCluster::rotate(const LtsCoordTrans::UtmCoordinate &p, const LtsCoordTrans::UtmCoordinate &c, double angle) LtsCoordTrans::UtmCoordinate EffectShowEffectCluster::rotate(const LtsCoordTrans::UtmCoordinate &p, const LtsCoordTrans::UtmCoordinate &c, double angle)
@@ -268,9 +268,9 @@ int EffectShowEffectCluster::getShotsPerArea() const
if (!m_numOfEffectShows) if (!m_numOfEffectShows)
return 0; return 0;
int v = 0; int v = 0;
for (const auto &effector: m_effectCluster.effectors()) for (const auto &effector: m_effectCluster.effectors)
{ {
v+= effector.chargeAmount(); v+= effector.chargeAmount;
} }
return v / m_numOfEffectShows; //split even across all effect shows return v / m_numOfEffectShows; //split even across all effect shows
} }
@@ -280,9 +280,9 @@ int EffectShowEffectCluster::getShotsPerArea(int areas) const
if (areas == 0) if (areas == 0)
return 0; return 0;
int v = 0; int v = 0;
for (const auto &effector: m_effectCluster.effectors()) for (const auto &effector: m_effectCluster.effectors)
{ {
v+= effector.chargeAmount(); v+= effector.chargeAmount;
} }
return v / areas; return v / areas;
} }
@@ -308,7 +308,7 @@ int EffectShowEffectCluster::getNumberOfVolley(int v)
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
double EffectShowEffectCluster::rotationRad() const double EffectShowEffectCluster::rotationRad() const
{ {
return -m_effectCluster.area().rotation() * LtsCoordTrans::deg2rad(); return -m_effectCluster.area.rotation * LtsCoordTrans::deg2rad();
} }
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
@@ -35,7 +35,7 @@ Database::EsmEffectShow EffectShowExplosionArea::getEffectShow(int idx)
Database::EsmEffectShow esmEffectShow; Database::EsmEffectShow esmEffectShow;
if (!m_handlerPdmData->isSmoke(m_explosionArea.chargeStruct())) if (!m_handlerPdmData->isSmoke(m_explosionArea.chargeStruct))
{ {
int indX = idx % m_areasWidth.numOfAreas; int indX = idx % m_areasWidth.numOfAreas;
int indY = idx / m_areasWidth.numOfAreas; int indY = idx / m_areasWidth.numOfAreas;
@@ -62,15 +62,15 @@ Database::EsmEffectShow EffectShowExplosionArea::getEffectShow(int idx)
esmEffectShow.id = 0; esmEffectShow.id = 0;
esmEffectShow.name = QStringLiteral("EXP"); esmEffectShow.name = QStringLiteral("EXP");
esmEffectShow.startTime = m_explosionArea.effectStart().is_set() ? m_explosionArea.effectStart().get() : 0; esmEffectShow.startTime = m_explosionArea.effectStart.is_set() ? m_explosionArea.effectStart.get() : 0;
esmEffectShow.duration = m_explosionArea.effectDuration(); esmEffectShow.duration = m_explosionArea.effectDuration;
esmEffectShow.centerPosition = centerPosRotated.geographic(); esmEffectShow.centerPosition = centerPosRotated.geographic();
esmEffectShow.idAreaEffectSimulation = m_explosionArea.id(); esmEffectShow.idAreaEffectSimulation = m_explosionArea.id;
esmEffectShow.esmParticipantId = -1; esmEffectShow.esmParticipantId = -1;
esmEffectShow.nameAreaEfffectSimulation = QString::fromStdString(m_explosionArea.name()); esmEffectShow.nameAreaEfffectSimulation = QString::fromStdString(m_explosionArea.name);
esmEffectShow.numOfVolley = getNumberOfVolley(); esmEffectShow.numOfVolley = getNumberOfVolley();
esmEffectShow.shotsPerVolley = getShotsPerArea() / esmEffectShow.numOfVolley; esmEffectShow.shotsPerVolley = getShotsPerArea() / esmEffectShow.numOfVolley;
esmEffectShow.typeOfAmmunition = m_explosionArea.chargeStruct().chargeTypeId(); esmEffectShow.typeOfAmmunition = m_explosionArea.chargeStruct.chargeTypeId;
// can there be more then 48 shoots? // can there be more then 48 shoots?
if (esmEffectShow.shotsPerVolley > 48) if (esmEffectShow.shotsPerVolley > 48)
@@ -80,10 +80,10 @@ Database::EsmEffectShow EffectShowExplosionArea::getEffectShow(int idx)
esmEffectShow.lowerLeftPosition = lowerLeftPosRotated.geographic(); esmEffectShow.lowerLeftPosition = lowerLeftPosRotated.geographic();
esmEffectShow.areaWidth = m_areasWidth.side(indX); esmEffectShow.areaWidth = m_areasWidth.side(indX);
esmEffectShow.areaDepth = m_areasDepth.side(indY); esmEffectShow.areaDepth = m_areasDepth.side(indY);
esmEffectShow.areaRotation = m_explosionArea.area().rotation() + 90; esmEffectShow.areaRotation = m_explosionArea.area.rotation + 90;
DEBUG_LOG(m_logger) << "\nWidth: " << m_explosionArea.area().width() << " Height: " << m_explosionArea.area().height() DEBUG_LOG(m_logger) << "\nWidth: " << m_explosionArea.area.width << " Height: " << m_explosionArea.area.height
<< "\nRotated LL Pos: " << lowerLeftPosRotated.mgrs() << "\nRotated LL Pos: " << lowerLeftPosRotated.mgrs()
<< "\nRotated Center Pos: " << centerPosRotated.mgrs() << "\nRotated Center Pos: " << centerPosRotated.mgrs()
<< "\nOffset x,y: " << x_off << " , " << y_off << "\nOffset x,y: " << x_off << " , " << y_off
@@ -100,30 +100,30 @@ Database::EsmEffectShow EffectShowExplosionArea::getEffectShow(int idx)
// calculate center position // calculate center position
LtsCoordTrans::UtmCoordinate centerPos = lowerLeftPosRotated; LtsCoordTrans::UtmCoordinate centerPos = lowerLeftPosRotated;
centerPos.x = centerPos.x + m_explosionArea.area().width() / 2.; centerPos.x = centerPos.x + m_explosionArea.area.width / 2.;
centerPos.y = centerPos.y + m_explosionArea.area().height() / 2.; centerPos.y = centerPos.y + m_explosionArea.area.height / 2.;
LtsCoordTrans::UtmCoordinate centerPosRotated = rotate(centerPos, m_lowerLeftPos, rotationRad()); LtsCoordTrans::UtmCoordinate centerPosRotated = rotate(centerPos, m_lowerLeftPos, rotationRad());
esmEffectShow.id = 0; esmEffectShow.id = 0;
esmEffectShow.name = QStringLiteral("EXP"); esmEffectShow.name = QStringLiteral("EXP");
esmEffectShow.startTime = m_explosionArea.effectStart().is_set() ? m_explosionArea.effectStart().get() : 0; esmEffectShow.startTime = m_explosionArea.effectStart.is_set() ? m_explosionArea.effectStart.get() : 0;
esmEffectShow.duration = m_explosionArea.effectDuration(); esmEffectShow.duration = m_explosionArea.effectDuration;
esmEffectShow.centerPosition = centerPosRotated.geographic(); esmEffectShow.centerPosition = centerPosRotated.geographic();
esmEffectShow.idAreaEffectSimulation = m_explosionArea.id(); esmEffectShow.idAreaEffectSimulation = m_explosionArea.id;
esmEffectShow.esmParticipantId = -1; esmEffectShow.esmParticipantId = -1;
esmEffectShow.nameAreaEfffectSimulation = QString::fromStdString(m_explosionArea.name()); esmEffectShow.nameAreaEfffectSimulation = QString::fromStdString(m_explosionArea.name);
esmEffectShow.typeOfAmmunition = m_explosionArea.chargeStruct().chargeTypeId(); esmEffectShow.typeOfAmmunition = m_explosionArea.chargeStruct.chargeTypeId;
esmEffectShow.numOfVolley = 1; esmEffectShow.numOfVolley = 1;
esmEffectShow.shotsPerVolley = 1; esmEffectShow.shotsPerVolley = 1;
esmEffectShow.lowerLeftPosition = lowerLeftPosRotated.geographic(); esmEffectShow.lowerLeftPosition = lowerLeftPosRotated.geographic();
esmEffectShow.areaWidth = m_explosionArea.area().width(); esmEffectShow.areaWidth = m_explosionArea.area.width;
esmEffectShow.areaDepth = m_explosionArea.area().height(); esmEffectShow.areaDepth = m_explosionArea.area.height;
esmEffectShow.areaRotation = m_explosionArea.area().rotation() + 90; esmEffectShow.areaRotation = m_explosionArea.area.rotation + 90;
DEBUG_LOG(m_logger) << "\nWidth: " << m_explosionArea.area().width() << " Height: " << m_explosionArea.area().height() DEBUG_LOG(m_logger) << "\nWidth: " << m_explosionArea.area.width << " Height: " << m_explosionArea.area.height
<< "\nRotated LL Pos: " << lowerLeftPosRotated.mgrs() << "\nRotated LL Pos: " << lowerLeftPosRotated.mgrs()
<< "\nRotated Center Pos: " << centerPosRotated.mgrs() << "\nRotated Center Pos: " << centerPosRotated.mgrs()
<< "\nSide x,y: " << m_explosionArea.area().width() << " , " << m_explosionArea.area().height(); << "\nSide x,y: " << m_explosionArea.area.width << " , " << m_explosionArea.area.height;
} }
return esmEffectShow; return esmEffectShow;
@@ -131,29 +131,29 @@ Database::EsmEffectShow EffectShowExplosionArea::getEffectShow(int idx)
//============================================================================= //=============================================================================
void EffectShowExplosionArea::updateEffectShow(Database::EsmEffectShow &data) void EffectShowExplosionArea::updateEffectShow(Database::EsmEffectShow &data)
{ {
data.nameAreaEfffectSimulation = QString::fromStdString(m_explosionArea.name()); data.nameAreaEfffectSimulation = QString::fromStdString(m_explosionArea.name);
data.startTime = m_explosionArea.effectStart().is_set() ? m_explosionArea.effectStart().get() : 0; data.startTime = m_explosionArea.effectStart.is_set() ? m_explosionArea.effectStart.get() : 0;
data.duration = m_explosionArea.effectDuration(); data.duration = m_explosionArea.effectDuration;
if (data.shotsPerVolley > 48) if (data.shotsPerVolley > 48)
data.shotsPerVolley = 48;//(48 / data.numOfVolley); data.shotsPerVolley = 48;//(48 / data.numOfVolley);
if (data.shotsPerVolley <= 0) if (data.shotsPerVolley <= 0)
data.shotsPerVolley = 1; data.shotsPerVolley = 1;
data.typeOfAmmunition = m_explosionArea.chargeStruct().chargeTypeId(); data.typeOfAmmunition = m_explosionArea.chargeStruct.chargeTypeId;
} }
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
void EffectShowExplosionArea::calculateSquare() void EffectShowExplosionArea::calculateSquare()
{ {
// start position of the area // start position of the area
Core::GeoPosition2D geoPos = m_explosionArea.area().cornerBottomLeft(); Core::GeoPosition2D geoPos = m_explosionArea.area.cornerBottomLeft;
m_lowerLeftPos = LtsCoordTrans::UtmCoordinate::fromGeographic(geoPos.lon(), geoPos.lat()); m_lowerLeftPos = LtsCoordTrans::UtmCoordinate::fromGeographic(geoPos.lon, geoPos.lat);
// Calculate squares. // Calculate squares.
m_areasWidth = getAreasSideLength(m_explosionArea.area().width()); // Squares in x-direction m_areasWidth = getAreasSideLength(m_explosionArea.area.width); // Squares in x-direction
m_areasDepth = getAreasSideLength(m_explosionArea.area().height()); // Squares in y-direction m_areasDepth = getAreasSideLength(m_explosionArea.area.height); // Squares in y-direction
// Calculate number of squares // Calculate number of squares
if (m_handlerPdmData->isSmoke(m_explosionArea.chargeStruct())) if (m_handlerPdmData->isSmoke(m_explosionArea.chargeStruct))
m_numOfEffectShows = 1; m_numOfEffectShows = 1;
else else
m_numOfEffectShows = m_areasWidth.numOfAreas * m_areasDepth.numOfAreas; m_numOfEffectShows = m_areasWidth.numOfAreas * m_areasDepth.numOfAreas;
@@ -203,7 +203,7 @@ int EffectShowExplosionArea::getShotsPerArea() const
{ {
if (!m_numOfEffectShows) if (!m_numOfEffectShows)
return 0; return 0;
int v = m_explosionArea.cannonCount() * m_explosionArea.cannonRounds(); int v = m_explosionArea.cannonCount * m_explosionArea.cannonRounds;
return v / m_numOfEffectShows; //split even across all effect shows return v / m_numOfEffectShows; //split even across all effect shows
} }
@@ -211,7 +211,7 @@ int EffectShowExplosionArea::getShotsPerArea(int areas) const
{ {
if (areas == 0) if (areas == 0)
return 0; return 0;
int v = m_explosionArea.cannonCount() * m_explosionArea.cannonRounds(); int v = m_explosionArea.cannonCount * m_explosionArea.cannonRounds;
return v / areas; return v / areas;
} }
@@ -237,7 +237,7 @@ int EffectShowExplosionArea::getNumberOfVolley(int v)
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
double EffectShowExplosionArea::rotationRad() const double EffectShowExplosionArea::rotationRad() const
{ {
return -m_explosionArea.area().rotation() * LtsCoordTrans::deg2rad(); return -m_explosionArea.area.rotation * LtsCoordTrans::deg2rad();
} }
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
@@ -35,7 +35,7 @@ Database::EsmEffectShow EffectShowExplosionCluster::getEffectShow(int idx)
Database::EsmEffectShow esmEffectShow; Database::EsmEffectShow esmEffectShow;
if (!m_handlerPdmData->isSmoke(m_explosionCluster.chargeStruct())) if (!m_handlerPdmData->isSmoke(m_explosionCluster.chargeStruct))
{ {
int indX = idx % m_areasWidth.numOfAreas; int indX = idx % m_areasWidth.numOfAreas;
int indY = idx / m_areasWidth.numOfAreas; int indY = idx / m_areasWidth.numOfAreas;
@@ -62,15 +62,15 @@ Database::EsmEffectShow EffectShowExplosionCluster::getEffectShow(int idx)
esmEffectShow.id = 0; esmEffectShow.id = 0;
esmEffectShow.name = QStringLiteral("EXP"); esmEffectShow.name = QStringLiteral("EXP");
esmEffectShow.startTime = m_explosionCluster.effectStart().is_set() ? m_explosionCluster.effectStart().get() : 0; esmEffectShow.startTime = m_explosionCluster.effectStart.is_set() ? m_explosionCluster.effectStart.get() : 0;
esmEffectShow.duration = m_explosionCluster.effectDuration(); esmEffectShow.duration = m_explosionCluster.effectDuration;
esmEffectShow.centerPosition = centerPosRotated.geographic(); esmEffectShow.centerPosition = centerPosRotated.geographic();
esmEffectShow.idAreaEffectSimulation = m_explosionCluster.id(); esmEffectShow.idAreaEffectSimulation = m_explosionCluster.id;
esmEffectShow.esmParticipantId = -1; esmEffectShow.esmParticipantId = -1;
esmEffectShow.nameAreaEfffectSimulation = QString::fromStdString(m_explosionCluster.name()); esmEffectShow.nameAreaEfffectSimulation = QString::fromStdString(m_explosionCluster.name);
esmEffectShow.numOfVolley = getNumberOfVolley(); esmEffectShow.numOfVolley = getNumberOfVolley();
esmEffectShow.shotsPerVolley = getShotsPerArea() / esmEffectShow.numOfVolley; esmEffectShow.shotsPerVolley = getShotsPerArea() / esmEffectShow.numOfVolley;
esmEffectShow.typeOfAmmunition = m_explosionCluster.chargeStruct().chargeTypeId(); esmEffectShow.typeOfAmmunition = m_explosionCluster.chargeStruct.chargeTypeId;
// can there be more then 48 shoots? // can there be more then 48 shoots?
if (esmEffectShow.shotsPerVolley > 48) if (esmEffectShow.shotsPerVolley > 48)
@@ -80,10 +80,10 @@ Database::EsmEffectShow EffectShowExplosionCluster::getEffectShow(int idx)
esmEffectShow.lowerLeftPosition = lowerLeftPosRotated.geographic(); esmEffectShow.lowerLeftPosition = lowerLeftPosRotated.geographic();
esmEffectShow.areaWidth = m_areasWidth.side(indX); esmEffectShow.areaWidth = m_areasWidth.side(indX);
esmEffectShow.areaDepth = m_areasDepth.side(indY); esmEffectShow.areaDepth = m_areasDepth.side(indY);
esmEffectShow.areaRotation = m_explosionCluster.area().rotation() + 90; esmEffectShow.areaRotation = m_explosionCluster.area.rotation + 90;
DEBUG_LOG(m_logger) << "\nWidth: " << m_explosionCluster.area().width() << " Height: " << m_explosionCluster.area().height() DEBUG_LOG(m_logger) << "\nWidth: " << m_explosionCluster.area.width << " Height: " << m_explosionCluster.area.height
<< "\nRotated LL Pos: " << lowerLeftPosRotated.mgrs() << "\nRotated LL Pos: " << lowerLeftPosRotated.mgrs()
<< "\nRotated Center Pos: " << centerPosRotated.mgrs() << "\nRotated Center Pos: " << centerPosRotated.mgrs()
<< "\nOffset x,y: " << x_off << " , " << y_off << "\nOffset x,y: " << x_off << " , " << y_off
@@ -100,30 +100,30 @@ Database::EsmEffectShow EffectShowExplosionCluster::getEffectShow(int idx)
// calculate center position // calculate center position
LtsCoordTrans::UtmCoordinate centerPos = lowerLeftPosRotated; LtsCoordTrans::UtmCoordinate centerPos = lowerLeftPosRotated;
centerPos.x = centerPos.x + m_explosionCluster.area().width() / 2.; centerPos.x = centerPos.x + m_explosionCluster.area.width / 2.;
centerPos.y = centerPos.y + m_explosionCluster.area().height() / 2.; centerPos.y = centerPos.y + m_explosionCluster.area.height / 2.;
LtsCoordTrans::UtmCoordinate centerPosRotated = rotate(centerPos, m_lowerLeftPos, rotationRad()); LtsCoordTrans::UtmCoordinate centerPosRotated = rotate(centerPos, m_lowerLeftPos, rotationRad());
esmEffectShow.id = 0; esmEffectShow.id = 0;
esmEffectShow.name = QStringLiteral("EXP"); esmEffectShow.name = QStringLiteral("EXP");
esmEffectShow.startTime = m_explosionCluster.effectStart().is_set() ? m_explosionCluster.effectStart().get() : 0; esmEffectShow.startTime = m_explosionCluster.effectStart.is_set() ? m_explosionCluster.effectStart.get() : 0;
esmEffectShow.duration = m_explosionCluster.effectDuration(); esmEffectShow.duration = m_explosionCluster.effectDuration;
esmEffectShow.centerPosition = centerPosRotated.geographic(); esmEffectShow.centerPosition = centerPosRotated.geographic();
esmEffectShow.idAreaEffectSimulation = m_explosionCluster.id(); esmEffectShow.idAreaEffectSimulation = m_explosionCluster.id;
esmEffectShow.esmParticipantId = -1; esmEffectShow.esmParticipantId = -1;
esmEffectShow.nameAreaEfffectSimulation = QString::fromStdString(m_explosionCluster.name()); esmEffectShow.nameAreaEfffectSimulation = QString::fromStdString(m_explosionCluster.name);
esmEffectShow.typeOfAmmunition = m_explosionCluster.chargeStruct().chargeTypeId(); esmEffectShow.typeOfAmmunition = m_explosionCluster.chargeStruct.chargeTypeId;
esmEffectShow.numOfVolley = 1; esmEffectShow.numOfVolley = 1;
esmEffectShow.shotsPerVolley = 1; esmEffectShow.shotsPerVolley = 1;
esmEffectShow.lowerLeftPosition = lowerLeftPosRotated.geographic(); esmEffectShow.lowerLeftPosition = lowerLeftPosRotated.geographic();
esmEffectShow.areaWidth = m_explosionCluster.area().width(); esmEffectShow.areaWidth = m_explosionCluster.area.width;
esmEffectShow.areaDepth = m_explosionCluster.area().height(); esmEffectShow.areaDepth = m_explosionCluster.area.height;
esmEffectShow.areaRotation = m_explosionCluster.area().rotation() + 90; esmEffectShow.areaRotation = m_explosionCluster.area.rotation + 90;
DEBUG_LOG(m_logger) << "\nWidth: " << m_explosionCluster.area().width() << " Height: " << m_explosionCluster.area().height() DEBUG_LOG(m_logger) << "\nWidth: " << m_explosionCluster.area.width << " Height: " << m_explosionCluster.area.height
<< "\nRotated LL Pos: " << lowerLeftPosRotated.mgrs() << "\nRotated LL Pos: " << lowerLeftPosRotated.mgrs()
<< "\nRotated Center Pos: " << centerPosRotated.mgrs() << "\nRotated Center Pos: " << centerPosRotated.mgrs()
<< "\nSide x,y: " << m_explosionCluster.area().width() << " , " << m_explosionCluster.area().height(); << "\nSide x,y: " << m_explosionCluster.area.width << " , " << m_explosionCluster.area.height;
} }
return esmEffectShow; return esmEffectShow;
@@ -133,27 +133,27 @@ void EffectShowExplosionCluster::updateEffectShow(Database::EsmEffectShow &data)
{ {
DEBUG_LOG(m_logger) << "update EffectSHow for (" << data.id << ")"; DEBUG_LOG(m_logger) << "update EffectSHow for (" << data.id << ")";
data.nameAreaEfffectSimulation = QString::fromStdString(m_explosionCluster.name()); data.nameAreaEfffectSimulation = QString::fromStdString(m_explosionCluster.name);
data.startTime = m_explosionCluster.effectStart().is_set() ? m_explosionCluster.effectStart().get() : 0; data.startTime = m_explosionCluster.effectStart.is_set() ? m_explosionCluster.effectStart.get() : 0;
data.duration = m_explosionCluster.effectDuration(); data.duration = m_explosionCluster.effectDuration;
if (data.shotsPerVolley > 48) if (data.shotsPerVolley > 48)
data.shotsPerVolley = 48;//(48 / data.numOfVolley); data.shotsPerVolley = 48;//(48 / data.numOfVolley);
if (data.shotsPerVolley <= 0) if (data.shotsPerVolley <= 0)
data.shotsPerVolley = 1; data.shotsPerVolley = 1;
data.typeOfAmmunition = m_explosionCluster.chargeStruct().chargeTypeId(); data.typeOfAmmunition = m_explosionCluster.chargeStruct.chargeTypeId;
} }
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
void EffectShowExplosionCluster::calculateSquare() void EffectShowExplosionCluster::calculateSquare()
{ {
Core::GeoPosition2D geoPos = m_explosionCluster.area().cornerBottomLeft(); Core::GeoPosition2D geoPos = m_explosionCluster.area.cornerBottomLeft;
m_lowerLeftPos = LtsCoordTrans::UtmCoordinate::fromGeographic(geoPos.lon(), geoPos.lat()); m_lowerLeftPos = LtsCoordTrans::UtmCoordinate::fromGeographic(geoPos.lon, geoPos.lat);
// Calculate squares. // Calculate squares.
m_areasWidth = getAreasSideLength(m_explosionCluster.area().width()); // Squares in x-direction m_areasWidth = getAreasSideLength(m_explosionCluster.area.width); // Squares in x-direction
m_areasDepth = getAreasSideLength(m_explosionCluster.area().height()); // Squares in y-direction m_areasDepth = getAreasSideLength(m_explosionCluster.area.height); // Squares in y-direction
m_numOfEffectShows = m_handlerPdmData->effectShowCount(m_explosionCluster.chargeStruct()); m_numOfEffectShows = m_handlerPdmData->effectShowCount(m_explosionCluster.chargeStruct);
} }
//static ---------------------------------------------------------------------- //static ----------------------------------------------------------------------
LtsCoordTrans::UtmCoordinate EffectShowExplosionCluster::rotate(const LtsCoordTrans::UtmCoordinate &p, const LtsCoordTrans::UtmCoordinate &c, double angle) LtsCoordTrans::UtmCoordinate EffectShowExplosionCluster::rotate(const LtsCoordTrans::UtmCoordinate &p, const LtsCoordTrans::UtmCoordinate &c, double angle)
@@ -198,7 +198,7 @@ int EffectShowExplosionCluster::getShotsPerArea() const
{ {
if (!m_numOfEffectShows) if (!m_numOfEffectShows)
return 0; return 0;
int v = m_explosionCluster.impactCount(); //cannonCount() * m_explosionCluster.cannonRounds(); int v = m_explosionCluster.impactCount; //cannonCount() * m_explosionCluster.cannonRounds();
return v / m_numOfEffectShows; //split even across all effect shows return v / m_numOfEffectShows; //split even across all effect shows
} }
@@ -206,7 +206,7 @@ int EffectShowExplosionCluster::getShotsPerArea(int areas) const
{ {
if (areas == 0) if (areas == 0)
return 0; return 0;
int v = m_explosionCluster.impactCount();//cannonCount() * m_explosionCluster.cannonRounds(); int v = m_explosionCluster.impactCount;//cannonCount() * m_explosionCluster.cannonRounds();
return v / areas; return v / areas;
} }
@@ -232,7 +232,7 @@ int EffectShowExplosionCluster::getNumberOfVolley(int v)
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
double EffectShowExplosionCluster::rotationRad() const double EffectShowExplosionCluster::rotationRad() const
{ {
return -m_explosionCluster.area().rotation() * LtsCoordTrans::deg2rad(); return -m_explosionCluster.area.rotation * LtsCoordTrans::deg2rad();
} }
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
@@ -28,11 +28,11 @@ Database::EsmEffectShow EffectShowMineArea::getEffectShow()
Database::EsmEffectShow esmEffectShow; Database::EsmEffectShow esmEffectShow;
esmEffectShow.id = 0; esmEffectShow.id = 0;
esmEffectShow.name = QLatin1String("MIN"); esmEffectShow.name = QLatin1String("MIN");
esmEffectShow.startTime = m_mineArea.effectStart().is_set() ? m_mineArea.effectStart().get() : 0; esmEffectShow.startTime = m_mineArea.effectStart.is_set() ? m_mineArea.effectStart.get() : 0;
esmEffectShow.duration = m_mineArea.effectDuration(); esmEffectShow.duration = m_mineArea.effectDuration;
esmEffectShow.centerPosition = m_centerPos.geographic(); esmEffectShow.centerPosition = m_centerPos.geographic();
esmEffectShow.idAreaEffectSimulation = m_mineArea.id(); esmEffectShow.idAreaEffectSimulation = m_mineArea.id;
esmEffectShow.nameAreaEfffectSimulation = QString::fromStdString(m_mineArea.name()); esmEffectShow.nameAreaEfffectSimulation = QString::fromStdString(m_mineArea.name);
esmEffectShow.esmParticipantId = -1; esmEffectShow.esmParticipantId = -1;
esmEffectShow.numOfVolley = 1; //Hardcode?? esmEffectShow.numOfVolley = 1; //Hardcode??
esmEffectShow.shotsPerVolley = 18; esmEffectShow.shotsPerVolley = 18;
@@ -43,10 +43,10 @@ Database::EsmEffectShow EffectShowMineArea::getEffectShow()
updateEffectShow(esmEffectShow); updateEffectShow(esmEffectShow);
for (const auto &seg : m_mineArea.segments()) for (const auto &seg : m_mineArea.segments)
{ {
const Core::GeoPosition2D &posGeo = seg.positionStart(); const Core::GeoPosition2D &posGeo = seg.positionStart;
LtsCoordTrans::UtmCoordinate pos = LtsCoordTrans::UtmCoordinate::fromGeographic(posGeo.lon(), posGeo.lat(), m_utmZone); LtsCoordTrans::UtmCoordinate pos = LtsCoordTrans::UtmCoordinate::fromGeographic(posGeo.lon, posGeo.lat, m_utmZone);
DEBUG_LOG(m_logger) << "Start Pos Segm.: " << pos.mgrs(); DEBUG_LOG(m_logger) << "Start Pos Segm.: " << pos.mgrs();
} }
DEBUG_LOG(m_logger) << "Center Pos Effect Show: " << LtsCoordTrans::mgrsFromGeographic(esmEffectShow.centerPosition.x(), esmEffectShow.centerPosition.y()); DEBUG_LOG(m_logger) << "Center Pos Effect Show: " << LtsCoordTrans::mgrsFromGeographic(esmEffectShow.centerPosition.x(), esmEffectShow.centerPosition.y());
@@ -55,27 +55,27 @@ Database::EsmEffectShow EffectShowMineArea::getEffectShow()
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
void EffectShowMineArea::updateEffectShow(Database::EsmEffectShow &data) void EffectShowMineArea::updateEffectShow(Database::EsmEffectShow &data)
{ {
data.nameAreaEfffectSimulation = QString::fromStdString(m_mineArea.name()); data.nameAreaEfffectSimulation = QString::fromStdString(m_mineArea.name);
data.duration = m_mineArea.effectDuration() / 10; data.duration = m_mineArea.effectDuration / 10;
if (data.duration > (3600 * 1000)) if (data.duration > (3600 * 1000))
data.duration = 3600 * 1000; data.duration = 3600 * 1000;
if (m_mineArea.effectStart().is_set()) if (m_mineArea.effectStart.is_set())
data.startTime = m_mineArea.effectStart().get() + m_mineArea.effectDuration() - data.duration; data.startTime = m_mineArea.effectStart.get() + m_mineArea.effectDuration - data.duration;
else else
data.startTime = 0; data.startTime = 0;
data.typeOfAmmunition = m_mineArea.chargeStruct().chargeTypeId(); data.typeOfAmmunition = m_mineArea.chargeStruct.chargeTypeId;
} }
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
void EffectShowMineArea::calculatePositions() void EffectShowMineArea::calculatePositions()
{ {
// start position of the segment // start position of the segment
Core::GeoPosition2D geoPosStart = m_segment.positionStart(); Core::GeoPosition2D geoPosStart = m_segment.positionStart;
Core::GeoPosition2D geoPosEnd = m_segment.positionEnd(); Core::GeoPosition2D geoPosEnd = m_segment.positionEnd;
LtsCoordTrans::UtmCoordinate startPositionUtm = LtsCoordTrans::UtmCoordinate::fromGeographic(geoPosStart.lon(), geoPosStart.lat(), m_utmZone); LtsCoordTrans::UtmCoordinate startPositionUtm = LtsCoordTrans::UtmCoordinate::fromGeographic(geoPosStart.lon, geoPosStart.lat, m_utmZone);
if (m_utmZone == -1) if (m_utmZone == -1)
m_utmZone = startPositionUtm.zone; m_utmZone = startPositionUtm.zone;
LtsCoordTrans::UtmCoordinate endPositionUtm = LtsCoordTrans::UtmCoordinate::fromGeographic(geoPosEnd.lon(), geoPosEnd.lat(), m_utmZone); LtsCoordTrans::UtmCoordinate endPositionUtm = LtsCoordTrans::UtmCoordinate::fromGeographic(geoPosEnd.lon, geoPosEnd.lat, m_utmZone);
const QLineF line({startPositionUtm.x, startPositionUtm.y}, {endPositionUtm.x, endPositionUtm.y}); const QLineF line({startPositionUtm.x, startPositionUtm.y}, {endPositionUtm.x, endPositionUtm.y});
// length/2 of the segment // length/2 of the segment
@@ -99,11 +99,11 @@ void EffectShowMineArea::calculatePositions()
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
int EffectShowMineArea::getEffectAreaWidth() const int EffectShowMineArea::getEffectAreaWidth() const
{ {
Core::GeoPosition2D geoPosStart = m_segment.positionStart(); Core::GeoPosition2D geoPosStart = m_segment.positionStart;
Core::GeoPosition2D geoPosEnd = m_segment.positionEnd(); Core::GeoPosition2D geoPosEnd = m_segment.positionEnd;
LtsCoordTrans::UtmCoordinate startPositionUtm = LtsCoordTrans::UtmCoordinate::fromGeographic(geoPosStart.lon(), geoPosStart.lat(), m_utmZone); LtsCoordTrans::UtmCoordinate startPositionUtm = LtsCoordTrans::UtmCoordinate::fromGeographic(geoPosStart.lon, geoPosStart.lat, m_utmZone);
LtsCoordTrans::UtmCoordinate endPositionUtm = LtsCoordTrans::UtmCoordinate::fromGeographic(geoPosEnd.lon(), geoPosEnd.lat(), m_utmZone); LtsCoordTrans::UtmCoordinate endPositionUtm = LtsCoordTrans::UtmCoordinate::fromGeographic(geoPosEnd.lon, geoPosEnd.lat, m_utmZone);
const QLineF line({startPositionUtm.x, startPositionUtm.y}, {endPositionUtm.x, endPositionUtm.y}); const QLineF line({startPositionUtm.x, startPositionUtm.y}, {endPositionUtm.x, endPositionUtm.y});
int segmentLength = line.length(); int segmentLength = line.length();
@@ -114,7 +114,7 @@ int EffectShowMineArea::getEffectAreaWidth() const
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
int EffectShowMineArea::getEffectAreaDepth() const int EffectShowMineArea::getEffectAreaDepth() const
{ {
int segmentWidth = qRound(m_mineArea.width()); int segmentWidth = qRound(m_mineArea.width);
if (segmentWidth <= 50) return 50; if (segmentWidth <= 50) return 50;
if (segmentWidth >= 300) return 300; if (segmentWidth >= 300) return 300;
return (((segmentWidth + 25) / 50) * 50); return (((segmentWidth + 25) / 50) * 50);
@@ -56,7 +56,7 @@ public:
*/ */
static const AreaEffectSimulation::MineSegment &getEffectShowSegment(const AreaEffectSimulation::MineArea &mineArea) static const AreaEffectSimulation::MineSegment &getEffectShowSegment(const AreaEffectSimulation::MineArea &mineArea)
{ {
return mineArea.segments().at(mineArea.segments().size() / 2); return mineArea.segments.at(mineArea.segments.size() / 2);
} }
private: private:
@@ -18,8 +18,8 @@ namespace ConvertFromTab
//============================================================================= //=============================================================================
RxTelegram_e isTelegram(const TrainingAreaBase::FireSmokeMarkerData &data) RxTelegram_e isTelegram(const TrainingAreaBase::FireSmokeMarkerData &data)
{ {
Q_ASSERT(data.payload().size() > 0); Q_ASSERT(data.payload.size() > 0);
switch (data.payload().at(0)) switch (data.payload.at(0))
{ {
case 120: return RxTelegram_e::OrderConfirmation; case 120: return RxTelegram_e::OrderConfirmation;
case 121: return RxTelegram_e::VehicleStatus; case 121: return RxTelegram_e::VehicleStatus;
@@ -29,10 +29,10 @@ RxTelegram_e isTelegram(const TrainingAreaBase::FireSmokeMarkerData &data)
//============================================================================= //=============================================================================
OrderConfirmation_t getOrderConfirmation(const TrainingAreaBase::FireSmokeMarkerData &data) OrderConfirmation_t getOrderConfirmation(const TrainingAreaBase::FireSmokeMarkerData &data)
{ {
Q_ASSERT(data.payload().size() >= 5); Q_ASSERT(data.payload.size() >= 5);
const QByteArray tele(QByteArray::fromRawData( const QByteArray tele(QByteArray::fromRawData(
reinterpret_cast<const char *>(&data.payload().at(0)), reinterpret_cast<const char *>(&data.payload.at(0)),
data.payload().size())); data.payload.size()));
OrderConfirmation_t res; OrderConfirmation_t res;
size_t k = 1; size_t k = 1;
@@ -45,9 +45,9 @@ OrderConfirmation_t getOrderConfirmation(const TrainingAreaBase::FireSmokeMarker
res.confirmation = EffectShowManagement::OrderConfirmation_e::inner_enum(byte); res.confirmation = EffectShowManagement::OrderConfirmation_e::inner_enum(byte);
QByteArray qbArr; QByteArray qbArr;
int ie = data.payload().size() - 5; int ie = data.payload.size() - 5;
for (int i = 0; i < ie; ++i) for (int i = 0; i < ie; ++i)
qbArr.append(data.payload().at(5 + i)); // rationale (text) qbArr.append(data.payload.at(5 + i)); // rationale (text)
res.answerText = QString::fromUtf8(qbArr); res.answerText = QString::fromUtf8(qbArr);
@@ -56,14 +56,14 @@ OrderConfirmation_t getOrderConfirmation(const TrainingAreaBase::FireSmokeMarker
//============================================================================= //=============================================================================
VehicleStatus_t getVehicleStatus(const TrainingAreaBase::FireSmokeMarkerData &data) VehicleStatus_t getVehicleStatus(const TrainingAreaBase::FireSmokeMarkerData &data)
{ {
Q_ASSERT(data.payload().size() == 5); Q_ASSERT(data.payload.size() == 5);
const QByteArray tele(QByteArray::fromRawData( const QByteArray tele(QByteArray::fromRawData(
reinterpret_cast<const char *>(&data.payload().at(0)), reinterpret_cast<const char *>(&data.payload.at(0)),
data.payload().size())); data.payload.size()));
VehicleStatus_t res; VehicleStatus_t res;
res.equipmentNumber = data.equipmentNumber(); res.equipmentNumber = data.equipmentNumber;
res.timestamp = data.sampleTime(); res.timestamp = data.sampleTime;
size_t k = 1; size_t k = 1;
quint8 byte; quint8 byte;
@@ -27,8 +27,8 @@ std::vector<uint8_t> convertEffectShowOrder(const EffectShowOrder_t &effectShowO
LtsUtils::set2Byte(effectShowOrder.idEffectShow, ba); LtsUtils::set2Byte(effectShowOrder.idEffectShow, ba);
LtsUtils::set4Byte(effectShowOrder.startTime, ba); LtsUtils::set4Byte(effectShowOrder.startTime, ba);
LtsUtils::set8Byte(effectShowOrder.centerPosition.lon(), ba); LtsUtils::set8Byte(effectShowOrder.centerPosition.lon, ba);
LtsUtils::set8Byte(effectShowOrder.centerPosition.lat(), ba); LtsUtils::set8Byte(effectShowOrder.centerPosition.lat, ba);
// 50m squares // 50m squares
LtsUtils::set1Byte(effectShowOrder.areaWidth / 50, ba); LtsUtils::set1Byte(effectShowOrder.areaWidth / 50, ba);
@@ -39,8 +39,8 @@ std::vector<uint8_t> convertEffectShowOrder(const EffectShowOrder_t &effectShowO
rotation += 360.0; rotation += 360.0;
LtsUtils::set2Byte(qRound(rotation * 100), ba); LtsUtils::set2Byte(qRound(rotation * 100), ba);
LtsUtils::set8Byte(effectShowOrder.lowerLeftPosition.lon(), ba); LtsUtils::set8Byte(effectShowOrder.lowerLeftPosition.lon, ba);
LtsUtils::set8Byte(effectShowOrder.lowerLeftPosition.lat(), ba); LtsUtils::set8Byte(effectShowOrder.lowerLeftPosition.lat, ba);
LtsUtils::set1Byte(effectShowOrder.numOfVolley, ba); LtsUtils::set1Byte(effectShowOrder.numOfVolley, ba);
LtsUtils::set1Byte(effectShowOrder.shotsPerVolley, ba); LtsUtils::set1Byte(effectShowOrder.shotsPerVolley, ba);
@@ -65,8 +65,8 @@ std::vector<uint8_t> convertRelocationOrder(const RelocationOrder_t &relocationO
LtsUtils::set2Byte(relocationOrder.idRelocation, ba); LtsUtils::set2Byte(relocationOrder.idRelocation, ba);
LtsUtils::set4Byte(relocationOrder.executionTime, ba); LtsUtils::set4Byte(relocationOrder.executionTime, ba);
LtsUtils::set8Byte(relocationOrder.centerPosition.lon(), ba); LtsUtils::set8Byte(relocationOrder.centerPosition.lon, ba);
LtsUtils::set8Byte(relocationOrder.centerPosition.lat(), ba); LtsUtils::set8Byte(relocationOrder.centerPosition.lat, ba);
const QByteArray text = relocationOrder.infoText.toUtf8().simplified(); const QByteArray text = relocationOrder.infoText.toUtf8().simplified();
for (auto c : text) for (auto c : text)
@@ -124,16 +124,16 @@ std::vector<uint8_t> convertMeteoData(const MeteoDataManagement::MeteoData &mete
ba.reserve(11); ba.reserve(11);
LtsUtils::set1Byte(156, ba); LtsUtils::set1Byte(156, ba);
LtsUtils::set2Byte(qRound(meteoData.temperature() * 10.0), ba); LtsUtils::set2Byte(qRound(meteoData.temperature * 10.0), ba);
LtsUtils::set2Byte(qRound(meteoData.humidity()), ba); LtsUtils::set2Byte(qRound(meteoData.humidity), ba);
LtsUtils::set2Byte(qRound(meteoData.pressure()), ba); LtsUtils::set2Byte(qRound(meteoData.pressure), ba);
double dir = fmod(meteoData.windDirection(), 360.0); double dir = fmod(meteoData.windDirection, 360.0);
if (dir < 0.0) if (dir < 0.0)
dir += 360.0; dir += 360.0;
LtsUtils::set2Byte(qRound(dir * 100), ba); LtsUtils::set2Byte(qRound(dir * 100), ba);
LtsUtils::set2Byte(qRound(meteoData.windSpeed()), ba); LtsUtils::set2Byte(qRound(meteoData.windSpeed), ba);
return LtsUtils::convert<std::vector<uint8_t>>(ba); return LtsUtils::convert<std::vector<uint8_t>>(ba);
} }
@@ -117,45 +117,45 @@ bool HandlerAesData::init()
//============================================================================= //=============================================================================
void HandlerAesData::onExplosionSingleChanged(const AreaEffectSimulation::ExplosionSingle &data, DataModification modType) void HandlerAesData::onExplosionSingleChanged(const AreaEffectSimulation::ExplosionSingle &data, DataModification modType)
{ {
const Core::GeoPosition2D &posLl = data.impactPosition(); const Core::GeoPosition2D &posLl = data.impactPosition;
AreaEffectSimulation::ExplosionArea areaData; AreaEffectSimulation::ExplosionArea areaData;
areaData.altitude(data.altitude()); areaData.altitude = data.altitude;
areaData.cannonCount(1); areaData.cannonCount = 1;
areaData.cannonRounds(1); areaData.cannonRounds = 1;
areaData.chargeStruct().chargeTypeId(data.chargeStruct().chargeTypeId()); areaData.chargeStruct.chargeTypeId = data.chargeStruct.chargeTypeId;
areaData.effectDuration(data.effectDuration()); areaData.effectDuration = data.effectDuration;
areaData.effectMarkingInTa(data.effectMarkingInTa()); areaData.effectMarkingInTa = data.effectMarkingInTa;
areaData.effectStart(data.effectStart()); areaData.effectStart = data.effectStart;
areaData.effectStateId(data.effectStateId()); areaData.effectStateId = data.effectStateId;
areaData.externalId(data.externalId()); areaData.externalId = data.externalId;
areaData.fireRequestTime(data.fireRequestTime()); areaData.fireRequestTime = data.fireRequestTime;
areaData.remainExplosionNumber(1); areaData.remainExplosionNumber = 1;
areaData.id(data.id()); areaData.id = data.id;
areaData.name(data.name()); areaData.name = data.name;
areaData.isDeleted(data.isDeleted()); areaData.isDeleted = data.isDeleted;
areaData.isUsed(data.isUsed()); areaData.isUsed = data.isUsed;
AreaEffectSimulation::Area area; AreaEffectSimulation::Area area;
area.cornerBottomLeft(posLl); area.cornerBottomLeft = posLl;
area.height(50); area.height = 50;
area.width(50); area.width = 50;
areaData.area(area); areaData.area = area;
HandlerEffectShow::KindOfModification_e kindOfModification = HandlerEffectShow::KindOfModification_e::Removed; HandlerEffectShow::KindOfModification_e kindOfModification = HandlerEffectShow::KindOfModification_e::Removed;
if (takeIntoAccountEffectShow(data.effectStateId()) && data.effectMarkingInTa()) if (takeIntoAccountEffectShow(data.effectStateId) && data.effectMarkingInTa)
kindOfModification = getKindOfModification(ObjectAesData::asEsmAesData(areaData), modType); kindOfModification = getKindOfModification(ObjectAesData::asEsmAesData(areaData), modType);
ObjectAesData *ifs = m_AesDataObjMap.value(data.id()); ObjectAesData *ifs = m_AesDataObjMap.value(data.id);
if (kindOfModification == HandlerEffectShow::KindOfModification_e::Added && ifs) if (kindOfModification == HandlerEffectShow::KindOfModification_e::Added && ifs)
kindOfModification = HandlerEffectShow::KindOfModification_e::ModifiedData; kindOfModification = HandlerEffectShow::KindOfModification_e::ModifiedData;
DEBUG_LOG(m_logger) << "Got ExplosionArea: " DEBUG_LOG(m_logger) << "Got ExplosionArea: "
<< "\n ID: " << data.id() << "\n ID: " << data.id
<< "\n Name: " << data.name() << "\n Name: " << data.name
<< "\n Effect status: " << data.effectStateId() << "\n Effect status: " << data.effectStateId
<< "\n Effect show (y/n): " << data.effectMarkingInTa() << "\n Effect show (y/n): " << data.effectMarkingInTa
<< "\n Lower left Pos: " << LtsCoordTrans::mgrsFromGeographic(posLl.lon(), posLl.lat()) << "\n Lower left Pos: " << LtsCoordTrans::mgrsFromGeographic(posLl.lon, posLl.lat)
<< "\n Start: " << data.effectStart() << "\n Start: " << data.effectStart
<< "\n Duration: " << data.effectDuration() << "\n Duration: " << data.effectDuration
<< "\n Modification: " << modType << "\n Modification: " << modType
<< "\n detected Mod: " << HandlerEffectShow::enumToString(kindOfModification); << "\n detected Mod: " << HandlerEffectShow::enumToString(kindOfModification);
@@ -172,7 +172,7 @@ void HandlerAesData::onExplosionSingleChanged(const AreaEffectSimulation::Explos
} }
else else
{ {
m_AesDataObjMap.insert(data.id(), ifs); m_AesDataObjMap.insert(data.id, ifs);
m_mainHandler->handlerEffectShow()->onExplosionAreaChanged(areaData, kindOfModification); m_mainHandler->handlerEffectShow()->onExplosionAreaChanged(areaData, kindOfModification);
} }
break; break;
@@ -191,15 +191,15 @@ void HandlerAesData::onExplosionSingleChanged(const AreaEffectSimulation::Explos
ERROR_LOG(m_logger) << ret(); ERROR_LOG(m_logger) << ret();
} }
else else
WARNING_LOG(m_logger) << "Explosion Area not available for modification: " << data.id(); WARNING_LOG(m_logger) << "Explosion Area not available for modification: " << data.id;
break; break;
} }
case HandlerEffectShow::KindOfModification_e::Removed: case HandlerEffectShow::KindOfModification_e::Removed:
{ {
if (ifs != nullptr) if (ifs != nullptr)
{ {
if (!m_AesDataObjMap.remove(data.id())) if (!m_AesDataObjMap.remove(data.id))
ERROR_LOG(m_logger) << "Remove of AES data (" << data.id() << ") from map failed."; ERROR_LOG(m_logger) << "Remove of AES data (" << data.id << ") from map failed.";
Core::FunctionReplyObject ret = ifs->removeObject(); Core::FunctionReplyObject ret = ifs->removeObject();
if (ret.error()) if (ret.error())
@@ -221,25 +221,25 @@ void HandlerAesData::onExplosionSingleChanged(const AreaEffectSimulation::Explos
void HandlerAesData::onExplosionAreaChanged(const AreaEffectSimulation::ExplosionArea &data, DataModification modType) void HandlerAesData::onExplosionAreaChanged(const AreaEffectSimulation::ExplosionArea &data, DataModification modType)
{ {
HandlerEffectShow::KindOfModification_e kindOfModification = HandlerEffectShow::KindOfModification_e::Removed; HandlerEffectShow::KindOfModification_e kindOfModification = HandlerEffectShow::KindOfModification_e::Removed;
if (takeIntoAccountEffectShow(data.effectStateId()) && data.effectMarkingInTa()) if (takeIntoAccountEffectShow(data.effectStateId) && data.effectMarkingInTa)
kindOfModification = getKindOfModification(ObjectAesData::asEsmAesData(data), modType); kindOfModification = getKindOfModification(ObjectAesData::asEsmAesData(data), modType);
ObjectAesData *ifs = m_AesDataObjMap.value(data.id()); ObjectAesData *ifs = m_AesDataObjMap.value(data.id);
if (kindOfModification == HandlerEffectShow::KindOfModification_e::Added && ifs) if (kindOfModification == HandlerEffectShow::KindOfModification_e::Added && ifs)
kindOfModification = HandlerEffectShow::KindOfModification_e::ModifiedData; kindOfModification = HandlerEffectShow::KindOfModification_e::ModifiedData;
const Core::GeoPosition2D &posLl = data.area().cornerBottomLeft(); const Core::GeoPosition2D &posLl = data.area.cornerBottomLeft;
DEBUG_LOG(m_logger) << "Got ExplosionArea: " DEBUG_LOG(m_logger) << "Got ExplosionArea: "
<< "\n ID: " << data.id() << "\n ID: " << data.id
<< "\n Name: " << data.name() << "\n Name: " << data.name
<< "\n Effect status: " << data.effectStateId() << "\n Effect status: " << data.effectStateId
<< "\n Effect show (y/n): " << data.effectMarkingInTa() << "\n Effect show (y/n): " << data.effectMarkingInTa
<< "\n Lower left Pos: " << LtsCoordTrans::mgrsFromGeographic(posLl.lon(), posLl.lat()) << "\n Lower left Pos: " << LtsCoordTrans::mgrsFromGeographic(posLl.lon, posLl.lat)
<< "\n Width: " << data.area().width() << "\n Width: " << data.area.width
<< "\n Height: " << data.area().height() << "\n Height: " << data.area.height
<< "\n Rotation: " << data.area().rotation() << "\n Rotation: " << data.area.rotation
<< "\n Start: " << data.effectStart() << "\n Start: " << data.effectStart
<< "\n Duration: " << data.effectDuration() << "\n Duration: " << data.effectDuration
<< "\n Modification: " << modType << "\n Modification: " << modType
<< "\n detected Mod: " << HandlerEffectShow::enumToString(kindOfModification); << "\n detected Mod: " << HandlerEffectShow::enumToString(kindOfModification);
@@ -275,15 +275,15 @@ void HandlerAesData::onExplosionAreaChanged(const AreaEffectSimulation::Explosio
ERROR_LOG(m_logger) << ret(); ERROR_LOG(m_logger) << ret();
} }
else else
WARNING_LOG(m_logger) << "Explosion Area not available for modification: " << data.id(); WARNING_LOG(m_logger) << "Explosion Area not available for modification: " << data.id;
break; break;
} }
case HandlerEffectShow::KindOfModification_e::Removed: case HandlerEffectShow::KindOfModification_e::Removed:
{ {
if (ifs != nullptr) if (ifs != nullptr)
{ {
if (!m_AesDataObjMap.remove(data.id())) if (!m_AesDataObjMap.remove(data.id))
ERROR_LOG(m_logger) << "Remove of AES data (" << data.id() << ") from map failed."; ERROR_LOG(m_logger) << "Remove of AES data (" << data.id << ") from map failed.";
Core::FunctionReplyObject ret = ifs->removeObject(); Core::FunctionReplyObject ret = ifs->removeObject();
if (ret.error()) if (ret.error())
@@ -303,25 +303,25 @@ void HandlerAesData::onExplosionAreaChanged(const AreaEffectSimulation::Explosio
void HandlerAesData::onExplosionClusterChanged(const AreaEffectSimulation::ExplosionCluster &data, DataModification modType) void HandlerAesData::onExplosionClusterChanged(const AreaEffectSimulation::ExplosionCluster &data, DataModification modType)
{ {
HandlerEffectShow::KindOfModification_e kindOfModification = HandlerEffectShow::KindOfModification_e::Removed; HandlerEffectShow::KindOfModification_e kindOfModification = HandlerEffectShow::KindOfModification_e::Removed;
if (takeIntoAccountEffectShow(data.effectStateId()) && data.effectMarkingInTa()) if (takeIntoAccountEffectShow(data.effectStateId) && data.effectMarkingInTa)
kindOfModification = getKindOfModification(ObjectAesData::asEsmAesData(data), modType); kindOfModification = getKindOfModification(ObjectAesData::asEsmAesData(data), modType);
ObjectAesData *ifs = m_AesDataObjMap.value(data.id()); ObjectAesData *ifs = m_AesDataObjMap.value(data.id);
if (kindOfModification == HandlerEffectShow::KindOfModification_e::Added && ifs) if (kindOfModification == HandlerEffectShow::KindOfModification_e::Added && ifs)
kindOfModification = HandlerEffectShow::KindOfModification_e::ModifiedData; kindOfModification = HandlerEffectShow::KindOfModification_e::ModifiedData;
const Core::GeoPosition2D &posLl = data.area().cornerBottomLeft(); const Core::GeoPosition2D &posLl = data.area.cornerBottomLeft;
DEBUG_LOG(m_logger) << ">>>> Got Cluster: " DEBUG_LOG(m_logger) << ">>>> Got Cluster: "
<< "\n ID: " << data.id() << "\n ID: " << data.id
<< "\n Name: " << data.name() << "\n Name: " << data.name
<< "\n Effect status: " << data.effectStateId() << "\n Effect status: " << data.effectStateId
<< "\n Effect show (y/n): " << data.effectMarkingInTa() << "\n Effect show (y/n): " << data.effectMarkingInTa
<< "\n Lower left Pos: " << LtsCoordTrans::mgrsFromGeographic(posLl.lon(), posLl.lat()) << "\n Lower left Pos: " << LtsCoordTrans::mgrsFromGeographic(posLl.lon, posLl.lat)
<< "\n Width: " << data.area().width() << "\n Width: " << data.area.width
<< "\n Height: " << data.area().height() << "\n Height: " << data.area.height
<< "\n Rotation: " << data.area().rotation() << "\n Rotation: " << data.area.rotation
<< "\n Start: " << data.effectStart() << "\n Start: " << data.effectStart
<< "\n Duration: " << data.effectDuration() << "\n Duration: " << data.effectDuration
<< "\n Modification: " << modType << "\n Modification: " << modType
<< "\n detected Mod: " << HandlerEffectShow::enumToString(kindOfModification); << "\n detected Mod: " << HandlerEffectShow::enumToString(kindOfModification);
@@ -338,7 +338,7 @@ void HandlerAesData::onExplosionClusterChanged(const AreaEffectSimulation::Explo
} }
else else
{ {
m_AesDataObjMap.insert(data.id(), ifs); m_AesDataObjMap.insert(data.id, ifs);
m_mainHandler->handlerEffectShow()->onExplosionClusterChanged(data, kindOfModification); m_mainHandler->handlerEffectShow()->onExplosionClusterChanged(data, kindOfModification);
} }
break; break;
@@ -357,15 +357,15 @@ void HandlerAesData::onExplosionClusterChanged(const AreaEffectSimulation::Explo
ERROR_LOG(m_logger) << ret(); ERROR_LOG(m_logger) << ret();
} }
else else
WARNING_LOG(m_logger) << "Explosion Area not available for modification: " << data.id(); WARNING_LOG(m_logger) << "Explosion Area not available for modification: " << data.id;
break; break;
} }
case HandlerEffectShow::KindOfModification_e::Removed: case HandlerEffectShow::KindOfModification_e::Removed:
{ {
if (ifs != nullptr) if (ifs != nullptr)
{ {
if (!m_AesDataObjMap.remove(data.id())) if (!m_AesDataObjMap.remove(data.id))
ERROR_LOG(m_logger) << "Remove of AES data (" << data.id() << ") from map failed."; ERROR_LOG(m_logger) << "Remove of AES data (" << data.id << ") from map failed.";
Core::FunctionReplyObject ret = ifs->removeObject(); Core::FunctionReplyObject ret = ifs->removeObject();
if (ret.error()) if (ret.error())
@@ -384,25 +384,25 @@ void HandlerAesData::onExplosionClusterChanged(const AreaEffectSimulation::Explo
void HandlerAesData::onEffectClusterChanged(const AreaEffectSimulation::EffectCluster &data, DataModification modType) void HandlerAesData::onEffectClusterChanged(const AreaEffectSimulation::EffectCluster &data, DataModification modType)
{ {
HandlerEffectShow::KindOfModification_e kindOfModification = HandlerEffectShow::KindOfModification_e::Removed; HandlerEffectShow::KindOfModification_e kindOfModification = HandlerEffectShow::KindOfModification_e::Removed;
if (takeIntoAccountEffectShow(data.effectStateId()) && data.effectMarkingInTa()) if (takeIntoAccountEffectShow(data.effectStateId) && data.effectMarkingInTa)
kindOfModification = getKindOfModification(ObjectAesData::asEsmAesData(data), modType); kindOfModification = getKindOfModification(ObjectAesData::asEsmAesData(data), modType);
ObjectAesData *ifs = m_AesDataObjMap.value(data.id()); ObjectAesData *ifs = m_AesDataObjMap.value(data.id);
if (kindOfModification == HandlerEffectShow::KindOfModification_e::Added && ifs) if (kindOfModification == HandlerEffectShow::KindOfModification_e::Added && ifs)
kindOfModification = HandlerEffectShow::KindOfModification_e::ModifiedData; kindOfModification = HandlerEffectShow::KindOfModification_e::ModifiedData;
const Core::GeoPosition2D &posLl = data.area().cornerBottomLeft(); const Core::GeoPosition2D &posLl = data.area.cornerBottomLeft;
DEBUG_LOG(m_logger) << ">>>> Got EffectCluster: " DEBUG_LOG(m_logger) << ">>>> Got EffectCluster: "
<< "\n ID: " << data.id() << "\n ID: " << data.id
<< "\n Name: " << data.name() << "\n Name: " << data.name
<< "\n Effect status: " << data.effectStateId() << "\n Effect status: " << data.effectStateId
<< "\n Effect show (y/n): " << data.effectMarkingInTa() << "\n Effect show (y/n): " << data.effectMarkingInTa
<< "\n Lower left Pos: " << LtsCoordTrans::mgrsFromGeographic(posLl.lon(), posLl.lat()) << "\n Lower left Pos: " << LtsCoordTrans::mgrsFromGeographic(posLl.lon, posLl.lat)
<< "\n Width: " << data.area().width() << "\n Width: " << data.area.width
<< "\n Height: " << data.area().height() << "\n Height: " << data.area.height
<< "\n Rotation: " << data.area().rotation() << "\n Rotation: " << data.area.rotation
<< "\n Start: " << data.effectStart() << "\n Start: " << data.effectStart
<< "\n Duration: " << data.effectDuration() << "\n Duration: " << data.effectDuration
<< "\n Modification: " << modType << "\n Modification: " << modType
<< "\n detected Mod: " << HandlerEffectShow::enumToString(kindOfModification); << "\n detected Mod: " << HandlerEffectShow::enumToString(kindOfModification);
@@ -419,7 +419,7 @@ void HandlerAesData::onEffectClusterChanged(const AreaEffectSimulation::EffectCl
} }
else else
{ {
m_AesDataObjMap.insert(data.id(), ifs); m_AesDataObjMap.insert(data.id, ifs);
m_mainHandler->handlerEffectShow()->onEffectClusterChanged(data, kindOfModification); m_mainHandler->handlerEffectShow()->onEffectClusterChanged(data, kindOfModification);
} }
break; break;
@@ -438,15 +438,15 @@ void HandlerAesData::onEffectClusterChanged(const AreaEffectSimulation::EffectCl
ERROR_LOG(m_logger) << ret(); ERROR_LOG(m_logger) << ret();
} }
else else
WARNING_LOG(m_logger) << "Explosion Area not available for modification: " << data.id(); WARNING_LOG(m_logger) << "Explosion Area not available for modification: " << data.id;
break; break;
} }
case HandlerEffectShow::KindOfModification_e::Removed: case HandlerEffectShow::KindOfModification_e::Removed:
{ {
if (ifs != nullptr) if (ifs != nullptr)
{ {
if (!m_AesDataObjMap.remove(data.id())) if (!m_AesDataObjMap.remove(data.id))
ERROR_LOG(m_logger) << "Remove of AES data (" << data.id() << ") from map failed."; ERROR_LOG(m_logger) << "Remove of AES data (" << data.id << ") from map failed.";
Core::FunctionReplyObject ret = ifs->removeObject(); Core::FunctionReplyObject ret = ifs->removeObject();
if (ret.error()) if (ret.error())
@@ -466,26 +466,26 @@ void HandlerAesData::onEffectClusterChanged(const AreaEffectSimulation::EffectCl
void HandlerAesData::onMineAreaChanged(const AreaEffectSimulation::MineArea &data, DataModification modType) void HandlerAesData::onMineAreaChanged(const AreaEffectSimulation::MineArea &data, DataModification modType)
{ {
HandlerEffectShow::KindOfModification_e kindOfModification = HandlerEffectShow::KindOfModification_e::Removed; HandlerEffectShow::KindOfModification_e kindOfModification = HandlerEffectShow::KindOfModification_e::Removed;
if (takeIntoAccountEffectShow(data.effectStateId()) && data.effectMarkingInTa()) if (takeIntoAccountEffectShow(data.effectStateId) && data.effectMarkingInTa)
kindOfModification = getKindOfModification(ObjectAesData::asEsmAesData(data), modType); kindOfModification = getKindOfModification(ObjectAesData::asEsmAesData(data), modType);
ObjectAesData *ifs = m_AesDataObjMap.value(data.id()); ObjectAesData *ifs = m_AesDataObjMap.value(data.id);
if (kindOfModification == HandlerEffectShow::KindOfModification_e::Added && ifs) if (kindOfModification == HandlerEffectShow::KindOfModification_e::Added && ifs)
kindOfModification = HandlerEffectShow::KindOfModification_e::ModifiedData; kindOfModification = HandlerEffectShow::KindOfModification_e::ModifiedData;
if (data.segments().size() == 0) if (data.segments.size() == 0)
return; return;
const Core::GeoPosition2D &posLl = data.segments().at(data.segments().size() / 2).positionStart(); const Core::GeoPosition2D &posLl = data.segments.at(data.segments.size() / 2).positionStart;
DEBUG_LOG(m_logger) << "Got MineArea: " DEBUG_LOG(m_logger) << "Got MineArea: "
<< "\n ID: " << data.id() << "\n ID: " << data.id
<< "\n Name: " << data.name() << "\n Name: " << data.name
<< "\n Effect status: " << data.effectStateId() << "\n Effect status: " << data.effectStateId
<< "\n Effect show (y/n): " << data.effectMarkingInTa() << "\n Effect show (y/n): " << data.effectMarkingInTa
<< "\n Start Position " << LtsCoordTrans::mgrsFromGeographic(posLl.lon(), posLl.lat()) << "\n Start Position " << LtsCoordTrans::mgrsFromGeographic(posLl.lon, posLl.lat)
<< "\n Start: " << data.effectStart() << "\n Start: " << data.effectStart
<< "\n Duration: " << data.effectDuration() << "\n Duration: " << data.effectDuration
<< "\n Num of segments: " << data.segments().size() << "\n Num of segments: " << data.segments.size()
<< "\n Modification: " << modType << "\n Modification: " << modType
<< "\n detected Mod: " << HandlerEffectShow::enumToString(kindOfModification); << "\n detected Mod: " << HandlerEffectShow::enumToString(kindOfModification);
@@ -502,7 +502,7 @@ void HandlerAesData::onMineAreaChanged(const AreaEffectSimulation::MineArea &dat
} }
else else
{ {
m_AesDataObjMap.insert(data.id(), ifs); m_AesDataObjMap.insert(data.id, ifs);
m_mainHandler->handlerEffectShow()->onMineAreaChanged(data, kindOfModification); m_mainHandler->handlerEffectShow()->onMineAreaChanged(data, kindOfModification);
} }
break; break;
@@ -521,15 +521,15 @@ void HandlerAesData::onMineAreaChanged(const AreaEffectSimulation::MineArea &dat
ERROR_LOG(m_logger) << ret(); ERROR_LOG(m_logger) << ret();
} }
else else
WARNING_LOG(m_logger) << "Mine Area not available for modification: " << data.id(); WARNING_LOG(m_logger) << "Mine Area not available for modification: " << data.id;
break; break;
} }
case HandlerEffectShow::KindOfModification_e::Removed: case HandlerEffectShow::KindOfModification_e::Removed:
{ {
if (ifs != nullptr) if (ifs != nullptr)
{ {
if (!m_AesDataObjMap.remove(data.id())) if (!m_AesDataObjMap.remove(data.id))
ERROR_LOG(m_logger) << "Remove of AES data (" << data.id() << ") from map failed."; ERROR_LOG(m_logger) << "Remove of AES data (" << data.id << ") from map failed.";
Core::FunctionReplyObject ret = ifs->removeObject(); Core::FunctionReplyObject ret = ifs->removeObject();
if (ret.error()) if (ret.error())
@@ -90,20 +90,20 @@ void HandlerEffectShow::onExplosionAreaChanged(const AreaEffectSimulation::Explo
break; break;
case KindOfModification_e::ModifiedData: case KindOfModification_e::ModifiedData:
updateEffectShowsRelatedToExplosionArea(data); updateEffectShowsRelatedToExplosionArea(data);
updateEffectShowOrdersRelatedToAes(data.id()); updateEffectShowOrdersRelatedToAes(data.id);
break; break;
case KindOfModification_e::Removed: case KindOfModification_e::Removed:
if(data.effectStateId() == AreaEffectSimulation::AesEffectState::EsRemoved) if(data.effectStateId == AreaEffectSimulation::AesEffectState::EsRemoved)
removeEffectShowsRelatedToAes(data.id()); removeEffectShowsRelatedToAes(data.id);
break; break;
case KindOfModification_e::Paused: case KindOfModification_e::Paused:
updateEffectShowsRelatedToExplosionArea(data); updateEffectShowsRelatedToExplosionArea(data);
updateEffectShowOrdersRelatedToAes(data.id()); updateEffectShowOrdersRelatedToAes(data.id);
//pauseEffectShowsRelatedToAes(data.id()); //pauseEffectShowsRelatedToAes(data.id());
break; break;
case KindOfModification_e::Continued: case KindOfModification_e::Continued:
updateEffectShowsRelatedToExplosionArea(data); updateEffectShowsRelatedToExplosionArea(data);
updateEffectShowOrdersRelatedToAes(data.id()); updateEffectShowOrdersRelatedToAes(data.id);
//continueEffectShowsRelatedToAes(data.id()); //continueEffectShowsRelatedToAes(data.id());
break; break;
case KindOfModification_e::None: case KindOfModification_e::None:
@@ -124,20 +124,20 @@ void HandlerEffectShow::onExplosionClusterChanged(const AreaEffectSimulation::Ex
break; break;
case KindOfModification_e::ModifiedData: case KindOfModification_e::ModifiedData:
updateEffectShowsRelatedToExplosionCluster(data); updateEffectShowsRelatedToExplosionCluster(data);
updateEffectShowOrdersRelatedToAes(data.id()); updateEffectShowOrdersRelatedToAes(data.id);
break; break;
case KindOfModification_e::Removed: case KindOfModification_e::Removed:
if(data.effectStateId() == AreaEffectSimulation::AesEffectState::EsRemoved) if(data.effectStateId == AreaEffectSimulation::AesEffectState::EsRemoved)
removeEffectShowsRelatedToAes(data.id()); removeEffectShowsRelatedToAes(data.id);
break; break;
case KindOfModification_e::Paused: case KindOfModification_e::Paused:
updateEffectShowsRelatedToExplosionCluster(data); updateEffectShowsRelatedToExplosionCluster(data);
updateEffectShowOrdersRelatedToAes(data.id()); updateEffectShowOrdersRelatedToAes(data.id);
//pauseEffectShowsRelatedToAes(data.id()); //pauseEffectShowsRelatedToAes(data.id());
break; break;
case KindOfModification_e::Continued: case KindOfModification_e::Continued:
updateEffectShowsRelatedToExplosionCluster(data); updateEffectShowsRelatedToExplosionCluster(data);
updateEffectShowOrdersRelatedToAes(data.id()); updateEffectShowOrdersRelatedToAes(data.id);
//continueEffectShowsRelatedToAes(data.id()); //continueEffectShowsRelatedToAes(data.id());
break; break;
case KindOfModification_e::None: case KindOfModification_e::None:
@@ -159,20 +159,20 @@ void HandlerEffectShow::onEffectClusterChanged(const AreaEffectSimulation::Effec
break; break;
case KindOfModification_e::ModifiedData: case KindOfModification_e::ModifiedData:
updateEffectShowsRelatedToEffectCluster(data); updateEffectShowsRelatedToEffectCluster(data);
updateEffectShowOrdersRelatedToAes(data.id()); updateEffectShowOrdersRelatedToAes(data.id);
break; break;
case KindOfModification_e::Removed: case KindOfModification_e::Removed:
if(data.effectStateId() == AreaEffectSimulation::AesEffectState::EsRemoved) if(data.effectStateId == AreaEffectSimulation::AesEffectState::EsRemoved)
removeEffectShowsRelatedToAes(data.id()); removeEffectShowsRelatedToAes(data.id);
break; break;
case KindOfModification_e::Paused: case KindOfModification_e::Paused:
updateEffectShowsRelatedToEffectCluster(data); updateEffectShowsRelatedToEffectCluster(data);
updateEffectShowOrdersRelatedToAes(data.id()); updateEffectShowOrdersRelatedToAes(data.id);
//pauseEffectShowsRelatedToAes(data.id()); //pauseEffectShowsRelatedToAes(data.id());
break; break;
case KindOfModification_e::Continued: case KindOfModification_e::Continued:
updateEffectShowsRelatedToEffectCluster(data); updateEffectShowsRelatedToEffectCluster(data);
updateEffectShowOrdersRelatedToAes(data.id()); updateEffectShowOrdersRelatedToAes(data.id);
//continueEffectShowsRelatedToAes(data.id()); //continueEffectShowsRelatedToAes(data.id());
break; break;
case KindOfModification_e::None: case KindOfModification_e::None:
@@ -195,20 +195,20 @@ void HandlerEffectShow::onMineAreaChanged(const AreaEffectSimulation::MineArea &
break; break;
case KindOfModification_e::ModifiedData: case KindOfModification_e::ModifiedData:
updateEffectShowsRelatedToMineArea(data); updateEffectShowsRelatedToMineArea(data);
updateEffectShowOrdersRelatedToAes(data.id()); updateEffectShowOrdersRelatedToAes(data.id);
break; break;
case KindOfModification_e::Removed: case KindOfModification_e::Removed:
if(data.effectStateId() == AreaEffectSimulation::AesEffectState::EsRemoved) if(data.effectStateId == AreaEffectSimulation::AesEffectState::EsRemoved)
removeEffectShowsRelatedToAes(data.id()); removeEffectShowsRelatedToAes(data.id);
break; break;
case KindOfModification_e::Paused: case KindOfModification_e::Paused:
updateEffectShowsRelatedToMineArea(data); updateEffectShowsRelatedToMineArea(data);
updateEffectShowOrdersRelatedToAes(data.id()); updateEffectShowOrdersRelatedToAes(data.id);
// pauseEffectShowsRelatedToAes(data.id()); // pauseEffectShowsRelatedToAes(data.id());
break; break;
case KindOfModification_e::Continued: case KindOfModification_e::Continued:
updateEffectShowsRelatedToMineArea(data); updateEffectShowsRelatedToMineArea(data);
updateEffectShowOrdersRelatedToAes(data.id()); updateEffectShowOrdersRelatedToAes(data.id);
//continueEffectShowsRelatedToAes(data.id()); //continueEffectShowsRelatedToAes(data.id());
break; break;
case KindOfModification_e::None: case KindOfModification_e::None:
@@ -231,21 +231,21 @@ void HandlerEffectShow::effectShowOrderConfirmationReceived(const ConvertFromTab
// add confirmation data // add confirmation data
ifs->updateObject(orderConfirmation); ifs->updateObject(orderConfirmation);
if (oldId != ifs->getData().orderConfirmation && ifs->getData().orderConfirmation == EffectShowManagement::OrderConfirmation_e::FiringReadiness) if (oldId != ifs->getData().orderConfirmation && ifs->getData().orderConfirmation == static_cast<int>(EffectShowManagement::OrderConfirmation_e::FiringReadiness))
{ {
DEBUG_LOG(m_logger) << "effectShowOrderConfirmationReceived Got Fire Readyness, send to aes for " << ifs->getId(); DEBUG_LOG(m_logger) << "effectShowOrderConfirmationReceived Got Fire Readyness, send to aes for " << ifs->getId();
AreaEffectSimulation::SetAesItemEffectorStateRequest req; AreaEffectSimulation::SetAesItemEffectorStateRequest req;
req.aesId(ifs->getIdAES()); req.aesId = ifs->getIdAES();
req.newEffectorState(AreaEffectSimulation::AesEffectorState::EsReadyToFire); req.newEffectorState = AreaEffectSimulation::AesEffectorState::EsReadyToFire;
req.participantId(ifs->getData().esmParticipantId); req.participantId = ifs->getData().esmParticipantId;
m_mainHandler->dds()->ftcAes()->setAesItemEffectorStateRequest(req, this); m_mainHandler->dds()->ftcAes()->setAesItemEffectorStateRequest(req, this);
} }
switch (orderConfirmation.confirmation.underlying()) switch (orderConfirmation.confirmation)
{ {
case EffectShowManagement::OrderConfirmation_e_def::DriveOff: case EffectShowManagement::OrderConfirmation_e::DriveOff:
case EffectShowManagement::OrderConfirmation_e_def::FiringReadiness: case EffectShowManagement::OrderConfirmation_e::FiringReadiness:
case EffectShowManagement::OrderConfirmation_e_def::InterruptExecution: case EffectShowManagement::OrderConfirmation_e::InterruptExecution:
case EffectShowManagement::OrderConfirmation_e_def::PositionReached: case EffectShowManagement::OrderConfirmation_e::PositionReached:
{ {
triggerMeteoData(ifs); // send meteo data for effect show position triggerMeteoData(ifs); // send meteo data for effect show position
break; break;
@@ -277,10 +277,10 @@ void HandlerEffectShow::onEffectShowModifyRequest(
const rti::core::SampleIdentity &cookie, const rti::core::SampleIdentity &cookie,
const EffectShow &request) const EffectShow &request)
{ {
DEBUG_LOG(m_logger) << "onEffectShowModifyRequest: " << request.id(); DEBUG_LOG(m_logger) << "onEffectShowModifyRequest: " << request.id;
if (request.id() <= 0) if (request.id <= 0)
{ {
ERROR_LOG(m_logger) << "Illegal Effect Show Id: " << request.id(); ERROR_LOG(m_logger) << "Illegal Effect Show Id: " << request.id;
return; return;
} }
@@ -297,13 +297,13 @@ void HandlerEffectShow::onEffectShowModifyRequest(
//------------------------------------------------------------------------------- //-------------------------------------------------------------------------------
Core::FunctionReplyObject HandlerEffectShow::effectShowModifyRequest(const EffectShow &request) Core::FunctionReplyObject HandlerEffectShow::effectShowModifyRequest(const EffectShow &request)
{ {
ObjectEffectShow *ifs = m_effectShowObjMap.value(request.id()); ObjectEffectShow *ifs = m_effectShowObjMap.value(request.id);
if (ifs == nullptr) if (ifs == nullptr)
return Core::FunctionReplyObject(request.id(), tr_lts("dds", "EffectShow with id %1 not found")).arg(request.id()); return Core::FunctionReplyObject(request.id, tr_lts("dds", "EffectShow with id %1 not found")).arg(request.id);
Core::FunctionReplyObject ret; Core::FunctionReplyObject ret;
auto idCurrent = ifs->getData().esmParticipantId; auto idCurrent = ifs->getData().esmParticipantId;
if ((idCurrent != -1) && (request.esmParticipantId() != idCurrent)) if ((idCurrent != -1) && (request.esmParticipantId != idCurrent))
{ {
triggerRetractOrder(ifs); // trigger retract order to current effect show actor, if needed triggerRetractOrder(ifs); // trigger retract order to current effect show actor, if needed
ret = ifs->updateObject(request); // update effect show ret = ifs->updateObject(request); // update effect show
@@ -327,24 +327,24 @@ Core::FunctionReplyObject HandlerEffectShow::effectShowModifyRequest(const Effec
void HandlerEffectShow::onEffectShowRemoveRequest(const rti::core::SampleIdentity &cookie, void HandlerEffectShow::onEffectShowRemoveRequest(const rti::core::SampleIdentity &cookie,
const Core::RemoveElementRequest &request) const Core::RemoveElementRequest &request)
{ {
DEBUG_LOG(m_logger) << "onEffectShowRemoveRequest: " << request.id(); DEBUG_LOG(m_logger) << "onEffectShowRemoveRequest: " << request.id;
ObjectEffectShow *ifs = m_effectShowObjMap.value(request.id()); ObjectEffectShow *ifs = m_effectShowObjMap.value(request.id);
Core::FunctionReplyObject ret; Core::FunctionReplyObject ret;
if (ifs == nullptr) if (ifs == nullptr)
{ {
ret = Core::FunctionReplyObject(request.id(), tr_lts("dds", "EffectShow id %1 is not valid")).arg(request.id()); ret = Core::FunctionReplyObject(request.id, tr_lts("dds", "EffectShow id %1 is not valid")).arg(request.id);
m_mainHandler->dds()->fts()->effectShowRemoveReply(cookie, ret); m_mainHandler->dds()->fts()->effectShowRemoveReply(cookie, ret);
return; return;
} }
EffectShowManagement::EffectShow ddsData; EffectShowManagement::EffectShow ddsData;
ddsData.id(ifs->getId()); ddsData.id = ifs->getId();
if (m_mainHandler->dds()->topicLockMaster()->isLocked(ddsData, m_mainHandler->exerciseId())) if (m_mainHandler->dds()->topicLockMaster()->isLocked(ddsData, m_mainHandler->exerciseId()))
{ {
ret = Core::FunctionReplyObject(request.id(), tr_lts("dds", "EffectShow '%1' is used by another user!")).arg(ifs->getName()); ret = Core::FunctionReplyObject(request.id, tr_lts("dds", "EffectShow '%1' is used by another user!")).arg(ifs->getName());
m_mainHandler->dds()->fts()->effectShowRemoveReply(cookie, ret); m_mainHandler->dds()->fts()->effectShowRemoveReply(cookie, ret);
return; return;
} }
@@ -431,7 +431,7 @@ QVector<Database::EsmEffectShow> HandlerEffectShow::createEffectShowDbDataRelate
EffectShowExplosionArea effectShowExplosionArea(data, m_mainHandler->handlerPdmData()); EffectShowExplosionArea effectShowExplosionArea(data, m_mainHandler->handlerPdmData());
if (m_mainHandler->handlerPdmData()->isSmoke(data.chargeStruct())) if (m_mainHandler->handlerPdmData()->isSmoke(data.chargeStruct))
{ {
//create exact 1 //create exact 1
ret.reserve(1); ret.reserve(1);
@@ -479,13 +479,13 @@ QVector<Database::EsmEffectShow> HandlerEffectShow::createEffectShowDbDataRelate
EffectShowExplosionCluster effectShowExplosionCluster(data, m_mainHandler->handlerPdmData()); EffectShowExplosionCluster effectShowExplosionCluster(data, m_mainHandler->handlerPdmData());
QVector<Database::EsmEffectShow> ret; QVector<Database::EsmEffectShow> ret;
if (m_mainHandler->handlerPdmData()->isSmoke(data.chargeStruct())) if (m_mainHandler->handlerPdmData()->isSmoke(data.chargeStruct))
{ {
//create exact 1 //create exact 1
ret.reserve(1); ret.reserve(1);
Database::EsmEffectShow esmEffectShow = effectShowExplosionCluster.getEffectShow(0); Database::EsmEffectShow esmEffectShow = effectShowExplosionCluster.getEffectShow(0);
if(data.esmParticipantIds().size() > 0) if(data.esmParticipantIds.size() > 0)
esmEffectShow.esmParticipantId = data.esmParticipantIds().at(0); // TODO handle vector esmEffectShow.esmParticipantId = data.esmParticipantIds.at(0); // TODO handle vector
DEBUG_LOG(m_logger) << toString(esmEffectShow); DEBUG_LOG(m_logger) << toString(esmEffectShow);
ret.push_back(std::move(esmEffectShow)); ret.push_back(std::move(esmEffectShow));
} }
@@ -519,8 +519,8 @@ QVector<Database::EsmEffectShow> HandlerEffectShow::createEffectShowDbDataRelate
DEBUG_LOG(m_logger) << toString(esmEffectShow); DEBUG_LOG(m_logger) << toString(esmEffectShow);
// Evlt. nicht bei DM42 (dann ist max > 1) // Evlt. nicht bei DM42 (dann ist max > 1)
if(data.esmParticipantIds().size() > 0) if(data.esmParticipantIds.size() > 0)
esmEffectShow.esmParticipantId = data.esmParticipantIds().at(0); // TODO handle vector esmEffectShow.esmParticipantId = data.esmParticipantIds.at(0); // TODO handle vector
ret.push_back(std::move(esmEffectShow)); ret.push_back(std::move(esmEffectShow));
} }
} }
@@ -532,13 +532,13 @@ QVector<Database::EsmEffectShow> HandlerEffectShow::createEffectShowDbDataRelate
EffectShowEffectCluster effectShowEffectCluster(data, m_mainHandler->handlerPdmData()); EffectShowEffectCluster effectShowEffectCluster(data, m_mainHandler->handlerPdmData());
QVector<Database::EsmEffectShow> ret; QVector<Database::EsmEffectShow> ret;
if (m_mainHandler->handlerPdmData()->isSmoke(data.chargeStruct())) if (m_mainHandler->handlerPdmData()->isSmoke(data.chargeStruct))
{ {
//create exact 1 //create exact 1
ret.reserve(1); ret.reserve(1);
Database::EsmEffectShow esmEffectShow = effectShowEffectCluster.getEffectShow(0); Database::EsmEffectShow esmEffectShow = effectShowEffectCluster.getEffectShow(0);
if(data.esmParticipantIds().size() > 0) if(data.esmParticipantIds.size() > 0)
esmEffectShow.esmParticipantId = data.esmParticipantIds().at(0); // TODO handle vector esmEffectShow.esmParticipantId = data.esmParticipantIds.at(0); // TODO handle vector
DEBUG_LOG(m_logger) << toString(esmEffectShow); DEBUG_LOG(m_logger) << toString(esmEffectShow);
ret.push_back(std::move(esmEffectShow)); ret.push_back(std::move(esmEffectShow));
} }
@@ -572,8 +572,8 @@ QVector<Database::EsmEffectShow> HandlerEffectShow::createEffectShowDbDataRelate
//DEBUG_LOG(m_logger) << toString(esmEffectShow); //DEBUG_LOG(m_logger) << toString(esmEffectShow);
// Evlt. nicht bei DM42 (dann ist max > 1) // Evlt. nicht bei DM42 (dann ist max > 1)
if(data.esmParticipantIds().size() > (size_t)i) if(data.esmParticipantIds.size() > (size_t)i)
esmEffectShow.esmParticipantId = data.esmParticipantIds().at(i); // TODO handle vector esmEffectShow.esmParticipantId = data.esmParticipantIds.at(i); // TODO handle vector
DEBUG_LOG(m_logger) << toString(esmEffectShow); DEBUG_LOG(m_logger) << toString(esmEffectShow);
ret.push_back(std::move(esmEffectShow)); ret.push_back(std::move(esmEffectShow));
@@ -591,8 +591,8 @@ void HandlerEffectShow::removeEffectShowsRelatedToAes(int idAes, bool retract)
bool remove = false; bool remove = false;
if (it.value()->getIdAES() == idAes) if (it.value()->getIdAES() == idAes)
{ {
if ((it.value()->getData().orderConfirmation != EffectShowManagement::OrderConfirmation_e_def::Execution) && if ((it.value()->getData().orderConfirmation != static_cast<int>(EffectShowManagement::OrderConfirmation_e::Execution))) &&
(it.value()->getData().orderConfirmation != EffectShowManagement::OrderConfirmation_e_def::OrderCarriedOut)) (it.value()->getData().orderConfirmation != static_cast<int>(EffectShowManagement::OrderConfirmation_e::OrderCarriedOut))
remove = true; remove = true;
else else
INFO_LOG(m_logger) << "Effect Show: " << it.value()->getId() << " not removed due to EXECUTION / ORDER CARRIED OUT"; INFO_LOG(m_logger) << "Effect Show: " << it.value()->getId() << " not removed due to EXECUTION / ORDER CARRIED OUT";
@@ -612,7 +612,7 @@ void HandlerEffectShow::updateEffectShowsRelatedToMineArea(const AreaEffectSimul
{ {
for (ObjectEffectShow *obj : qAsConst(m_effectShowObjMap)) for (ObjectEffectShow *obj : qAsConst(m_effectShowObjMap))
{ {
if (obj->getIdAES() == data.id()) if (obj->getIdAES() == data.id)
{ {
Database::EsmEffectShow esmEffectShow = obj->getData(); Database::EsmEffectShow esmEffectShow = obj->getData();
EffectShowMineArea effectShowMineArea(data); EffectShowMineArea effectShowMineArea(data);
@@ -626,7 +626,7 @@ void HandlerEffectShow::updateEffectShowsRelatedToExplosionArea(const AreaEffect
{ {
for (ObjectEffectShow *obj : qAsConst(m_effectShowObjMap)) for (ObjectEffectShow *obj : qAsConst(m_effectShowObjMap))
{ {
if (obj->getIdAES() == data.id()) if (obj->getIdAES() == data.id)
{ {
Database::EsmEffectShow esmEffectShow = obj->getData(); Database::EsmEffectShow esmEffectShow = obj->getData();
EffectShowExplosionArea effectShowExplosionArea(data, m_mainHandler->handlerPdmData()); EffectShowExplosionArea effectShowExplosionArea(data, m_mainHandler->handlerPdmData());
@@ -640,7 +640,7 @@ void HandlerEffectShow::updateEffectShowsRelatedToExplosionCluster(const AreaEff
{ {
for (ObjectEffectShow *obj : qAsConst(m_effectShowObjMap)) for (ObjectEffectShow *obj : qAsConst(m_effectShowObjMap))
{ {
if (obj->getIdAES() == data.id()) if (obj->getIdAES() == data.id)
{ {
Database::EsmEffectShow esmEffectShow = obj->getData(); Database::EsmEffectShow esmEffectShow = obj->getData();
EffectShowExplosionCluster effectShowExplosionCluster(data, m_mainHandler->handlerPdmData()); EffectShowExplosionCluster effectShowExplosionCluster(data, m_mainHandler->handlerPdmData());
@@ -654,7 +654,7 @@ void HandlerEffectShow::updateEffectShowsRelatedToEffectCluster(const AreaEffect
{ {
for (ObjectEffectShow *obj : qAsConst(m_effectShowObjMap)) for (ObjectEffectShow *obj : qAsConst(m_effectShowObjMap))
{ {
if (obj->getIdAES() == data.id()) if (obj->getIdAES() == data.id)
{ {
Database::EsmEffectShow esmEffectShow = obj->getData(); Database::EsmEffectShow esmEffectShow = obj->getData();
EffectShowEffectCluster effectShowEffectCluster(data, m_mainHandler->handlerPdmData()); EffectShowEffectCluster effectShowEffectCluster(data, m_mainHandler->handlerPdmData());
@@ -677,22 +677,22 @@ void HandlerEffectShow::modifyEffectShowsRelatedToMineArea(const AreaEffectSimul
{ {
// even there can currently only be one object we use the same logic as for // even there can currently only be one object we use the same logic as for
// modifyEffectShowsRelatedToExplosionArea for convenience // modifyEffectShowsRelatedToExplosionArea for convenience
modifyEffectShows(createEffectShowDbDataRelatedToMineArea(data), data.id()); modifyEffectShows(createEffectShowDbDataRelatedToMineArea(data), data.id);
} }
//------------------------------------------------------------------------------- //-------------------------------------------------------------------------------
void HandlerEffectShow::modifyEffectShowsRelatedToExplosionArea(const AreaEffectSimulation::ExplosionArea &data) void HandlerEffectShow::modifyEffectShowsRelatedToExplosionArea(const AreaEffectSimulation::ExplosionArea &data)
{ {
modifyEffectShows(createEffectShowDbDataRelatedToExplosionArea(data), data.id()); modifyEffectShows(createEffectShowDbDataRelatedToExplosionArea(data), data.id);
} }
void HandlerEffectShow::modifyEffectShowsRelatedToExplosionCluster(const AreaEffectSimulation::ExplosionCluster &data) void HandlerEffectShow::modifyEffectShowsRelatedToExplosionCluster(const AreaEffectSimulation::ExplosionCluster &data)
{ {
modifyEffectShows(createEffectShowDbDataRelatedToExplosionCluster(data), data.id()); modifyEffectShows(createEffectShowDbDataRelatedToExplosionCluster(data), data.id);
} }
void HandlerEffectShow::modifyEffectShowsRelatedToEffectCluster(const AreaEffectSimulation::EffectCluster &data) void HandlerEffectShow::modifyEffectShowsRelatedToEffectCluster(const AreaEffectSimulation::EffectCluster &data)
{ {
modifyEffectShows(createEffectShowDbDataRelatedToEffectCluster(data), data.id()); modifyEffectShows(createEffectShowDbDataRelatedToEffectCluster(data), data.id);
} }
//------------------------------------------------------------------------------- //-------------------------------------------------------------------------------
@@ -821,7 +821,7 @@ void HandlerEffectShow::triggerRetractOrder(const ObjectEffectShow *ifs)
<< ", actor: " << effectShow.esmParticipantId; << ", actor: " << effectShow.esmParticipantId;
if (effectShow.esmParticipantId == -1) if (effectShow.esmParticipantId == -1)
return; // up to now no actor allocated return; // up to now no actor allocated
if (effectShow.orderConfirmation >= EffectShowManagement::OrderConfirmation_e_def::OrderCarriedOut) if (effectShow.orderConfirmation >= static_cast<int>(EffectShowManagement::OrderConfirmation_e::OrderCarriedOut))
return; // order obsolete return; // order obsolete
// trigger retract order // trigger retract order
@@ -866,7 +866,7 @@ void HandlerEffectShow::triggerMeteoData(const ObjectEffectShow *ifs)
MeteoDataManagement::MeteoData meteoData; MeteoDataManagement::MeteoData meteoData;
if (m_mainHandler->handlerMdmData()->getNearestWeather(pos, meteoData)) if (m_mainHandler->handlerMdmData()->getNearestWeather(pos, meteoData))
{ {
if (!meteoData.windOk() && !meteoData.climateOk()) if (!meteoData.windOk && !meteoData.climateOk)
{ {
WARNING_LOG(m_logger) << "Found MeteoStation but no weather Data available, try again in 1 minute"; WARNING_LOG(m_logger) << "Found MeteoStation but no weather Data available, try again in 1 minute";
QTimer::singleShot(6000, this, &HandlerEffectShow::onSendMeteoData); QTimer::singleShot(6000, this, &HandlerEffectShow::onSendMeteoData);
@@ -877,7 +877,7 @@ void HandlerEffectShow::triggerMeteoData(const ObjectEffectShow *ifs)
m_mainHandler->handlerTabData()->meteoData(equipmentNumber, effectShow.esmParticipantId, meteoData); m_mainHandler->handlerTabData()->meteoData(equipmentNumber, effectShow.esmParticipantId, meteoData);
// meteo data available // meteo data available
qint64 deltaTime = m_mainHandler->dds()->currentPartitionTime() - meteoData.timeStamp(); qint64 deltaTime = m_mainHandler->dds()->currentPartitionTime() - meteoData.timeStamp;
if (deltaTime > (60 * 15 * 1000)) if (deltaTime > (60 * 15 * 1000))
WARNING_LOG(m_logger) << "Age of meteo data=" << (deltaTime / 60000) << "min for vehicle: " << equipmentNumber; WARNING_LOG(m_logger) << "Age of meteo data=" << (deltaTime / 60000) << "min for vehicle: " << equipmentNumber;
} }
@@ -897,8 +897,8 @@ void HandlerEffectShow::onSendMeteoData()
if (effectShow.esmParticipantId == -1) if (effectShow.esmParticipantId == -1)
continue; // no actor allocated continue; // no actor allocated
if ((effectShow.orderConfirmation < EffectShowManagement::OrderConfirmation_e_def::DriveOff) || if ((effectShow.orderConfirmation < static_cast<int>(EffectShowManagement::OrderConfirmation_e::DriveOff))) ||
(effectShow.orderConfirmation >= EffectShowManagement::OrderConfirmation_e_def::OrderCarriedOut)) (effectShow.orderConfirmation >= static_cast<int>(EffectShowManagement::OrderConfirmation_e::OrderCarriedOut))
continue; // effect show not processed continue; // effect show not processed
triggerMeteoData(obj); triggerMeteoData(obj);
@@ -912,7 +912,7 @@ void HandlerEffectShow::onCleanUp()
for (ObjectEffectShow *obj : qAsConst(m_effectShowObjMap)) for (ObjectEffectShow *obj : qAsConst(m_effectShowObjMap))
{ {
const Database::EsmEffectShow &effectShow = obj->getData(); const Database::EsmEffectShow &effectShow = obj->getData();
if (effectShow.orderConfirmation == OrderConfirmation_e::OrderCarriedOut || effectShow.startTime <= 0 || effectShow.id <= 0) if (effectShow.orderConfirmation == static_cast<int>(OrderConfirmation_e::OrderCarriedOut) || effectShow.startTime <= 0 || effectShow.id <= 0)
continue; continue;
DEBUG_LOG(m_logger) << "Effect show with ID " << effectShow.id << " will expire at: " << QDateTime::fromMSecsSinceEpoch(effectShow.startTime + effectShow.duration + CLEANUPTIME).toString() << " current time: " << QDateTime::fromMSecsSinceEpoch(m_mainHandler->dds()->currentPartitionTime()).toString(); DEBUG_LOG(m_logger) << "Effect show with ID " << effectShow.id << " will expire at: " << QDateTime::fromMSecsSinceEpoch(effectShow.startTime + effectShow.duration + CLEANUPTIME).toString() << " current time: " << QDateTime::fromMSecsSinceEpoch(m_mainHandler->dds()->currentPartitionTime()).toString();
@@ -75,7 +75,7 @@ void HandlerEffectShowActorRelocation::relocationOrderConfirmationReceived(const
// add confirmation data // add confirmation data
auto data = ifs->getData(); auto data = ifs->getData();
data.orderConfirmation = orderConfirmation.confirmation.underlying(); data.orderConfirmation = orderConfirmation.confirmation;
data.answertText = orderConfirmation.answerText; data.answertText = orderConfirmation.answerText;
ifs->updateObject(data); ifs->updateObject(data);
} }
@@ -84,8 +84,8 @@ void HandlerEffectShowActorRelocation::onEffectShowActorRelocationModifyRequest(
const rti::core::SampleIdentity &cookie, const rti::core::SampleIdentity &cookie,
const EffectShowActorRelocation &request) const EffectShowActorRelocation &request)
{ {
DEBUG_LOG(m_logger) << "onEffectShowActorRelocationModifyRequest: " << request.id(); DEBUG_LOG(m_logger) << "onEffectShowActorRelocationModifyRequest: " << request.id;
auto ret = request.id() > 0 ? effectShowActorRelocationModifyRequest(request) : effectShowActorRelocationCreateRequest(request); auto ret = request.id > 0 ? effectShowActorRelocationModifyRequest(request) : effectShowActorRelocationCreateRequest(request);
if (ret.error()) if (ret.error())
WARNING_LOG(m_logger) << ret(); WARNING_LOG(m_logger) << ret();
m_mainHandler->dds()->fts()->effectShowActorRelocationModifyReply(cookie, ret); m_mainHandler->dds()->fts()->effectShowActorRelocationModifyReply(cookie, ret);
@@ -114,32 +114,32 @@ Core::FunctionReplyObject HandlerEffectShowActorRelocation::effectShowActorReloc
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
Core::FunctionReplyObject HandlerEffectShowActorRelocation::effectShowActorRelocationModifyRequest(const EffectShowActorRelocation &request) Core::FunctionReplyObject HandlerEffectShowActorRelocation::effectShowActorRelocationModifyRequest(const EffectShowActorRelocation &request)
{ {
ObjectEffectShowActorRelocation *ifs = m_effectShowActorRelocationObjMap.value(request.id()); ObjectEffectShowActorRelocation *ifs = m_effectShowActorRelocationObjMap.value(request.id);
if (ifs == nullptr) if (ifs == nullptr)
return Core::FunctionReplyObject(request.id(), tr_lts("dds", "EffectShowActorRelocation with id %1 not found")).arg(request.id()); return Core::FunctionReplyObject(request.id, tr_lts("dds", "EffectShowActorRelocation with id %1 not found")).arg(request.id);
return ifs->updateObject(ObjectEffectShowActorRelocation::ddsToDb(request)); return ifs->updateObject(ObjectEffectShowActorRelocation::ddsToDb(request));
} }
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
void HandlerEffectShowActorRelocation::onEffectShowActorRelocationRemoveRequest(const rti::core::SampleIdentity &cookie, void HandlerEffectShowActorRelocation::onEffectShowActorRelocationRemoveRequest(const rti::core::SampleIdentity &cookie,
const Core::RemoveElementRequest &request) const Core::RemoveElementRequest &request)
{ {
DEBUG_LOG(m_logger) << "onEffectShowActorRelocationRemoveRequest: " << request.id(); DEBUG_LOG(m_logger) << "onEffectShowActorRelocationRemoveRequest: " << request.id;
Core::FunctionReplyObject ret; Core::FunctionReplyObject ret;
ObjectEffectShowActorRelocation *ifs = m_effectShowActorRelocationObjMap.value(request.id()); ObjectEffectShowActorRelocation *ifs = m_effectShowActorRelocationObjMap.value(request.id);
if (!ifs) if (!ifs)
{ {
ret = Core::FunctionReplyObject(request.id(), tr_lts("dds", "'%1' with id %2 not found")).arg(QStringLiteral("HandlerEffectShowActorRelocation")).arg(request.id());; ret = Core::FunctionReplyObject(request.id, tr_lts("dds", "'%1' with id %2 not found")).arg(QStringLiteral("HandlerEffectShowActorRelocation")).arg(request.id);;
m_mainHandler->dds()->fts()->effectShowActorRelocationRemoveReply(cookie, ret); m_mainHandler->dds()->fts()->effectShowActorRelocationRemoveReply(cookie, ret);
return; return;
} }
EffectShowActorRelocation ddsData; EffectShowActorRelocation ddsData;
ddsData.id(request.id()); ddsData.id = request.id;
if (m_mainHandler->dds()->topicLockMaster()->isLocked(ddsData, m_mainHandler->exerciseId())) if (m_mainHandler->dds()->topicLockMaster()->isLocked(ddsData, m_mainHandler->exerciseId()))
{ {
ret = Core::FunctionReplyObject(request.id(), tr_lts("dds", "EffectShowActorRelocation '%1' is used by another user!")).arg(ifs->getId()); ret = Core::FunctionReplyObject(request.id, tr_lts("dds", "EffectShowActorRelocation '%1' is used by another user!")).arg(ifs->getId());
m_mainHandler->dds()->fts()->effectShowActorRelocationRemoveReply(cookie, ret); m_mainHandler->dds()->fts()->effectShowActorRelocationRemoveReply(cookie, ret);
return; return;
} }
@@ -156,7 +156,7 @@ void HandlerEffectShowActorRelocation::onEffectShowActorRelocationRemoveRequest(
// remove from map // remove from map
delete ifs; delete ifs;
m_effectShowActorRelocationObjMap.remove(request.id()); m_effectShowActorRelocationObjMap.remove(request.id);
} }
m_mainHandler->dds()->fts()->effectShowActorRelocationRemoveReply(cookie, ret); m_mainHandler->dds()->fts()->effectShowActorRelocationRemoveReply(cookie, ret);
@@ -45,16 +45,16 @@ bool HandlerMdmData::init()
bool HandlerMdmData::getNearestWeather(const Core::GeoPosition2D &pos, bool HandlerMdmData::getNearestWeather(const Core::GeoPosition2D &pos,
MeteoDataManagement::MeteoData &data) const MeteoDataManagement::MeteoData &data) const
{ {
const LtsCoordTrans::UtmCoordinate utm(LtsCoordTrans::UtmCoordinate::fromGeographic(pos.lon(), pos.lat())); const LtsCoordTrans::UtmCoordinate utm(LtsCoordTrans::UtmCoordinate::fromGeographic(pos.lon, pos.lat));
double nearestDistanceSquared = std::numeric_limits<double>::max(); double nearestDistanceSquared = std::numeric_limits<double>::max();
bool found = false; bool found = false;
for (const auto &md : qAsConst(m_meteoData)) for (const auto &md : qAsConst(m_meteoData))
{ {
if (md.isStaticMeteoData()) if (md.isStaticMeteoData)
continue; continue;
const double distanceSquared = LtsCoordTrans::squareDistance(utm, md.pos().lon(), md.pos().lat()); const double distanceSquared = LtsCoordTrans::squareDistance(utm, md.pos.lon, md.pos.lat);
if (distanceSquared < nearestDistanceSquared) if (distanceSquared < nearestDistanceSquared)
{ {
@@ -71,11 +71,11 @@ void HandlerMdmData::onMeteoDataChanged(const MeteoDataManagement::MeteoData &da
switch (modType) switch (modType)
{ {
case DataModification::eRemoved: case DataModification::eRemoved:
m_meteoData.remove(data.id()); m_meteoData.remove(data.id);
break; break;
case DataModification::eAdded: case DataModification::eAdded:
case DataModification::eModified: case DataModification::eModified:
m_meteoData[data.id()] = data; m_meteoData[data.id] = data;
break; break;
} }
} }
@@ -26,12 +26,12 @@ HandlerPdmData::HandlerPdmData(const std::shared_ptr<DdsHandler> &ddsHandler,
bool HandlerPdmData::isSmoke(const AreaEffectSimulation::ChargeStruct &chargeStruct) const bool HandlerPdmData::isSmoke(const AreaEffectSimulation::ChargeStruct &chargeStruct) const
{ {
return m_ddsHandler->dtcPdm()->isSmoke(chargeStruct.chargeTypeId(), chargeStruct.igniterTypeId(), chargeStruct.igniterFunctionId()); return m_ddsHandler->dtcPdm()->isSmoke(chargeStruct.chargeTypeId, chargeStruct.igniterTypeId, chargeStruct.igniterFunctionId);
} // end of isSmoke() } // end of isSmoke()
int HandlerPdmData::effectShowCount(const AreaEffectSimulation::ChargeStruct &chargeStruct) const int HandlerPdmData::effectShowCount(const AreaEffectSimulation::ChargeStruct &chargeStruct) const
{ {
return m_ddsHandler->dtcPdm()->maxEffectShows(chargeStruct.chargeTypeId(), chargeStruct.igniterTypeId(), chargeStruct.igniterFunctionId()); return m_ddsHandler->dtcPdm()->maxEffectShows(chargeStruct.chargeTypeId, chargeStruct.igniterTypeId, chargeStruct.igniterFunctionId);
} }
int HandlerPdmData::getCadence(const int chargeId) const int HandlerPdmData::getCadence(const int chargeId) const
@@ -78,9 +78,9 @@ void HandlerPpmData::onParticipantChanged(const ParticipantManagement::Participa
if (modType != DataModification::eRemoved) if (modType != DataModification::eRemoved)
{ {
auto m_ppmDtc = m_mainHandler->dds()->dtcPpm(); auto m_ppmDtc = m_mainHandler->dds()->dtcPpm();
ParticipantManagement::TypeClass typeClass = m_ppmDtc->type(data.typeId()).typeClass(); ParticipantManagement::TypeClass typeClass = m_ppmDtc->type(data.typeId).typeClass;
DEBUG_LOG(m_logger) << "support entity / equipment number set " << (typeClass == ParticipantManagement::TypeClass::SupportEntity) DEBUG_LOG(m_logger) << "support entity / equipment number set " << (typeClass == ParticipantManagement::TypeClass::SupportEntity)
<< " / " << data.equipmentNumber().is_set() << ", typeId: " << data.typeId() << " / " << data.equipmentNumber.is_set() << ", typeId: " << data.typeId
<< ", cnt: " << m_ppmDtc->types().size(); << ", cnt: " << m_ppmDtc->types().size();
if (typeClass != ParticipantManagement::TypeClass::SupportEntity) if (typeClass != ParticipantManagement::TypeClass::SupportEntity)
@@ -91,7 +91,7 @@ void HandlerPpmData::onParticipantChanged(const ParticipantManagement::Participa
else else
{ {
// does not exists or has no longer an equipment number -> remove // does not exists or has no longer an equipment number -> remove
if (!data.equipmentNumber().is_set()) if (!data.equipmentNumber.is_set())
modType = DataModification::eRemoved; modType = DataModification::eRemoved;
} }
@@ -102,7 +102,7 @@ void HandlerPpmData::onParticipantChanged(const ParticipantManagement::Participa
case DataModification::eAdded: case DataModification::eAdded:
case DataModification::eModified: case DataModification::eModified:
{ {
auto &val = m_participant[data.id()]; auto &val = m_participant[data.id];
val = Participant_t(data); val = Participant_t(data);
m_mainHandler->handlerEffectShowVehicleStatus()->effectShowActorChanged(val, modType); m_mainHandler->handlerEffectShowVehicleStatus()->effectShowActorChanged(val, modType);
break; break;
@@ -110,17 +110,17 @@ void HandlerPpmData::onParticipantChanged(const ParticipantManagement::Participa
case DataModification::eRemoved: case DataModification::eRemoved:
{ {
// remove if participant exists // remove if participant exists
auto it = m_participant.constFind(data.id()); auto it = m_participant.constFind(data.id);
if (it != m_participant.constEnd()) if (it != m_participant.constEnd())
{ {
m_mainHandler->handlerEffectShowVehicleStatus()->effectShowActorChanged(it.value(), modType); m_mainHandler->handlerEffectShowVehicleStatus()->effectShowActorChanged(it.value(), modType);
m_participant.remove(data.id()); m_participant.remove(data.id);
} }
break; break;
} }
} }
DEBUG_LOG(m_logger) << "onParticipantChanged: " << data.id() << ' ' << data.name() << ' ' << modType; DEBUG_LOG(m_logger) << "onParticipantChanged: " << data.id << ' ' << data.name << ' ' << modType;
} // end of onParticipantChanged() } // end of onParticipantChanged()
@@ -42,9 +42,9 @@ public:
{ {
Participant_t() = default; Participant_t() = default;
explicit Participant_t(const ParticipantManagement::Participant &data) explicit Participant_t(const ParticipantManagement::Participant &data)
: id(data.id()) : id(data.id)
, equipmentNumber(data.equipmentNumber().is_set() ? data.equipmentNumber().get() : 0) , equipmentNumber(data.equipmentNumber.is_set() ? data.equipmentNumber.get() : 0)
, name(QString::fromStdString(data.name())) , name(QString::fromStdString(data.name))
{} {}
int id = -1; int id = -1;
@@ -63,9 +63,9 @@ void HandlerTabData::effectShowVehicleStatusRequest(int equipmentNumber, int par
DEBUG_LOG(m_logger) << "Trigger Status Request " << equipmentNumber << ' ' << participantId; DEBUG_LOG(m_logger) << "Trigger Status Request " << equipmentNumber << ' ' << participantId;
TrainingAreaBase::SendFireSmokeMarkerDataRequest out; TrainingAreaBase::SendFireSmokeMarkerDataRequest out;
out.equipmentNumber(equipmentNumber); out.equipmentNumber = equipmentNumber;
out.participantId(participantId); out.participantId = participantId;
out.payload(ConvertToTab::convertStatusRequest()); out.payload = ConvertToTab::convertStatusRequest();
m_mainHandler->dds()->ftcTab()->sendFireSmokeMarkerDataRequest(out, this); m_mainHandler->dds()->ftcTab()->sendFireSmokeMarkerDataRequest(out, this);
} // end of onVehicleStatusStatusRequest() } // end of onVehicleStatusStatusRequest()
@@ -75,9 +75,9 @@ void HandlerTabData::relocationOrder(int equipmentNumber, int participantId, con
DEBUG_LOG(m_logger) << "Trigger Relocation Order " << equipmentNumber << ' ' << participantId; DEBUG_LOG(m_logger) << "Trigger Relocation Order " << equipmentNumber << ' ' << participantId;
TrainingAreaBase::SendFireSmokeMarkerDataRequest out; TrainingAreaBase::SendFireSmokeMarkerDataRequest out;
out.equipmentNumber(equipmentNumber); out.equipmentNumber = equipmentNumber;
out.participantId(participantId); out.participantId = participantId;
out.payload(ConvertToTab::convertRelocationOrder(relocationOrder)); out.payload = ConvertToTab::convertRelocationOrder(relocationOrder);
m_mainHandler->dds()->ftcTab()->sendFireSmokeMarkerDataRequest(out, this); m_mainHandler->dds()->ftcTab()->sendFireSmokeMarkerDataRequest(out, this);
} // end of relocationOrder() } // end of relocationOrder()
//============================================================================= //=============================================================================
@@ -85,26 +85,26 @@ void HandlerTabData::effectShowOrder(int equipmentNumber, int participantId, con
{ {
TrainingAreaBase::SendFireSmokeMarkerDataRequest out; TrainingAreaBase::SendFireSmokeMarkerDataRequest out;
out.equipmentNumber(equipmentNumber); out.equipmentNumber = equipmentNumber;
out.participantId(participantId); out.participantId = participantId;
out.payload(ConvertToTab::convertEffectShowOrder(effectShowOrder)); out.payload = ConvertToTab::convertEffectShowOrder(effectShowOrder);
Core::GeoPosition2D posCenter = effectShowOrder.centerPosition; Core::GeoPosition2D posCenter = effectShowOrder.centerPosition;
Core::GeoPosition2D posLl = effectShowOrder.lowerLeftPosition; Core::GeoPosition2D posLl = effectShowOrder.lowerLeftPosition;
DEBUG_LOG(m_logger) << "Trigger Effect Show Order " << equipmentNumber << ' ' << participantId DEBUG_LOG(m_logger) << "Trigger Effect Show Order " << equipmentNumber << ' ' << participantId
<< "\n idEffectShow " << effectShowOrder.idEffectShow << "\n idEffectShow " << effectShowOrder.idEffectShow
<< "\n startTime " << effectShowOrder.startTime << "\n startTime " << effectShowOrder.startTime
<< "\n centerPosition " << LtsCoordTrans::mgrsFromGeographic(posCenter.lon(), posCenter.lat()) << "\n centerPosition " << LtsCoordTrans::mgrsFromGeographic(posCenter.lon, posCenter.lat)
<< "\n areaDepth " << effectShowOrder.areaDepth << "\n areaDepth " << effectShowOrder.areaDepth
<< "\n areaWidth " << effectShowOrder.areaWidth << "\n areaWidth " << effectShowOrder.areaWidth
<< "\n rotation " << effectShowOrder.rotation << "\n rotation " << effectShowOrder.rotation
<< "\n lowerLeftPosition " << LtsCoordTrans::mgrsFromGeographic(posLl.lon(), posLl.lat()) << "\n lowerLeftPosition " << LtsCoordTrans::mgrsFromGeographic(posLl.lon, posLl.lat)
<< "\n numOfVolley " << int(effectShowOrder.numOfVolley) << "\n numOfVolley " << int(effectShowOrder.numOfVolley)
<< "\n shotsPerVolley " << int(effectShowOrder.shotsPerVolley) << "\n shotsPerVolley " << int(effectShowOrder.shotsPerVolley)
<< "\n typeOfAmmunition " << int(effectShowOrder.typeOfAmmunition) << "\n typeOfAmmunition " << int(effectShowOrder.typeOfAmmunition)
<< "\n duration " << effectShowOrder.duration << "\n duration " << effectShowOrder.duration
<< "\n name " << effectShowOrder.name << "\n name " << effectShowOrder.name
<< "\n payload" << plText(out.payload()); << "\n payload" << plText(out.payload);
m_mainHandler->dds()->ftcTab()->sendFireSmokeMarkerDataRequest(out, this); m_mainHandler->dds()->ftcTab()->sendFireSmokeMarkerDataRequest(out, this);
} // end of effetShowOrder() } // end of effetShowOrder()
@@ -114,9 +114,9 @@ void HandlerTabData::effectShowStop(int equipmentNumber, int participantId, cons
DEBUG_LOG(m_logger) << "Trigger Effect Show Stop " << equipmentNumber << ' ' << participantId; DEBUG_LOG(m_logger) << "Trigger Effect Show Stop " << equipmentNumber << ' ' << participantId;
TrainingAreaBase::SendFireSmokeMarkerDataRequest out; TrainingAreaBase::SendFireSmokeMarkerDataRequest out;
out.equipmentNumber(equipmentNumber); out.equipmentNumber = equipmentNumber;
out.participantId(participantId); out.participantId = participantId;
out.payload(ConvertToTab::convertEffectShowStop(idEffectShow)); out.payload = ConvertToTab::convertEffectShowStop(idEffectShow);
m_mainHandler->dds()->ftcTab()->sendFireSmokeMarkerDataRequest(out, this); m_mainHandler->dds()->ftcTab()->sendFireSmokeMarkerDataRequest(out, this);
} // end of effectShowStop() } // end of effectShowStop()
//============================================================================= //=============================================================================
@@ -124,14 +124,14 @@ void HandlerTabData::effectShowContinue(int equipmentNumber, int participantId,
{ {
TrainingAreaBase::SendFireSmokeMarkerDataRequest out; TrainingAreaBase::SendFireSmokeMarkerDataRequest out;
out.equipmentNumber(equipmentNumber); out.equipmentNumber = equipmentNumber;
out.participantId(participantId); out.participantId = participantId;
out.payload(ConvertToTab::convertEffectShowContinue(effectShowContinue)); out.payload = ConvertToTab::convertEffectShowContinue(effectShowContinue);
DEBUG_LOG(m_logger) << "Trigger Effect Show Continue " << equipmentNumber << ' ' << participantId DEBUG_LOG(m_logger) << "Trigger Effect Show Continue " << equipmentNumber << ' ' << participantId
<< "\n idEffectShow " << effectShowContinue.idEffectShow << "\n idEffectShow " << effectShowContinue.idEffectShow
<< "\n executionTime " << effectShowContinue.executionTime << "\n executionTime " << effectShowContinue.executionTime
<< "\n payload" << plText(out.payload()); << "\n payload" << plText(out.payload);
m_mainHandler->dds()->ftcTab()->sendFireSmokeMarkerDataRequest(out, this); m_mainHandler->dds()->ftcTab()->sendFireSmokeMarkerDataRequest(out, this);
} // end of effectShowContinue() } // end of effectShowContinue()
@@ -140,14 +140,14 @@ void HandlerTabData::retractOrder(int equipmentNumber, int participantId, const
{ {
TrainingAreaBase::SendFireSmokeMarkerDataRequest out; TrainingAreaBase::SendFireSmokeMarkerDataRequest out;
out.equipmentNumber(equipmentNumber); out.equipmentNumber = equipmentNumber;
out.participantId(participantId); out.participantId = participantId;
out.payload(ConvertToTab::convertOrderRetract(retractOrder)); out.payload = ConvertToTab::convertOrderRetract(retractOrder);
DEBUG_LOG(m_logger) << "Trigger Retract Order " << equipmentNumber << ' ' << participantId DEBUG_LOG(m_logger) << "Trigger Retract Order " << equipmentNumber << ' ' << participantId
<< "\n orderType " << retractOrder.orderType << "\n orderType " << retractOrder.orderType
<< "\n id " << retractOrder.id << "\n id " << retractOrder.id
<< "\n payload" << plText(out.payload()); << "\n payload" << plText(out.payload);
m_mainHandler->dds()->ftcTab()->sendFireSmokeMarkerDataRequest(out, this); m_mainHandler->dds()->ftcTab()->sendFireSmokeMarkerDataRequest(out, this);
} // end of retractOrder() } // end of retractOrder()
@@ -155,16 +155,16 @@ void HandlerTabData::retractOrder(int equipmentNumber, int participantId, const
void HandlerTabData::meteoData(int equipmentNumber, int participantId, const MeteoDataManagement::MeteoData &meteoData) void HandlerTabData::meteoData(int equipmentNumber, int participantId, const MeteoDataManagement::MeteoData &meteoData)
{ {
TrainingAreaBase::SendFireSmokeMarkerDataRequest out; TrainingAreaBase::SendFireSmokeMarkerDataRequest out;
out.equipmentNumber(equipmentNumber); out.equipmentNumber = equipmentNumber;
out.participantId(participantId); out.participantId = participantId;
out.payload(ConvertToTab::convertMeteoData(meteoData)); out.payload = ConvertToTab::convertMeteoData(meteoData);
DEBUG_LOG(m_logger) << "Trigger Meteo data " << equipmentNumber << ' ' << participantId DEBUG_LOG(m_logger) << "Trigger Meteo data " << equipmentNumber << ' ' << participantId
<< "\n temperature " << meteoData.temperature() << "\n temperature " << meteoData.temperature
<< "\n humidity " << meteoData.humidity() << "\n humidity " << meteoData.humidity
<< "\n pressure " << meteoData.pressure() << "\n pressure " << meteoData.pressure
<< "\n windDirection " << meteoData.windDirection() << "\n windDirection " << meteoData.windDirection
<< "\n payload" << plText(out.payload()); << "\n payload" << plText(out.payload);
m_mainHandler->dds()->ftcTab()->sendFireSmokeMarkerDataRequest(out, this); m_mainHandler->dds()->ftcTab()->sendFireSmokeMarkerDataRequest(out, this);
} // end of } // end of
@@ -182,7 +182,7 @@ void HandlerTabData::onFireSmokeMarkerDataChanged(const TrainingAreaBase::FireSm
if (modType == DataModification::eRemoved) if (modType == DataModification::eRemoved)
return; return;
DEBUG_LOG(m_logger) << "Got Fire Smoke Marker " << data.sampleTime(); DEBUG_LOG(m_logger) << "Got Fire Smoke Marker " << data.sampleTime;
switch (ConvertFromTab::isTelegram(data)) switch (ConvertFromTab::isTelegram(data))
{ {
case ConvertFromTab::RxTelegram_e::VehicleStatus: case ConvertFromTab::RxTelegram_e::VehicleStatus:
@@ -225,7 +225,7 @@ void HandlerTabData::onFireSmokeMarkerDataChanged(const TrainingAreaBase::FireSm
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
void HandlerTabData::publishVehicleStatus(const EffectShowManagement::EffectShowVehicleStatus &vehicleStatus) void HandlerTabData::publishVehicleStatus(const EffectShowManagement::EffectShowVehicleStatus &vehicleStatus)
{ {
DEBUG_LOG(m_logger) << "Vehicle Status published esmParticipantId: " << vehicleStatus.esmParticipantId() << ' ' << vehicleStatus.operational(); DEBUG_LOG(m_logger) << "Vehicle Status published esmParticipantId: " << vehicleStatus.esmParticipantId << ' ' << vehicleStatus.operational;
m_mainHandler->dds()->dts()->publish(vehicleStatus); m_mainHandler->dds()->dts()->publish(vehicleStatus);
} // end of publishVehicleStatus() } // end of publishVehicleStatus()
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
@@ -235,7 +235,7 @@ void HandlerTabData::sendAdlerFqFb(const int aesId)
DEBUG_LOG(m_logger) << "Send Adler Feuerbereitschaft"; DEBUG_LOG(m_logger) << "Send Adler Feuerbereitschaft";
TrainingAreaBase::AdlerFqFbRequest out; TrainingAreaBase::AdlerFqFbRequest out;
out.aesItemId(aesId); out.aesItemId = aesId;
m_mainHandler->dds()->ftcTab()->adlerFqFbRequest(out, this); m_mainHandler->dds()->ftcTab()->adlerFqFbRequest(out, this);
} }
//============================================================================= //=============================================================================
@@ -76,77 +76,77 @@ bool ObjectAesData::dataChanged(const Database::EsmAesData &data) const
DEBUG_LOG(m_logger) << "Data Volley: " << data.volley << " old: " << m_data.volley; DEBUG_LOG(m_logger) << "Data Volley: " << data.volley << " old: " << m_data.volley;
return (m_data.chargeTypeId != data.chargeTypeId) return (m_data.chargeTypeId != data.chargeTypeId)
|| (m_data.effectStart != data.effectStart) || (m_data.effectStart != data.effectStart)
|| (m_data.effectStateId == AreaEffectSimulation::AesEffectState::EsFired) || (m_data.effectStateId == static_cast<int>(AreaEffectSimulation::AesEffectState::EsFired))
|| (m_data.effectDuration != data.effectDuration); || (m_data.effectDuration != data.effectDuration);
} }
//============================================================================= //=============================================================================
bool ObjectAesData::statusPaused(const Database::EsmAesData &data) const bool ObjectAesData::statusPaused(const Database::EsmAesData &data) const
{ {
return (m_data.effectStateId != AreaEffectSimulation::AesEffectState_def::EsPaused) && return (m_data.effectStateId != static_cast<int>(AreaEffectSimulation::AesEffectState::EsPaused)) &&
(data.effectStateId == AreaEffectSimulation::AesEffectState_def::EsPaused); (data.effectStateId == static_cast<int>(AreaEffectSimulation::AesEffectState::EsPaused));
} }
//============================================================================= //=============================================================================
bool ObjectAesData::statusContinued(const Database::EsmAesData &data) const bool ObjectAesData::statusContinued(const Database::EsmAesData &data) const
{ {
return (data.effectStateId == AreaEffectSimulation::AesEffectState_def::EsActivated) && return (data.effectStateId == static_cast<int>(AreaEffectSimulation::AesEffectState::EsActivated)) &&
(m_data.effectStart != data.effectStart); // false, if the scheduled start time reached (m_data.effectStart != data.effectStart); // false, if the scheduled start time reached
} }
bool ObjectAesData::statusExpired(const Database::EsmAesData &data) const bool ObjectAesData::statusExpired(const Database::EsmAesData &data) const
{ {
return (data.effectStateId == AreaEffectSimulation::AesEffectState_def::EsExpired); return (data.effectStateId == static_cast<int>(AreaEffectSimulation::AesEffectState::EsExpired));
} }
//============================================================================= //=============================================================================
Database::EsmAesData ObjectAesData::asEsmAesData(const AreaEffectSimulation::ExplosionArea &data) Database::EsmAesData ObjectAesData::asEsmAesData(const AreaEffectSimulation::ExplosionArea &data)
{ {
Database::EsmAesData res; Database::EsmAesData res;
res.idAes = data.id(); res.idAes = data.id;
res.nameAes = QString::fromStdString(data.name()); res.nameAes = QString::fromStdString(data.name);
res.effectStateId = data.effectStateId().underlying(); res.effectStateId = data.effectStateId;
res.position = QPointF(data.area().cornerBottomLeft().lon(), data.area().cornerBottomLeft().lat()); res.position = QPointF(data.area.cornerBottomLeft.lon, data.area.cornerBottomLeft.lat);
res.rotationAngle = data.area().rotation(); res.rotationAngle = data.area.rotation;
res.depth = data.area().height(); res.depth = data.area.height;
res.width = data.area().width(); res.width = data.area.width;
res.effectStart = data.effectStart().is_set() ? data.effectStart().get() : 0; res.effectStart = data.effectStart.is_set() ? data.effectStart.get() : 0;
res.effectDuration = data.effectDuration(); res.effectDuration = data.effectDuration;
res.chargeTypeId = data.chargeStruct().chargeTypeId(); res.chargeTypeId = data.chargeStruct.chargeTypeId;
res.volley = data.cannonCount() * data.cannonRounds(); res.volley = data.cannonCount * data.cannonRounds;
return res; return res;
} }
Database::EsmAesData ObjectAesData::asEsmAesData(const AreaEffectSimulation::ExplosionCluster &data) Database::EsmAesData ObjectAesData::asEsmAesData(const AreaEffectSimulation::ExplosionCluster &data)
{ {
Database::EsmAesData res; Database::EsmAesData res;
res.idAes = data.id(); res.idAes = data.id;
res.nameAes = QString::fromStdString(data.name()); res.nameAes = QString::fromStdString(data.name);
res.effectStateId = data.effectStateId().underlying(); res.effectStateId = data.effectStateId;
res.position = QPointF(data.area().cornerBottomLeft().lon(), data.area().cornerBottomLeft().lat()); res.position = QPointF(data.area.cornerBottomLeft.lon, data.area.cornerBottomLeft.lat);
res.rotationAngle = data.area().rotation(); res.rotationAngle = data.area.rotation;
res.depth = data.area().height(); res.depth = data.area.height;
res.width = data.area().width(); res.width = data.area.width;
res.effectStart = data.effectStart().is_set() ? data.effectStart().get() : 0; res.effectStart = data.effectStart.is_set() ? data.effectStart.get() : 0;
res.effectDuration = data.effectDuration(); res.effectDuration = data.effectDuration;
res.chargeTypeId = data.chargeStruct().chargeTypeId(); res.chargeTypeId = data.chargeStruct.chargeTypeId;
res.volley = data.impactCount(); //cannonCount() * data.cannonRounds(); res.volley = data.impactCount; //cannonCount() * data.cannonRounds();
return res; return res;
} }
Database::EsmAesData ObjectAesData::asEsmAesData(const AreaEffectSimulation::EffectCluster &data) Database::EsmAesData ObjectAesData::asEsmAesData(const AreaEffectSimulation::EffectCluster &data)
{ {
Database::EsmAesData res; Database::EsmAesData res;
res.idAes = data.id(); res.idAes = data.id;
res.nameAes = QString::fromStdString(data.name()); res.nameAes = QString::fromStdString(data.name);
res.effectStateId = data.effectStateId().underlying(); res.effectStateId = data.effectStateId;
res.position = QPointF(data.area().cornerBottomLeft().lon(), data.area().cornerBottomLeft().lat()); res.position = QPointF(data.area.cornerBottomLeft.lon, data.area.cornerBottomLeft.lat);
res.rotationAngle = data.area().rotation(); res.rotationAngle = data.area.rotation;
res.depth = data.area().height(); res.depth = data.area.height;
res.width = data.area().width(); res.width = data.area.width;
res.effectStart = data.effectStart().is_set() ? data.effectStart().get() : 0; res.effectStart = data.effectStart.is_set() ? data.effectStart.get() : 0;
res.effectDuration = data.effectDuration(); res.effectDuration = data.effectDuration;
res.chargeTypeId = data.chargeStruct().chargeTypeId(); res.chargeTypeId = data.chargeStruct.chargeTypeId;
res.volley = 0; res.volley = 0;
for (const auto &effector : data.effectors()) for (const auto &effector : data.effectors)
{ {
res.volley += effector.chargeAmount(); res.volley += effector.chargeAmount;
} }
return res; return res;
@@ -157,19 +157,19 @@ Database::EsmAesData ObjectAesData::asEsmAesData(const AreaEffectSimulation::Min
{ {
Database::EsmAesData res; Database::EsmAesData res;
const AreaEffectSimulation::MineSegment &segment = EffectShowManagement::EffectShowMineArea::getEffectShowSegment(data); const AreaEffectSimulation::MineSegment &segment = EffectShowManagement::EffectShowMineArea::getEffectShowSegment(data);
LtsCoordTrans::UtmCoordinate startPositionUtm = LtsCoordTrans::UtmCoordinate::fromGeographic({segment.positionStart().lon(), segment.positionStart().lat()}); LtsCoordTrans::UtmCoordinate startPositionUtm = LtsCoordTrans::UtmCoordinate::fromGeographic({segment.positionStart.lon, segment.positionStart.lat});
LtsCoordTrans::UtmCoordinate endPositionUtm = LtsCoordTrans::UtmCoordinate::fromGeographic({segment.positionEnd().lon(), segment.positionEnd().lat()}, startPositionUtm.zone); LtsCoordTrans::UtmCoordinate endPositionUtm = LtsCoordTrans::UtmCoordinate::fromGeographic({segment.positionEnd.lon, segment.positionEnd.lat}, startPositionUtm.zone);
const QLineF line({startPositionUtm.x, startPositionUtm.y}, {endPositionUtm.x, endPositionUtm.y}); const QLineF line({startPositionUtm.x, startPositionUtm.y}, {endPositionUtm.x, endPositionUtm.y});
res.width = line.length(); res.width = line.length();
res.idAes = data.id(); res.idAes = data.id;
res.nameAes = QString::fromStdString(data.name()); res.nameAes = QString::fromStdString(data.name);
res.effectStateId = data.effectStateId().underlying(); res.effectStateId = data.effectStateId;
res.position = QPointF(segment.positionStart().lon(), segment.positionStart().lat()); res.position = QPointF(segment.positionStart.lon, segment.positionStart.lat);
res.depth = data.width(); res.depth = data.width;
res.effectStart = data.effectStart().is_set() ? data.effectStart().get() : 0; res.effectStart = data.effectStart.is_set() ? data.effectStart.get() : 0;
res.effectDuration = data.effectDuration(); res.effectDuration = data.effectDuration;
res.chargeTypeId = data.chargeStruct().chargeTypeId(); res.chargeTypeId = data.chargeStruct.chargeTypeId;
res.volley = 18; res.volley = 18;
return res; return res;
} }
@@ -74,22 +74,22 @@ Core::FunctionReplyObject ObjectEffectShow::removeObject()
//============================================================================= //=============================================================================
Core::FunctionReplyObject ObjectEffectShow::updateObject(const EffectShowManagement::EffectShow &data) Core::FunctionReplyObject ObjectEffectShow::updateObject(const EffectShowManagement::EffectShow &data)
{ {
if (data.id() <= 0) if (data.id <= 0)
return Core::FunctionReplyObject(data.id(), tr_lts("dds", "Object not valid/blocked")); return Core::FunctionReplyObject(data.id, tr_lts("dds", "Object not valid/blocked"));
if (m_data.orderConfirmation == EffectShowManagement::OrderConfirmation_e_def::Execution) if (m_data.orderConfirmation == static_cast<int>(EffectShowManagement::OrderConfirmation_e::Execution))
return Core::FunctionReplyObject(data.id(), tr_lts("dds", "Changes rejected due to Effect Show in execution.")); return Core::FunctionReplyObject(data.id, tr_lts("dds", "Changes rejected due to Effect Show in execution."));
DEBUG_LOG(m_logger) << "updateObject(data topic) complete ->" DEBUG_LOG(m_logger) << "updateObject(data topic) complete ->"
<< "\n id " << m_data.id << " new: " << data.id() << "\n id " << m_data.id << " new: " << data.id
<< "\n centerPosition x " << m_data.centerPosition.x() << " new: " << data.position().lon() << "\n centerPosition x " << m_data.centerPosition.x() << " new: " << data.position.lon
<< "\n centerPosition y " << m_data.centerPosition.y() << " new: " << data.position().lat() << "\n centerPosition y " << m_data.centerPosition.y() << " new: " << data.position.lat
<< "\n idAreaEffectSimulation " << m_data.idAreaEffectSimulation << " new: " << data.idAreaEffectSimulation() << "\n idAreaEffectSimulation " << m_data.idAreaEffectSimulation << " new: " << data.idAreaEffectSimulation
<< "\n esmParticipantId " << m_data.esmParticipantId << " new: " << data.esmParticipantId() << "\n esmParticipantId " << m_data.esmParticipantId << " new: " << data.esmParticipantId
<< "\n numOfVolley " << m_data.numOfVolley << " new: " << data.numOfVolley() << "\n numOfVolley " << m_data.numOfVolley << " new: " << data.numOfVolley
<< "\n shotsPerVolley " << m_data.shotsPerVolley << " new: " << data.shotsPerVolley() << "\n shotsPerVolley " << m_data.shotsPerVolley << " new: " << data.shotsPerVolley
<< "\n orderConfirmation " << m_data.orderConfirmation << " new: " << data.orderConfirmation().underlying() << "\n orderConfirmation " << m_data.orderConfirmation << " new: " << data.orderConfirmation
<< "\n answerText " << m_data.answerText << " new: " << QString::fromStdString((data.answerText())) << "\n answerText " << m_data.answerText << " new: " << QString::fromStdString((data.answerText))
<< "\n startTime " << m_data.startTime << "\n startTime " << m_data.startTime
<< "\n duration " << m_data.duration << "\n duration " << m_data.duration
<< "\n lowerLeftPosition x " << m_data.lowerLeftPosition.x() << "\n lowerLeftPosition x " << m_data.lowerLeftPosition.x()
@@ -99,24 +99,24 @@ Core::FunctionReplyObject ObjectEffectShow::updateObject(const EffectShowManagem
<< "\n areaRotation " << m_data.areaRotation << "\n areaRotation " << m_data.areaRotation
<< "\n typeOfAmmunition " << m_data.typeOfAmmunition; << "\n typeOfAmmunition " << m_data.typeOfAmmunition;
m_data.id = data.id(); m_data.id = data.id;
m_data.name = QString::fromStdString(data.name()); m_data.name = QString::fromStdString(data.name);
m_data.startTime = data.startTime().is_set() ? data.startTime().get() : 0; m_data.startTime = data.startTime.is_set() ? data.startTime.get() : 0;
m_data.duration = data.duration(); m_data.duration = data.duration;
m_data.idAreaEffectSimulation = data.idAreaEffectSimulation(); m_data.idAreaEffectSimulation = data.idAreaEffectSimulation;
m_data.nameAreaEfffectSimulation = QString::fromStdString(data.nameAreaEffectSimulation()); m_data.nameAreaEfffectSimulation = QString::fromStdString(data.nameAreaEffectSimulation);
m_data.esmParticipantId = data.esmParticipantId(); m_data.esmParticipantId = data.esmParticipantId;
m_data.centerPosition.setX(data.position().lon()); m_data.centerPosition.setX(data.position.lon);
m_data.centerPosition.setY(data.position().lat()); m_data.centerPosition.setY(data.position.lat);
m_data.numOfVolley = data.numOfVolley(); m_data.numOfVolley = data.numOfVolley;
m_data.shotsPerVolley = data.shotsPerVolley(); m_data.shotsPerVolley = data.shotsPerVolley;
m_data.lowerLeftPosition.setX(data.lowerLeftPosition().lon()); m_data.lowerLeftPosition.setX(data.lowerLeftPosition.lon);
m_data.lowerLeftPosition.setY(data.lowerLeftPosition().lat()); m_data.lowerLeftPosition.setY(data.lowerLeftPosition.lat);
m_data.areaDepth = data.areaDepth(); m_data.areaDepth = data.areaDepth;
m_data.areaWidth = data.areaWidth(); m_data.areaWidth = data.areaWidth;
m_data.areaRotation = data.areaRotation(); m_data.areaRotation = data.areaRotation;
m_data.orderConfirmation = data.orderConfirmation().underlying(); m_data.orderConfirmation = data.orderConfirmation;
m_data.answerText = QString::fromStdString((data.answerText())); m_data.answerText = QString::fromStdString((data.answerText));
if (!m_mainHandler->db()->update(m_data)) if (!m_mainHandler->db()->update(m_data))
return Core::FunctionReplyObject(m_data.id, tr_lts("dds", "Error updating EffectShow into database")); return Core::FunctionReplyObject(m_data.id, tr_lts("dds", "Error updating EffectShow into database"));
@@ -132,10 +132,10 @@ Core::FunctionReplyObject ObjectEffectShow::updateObject(const EffectShowManagem
bool ObjectEffectShow::updateObject(const ConvertFromTab::OrderConfirmation_t &data) bool ObjectEffectShow::updateObject(const ConvertFromTab::OrderConfirmation_t &data)
{ {
DEBUG_LOG(m_logger) << "updateObject() partly ->" DEBUG_LOG(m_logger) << "updateObject() partly ->"
<< "\n orderConfirmation " << m_data.orderConfirmation << " new: " << data.confirmation.underlying() << "\n orderConfirmation " << m_data.orderConfirmation << " new: " << data.confirmation
<< "\n answerText " << m_data.answerText << " new: " << data.answerText; << "\n answerText " << m_data.answerText << " new: " << data.answerText;
m_data.orderConfirmation = data.confirmation.underlying(); m_data.orderConfirmation = data.confirmation;
m_data.answerText = data.answerText; m_data.answerText = data.answerText;
if (!m_mainHandler->db()->update(m_data)) if (!m_mainHandler->db()->update(m_data))
@@ -190,7 +190,7 @@ bool ObjectEffectShow::updateObject(const Database::EsmEffectShow &data)
//============================================================================= //=============================================================================
bool ObjectEffectShow::resetOrderConfirmation() bool ObjectEffectShow::resetOrderConfirmation()
{ {
m_data.orderConfirmation = EffectShowManagement::OrderConfirmation_e_def::WaitingForAcceptance; m_data.orderConfirmation = EffectShowManagement::OrderConfirmation_e::WaitingForAcceptance;
m_data.answerText.clear(); m_data.answerText.clear();
if (!m_mainHandler->db()->update(m_data)) if (!m_mainHandler->db()->update(m_data))
@@ -265,27 +265,27 @@ ConvertToTab::EffectShowContinue_t ObjectEffectShow::getContinueOrder() const
void ObjectEffectShow::onPublishData() void ObjectEffectShow::onPublishData()
{ {
EffectShowManagement::EffectShow ddsData; EffectShowManagement::EffectShow ddsData;
ddsData.id(m_data.id); ddsData.id = m_data.id;
ddsData.name(m_data.name.toStdString()); ddsData.name = m_data.name.toStdString();
ddsData.startTime(m_data.startTime); ddsData.startTime = m_data.startTime;
ddsData.duration(m_data.duration); ddsData.duration = m_data.duration;
ddsData.idAreaEffectSimulation(m_data.idAreaEffectSimulation); ddsData.idAreaEffectSimulation = m_data.idAreaEffectSimulation;
ddsData.nameAreaEffectSimulation(m_data.nameAreaEfffectSimulation.toStdString()); ddsData.nameAreaEffectSimulation = m_data.nameAreaEfffectSimulation.toStdString();
ddsData.esmParticipantId(m_data.esmParticipantId); ddsData.esmParticipantId = m_data.esmParticipantId;
ddsData.position() = Core::GeoPosition2D(m_data.centerPosition.x(), m_data.centerPosition.y()); ddsData.position = Core::GeoPosition2D(m_data.centerPosition.x(), m_data.centerPosition.y());
ddsData.numOfVolley(m_data.numOfVolley); ddsData.numOfVolley = m_data.numOfVolley;
ddsData.shotsPerVolley(m_data.shotsPerVolley); ddsData.shotsPerVolley = m_data.shotsPerVolley;
//we need this for the smoke type //we need this for the smoke type
ddsData.lowerLeftPosition() = Core::GeoPosition2D(m_data.lowerLeftPosition.x(), m_data.lowerLeftPosition.y()); ddsData.lowerLeftPosition = Core::GeoPosition2D(m_data.lowerLeftPosition.x(), m_data.lowerLeftPosition.y());
ddsData.areaDepth(m_data.areaDepth); ddsData.areaDepth = m_data.areaDepth;
ddsData.areaWidth(m_data.areaWidth); ddsData.areaWidth = m_data.areaWidth;
ddsData.areaRotation(m_data.areaRotation); ddsData.areaRotation = m_data.areaRotation;
ddsData.typeOfAmmunition(m_data.typeOfAmmunition); ddsData.typeOfAmmunition = m_data.typeOfAmmunition;
ddsData.orderConfirmation(EffectShowManagement::OrderConfirmation_e::inner_enum(m_data.orderConfirmation)); ddsData.orderConfirmation = EffectShowManagement::OrderConfirmation_e::inner_enum(m_data.orderConfirmation);
ddsData.answerText(m_data.answerText.toStdString()); ddsData.answerText = m_data.answerText.toStdString();
ddsData.isDeleted(false); ddsData.isDeleted = false;
ddsData.isUsed(false); ddsData.isUsed = false;
@@ -71,15 +71,15 @@ void ObjectEffectShowActorRelocation::onPublishData()
{ {
EffectShowManagement::EffectShowActorRelocation ddsData; EffectShowManagement::EffectShowActorRelocation ddsData;
ddsData.id(m_data.id); ddsData.id = m_data.id;
ddsData.esmParticipantId(m_data.esmParticipantId); ddsData.esmParticipantId = m_data.esmParticipantId;
ddsData.arrival_time(m_data.arrivalTime); ddsData.arrival_time = m_data.arrivalTime;
ddsData.position(Core::GeoPosition2D(m_data.position.x(), m_data.position.y())); ddsData.position = Core::GeoPosition2D(m_data.position.x(), m_data.position.y());
ddsData.info(m_data.info.toStdString()); ddsData.info = m_data.info.toStdString();
ddsData.orderConfirmation(EffectShowManagement::OrderConfirmation_e::inner_enum(m_data.orderConfirmation)); ddsData.orderConfirmation = EffectShowManagement::OrderConfirmation_e::inner_enum(m_data.orderConfirmation);
ddsData.answerText(m_data.answertText.toStdString()); ddsData.answerText = m_data.answertText.toStdString();
ddsData.isDeleted(false); ddsData.isDeleted = false;
ddsData.isUsed(false); ddsData.isUsed = false;
INFO_LOG(m_logger) << "Publish EsmEffectShowActorRelocation-data to dds (" << m_data.id << ") ..."; INFO_LOG(m_logger) << "Publish EsmEffectShowActorRelocation-data to dds (" << m_data.id << ") ...";
@@ -109,13 +109,13 @@ Database::EsmEffectShowActorRelocation ObjectEffectShowActorRelocation::ddsToDb(
{ {
Database::EsmEffectShowActorRelocation dbData; Database::EsmEffectShowActorRelocation dbData;
dbData.id = ddsData.id(); dbData.id = ddsData.id;
dbData.esmParticipantId = ddsData.esmParticipantId(); dbData.esmParticipantId = ddsData.esmParticipantId;
dbData.arrivalTime = ddsData.arrival_time().get(); dbData.arrivalTime = ddsData.arrival_time.get();
dbData.position = QPointF(ddsData.position().lon(), ddsData.position().lat()); dbData.position = QPointF(ddsData.position.lon, ddsData.position.lat);
dbData.info = QString::fromStdString(ddsData.info()); dbData.info = QString::fromStdString(ddsData.info);
dbData.orderConfirmation = ddsData.orderConfirmation().underlying(); dbData.orderConfirmation = ddsData.orderConfirmation;
dbData.answertText = QString::fromStdString(ddsData.answerText()); dbData.answertText = QString::fromStdString(ddsData.answerText);
return dbData; return dbData;
} }
//============================================================================= //=============================================================================
@@ -100,17 +100,17 @@ void ObjectEffectShowVehicleStatus::onPublishData()
EffectShowManagement::EffectShowVehicleStatus ddsData; EffectShowManagement::EffectShowVehicleStatus ddsData;
//ddsData.equipmentNumber(m_data.equipmentNumber); //ddsData.equipmentNumber(m_data.equipmentNumber);
ddsData.airSpeedMeterFail(m_data.airSpeedMeterFail); ddsData.airSpeedMeterFail = m_data.airSpeedMeterFail;
ddsData.ammunitionAvailable(m_data.ammunitionAvailable); ddsData.ammunitionAvailable = m_data.ammunitionAvailable;
ddsData.ammunitionMagazine(m_data.ammunitionMagazine); ddsData.ammunitionMagazine = m_data.ammunitionMagazine;
ddsData.controlComputerFail(m_data.controlComputerFail); ddsData.controlComputerFail = m_data.controlComputerFail;
ddsData.feature(EffectShowManagement::Feature_e_def::type(m_data.feature)); ddsData.feature = EffectShowManagement::Feature_e::type(m_data.feature);
ddsData.esmParticipantId(m_data.esmParticipantId); ddsData.esmParticipantId = m_data.esmParticipantId;
ddsData.inclinationSensorFail(m_data.inclinationSensorFail); ddsData.inclinationSensorFail = m_data.inclinationSensorFail;
ddsData.magazineFail(m_data.magazineFail); ddsData.magazineFail = m_data.magazineFail;
ddsData.nameEffectShowActor(m_data.nameEffectShowActor.toStdString()); ddsData.nameEffectShowActor = m_data.nameEffectShowActor.toStdString();
ddsData.operational(m_data.operational); ddsData.operational = m_data.operational;
ddsData.sampleTime(m_data.timestamp); ddsData.sampleTime = m_data.timestamp;
INFO_LOG(m_logger) << "Publish EsmEffectShowVehicleStatus-data to dds (" << m_data.esmParticipantId << ") ..."; INFO_LOG(m_logger) << "Publish EsmEffectShowVehicleStatus-data to dds (" << m_data.esmParticipantId << ") ...";
if (!m_mainHandler->dds()->dts()->publish(ddsData)) if (!m_mainHandler->dds()->dts()->publish(ddsData))