Restarted the production of the app

This commit is contained in:
Henry Winkel
2023-08-09 15:23:10 +02:00
parent b71f3b3bdf
commit 55ad5000dd
970 changed files with 453 additions and 79862 deletions

2
.gitignore vendored
View File

@@ -1,3 +1,3 @@
.cache
build
build/
compile_commands.json

3
.gitmodules vendored Normal file
View File

@@ -0,0 +1,3 @@
[submodule "libs/EntityLibrary"]
path = libs/EntityLibrary
url = ssh://git@dev-gitea.ftewa.ti.unibw-hamburg.de:12000/hwinkel/EntityLibrary.git

View File

@@ -1,19 +1,15 @@
cmake_minimum_required (VERSION 3.1 FATAL_ERROR)
project (EntitiyManager VERSION 0.1.0 LANGUAGES CXX C)
set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/Modules)
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/Modules)
include(defaultOptions)
#find_package(Eigen3 REQUIRED NO_MODULE)
IF (NOT TARGET CLI11)
set(CLI11_TESTING OFF CACHE BOOL "disable testing")
add_subdirectory(libs/cli11 EXCLUDE_FROM_ALL)
add_subdirectory(libs/CLI11 EXCLUDE_FROM_ALL)
ENDIF()
# IF(NOT TARGET nlohmann_json::nlohmann_json)
# set(JSON_BuildTests OFF CACHE INTERNAL "")
# add_subdirectory(libs/json EXCLUDE_FROM_ALL)
# ENDIF()
IF(NOT TARGET loguru)
add_subdirectory(libs/loguru EXCLUDE_FROM_ALL)
@@ -21,14 +17,13 @@ IF(NOT TARGET loguru)
ENDIF()
IF (NOT TARGET CommService)
add_subdirectory(libs/CommService EXCLUDE_FROM_ALL)
IF(NOT TARGET EntityLibrary)
add_subdirectory(libs/EntityLibrary EXCLUDE_FROM_ALL)
ENDIF()
add_library(SimControl STATIC
include/SimControl/SimControl.hpp
@@ -39,9 +34,9 @@ add_library(SimControl STATIC
target_link_libraries(SimControl
PUBLIC
CommService
CLI11
pthread
EntityLibrary
loguru
)

View File

@@ -3,7 +3,7 @@ find_package(Git)
enable_testing()
cxx_20()
build_docs(PROCESS_DOXYFILE DOXYFILE_PATH "docs/Doxyfile.in" )
# build_docs(PROCESS_DOXYFILE DOXYFILE_PATH "docs/Doxyfile.in" )
add_code_coverage_all_targets(EXCLUDE ${PROJECT_SOURCE_DIR}/libs/* ${PROJECT_SOURCE_DIR}/test/*)
TEST_BIG_ENDIAN(IS_BIG_ENDIAN)

View File

@@ -0,0 +1,38 @@
function(protobuf_generate_cpp)
set(OPTIONS)
set(SINGLE_VALUE_KEYWORDS
PROTO_PATH
CPP_PATH
HPP_PATH
)
set(MULTI_VALUE_KEYWORDS)
cmake_parse_arguments(protobuf
"${OPTIONS}"
"${SINGLE_VALUE_KEYWORDS}"
"${MULTI_VALUE_KEYWORDS}"
${ARGN})
FILE(GLOB PROTO_FILES ${protobuf_PROTO_PATH}/*.proto)
set(PROTOC ${CMAKE_BINARY_DIR}/libs/EntityLibrary/libs/SimCore/libs/whisper-com/libs/protobuf/protoc)
message(STATUS "protoc path: " ${PROTOC})
FOREACH(proto ${PROTO_FILES})
FILE(TO_NATIVE_PATH ${proto} proto_native)
get_filename_component(protoFILENAME ${proto} NAME_WLE )
get_filename_component(protoDIR ${proto} DIRECTORY)
message(STATUS "proto file path: " ${proto})
add_custom_command(
OUTPUT "${protoDIR}/${protoFILENAME}.pb.cc"
DEPENDS "${protoDIR}/${protoFILENAME}.proto"
COMMAND ${PROTOC} --cpp_out=${protoDIR} --proto_path=${protoDIR} --proto_path="${CMAKE_SOURCE_DIR}/libs/EntityLibrary/libs/SimCore/include/SimCore/Messages/Protos" --proto_path="${CMAKE_SOURCE_DIR}/libs/EntityLibrary/libs/SimCore/libs/whisper-com/libs/protobuf/src" "${protoDIR}/${protoFILENAME}.proto"
)
ENDFOREACH(proto)
endfunction()

View File

@@ -1,7 +1,7 @@
#ifndef __SIMCONTROL__
#define __SIMCONTROL__
#include "CommService/Message.hpp"
#include "DirectCommunicationClient.hpp"
#include <iostream>
@@ -12,70 +12,25 @@
#include <mutex>
#include <queue>
#include <CommService/CommService.hpp>
namespace SimControl {
class SimControl : public std::enable_shared_from_this<SimControl> {
class SimControl{
public:
SimControl(const std::string &addr,const std::int16_t port):
// UDPInboundQueue_(std::make_shared<std::queue<std::string>>()),
// UDPOutboundQueue_(std::make_shared<std::queue<std::string>>()),
SimControl(const std::string &addr,const std::int16_t port);
isMainThreadRunning_(false),
stopMainThread_(false),
isCommServiceThreadRunning_(false),
stopCommServiceThread_(false),
CommServiceThread(nullptr),
MainFunctionThread_(nullptr)
{
OutgoingMessageQueue_ = std::make_shared<ThreadsafeQueue<CommService::Message>>();
IncommingMessageQueue_ = nullptr;
}
void start();
void stop();
private:
std::unique_ptr<std::thread> CommServiceThread = nullptr;
std::unique_ptr<std::thread> MainFunctionThread_ = nullptr;
std::shared_ptr<std::queue<std::string>> UDPInboundQueue_ = nullptr;
std::shared_ptr<std::queue<std::string>> UDPOutboundQueue_ = nullptr;
std::atomic<bool> isCommServiceThreadRunning_;
std::atomic<bool> stopCommServiceThread_;
std::atomic<bool> isMainThreadRunning_;
std::atomic<bool> stopMainThread_;
// std::mutex mutexInboundQueue_;
// std::mutex mutexOutboundQueue_;
///pointer to the commservice
std::unique_ptr<CommService::CommService> CommService_;
///threadsafe message queue from CommService
std::shared_ptr<ThreadsafeQueue<CommService::Message>> IncommingMessageQueue_;
std::shared_ptr<ThreadsafeQueue<CommService::Message>> OutgoingMessageQueue_;
void startMainFunction_();
void stopMainFunction_();
void startCommService_();
void stopCommService_();
void CommServiceFunction_();
void MainFunction_();
std::shared_ptr<DirectCommunication::DirectCommunicationClient> TCPClient_;

View File

@@ -1,4 +1,4 @@
version: 2.2.0.{build}
version: 2.3.1.{build}
branches:
only:
@@ -24,6 +24,7 @@ build_script:
-DCMAKE_BUILD_TYPE=Debug -DCMAKE_GENERATOR="Visual Studio 14 2015"
- ps: cmake --build .
- cd ..
- ps: set CTEST_OUTPUT_ON_FAILURE=1
- conan create . CLIUtils/CLI11
test_script:

View File

@@ -20,6 +20,8 @@ jobs:
precompile: ["ON", "OFF"]
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Get LCov
run: |
@@ -50,11 +52,9 @@ jobs:
lcov --list coverage.info
working-directory: build
- name: Upload coverage
run: |
curl -Os https://uploader.codecov.io/latest/linux/codecov
chmod +x codecov
./codecov
- uses: codecov/codecov-action@v3
with:
fail_ci_if_error: true
working-directory: build
clang-tidy:
@@ -84,7 +84,7 @@ jobs:
- name: Add wget
run: apt-get update && apt-get install -y wget
- name: Get cmake
uses: jwlawson/actions-setup-cmake@v1.12
uses: jwlawson/actions-setup-cmake@v1.13
- name: Configure
run: cmake -S . -B build -DCLI11_CUDA_TESTS=ON
- name: Build
@@ -101,7 +101,7 @@ jobs:
- name: Add deps
run: apt-get update && apt-get install make
- name: Get CMake
uses: jwlawson/actions-setup-cmake@v1.12
uses: jwlawson/actions-setup-cmake@v1.13
- name: Configure
run: cmake -S . -B build -DCLI11_BOOST=ON
- name: Build

View File

@@ -4,12 +4,12 @@ ci:
repos:
- repo: https://github.com/psf/black
rev: 22.8.0
rev: 22.10.0
hooks:
- id: black
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.3.0
rev: v4.4.0
hooks:
- id: check-added-large-files
- id: check-case-conflict
@@ -21,7 +21,7 @@ repos:
- id: trailing-whitespace
- repo: https://github.com/pre-commit/mirrors-clang-format
rev: v14.0.6
rev: v15.0.4
hooks:
- id: clang-format
types_or: [c++, c, cuda]
@@ -33,17 +33,19 @@ repos:
additional_dependencies: [pyyaml]
- repo: https://github.com/pre-commit/mirrors-prettier
rev: "v3.0.0-alpha.0"
rev: "v3.0.0-alpha.4"
hooks:
- id: prettier
types_or: [yaml, markdown, html, css, scss, javascript, json]
args: [--prose-wrap=always]
- repo: https://github.com/markdownlint/markdownlint
rev: v0.11.0
rev: v0.12.0
hooks:
- id: markdownlint
args: ["--style=scripts/mdlint_style.rb"]
# Uncomment on macOS - Apple has deprecated Ruby, so macOS is stuck on 2.6
# language_version: 3.1.2
# - repo: local
# hooks:
@@ -80,7 +82,7 @@ repos:
exclude: .pre-commit-config.yaml
- repo: https://github.com/codespell-project/codespell
rev: v2.2.1
rev: v2.2.2
hooks:
- id: codespell
args: ["-L", "atleast,ans,doub,inout"]

View File

@@ -1,5 +1,50 @@
# Changelog
## Version 2.3: Precompilation Support
This version adds a pre-compiled mode to CLI11, which allows you to precompile
the library, saving time on incremental rebuilds, making CLI11 more competitive
on compile time with classic compiled CLI libraries. The header-only mode is
still default, and is not yet distributed via binaries.
- Add `CLI11_PRECOMPILED` as an option. [#762][]
- Bugfix: Include `<functional>` in `FormatterFwd` [#727][]
- Bugfix: Add missing `Macros.hpp` to `Error.hpp` [#755][]
- Bugfix: Fix subcommand callback trigger [#733][]
- Bugfix: Variable rename to avoid warning [#734][]
- Bugfix: `split_program_name` single file name error [#740][]
- Bugfix: Better support for min/max overrides on MSVC [#741][]
- Bugfix: Support MSVC 2022 [#748][]
- Bugfix: Support negated flag in config file [#775][]
- Bugfix: Better errors for some confusing config file situations [#781][]
- Backend: Restore coverage testing (lost with Travis CI) [#747][]
[#727]: https://github.com/CLIUtils/CLI11/pull/727
[#733]: https://github.com/CLIUtils/CLI11/pull/733
[#734]: https://github.com/CLIUtils/CLI11/pull/734
[#740]: https://github.com/CLIUtils/CLI11/pull/740
[#741]: https://github.com/CLIUtils/CLI11/pull/741
[#747]: https://github.com/CLIUtils/CLI11/pull/747
[#748]: https://github.com/CLIUtils/CLI11/pull/748
[#755]: https://github.com/CLIUtils/CLI11/pull/755
[#762]: https://github.com/CLIUtils/CLI11/pull/762
[#775]: https://github.com/CLIUtils/CLI11/pull/775
[#781]: https://github.com/CLIUtils/CLI11/pull/781
### Version 2.3.1: Missing implementation
A function implementation was missing after the pre-compile move, missed due to
the fact we lost 100% after losing coverage checking. We are working on filling
out 100% coverage again to ensure this doesn't happen again!
- Bugfix: `App::get_option_group` implementation missing [#793][]
- Bugfix: Fix spacing when setting an empty footer [#796][]
- Bugfix: Address Klocwork static analysis checking issues [#785][]
[#785]: https://github.com/CLIUtils/CLI11/pull/785
[#793]: https://github.com/CLIUtils/CLI11/pull/793
[#796]: https://github.com/CLIUtils/CLI11/pull/796
## Version 2.2: Option and Configuration Flexibility
New features include support for output of an empty vector, a summing option

View File

@@ -530,7 +530,7 @@ Before parsing, you can set the following options:
are `CLI::MultiOptionPolicy::Throw`, `CLI::MultiOptionPolicy::Throw`,
`CLI::MultiOptionPolicy::TakeLast`, `CLI::MultiOptionPolicy::TakeFirst`,
`CLI::MultiOptionPolicy::Join`, `CLI::MultiOptionPolicy::TakeAll`, and
`CLI::MultiOptionPolicy::Sum` 🚧.
`CLI::MultiOptionPolicy::Sum` 🆕.
- `->check(std::string(const std::string &), validator_name="",validator_description="")`:
Define a check function. The function should return a non empty string with
the error message if the check fails
@@ -571,7 +571,7 @@ Before parsing, you can set the following options:
- `->trigger_on_parse()`: If set, causes the callback and all associated
validation checks for the option to be executed when the option value is
parsed vs. at the end of all parsing. This could cause the callback to be
executed multiple times. Also works with positional options 🆕.
executed multiple times. Also works with positional options.
These options return the `Option` pointer, so you can chain them together, and
even skip storing the pointer entirely. The `each` function takes any function
@@ -658,7 +658,7 @@ CLI11 has several Validators built-in that perform some common checks
- `CLI::ExistingDirectory`: Requires that the directory exists.
- `CLI::ExistingPath`: Requires that the path (file or directory) exists.
- `CLI::NonexistentPath`: Requires that the path does not exist.
- `CLI::FileOnDefaultPath`: 🆕 Best used as a transform, Will check that a file
- `CLI::FileOnDefaultPath`: Best used as a transform, Will check that a file
exists either directly or in a default path and update the path appropriately.
See [Transforming Validators](#transforming-validators) for more details
- `CLI::Range(min,max)`: Requires that the option be between min and max (make

View File

@@ -37,7 +37,7 @@ class CLI11Conan(ConanFile):
def build(self): # this is not building a library, just tests
cmake = CMake(self)
cmake.definitions["CLI11_EXAMPLES"] = "OFF"
cmake.definitions["CLI11_BUILD_EXAMPLES"] = "OFF"
cmake.definitions["CLI11_SINGLE_FILE"] = "OFF"
cmake.configure()
cmake.build()

View File

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

View File

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

Before

Width:  |  Height:  |  Size: 9.7 KiB

After

Width:  |  Height:  |  Size: 9.7 KiB

Some files were not shown because too many files have changed in this diff Show More