Major Changes:
- Merged latest Qt5 devel content from dlbo (292 files changed, 7 new dirs)
- Consolidated forward-declarations and include folders
- Removed unneeded modules per Niklas' repo check list
Build System Fixes:
- Fixed CMake VERSION_GREATER syntax in ParticipantManagement/CMakeLists.txt
- Added VLC packages (libvlc-dev, vlc-plugin-base) to docker_build.sh
- Added PostgreSQL dev packages (libpq-dev, postgresql-server-dev-all) to Dockerfile
- Fixed locale warnings (ANSI_X3.4-1968 → C.UTF-8)
- Fixed ArcGIS SDK path warnings when BUILD_ARCGIS=OFF
Code Generation Fixes:
- Fixed IDL enum collisions (PortType→CorePortType/DdsutPortType, PdmEventType)
- Fixed Grantlee template svc_translation.cpp.grantlee:
- Changed {{ idl_enum.name }}_def:: to {{ idl_enum.name }}::
- Fixed .underlying() calls for C++11 scoped enums (enum class)
- Removed generated files from repo (moc_*, *_dtc.h, *_ftc.h)
Validation:
- BUILD_RTI=ON: SUCCESS
- BUILD_RTI=OFF: SUCCESS
- C++17 standard maintained for RTI 7.7 compatibility
- Ubuntu 26.04 Docker environment verified
Remaining Warnings (expected):
- BgViewer, KDChart, KDReports, Poppler-Qt6 not found (optional features)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
128 lines
6.5 KiB
Plaintext
128 lines
6.5 KiB
Plaintext
ArAssets
|
|
|
|
Inhalt
|
|
Funktionen des Tools 2
|
|
Abhängigkeiten 2
|
|
Dateien und Ordner 3
|
|
Websocketserver 3
|
|
Start des Servers 3
|
|
Anpassung des Servers 4
|
|
Nutzung des Tools mit Firefox 4
|
|
Ansprechpartner 4
|
|
|
|
|
|
----------------------------
|
|
--- Funktionen des Tools ---
|
|
----------------------------
|
|
|
|
• Kartenansicht der importierten Locations
|
|
• Auslesen von LongLat-Koordinaten durch benutzerdefinierten Input
|
|
• Darstellung von Koordinaten (UTM, MGRS, LongLat) auf den importierten Karten
|
|
• Tracking von Positionsmeldungen
|
|
• Anzeige von Gebäudefootprints
|
|
• Anzeige der Assets in den importierten Gebäuden
|
|
|
|
----------------------
|
|
--- Abhängigkeiten ---
|
|
----------------------
|
|
|
|
Für die volle Nutzbarkeit aller Skripte werden benötigt:
|
|
|
|
Bibliothek | Installation mit npm
|
|
------------------------------------------------+-----------------------
|
|
TypeScript Compiler | npm i -g tsc
|
|
Browserify (genutzt in ./build) | npm i -g browserify
|
|
Uglify (genutzt für die build option „—min“) | npm i -g uglify-es
|
|
Watchify (genutzt in ./watch) | npm i -g watchify
|
|
|
|
Des Weiteren werden folgende Bibliotheken genutzt:
|
|
Angular
|
|
Leaflet
|
|
GeoJSON
|
|
MGRS
|
|
UTM
|
|
UTM-LatLng
|
|
|
|
Der einfachste und vor allem effektivste Weg diese Bibliotheken auf einem neuen Gerät einzurichten, besteht darin, den „node_module“ Ordner bzw. das gesamte Programmverzeichnis zu kopieren.
|
|
WICHTIG: Dabei ist darauf zu achten, dass die Ordnerstruktur unverändert bleibt, damit die Skripte alle nötigen Komponenten finden.
|
|
|
|
--------------------------
|
|
--- Dateien und Ordner ---
|
|
--------------------------
|
|
|
|
----------------------------+-------------------------------------------------------------------------------
|
|
node_modules | Enthält alle Bibliotheken
|
|
----------------------------+-------------------------------------------------------------------------------
|
|
types | Enthält notwendige TypeScript Definitionen
|
|
----------------------------+-------------------------------------------------------------------------------
|
|
tmp | Wird zum Kompilieren erstellt und anschließend gelöscht
|
|
----------------------------+-------------------------------------------------------------------------------
|
|
src | Enthält die TypeScript-Dateien
|
|
----------------------------+-------------------------------------------------------------------------------
|
|
WebsocketServer | Enthält den Websocketserver und alle notwendigen Bibliotheken für diesen
|
|
----------------------------+-------------------------------------------------------------------------------
|
|
www | Enthält alle Dateien für die Weboberfläche
|
|
----------------------------+-------------------------------------------------------------------------------
|
|
package.json | NodeJS Abhängigkeiten
|
|
----------------------------+-------------------------------------------------------------------------------
|
|
tsconfig.json | TypeScript Projektconfig
|
|
----------------------------+-------------------------------------------------------------------------------
|
|
build | Kompilierskript (Aufruf durch ./build in bash)
|
|
| --min minimiert die Ausgabedatei (Performance)
|
|
| --fetch-deps reinstalliert alle Abhängigkeiten
|
|
| (WARNUNG: --fetch-deps kann das Projekt auch beschädigen)
|
|
----------------------------+-------------------------------------------------------------------------------
|
|
watch | Rekompiliert bei Dateiänderungen
|
|
| (Aufruf durch ./watch in bash)
|
|
----------------------------+-------------------------------------------------------------------------------
|
|
|
|
-----------------------
|
|
--- Websocketserver ---
|
|
-----------------------
|
|
|
|
Der Websocketserver dient dazu, sich vom Hauptsystem unabhängig zu machen. Er versorgt das Tool mit Initial- und Testdaten,
|
|
welche zum starten des Tools oder für die Nutzung einzelner Funktionen nötig sind.
|
|
WICHTIG: Der Websocketserver läuft der Einfachheit halber über die Konsole und benötigt somit Node.JS um gestartet zu werden
|
|
|
|
-------------------------
|
|
--- Start des Servers ---
|
|
-------------------------
|
|
|
|
Um den Server zu starten, muss via Konsole in den Ordner „WebsocketServer“ navigiert werden. Dort liegt eine Datei namens „wssTest.js“.
|
|
Um den Server zu starten, muss diese Datei mithilfe von „node wssTest.js“ ausgeführt werden.
|
|
Der Server öffnet nun zwei Websockets:
|
|
Port 9000 sendet ein PositionReport an das Webtool
|
|
Port 9001 sendet einen Gebäudefootprint an das Tool, damit dieses gestartet werden kann
|
|
|
|
-----------------------------
|
|
--- Anpassung des Servers ---
|
|
-----------------------------
|
|
|
|
Der Server beinhaltet drei Funktionen:
|
|
sendFootprint sendet einen Gebäudefootprint an den Client
|
|
sendJSON sendet einen Positionreport an den Client
|
|
sendLoop setzt den eingetragenen Befehl in eine Schleife
|
|
Die Funktionen werden bei einem Verbindungsaufbau durch den Client ausgeführt. Demzufolge muss das „onConnection“-Event verändert werden, damit andere Funktionen ausgeführt werden.
|
|
Um die Datensätze zu ändern, müssen die Postionreports bzw. Footprints im Code angepasst werden.
|
|
Alle, durch den Server, durchgeführten Aktionen werden in der Konsole des Websocketservers geloggt.
|
|
|
|
-------------------------------------
|
|
--- Nutzung des Tools mit Firefox ---
|
|
-------------------------------------
|
|
|
|
Das Tool wird standardmäßig durch den Aufruf der index.html im „www“-Ordner gestartet.
|
|
Nach Aufruf des Tools zieht sich das Tool die Gebäudefootprints von einem Standardserver.
|
|
Sollte dies Fehlschlagen, wird das Tool nach einer Server-IP fragen, welche es dem Tool ermöglichen Footprints zu importieren. Dieser Schritt ist notwendig um das Tool zu starten.
|
|
ACHTUNG: Sollten nach dem Start des Tools keine Locations und Karten angezeigt werden handelt es sich vermutlich um einen CORS-Fehler.
|
|
CORS verhindert in neueren Browserversionen einen Cross-Origin-Zugriff, wodurch die Locations nicht geladen werden können.
|
|
Dies ist nur durch einen Aufruf mithilfe eines Webservers oder durch das Abschalten von CORS (nicht empfohlen) zu umgehen.
|
|
|
|
-----------------------
|
|
--- Ansprechpartner ---
|
|
-----------------------
|
|
|
|
Tim Pardemann (tim.pardemann@rheinmetall.com)
|
|
Elias Junge (elias.junge@rheinmetall.com)
|
|
Justus Hertel (justus.hertel@rheinmetall.com)
|
|
|