128 lines
6.5 KiB
Plaintext
Executable File
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)
|
|
|