ADD: use of new sensor messages

This commit is contained in:
Henry Winkel
2024-03-07 16:09:34 +01:00
parent bf263b64f6
commit 92cddbbff4
10 changed files with 104 additions and 53 deletions

View File

@@ -0,0 +1,2 @@
[{"SensorType":"Radar","Sensors":[{"SensorContacts":[null],"SensorDamaged":"false","SensorEnabled":"false","SensorID":"4c4e8e93-a935-49ee-a2a2-7cd474bff47f","SensorName":"Sensor","SensorStatus":"Unknown"}]},{"SensorType":"ESMSensor"},{"SensorType":"Sonar"},{"SensorType":"VisualSensor"},{"SensorType":"Radar","Sensors":[{"SensorContacts":[null],"SensorDamaged":"false","SensorEnabled":"false","SensorID":"4c4e8e93-a935-49ee-a2a2-7cd474bff47f","SensorName":"Sensor","SensorStatus":"Unknown"}]},{"SensorType":"ESMSensor"},{"SensorType":"Sonar"},{"SensorType":"VisualSensor","Sensors":[{"SensorContacts":[null],"SensorDamaged":"false","SensorEnabled":"true","SensorID":"bce82b25-5796-4c45-89ca-524d599dfa12","SensorName":"Sensor2","SensorStatus":"Active"}]},{"SensorType":"Radar","Sensors":[{"SensorContacts":[null],"SensorDamaged":"false","SensorEnabled":"false","SensorID":"4c4e8e93-a935-49ee-a2a2-7cd474bff47f","SensorName":"Sensor","SensorStatus":"Unknown"},{"SensorContacts":[null],"SensorDamaged":"false","SensorEnabled":"false","SensorID":"c7f97190-0f71-477e-9a03-382089c71f4d","SensorName":"Sensor1","SensorStatus":"Unknown"}]},{"SensorType":"ESMSensor"},{"SensorType":"Sonar"},{"SensorType":"VisualSensor","Sensors":[{"SensorContacts":[null],"SensorDamaged":"false","SensorEnabled":"true","SensorID":"bce82b25-5796-4c45-89ca-524d599dfa12","SensorName":"Sensor2","SensorStatus":"Active"}]},{"SensorType":"Radar","Sensors":[{"SensorContacts":[null],"SensorDamaged":"false","SensorEnabled":"false","SensorID":"4c4e8e93-a935-49ee-a2a2-7cd474bff47f","SensorName":"Sensor","SensorStatus":"Unknown"},{"SensorContacts":[null],"SensorDamaged":"false","SensorEnabled":"false","SensorID":"c7f97190-0f71-477e-9a03-382089c71f4d","SensorName":"Sensor1","SensorStatus":"Unknown"}]},{"SensorType":"ESMSensor","Sensors":[{"SensorContacts":[null],"SensorDamaged":"false","SensorEnabled":"false","SensorID":"d2b862ca-a950-40d7-8e62-28523ada4093","SensorName":"Sensor3","SensorStatus":"Unknown"}]},{"SensorType":"Sonar"},{"SensorType":"VisualSensor","Sensors":[{"SensorContacts":[null],"SensorDamaged":"false","SensorEnabled":"true","SensorID":"bce82b25-5796-4c45-89ca-524d599dfa12","SensorName":"Sensor2","SensorStatus":"Active"}]}]

View File

@@ -2,6 +2,7 @@
#include <SimCore/Identifier.hpp>
#include <SimCore/SimCore.hpp>
#include <memory>
#include <string>
#include <thread>
#define CATCH_CONFIG_MAIN
#include <catch2/catch.hpp>
@@ -13,12 +14,13 @@ class Radar : public Entities::Sensor
public:
Radar(SimCore::Identifier OwnID,
SimCore::Identifier ParentID,
std::string Name,
SimCore::SensorKinds SensorKind,
std::string GroundTruthAddress,
std::uint32_t GroundTruthPort,
std::uint32_t ParentPort,
std::string ParentIPAddress,
std::string radarType):Sensor(OwnID, ParentID, SensorKind,GroundTruthAddress, GroundTruthPort, ParentPort, ParentIPAddress),radarType_(radarType)
std::string radarType):Sensor(OwnID, ParentID, Name, SensorKind,GroundTruthAddress, GroundTruthPort, ParentPort, ParentIPAddress),radarType_(radarType)
{
}
@@ -46,7 +48,7 @@ SCENARIO("Testing the SimCore Sensor")
SimCore::Identifier IDParent;
SimCore::Identifier IDRadar;
Radar Radar(IDRadar,IDParent,SimCore::SensorKinds::RADAR,"239.0.0.1",8000,8001,"127.0.0.1","APAR");
Radar Radar(IDRadar,IDParent,"APAR", SimCore::SensorKinds::RADAR,"239.0.0.1",8000,8001,"127.0.0.1","APAR");
Radar.start();
WHEN("constructing Track Object with data")

View File

@@ -2,6 +2,8 @@
#include "DirectCommunicationClient.hpp"
#include "Entities/SensorControl.hpp"
#include "Entities/SensorManager.hpp"
#include "SimCore/Messages/SensorData.hpp"
#include "SimCore/Messages/SensorTrack.hpp"
#include "SimCore/Messages/SimTrack.hpp"
#include "SimCore/Position.hpp"
#include "nlohmann/json_fwd.hpp"
@@ -22,18 +24,20 @@ double fRand(double fMin, double fMax)
double f = (double)rand() / RAND_MAX;
return fMin + f * (fMax - fMin);
}
void sendRandomTrack(std::shared_ptr<DirectCommunication::DirectCommunicationClient> client, int number)
void sendRandomTrack(std::shared_ptr<DirectCommunication::DirectCommunicationClient> client,std::shared_ptr<Sensor::SensorControl> sensor, int number)
{
for (int i = 0; i < number; i++) {
std::string name = "test1-" + std::to_string(i);
SimCore::SimTrack track(name,SimCore::Kind::EntityKind::SURFACE,SimCore::Side::NEUTRAL);
auto simtrack = std::make_shared<SimCore::SimTrack>(name,SimCore::Kind::EntityKind::SURFACE,SimCore::Side::NEUTRAL);
auto track = std::make_shared<SimCore::SensorTrack>(simtrack,sensor);
// LOG_S(INFO)<<track->getSensorData()->getName();
SimCore::Position pos;
double lat = fRand(-90, 90);
double lon = fRand(-180, 180);
pos.setGeodesicPos( lat, lon, 0);
track.setPosition(pos);
client->sendMessage(track.buildMessage());
track->setPosition(pos);
client->sendMessage(track->buildMessage());
std::this_thread::sleep_for(std::chrono::milliseconds(100));
}
@@ -42,16 +46,16 @@ for (int i = 0; i < number; i++) {
void sendRandomTracktoManager(std::shared_ptr<Entities::SensorManager> SensorManager_)
{
for (int i = 0; i < 5; i++) {
std::string name = "test1-" + std::to_string(i);
SimCore::SimTrack track(name,SimCore::Kind::EntityKind::SURFACE,SimCore::Side::NEUTRAL);
SimCore::Position pos;
double lat = fRand(-90, 90);
double lon = fRand(-180, 180);
// for (int i = 0; i < 5; i++) {
// std::string name = "test1-" + std::to_string(i);
// SimCore::SensorTrack track(name,SimCore::Kind::EntityKind::SURFACE,SimCore::Side::NEUTRAL);
// SimCore::Position pos;
// double lat = fRand(-90, 90);
// double lon = fRand(-180, 180);
pos.setGeodesicPos( lat, lon, 0);
track.setPosition(pos);
}
// pos.setGeodesicPos( lat, lon, 0);
// track.setPosition(pos);
// }
@@ -59,39 +63,48 @@ for (int i = 0; i < 5; i++) {
auto id0 = SimCore::Identifier();
LOG_S(INFO)<<id0.getUUID();
auto control = std::make_unique<Sensor::SensorControl>(id0.getUUID(),"Sensor", "127.0.0.1", SimCore::SensorKinds::RADAR);
auto control = std::make_shared<Sensor::SensorControl>(id0.getUUID(),"Sensor", "127.0.0.1", SimCore::SensorKinds::RADAR);
auto test = std::static_pointer_cast<SimCore::SensorData>(control);
LOG_S(INFO)<< test->getSensorDataAsJson();
auto client = std::make_shared<DirectCommunication::DirectCommunicationClient>(5557,"127.0.0.1",id0.getUUID());
SensorManager_->addSensorLocal(std::move(control));
SensorManager_->addSensorLocal(control);
// sendRandomTrack(client,5);
auto id1 = SimCore::Identifier();
auto control1 = std::make_unique<Sensor::SensorControl>(id1.getUUID(),"Sensor1", "127.0.0.1", SimCore::SensorKinds::RADAR);
auto control1 = std::make_shared<Sensor::SensorControl>(id1.getUUID(),"Sensor1", "127.0.0.1", SimCore::SensorKinds::RADAR);
auto client1 = std::make_shared<DirectCommunication::DirectCommunicationClient>(5557,"127.0.0.1",id1.getUUID());
SensorManager_->addSensorLocal(std::move(control1));
SensorManager_->addSensorLocal(control1);
// sendRandomTrack(client1,5);
auto id2 = SimCore::Identifier();
auto control2 = std::make_unique<Sensor::SensorControl>(id2.getUUID(),"Sensor2", "127.0.0.1", SimCore::SensorKinds::VISUAL);
auto control2 = std::make_shared<Sensor::SensorControl>(id2.getUUID(),"Sensor2", "127.0.0.1", SimCore::SensorKinds::VISUAL);
auto client2 = std::make_shared<DirectCommunication::DirectCommunicationClient>(5557,"127.0.0.1",id2.getUUID());
SensorManager_->addSensorLocal(std::move(control2));
SensorManager_->addSensorLocal(control2);
// sendRandomTrack(client2,5);
auto id3 = SimCore::Identifier();
auto control3 = std::make_unique<Sensor::SensorControl>(id3.getUUID(),"Sensor3", "127.0.0.1", SimCore::SensorKinds::ESM);
auto control3 = std::make_shared<Sensor::SensorControl>(id3.getUUID(),"Sensor3", "127.0.0.1", SimCore::SensorKinds::ESM);
auto client3 = std::make_shared<DirectCommunication::DirectCommunicationClient>(5557,"127.0.0.1",id3.getUUID());
SensorManager_->addSensorLocal(std::move(control3));
sendRandomTrack(client2,5);
SensorManager_->addSensorLocal(control3);
sendRandomTrack(client2,control3,5);
for (int i = 0; i < 3; i++) {
std::string name = "identical-" + std::to_string(i);
SimCore::SimTrack track(name,SimCore::Kind::EntityKind::SURFACE,SimCore::Side::NEUTRAL);
auto Simtrack = std::make_shared<SimCore::SimTrack>(name,SimCore::Kind::EntityKind::SURFACE,SimCore::Side::NEUTRAL);
SimCore::SensorTrack track(Simtrack);
// LOG_S(INFO)<<track.getSensorData()->getID().getUUID();
SimCore::Position pos;
double lat = fRand(-90, 90);
double lon = fRand(-180, 180);
pos.setGeodesicPos( lat, lon, 0);
track.setPosition(pos);
client->sendMessage(track.buildMessage());
std::this_thread::sleep_for(std::chrono::milliseconds(100));
client1->sendMessage(track.buildMessage());
@@ -140,6 +153,7 @@ void startSensors(SimCore::Identifier ownid, std::string GroundTruthAddr_,ushort
RadarPod->setComponent("Radar");
SensorManager_->startSensor(RadarPod, SimCore::SensorKinds::RADAR);
}
@@ -151,14 +165,14 @@ SCENARIO("Testing the SimCore SensorManager")
auto PodController_ = std::make_shared<kubecontrol::PodController>("docs/config");
auto SensorManager_ = std::make_shared<Entities::SensorManager>(id, PodController_,5557);
auto ownShip = std::make_shared<SimCore::SimTrack>(id,"Test Ship", SimCore::Kind::EntityKind::SURFACE,SimCore::Side::EntitySide::FRIEND);
auto SensorManager_ = std::make_shared<Entities::SensorManager>(ownShip, PodController_,5557);
startSensors(id, "239.0.0.1", 7000, 5557, SensorManager_);
WHEN("constructing Track Object with data")
{
@@ -172,7 +186,7 @@ SCENARIO("Testing the SimCore SensorManager")
REQUIRE(PodController_->getInfoForAllPods().size() == 0);
SensorManager_->stop();
} //THEN
} // WHEN
} // GIVEN
@@ -187,8 +201,9 @@ SCENARIO("Testing the SimCore SensorManager with local sensors")
auto PodController_ = std::make_shared<kubecontrol::PodController>("docs/config");
auto ownShip = std::make_shared<SimCore::SimTrack>(id,"Test Ship", SimCore::Kind::EntityKind::SURFACE,SimCore::Side::EntitySide::FRIEND);
auto SensorManager_ = std::make_shared<Entities::SensorManager>(id, PodController_,5557);
auto SensorManager_ = std::make_shared<Entities::SensorManager>(ownShip, PodController_,5557);
sendRandomTracktoManager(SensorManager_);
@@ -222,6 +237,7 @@ SCENARIO("Testing the SimCore SensorManager with local sensors")
std::this_thread::sleep_for(std::chrono::milliseconds(1000));
SensorManager_->stop();
} //THEN
} // WHEN