Files
qt5-legatus-legacy/Lts/Tools/ArAssetsV3/readme.txt
T
2026-08-13 18:33:10 +02:00

128 lines
6.5 KiB
Plaintext
Executable File

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)