From b5eb76771d3dc8abe4deca841a73e5d0f6116bc0 Mon Sep 17 00:00:00 2001 From: hwinkel Date: Fri, 15 Mar 2024 12:46:03 +0100 Subject: [PATCH] ADD: added comments to entity library and changed drone.yml and removed some specific ide files --- .drone.yml | 6 +-- .gitignore | 3 +- .vscode/launch.json | 16 ------- include/Entities/Entity.hpp | 91 ++++++++++++++++++++++--------------- src/Entities/Entity.cpp | 33 ++++++-------- 5 files changed, 74 insertions(+), 75 deletions(-) delete mode 100644 .vscode/launch.json diff --git a/.drone.yml b/.drone.yml index 84c94c7..c0bea36 100644 --- a/.drone.yml +++ b/.drone.yml @@ -13,9 +13,9 @@ steps: - name: build image: kmaster.ti.unibw-hamburg.de:30808/debianbullseye commands: - # - sed -i 's/ssh\\:..git@/https\\:\\/\\//' .gitmodules - # - sed -i 's/\:12000//' .gitmodules - # - git submodule update --init --recursive --jobs=4 + - sed -i 's/ssh\\:..git@/https\\:\\/\\//' .gitmodules + - sed -i 's/\:12000//' .gitmodules + - git submodule update --init --recursive --jobs=4 - mkdir -p build && cd build - CC=clang-11 CXX=clang++-11 cmake -DCMAKE_BUILD_TYPE=DEBUG .. - make -j diff --git a/.gitignore b/.gitignore index 9994ccd..98060db 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ build/ -.cache \ No newline at end of file +.cache +.vscode \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json deleted file mode 100644 index 5f3d4a1..0000000 --- a/.vscode/launch.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "name": "Debug-SensorManager", - "type": "gdb", - "request": "launch", - "target": "./test_SensorManager", - "cwd": "${workspaceRoot}/build", - "valuesFormatting": "parseText" - } - ] -} \ No newline at end of file diff --git a/include/Entities/Entity.hpp b/include/Entities/Entity.hpp index db2b862..20ae4b6 100644 --- a/include/Entities/Entity.hpp +++ b/include/Entities/Entity.hpp @@ -1,5 +1,7 @@ #pragma once +#define LOGURU_WITH_STREAMS 1 +#include #include #include "DirectCommunicationServer.hpp" @@ -31,24 +33,6 @@ namespace Entities { - // struct SensorClientData - // { - // std::string SensorName; - // bool isActive; - // SimCore::Identifier SensorID; - // // std::shared_ptr SensorSender; - // }; - - struct EffectorClientData - { - std::string EffectorName; - bool isActive; - SimCore::Identifier EffectorID; - std::shared_ptr EffectorSender; - }; - - - class Entity { public: Entity(const SimCore::Identifier OwnID, @@ -64,60 +48,95 @@ namespace Entities { bool online); ~Entity(); + /** + * @brief starts the Entity APP + */ void start(); + + /** + * @brief stops the Entity + */ void stop(); - void setPosition(SimCore::Position); + + /** + * @brief sets the current entity position + */ + void setPosition(SimCore::Position pos); + + /** + * @brief sets the speed of the Entity + * @param speed - double + */ void setSpeed(double speed); + /** + * @brief set the course of the entity (heading, course over ground) in degree + * @param course - double + */ void setCourse(double course); + + /** + * @brief sets the pitch (climb angle) in degree + * @param pitch - double + */ void setPitch( double pitch); protected: - + /** + * @brief is the child worker function which is called on every circle + */ virtual void childWorker() = 0; + + /** + * @brief is function whick is called to stop the specific child class + */ virtual void stopChild() = 0; protected: + /// @brief shared_ptr of the own track std::shared_ptr OwnShipTrack = nullptr; - - std::unique_ptr TrackList_ = nullptr; - - + /// @brief name of the entity (marking) std::string EntityName_; + /// @brief Entity Kind var (is enum) SimCore::Kind::EntityKind EntityKind_; + /// @brief Entity Side (is enum) SimCore::Side::EntitySide EntitySide_; + /// @brief Radar cross section double RCS_; - + /// @brief port of the movement worker ushort MovemntWorkerPort_; + /// @brief port which the sensor are connecting to ushort SensorPort_; - - + /// @brief shared ptr of the Podcontroller std::shared_ptr PodController_; + /// @brief unique ptr of the sensor manager std::unique_ptr SensorManager_; + /// @brief broadcast server the own ship message is use to send std::shared_ptr BroadcastServer_; - - + /// @brief address of the ground thruth (default = 239.0.0.1) std::string GroundTruthAddr_; + /// @brief port of the ground thruth std::uint32_t GroundTruthPort_; + /// @brief port on which commands are received ushort CommandPort_; private: + /// @brief indicates if entity is startet in a kubernetes cluster bool online_; - - - std::vector threads; - - std::atomic stopMainLoop = false; + /// @brief vector of all startet threads + std::vector threads_; + /// + std::atomic_bool stopMainLoop_ = false; void MainLoop(); void startMovementWorker(); - std::atomic MovementWorkerStarted = false; + std::atomic_bool MovementWorkerStarted_ = false; std::shared_ptr MovemtServer_ = nullptr; void handleMovement(); std::string MovementPodUUID_; @@ -125,7 +144,7 @@ namespace Entities { std::shared_ptr CommandCommsServer_ = nullptr; - void handleExternalComms(std::string msg); + void handleExternalComms(const std::string &msg); diff --git a/src/Entities/Entity.cpp b/src/Entities/Entity.cpp index 419973b..8857f42 100644 --- a/src/Entities/Entity.cpp +++ b/src/Entities/Entity.cpp @@ -1,4 +1,4 @@ -#include "DirectCommunicationServer.hpp" +#include #include "Entities/Movement.hpp" #include "Entities/SensorManager.hpp" #include "Orders/MoveOrder.hpp" @@ -80,7 +80,6 @@ namespace Entities // BroadcastServer_ = std::make_shared("239.0.0.1", 10000); - // TrackList_ = std::make_unique(); } @@ -99,7 +98,7 @@ namespace Entities Orders::MoveOrder moveorder(OwnShipTrack->getIdentifier()); moveorder.setPosition(pos); - if(MovementWorkerStarted == true) + if(MovementWorkerStarted_ == true) { MovemtServer_->sendMessage(moveorder.buildMessage()); LOG_S(INFO)<<"Move Order send"; @@ -110,7 +109,7 @@ namespace Entities OwnShipTrack->Speed.setValue(val); Orders::MoveOrder moveorder(OwnShipTrack->getIdentifier()); moveorder.Speed.setValue(val); - if(MovementWorkerStarted == true) + if(MovementWorkerStarted_ == true) { MovemtServer_->sendMessage(moveorder.buildMessage()); LOG_S(INFO)<<"Move Order send with Speed"; @@ -121,7 +120,7 @@ namespace Entities OwnShipTrack->Course.setValue(val); Orders::MoveOrder moveorder(OwnShipTrack->getIdentifier()); moveorder.Course.setValue(val); - if(MovementWorkerStarted == true) + if(MovementWorkerStarted_ == true) { MovemtServer_->sendMessage(moveorder.buildMessage()); LOG_S(INFO)<<"Move Order send with Course"; @@ -136,13 +135,9 @@ namespace Entities void Entity::start() { - - stopMainLoop = false; + stopMainLoop_ = false; - - threads.emplace_back(std::thread(&Entity::MainLoop,this)); - - + threads_.emplace_back(std::thread(&Entity::MainLoop,this)); } @@ -161,18 +156,18 @@ namespace Entities SensorManager_->stop(); - for (std::vector::iterator it = threads.begin(); it != threads.end();) + for (std::vector::iterator it = threads_.begin(); it != threads_.end();) { if (it->joinable()) { it->join(); - it = threads.erase(it); + it = threads_.erase(it); } } - LOG_S(ERROR)<< "Remaining Threads: " << threads.size(); + LOG_S(ERROR)<< "Remaining Threads: " << threads_.size(); // std::this_thread::sleep_for(std::chrono::milliseconds(30000)); // exit(0); @@ -208,7 +203,7 @@ namespace Entities { LOG_S(INFO)<< "POS: LAT: "<< OwnShipTrack->getPosition().getGeodesicPos()(SimCore::LATITUDE) << " LON: " << OwnShipTrack->getPosition().getGeodesicPos()(SimCore::LONGITUDE); - MovementWorkerStarted = true; + MovementWorkerStarted_ = true; MovemtServer_->sendMessage(OwnShipTrack->buildMessage()); LOG_S(INFO)<< "Initial Message send to MovementWorker"; } @@ -218,7 +213,7 @@ namespace Entities void Entity::handleMovement() { - if (!MovementWorkerStarted) + if (!MovementWorkerStarted_) { startMovementWorker(); }else @@ -233,14 +228,14 @@ namespace Entities if (MovemtServer_->countClients() == 0) { - MovementWorkerStarted = false; + MovementWorkerStarted_ = false; LOG_S(WARNING)<<"Movementclient lost"; } // std::this_thread::sleep_for(std::chrono::milliseconds(500)); } - void Entity::handleExternalComms(std::string msg) + void Entity::handleExternalComms(const std::string &msg) { try { @@ -384,7 +379,7 @@ namespace Entities void Entity::MainLoop() { LOG_S(INFO)<< "main loop started"; - while (!stopMainLoop) + while (!stopMainLoop_) { handleMovement(); childWorker();