ADD: rework the Trackmessages and added/changed protos for the messages;
This commit is contained in:
69
tests/test_EntityClass.cpp
Normal file
69
tests/test_EntityClass.cpp
Normal file
@@ -0,0 +1,69 @@
|
||||
|
||||
#include "SimCore/Identifier.hpp"
|
||||
#include "WHISPER/Messages/Message.hpp"
|
||||
#include <SimCore/SimCore.hpp>
|
||||
#include <memory>
|
||||
#include <string>
|
||||
#include <thread>
|
||||
#define CATCH_CONFIG_MAIN
|
||||
#include <catch2/catch.hpp>
|
||||
#include <SimCore/Templates/Entity.hpp>
|
||||
|
||||
// SimCore::Identifier OwnID, SimCore::Identifier ParentID, SimCore::SensorKinds SensorKind,std::uint32_t GroundTruthPort, std::uint32_t ParentPort,std::string ParentIPAddress
|
||||
class Ship : public SimCore::Entity
|
||||
{
|
||||
public:
|
||||
Ship(SimCore::Identifier OwnID,
|
||||
std::string EntityName,
|
||||
WHISPER::SourceType ownType,
|
||||
SimCore::Identifier ParentID,
|
||||
SimCore::EntityKind EntityKind,
|
||||
std::uint32_t GroundTruthPort,
|
||||
std::uint32_t CommandPort,
|
||||
std::string CommandIPAddress):
|
||||
Entity( OwnID,EntityName,ownType, ParentID, EntityKind, GroundTruthPort, CommandPort, CommandIPAddress)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
void specificPhysicsCalculations(std::chrono::milliseconds::rep duration) override
|
||||
{
|
||||
LOG_S(INFO)<<"calculating every " << duration << "milliseconds";
|
||||
};
|
||||
|
||||
void specificReloadCharacteristicts() override
|
||||
{
|
||||
LOG_S(INFO)<<"loading specifications";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
SCENARIO("Testing the SimCore Sensor")
|
||||
{
|
||||
GIVEN("different Attributes for a Track in different forms")
|
||||
{
|
||||
SimCore::Identifier IDParent(0,1,false);
|
||||
SimCore::Identifier ID1(0,2,false);
|
||||
Ship Ship(ID1,"FGS Hamburg",WHISPER::SourceType::SHIP,IDParent,SimCore::EntityKind::SURFACE,8000,8001,"127.0.0.1");
|
||||
Ship.start();
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(5000));
|
||||
Ship.stop();
|
||||
WHEN("constructing Track Object with data")
|
||||
{
|
||||
|
||||
THEN("check if Track attributes are correct")
|
||||
{
|
||||
// REQUIRE(testOperator == true);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
} //THEN
|
||||
} // WHEN
|
||||
} // GIVEN
|
||||
} //SCENARIO
|
||||
@@ -1,7 +1,9 @@
|
||||
#include "SimCore/Identifier.hpp"
|
||||
#include "SimCore/IdentifierMaker.hpp"
|
||||
#include <SimCore/Messages/Track.hpp>
|
||||
#include <SimCore/Messages/GroundThruthTrack.hpp>
|
||||
#include <WHISPER/Messages/Message.hpp>
|
||||
#include <SimCore/SimCore.hpp>
|
||||
#include <algorithm>
|
||||
#include <memory>
|
||||
#define CATCH_CONFIG_MAIN
|
||||
#include <catch2/catch.hpp>
|
||||
@@ -29,7 +31,8 @@ SCENARIO("Testing the SimCore Track")
|
||||
|
||||
std::shared_ptr<WHISPER::Message> msg = NULL;
|
||||
|
||||
std::shared_ptr<SimCore::Track> trackPtr = NULL;
|
||||
std::shared_ptr<SimCore::GroundTruthTrack> trackPtr = NULL;
|
||||
SimCore::Identifier parentID(0,1,false);
|
||||
SimCore::IdentifierMaker IDMaker;
|
||||
auto ID = IDMaker.getNewIdentifier(1,SimCore::ObjectSource::EXTERNAL);
|
||||
|
||||
@@ -39,24 +42,25 @@ SCENARIO("Testing the SimCore Track")
|
||||
WHEN("constructing Track Object with data")
|
||||
{
|
||||
SimCore::Position pos( GeocentPos1(SimCore::GeocentricPosition::X), GeocentPos1(SimCore::GeocentricPosition::Y), GeocentPos1(SimCore::GeocentricPosition::Z));
|
||||
SimCore::Track track(WHISPER::SourceType::SHIP,*ID.get());
|
||||
SimCore::GroundTruthTrack track(WHISPER::SourceType::SHIP,*ID.get(),SimCore::TrackKind::GROUND_TRUTH_TRACK);
|
||||
track.setCourse(course);
|
||||
track.setSpeed(speed);
|
||||
track.setPosition(GeocentPos1(SimCore::X),GeocentPos1(SimCore::Y),GeocentPos1(SimCore::Z));
|
||||
|
||||
if (track.getPostion() == pos) {
|
||||
testOperator = true;
|
||||
testOperator = true;
|
||||
}
|
||||
serializedMSG = track.serialize();
|
||||
serializedMSG = track.buildMessage(parentID).serialize();
|
||||
msg = std::make_shared<WHISPER::Message>(serializedMSG);
|
||||
|
||||
if (msg.get()->msgType_ == WHISPER::RAW_TRACK) {
|
||||
trackPtr = std::make_shared<SimCore::Track>(serializedMSG);
|
||||
if (msg.get()->msgType_ == WHISPER::GROUND_TRUTH_TRACK) {
|
||||
|
||||
trackPtr = std::make_shared<SimCore::GroundTruthTrack>(std::move(SimCore::GroundTruthTrack::unpack(*msg)));
|
||||
}
|
||||
|
||||
std::string trackstring = track.serialize();
|
||||
std::string trackstring = track.buildMessage(parentID).serialize();
|
||||
|
||||
SimCore::Track trackDeserialized(trackstring);
|
||||
SimCore::GroundTruthTrack trackDeserialized = SimCore::GroundTruthTrack::unpack(*msg);
|
||||
|
||||
|
||||
THEN("check if Track attributes are correct")
|
||||
@@ -67,7 +71,7 @@ SCENARIO("Testing the SimCore Track")
|
||||
REQUIRE(track.getSpeedinKnots() == knots);
|
||||
REQUIRE(track.getPostion().getGeocentricPos() == pos.getGeocentricPos());
|
||||
|
||||
REQUIRE(msg.get()->msgType_ == WHISPER::RAW_TRACK);
|
||||
REQUIRE(msg.get()->msgType_ == WHISPER::GROUND_TRUTH_TRACK);
|
||||
REQUIRE(trackPtr->getSpeed() == speed);
|
||||
REQUIRE(trackPtr->getPostion().getGeocentricPos() == GeocentPos1);
|
||||
REQUIRE(trackPtr->getIdentifier().getNumber() > 0);
|
||||
@@ -11,6 +11,7 @@
|
||||
|
||||
SCENARIO("Testing the SimCore Track") {
|
||||
GIVEN("different Attributes for a Track in different forms") {
|
||||
SimCore::Identifier ParentID(0,1,false);
|
||||
Eigen::Vector3d GeocentPos1;
|
||||
GeocentPos1(SimCore::GeocentricPosition::X) = 3784014.333;
|
||||
GeocentPos1(SimCore::GeocentricPosition::Y) = 899869.779;
|
||||
@@ -23,41 +24,45 @@ SCENARIO("Testing the SimCore Track") {
|
||||
|
||||
SimCore::IdentifierMaker IDMaker;
|
||||
std::shared_ptr<SimCore::Identifier> ID =
|
||||
IDMaker.getNewIdentifier(0,SimCore::ObjectSource::INTERNAL);
|
||||
IDMaker.getNewIdentifier(ParentID.getNumber(),SimCore::ObjectSource::INTERNAL);
|
||||
LOG_S(INFO)<<"ID: " << ID->getNumber();
|
||||
|
||||
std::shared_ptr<SimCore::RadarTrack> RadartrackPtr =
|
||||
std::make_shared<SimCore::RadarTrack>(1, WHISPER::SourceType::SENSOR, *ID.get());
|
||||
std::make_shared<SimCore::RadarTrack>( WHISPER::SourceType::SENSOR, *ID.get());
|
||||
|
||||
RadartrackPtr->setPosition(pos);
|
||||
RadartrackPtr->setBearing(90);
|
||||
RadartrackPtr->setCourse(360);
|
||||
RadartrackPtr->setRange(1000);
|
||||
RadartrackPtr->setEnvironment(SimCore::ContactEnvironment::SURFACE);
|
||||
RadartrackPtr->setEnvironment(SimCore::EntityKind::SURFACE);
|
||||
|
||||
bool isEqual = false;
|
||||
WHEN("constructing Track Object with data") {
|
||||
std::string serializedMSG = RadartrackPtr->serialize();
|
||||
|
||||
SimCore::RadarTrack radarTrack2(serializedMSG);
|
||||
std::string serializedMSG = RadartrackPtr->buildMessage(ParentID).serialize();
|
||||
|
||||
SimCore::Identifier ID1(radarTrack2.getIdentifier());
|
||||
auto tr0 = *RadartrackPtr.get();
|
||||
SimCore::Identifier ID2(tr0.getIdentifier());
|
||||
// SimCore::RadarTrack radarTrack2(serializedMSG);
|
||||
|
||||
LOG_S(INFO)<<"ID2 source: " << ID2.isExternal();
|
||||
// SimCore::Identifier ID1(radarTrack2.getID());
|
||||
|
||||
// auto tr0 = *RadartrackPtr.get();
|
||||
// SimCore::Identifier ID2(tr0.getID());
|
||||
|
||||
if (ID1 == ID2) {
|
||||
isEqual = true;
|
||||
}
|
||||
// LOG_S(INFO)<<"ID21 source: " << ID1.isExternal();
|
||||
|
||||
// LOG_S(INFO)<<"ID2 source: " << ID2.isExternal();
|
||||
|
||||
// if (ID1 == ID2) {
|
||||
// isEqual = true;
|
||||
// }
|
||||
|
||||
|
||||
THEN("check if Track attributes are correct") {
|
||||
REQUIRE(RadartrackPtr->getIdentifier().getNumber() == 1);
|
||||
REQUIRE(isEqual == true);
|
||||
REQUIRE(radarTrack2.getIdentifier() == RadartrackPtr->getIdentifier());
|
||||
REQUIRE(radarTrack2.getIdentifier().getNumber() == RadartrackPtr->getIdentifier().getNumber());
|
||||
REQUIRE(radarTrack2.getPostion().getGeocentricPos() == RadartrackPtr->getPostion().getGeocentricPos());
|
||||
// REQUIRE(RadartrackPtr->getID().getNumber() == 1);
|
||||
// REQUIRE(isEqual == true);
|
||||
// REQUIRE(radarTrack2.getID() == RadartrackPtr->getID());
|
||||
// REQUIRE(radarTrack2.getID().getNumber() == RadartrackPtr->getID().getNumber());
|
||||
// REQUIRE(radarTrack2.getPostion().getGeocentricPos() == RadartrackPtr->getPostion().getGeocentricPos());
|
||||
|
||||
} // THEN
|
||||
} // WHEN
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
#include <thread>
|
||||
#define CATCH_CONFIG_MAIN
|
||||
#include <catch2/catch.hpp>
|
||||
#include <SimCore/Sensor.hpp>
|
||||
#include <SimCore/Templates/Sensor.hpp>
|
||||
|
||||
// SimCore::Identifier OwnID, SimCore::Identifier ParentID, SimCore::SensorKinds SensorKind,std::uint32_t GroundTruthPort, std::uint32_t ParentPort,std::string ParentIPAddress
|
||||
class Radar : public SimCore::Sensor
|
||||
|
||||
78
tests/test_Trackstore.cpp
Normal file
78
tests/test_Trackstore.cpp
Normal file
@@ -0,0 +1,78 @@
|
||||
|
||||
#include "SimCore/Identifier.hpp"
|
||||
#include "SimCore/IdentifierMaker.hpp"
|
||||
#include "SimCore/Messages/GroundThruthTrack.hpp"
|
||||
#include "SimCore/Messages/SensorTrack.hpp"
|
||||
#include "SimCore/Messages/Track.hpp"
|
||||
#include "SimCore/SimCore.hpp"
|
||||
#include "WHISPER/Messages/Message.hpp"
|
||||
#include <list>
|
||||
#include <memory>
|
||||
#include <string>
|
||||
#define CATCH_CONFIG_MAIN
|
||||
#include <catch2/catch.hpp>
|
||||
#include <SimCore/Messages/RadarTrack.hpp>
|
||||
#include <loguru.hpp>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
SCENARIO("Testing the SimCore Track")
|
||||
{
|
||||
GIVEN("different Attributes for a Track in different forms")
|
||||
{
|
||||
|
||||
std::vector<std::shared_ptr<SimCore::Track>> trackstore;
|
||||
|
||||
SimCore::Identifier parentID(0,1,false);
|
||||
|
||||
|
||||
SimCore::IdentifierMaker IDMaker;
|
||||
auto ID1 = IDMaker.getNewIdentifier(1, SimCore::ObjectSource::INTERNAL);
|
||||
auto ID2 = IDMaker.getNewIdentifier(1, SimCore::ObjectSource::INTERNAL);
|
||||
|
||||
auto track = std::make_shared<SimCore::RadarTrack>(WHISPER::SourceType::SENSOR,*ID1.get());
|
||||
track->setSpeed(100);
|
||||
|
||||
trackstore.push_back(track);
|
||||
|
||||
auto track2 = std::make_shared<SimCore::GroundTruthTrack>(WHISPER::SourceType::SENSOR,*ID2,SimCore::TrackKind::OWN_TRACK);
|
||||
track2->setSpeed(50);
|
||||
trackstore.push_back(track2);
|
||||
|
||||
auto receivedTrack1 = trackstore[0];
|
||||
auto receivedTrack2 = trackstore[1];
|
||||
|
||||
|
||||
WHEN("constructing Track Object with data")
|
||||
{
|
||||
// auto rev = list.front();
|
||||
// LOG_S(INFO)<<rev->msgType_;
|
||||
// // auto track2 = dynamic_pointer_cast<SimCore::RadarTrack>(rev);
|
||||
|
||||
|
||||
THEN("check if Track attributes are correct")
|
||||
{
|
||||
REQUIRE(trackstore.size() == 2);
|
||||
|
||||
REQUIRE(receivedTrack1->getTrackkind() == SimCore::TrackKind::RADAR_TRACK);
|
||||
|
||||
if (receivedTrack1->getTrackkind() == SimCore::TrackKind::RADAR_TRACK) {
|
||||
auto radarTrackRecv1 = std::dynamic_pointer_cast<SimCore::RadarTrack>(receivedTrack1);
|
||||
REQUIRE(radarTrackRecv1->getSpeed() == 100);
|
||||
|
||||
}
|
||||
|
||||
REQUIRE(receivedTrack2->getTrackkind() == SimCore::TrackKind::OWN_TRACK);
|
||||
// REQUIRE(track12->getSpeed() == 100);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
} //THEN
|
||||
} // WHEN
|
||||
} // GIVEN
|
||||
} //SCENARIO
|
||||
Reference in New Issue
Block a user