ADD: add the usage of the kubecontroller bus not with fully using the start of pods
This commit is contained in:
3
.gitmodules
vendored
3
.gitmodules
vendored
@@ -10,3 +10,6 @@
|
||||
[submodule "libs/nlohmannJSON"]
|
||||
path = libs/nlohmannJSON
|
||||
url = https://github.com/nlohmann/json.git
|
||||
[submodule "libs/KubeControl"]
|
||||
path = libs/KubeControl
|
||||
url = ssh://git@dev-gitea.ftewa.ti.unibw-hamburg.de:12000/hwinkel/KubeControl.git
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#include "SimCore/Orientation.hpp"
|
||||
#include "SimCore/SafeMap.hpp"
|
||||
#include "SimCore/SimCore.hpp"
|
||||
#include "kubecontrol/PodController.hpp"
|
||||
|
||||
#include <WHISPER/InternalUDPService.hpp>
|
||||
#include <WHISPER/InternalUDPSender.hpp>
|
||||
@@ -111,6 +112,7 @@ namespace Entities {
|
||||
void startSensor();
|
||||
|
||||
|
||||
std::unique_ptr<kubecontrol::PodController> PodController_;
|
||||
|
||||
|
||||
std::shared_ptr<std::list<Entities::SensorClientData>> SensorStore_;
|
||||
|
||||
1
libs/KubeControl
Submodule
1
libs/KubeControl
Submodule
Submodule libs/KubeControl added at 96495f44ea
@@ -2,11 +2,16 @@
|
||||
#include "Entities/Movement.hpp"
|
||||
#include "Orders/MoveOrder.hpp"
|
||||
#include "SimCore/Messages/SimTrack.hpp"
|
||||
#include "SimCore/UtilFunctions.hpp"
|
||||
#include "WHISPER/InternalUDPListener.hpp"
|
||||
#include "WHISPER/InternalUDPSender.hpp"
|
||||
#include "WHISPER/Messages/Message.hpp"
|
||||
#include "WHISPER/Messages/stringData.hpp"
|
||||
#include "WHISPER/threadSafeQueue.hpp"
|
||||
#include "crossguid/guid.hpp"
|
||||
#include "kubecontrol/KubePod.hpp"
|
||||
#include "kubecontrol/PodController.hpp"
|
||||
#include "yaml-cpp/node/parse.h"
|
||||
#include <SimCore/SimCore.hpp>
|
||||
|
||||
#include <Entities/Entity.hpp>
|
||||
@@ -34,6 +39,7 @@ namespace Entities
|
||||
EntityKind_(EntityKind)
|
||||
|
||||
{
|
||||
PodController_ = std::make_unique<kubecontrol::PodController>("libs/KubeControl/docs/config");
|
||||
OwnShipTrack = std::make_shared<SimCore::SimTrack>(OwnID, OwnType, EntityKind);
|
||||
OwnShipTrack->setPosition(SimCore::Position());
|
||||
|
||||
@@ -116,8 +122,13 @@ namespace Entities
|
||||
}
|
||||
|
||||
void Entity::startMovementWorker()
|
||||
{
|
||||
{
|
||||
auto MovementPod = kubecontrol::KubePod("MovmentPod_"+EntityName_,xg::newGuid().str(),"movementimage:latest");
|
||||
|
||||
MovementPod.setEnvironmentVar("SERVER_IP", SimCore::UtilFunctions::getOwnIP());
|
||||
// LOG_S(INFO)<< MovementPod.createYAML();
|
||||
LOG_S(INFO)<<PodController_->getServerAddress();
|
||||
|
||||
LOG_S(INFO)<< "TODO: starting the movement app from here";
|
||||
|
||||
if (MovemtServer_->countClients() > 0 )
|
||||
|
||||
@@ -22,17 +22,17 @@ class Ship : public Entities::Entity
|
||||
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)
|
||||
std::uint32_t CommandPort
|
||||
):
|
||||
Entity( OwnID,EntityName,ownType, ParentID, EntityKind, GroundTruthPort, CommandPort)
|
||||
{
|
||||
SimCore::Position pos1;
|
||||
pos1.setGeodesicPos(55, 6, 0);
|
||||
Movement_.setPosition(pos1);
|
||||
Movement_.setCourse(0);
|
||||
Movement_.setSpeed(100);
|
||||
// Movement_.setPosition(pos1);
|
||||
// Movement_.setCourse(0);
|
||||
// Movement_.setSpeed(100);
|
||||
|
||||
LOG_S(INFO)<<std::endl<<Movement_.getPosition().getGeodesicPos();
|
||||
// LOG_S(INFO)<<std::endl<<Movement_.getPosition().getGeodesicPos();
|
||||
|
||||
}
|
||||
|
||||
@@ -44,10 +44,10 @@ class Ship : public Entities::Entity
|
||||
pos1.setGeodesicPos(55, 6, 0);
|
||||
|
||||
|
||||
LOG_S(INFO)<<std::endl<<Movement_.getPosition().getGeodesicPos();
|
||||
double distance, bearing1;
|
||||
std::tie(distance, bearing1) = Movement_.getPosition().distanceBearingToPosition(pos1);
|
||||
LOG_S(INFO)<<"distance from start is:" << distance;
|
||||
// LOG_S(INFO)<<std::endl<<Movement_.getPosition().getGeodesicPos();
|
||||
// double distance, bearing1;
|
||||
// std::tie(distance, bearing1) = Movement_.getPosition().distanceBearingToPosition(pos1);
|
||||
// LOG_S(INFO)<<"distance from start is:" << distance;
|
||||
LOG_S(INFO)<<"calculating every " << duration << " milliseconds";
|
||||
};
|
||||
|
||||
@@ -68,7 +68,7 @@ SCENARIO("Testing the SimCore Sensor")
|
||||
{
|
||||
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 Ship(ID1,"FGSHamburg",WHISPER::SourceType::ENTITY,IDParent,SimCore::EntityKind::SURFACE,8000,8001);
|
||||
Ship.start();
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(10000));
|
||||
Ship.stop();
|
||||
|
||||
@@ -22,7 +22,7 @@ SCENARIO("Testing the SimCore Sensor")
|
||||
auto ID1 = IDMaker.getNewIdentifier(0, SimCore::ObjectSource::INTERNAL);
|
||||
auto ID2 = IDMaker.getNewIdentifier(1, SimCore::ObjectSource::INTERNAL);
|
||||
|
||||
std::shared_ptr<Orders::MoveOrder> movOrd = std::make_shared<Orders::MoveOrder>(OrderID,*ID1.get(),*ID2.get(),WHISPER::SourceType::GATEWAY);
|
||||
std::shared_ptr<Orders::MoveOrder> movOrd = std::make_shared<Orders::MoveOrder>(*ID1.get(),WHISPER::SourceType::GATEWAY);
|
||||
auto list = std::vector<std::shared_ptr<Orders::Order>>();
|
||||
list.push_back(movOrd);
|
||||
|
||||
@@ -42,24 +42,22 @@ SCENARIO("Testing the SimCore Sensor")
|
||||
res = true;
|
||||
}
|
||||
|
||||
movOrd->setSpeed(100);
|
||||
movOrd->Speed.setValue(100);
|
||||
|
||||
movOrd->setStartTime(duration_cast<std::chrono::seconds>(std::chrono::system_clock::now().time_since_epoch()).count()+3);
|
||||
movOrd->StartTime.setValue(duration_cast<std::chrono::seconds>(std::chrono::system_clock::now().time_since_epoch()).count()+3);
|
||||
|
||||
THEN("check if Track attributes are correct")
|
||||
{
|
||||
REQUIRE(movOrd->getOrderID() == OrderID);
|
||||
REQUIRE(movOrd->getOrderingEntity() == *ID1.get());
|
||||
REQUIRE(movOrd->getOrderedEntity() == *ID2.get());
|
||||
REQUIRE(res == true);
|
||||
REQUIRE(movOrd->getSpeed() == 100);
|
||||
REQUIRE(movOrd->getStartTime() > duration_cast<std::chrono::seconds>(std::chrono::system_clock::now().time_since_epoch()).count());
|
||||
REQUIRE(movOrd->Speed.getValue() == 100);
|
||||
REQUIRE(movOrd->StartTime.getValue() > duration_cast<std::chrono::seconds>(std::chrono::system_clock::now().time_since_epoch()).count());
|
||||
|
||||
std::this_thread::sleep_for(std::chrono::seconds(5));
|
||||
REQUIRE(movOrd->getStartTime() < duration_cast<std::chrono::seconds>(std::chrono::system_clock::now().time_since_epoch()).count());
|
||||
REQUIRE(movOrd->StartTime.getValue() < duration_cast<std::chrono::seconds>(std::chrono::system_clock::now().time_since_epoch()).count());
|
||||
|
||||
|
||||
REQUIRE(mvOrder2->getSpeed() == movOrd->getSpeed());
|
||||
REQUIRE(mvOrder2->Speed.getValue() == movOrd->Speed.getValue());
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user