diff --git a/include/SimCore/Messages/SimTrack.hpp b/include/SimCore/Messages/SimTrack.hpp index 77c5321..636b84a 100644 --- a/include/SimCore/Messages/SimTrack.hpp +++ b/include/SimCore/Messages/SimTrack.hpp @@ -35,6 +35,7 @@ namespace SimCore void setPosition(double x, double y, double z); SimCore::Position getPosition(); SimCore::Identifier getIdentifier(); + /// @brief /// @param emission void addEmission(Emission emission); diff --git a/src/SimCore/Messages/SimTrack.cpp b/src/SimCore/Messages/SimTrack.cpp index c79c3c3..033e569 100644 --- a/src/SimCore/Messages/SimTrack.cpp +++ b/src/SimCore/Messages/SimTrack.cpp @@ -10,14 +10,14 @@ namespace SimCore } SimTrack::SimTrack(WHISPER::SourceType sourcetype,SimCore::EntityKind entityKind) - :ID_(SimCore::Identifier()),SourceType_(WHISPER::SourceType::SIMCOMTROLER) + :ID_(SimCore::Identifier()),SourceType_(sourcetype) { EntityKind.setValue(entityKind); } SimTrack::SimTrack(SimCore::Identifier id ,WHISPER::SourceType sourcetype,SimCore::EntityKind entityKind ) - :ID_(id),SourceType_(WHISPER::SourceType::SIMCOMTROLER) + :ID_(id),SourceType_(sourcetype) { EntityKind.setValue(entityKind); @@ -53,7 +53,7 @@ namespace SimCore WHISPER::Message SimTrack::buildMessage(SimCore::Identifier parentID) { - WHISPER::Message msg(parentID.getParentNumber(), parentID.getNumber(),WHISPER::MsgTopics::TRACK , WHISPER::MsgType::GROUND_TRUTH_TRACK, WHISPER::SourceType::GATEWAY); + WHISPER::Message msg(parentID.getParentNumber(), parentID.getNumber(),WHISPER::MsgTopics::TRACK , WHISPER::MsgType::GROUND_TRUTH_TRACK, this->SourceType_); messages::SimTrack::SimTrack SimTrack; @@ -118,18 +118,22 @@ namespace SimCore { track.setPosition(trackMsg.mutable_geocentricposition()->x(), trackMsg.mutable_geocentricposition()->y(), trackMsg.mutable_geocentricposition()->z()); } + if (trackMsg.has_contactcourse()) { track.Course.setValue(trackMsg.contactcourse()); } + if (trackMsg.has_contactspeed()) { track.Speed.setValue(trackMsg.contactspeed()); } + if (trackMsg.has_conactpitch()) { track.Pitch.setValue(trackMsg.contactspeed()); } + if (trackMsg.has_contactrcs()) { track.RCS.setValue(trackMsg.contactrcs()); diff --git a/tests/test_SimTrack.cpp b/tests/test_SimTrack.cpp index 225c0e2..aac6feb 100644 --- a/tests/test_SimTrack.cpp +++ b/tests/test_SimTrack.cpp @@ -1,3 +1,4 @@ +#include "SimCore/Identifier.hpp" #include #include #include @@ -14,6 +15,8 @@ SCENARIO("Testing the SimCore Track") { GIVEN("different Attributes for a Track in different forms") { + auto OwnID = SimCore::Identifier(); + Eigen::Vector3d GeocentPos1; GeocentPos1(SimCore::GeocentricPosition::X) = 3784014.333; GeocentPos1(SimCore::GeocentricPosition::Y) = 899869.779; @@ -52,17 +55,23 @@ SCENARIO("Testing the SimCore Track") auto idEmi = emi1.getID(); track.addEmission(emi1); - // serializedMSG = track.buildMessage(parentID).serialize(); - // msg = std::make_shared(serializedMSG); - // if (msg.get()->msgType_ == WHISPER::GROUND_TRUTH_TRACK) { + + serializedMSG = track.buildMessage(OwnID).serialize(); + + msg = std::make_shared(serializedMSG); + + if (msg.get()->msgType_ == WHISPER::GROUND_TRUTH_TRACK) { - // trackPtr = std::make_shared(std::move(SimCore::SimTrack::unpack(*msg))); - // } + LOG_S(INFO)<< msg.get()->topic_; + trackPtr = std::make_shared(std::move(SimCore::SimTrack::unpack(*msg))); + } // std::string trackstring = track.buildMessage(parentID).serialize(); - // SimCore::GroundTruthTrack trackDeserialized = SimCore::GroundTruthTrack::unpack(*msg); + SimCore::SimTrack trackDeserialized = SimCore::SimTrack::unpack(*msg); + + std::shared_ptr esm= track.getEmission(emi1.getID()); esm->packEmission(); @@ -76,11 +85,10 @@ SCENARIO("Testing the SimCore Track") REQUIRE(track.getEmission(emi1.getID()).get()->getID() == idEmi); // REQUIRE(msg.get()->msgType_ == WHISPER::GROUND_TRUTH_TRACK); - // REQUIRE(trackPtr->Speed.getValue() == speed); - // REQUIRE(trackPtr->getPosition().getGeocentricPos() == GeocentPos1); - // REQUIRE(trackPtr->getIdentifier().getNumber() > 0); - // REQUIRE(trackDeserialized.getIdentifier().getNumber() > 0); + REQUIRE(trackPtr->Speed.getValue() == speed); + REQUIRE(trackPtr->getPosition().getGeocentricPos() == GeocentPos1); + REQUIRE(trackDeserialized.getEmission(emi1.getID()).get()->getID() == idEmi);