# VATGER Arrival Stand Bridge – Anleitung für Lotsen

Diese Anleitung ist für den gemeinsamen Test von VATGER und LH Virtual. Du
brauchst **keinen Compiler** und änderst nichts an Connex. Die Bridge hört nur
auf Stand-Zuweisungen des GRPlugin und meldet sie an die Testauswertung von LH
Virtual.

Die aktuelle Testfassung gilt ausschließlich für **EDDF und EDDM**.

## Zwei getrennte Datenwege

Die Bridge ist **nicht** der Anfang des normalen Gate-Prozesses. Der Hinweg
läuft auch ohne das EuroScope-Testpaket:

```text
Connex/Telex ──► normale Antwort und Versand an den Piloten
      │
      └── nach der Antwort ──► unabhängige Gate-Prüfung ──► Log
                                      │
                                      └── nur bestanden ──► VATGER-.txt
```

Ein Gate, das die Prüfung nicht besteht, bleibt damit im Log sichtbar. Die
bereits versendete Connex wird weder aufgehalten noch zurückgenommen oder
geändert.

Das Testpaket stellt ausschließlich den **Rückweg** bereit: Vergibt ein Lotse
in GRPlugin für diesen Piloten ein neues Gate – etwa weil das bisherige Gate
belegt ist oder operativ geändert wird –, erfasst die Bridge den
`GRP/S/<stand>`-Broadcast und meldet die neue Zuweisung an LH Virtual. Dort wird
das neue Gate erneut geprüft und protokolliert. Nur wenn es besteht, erscheint
es in der VATGER-.txt; die ursprüngliche Connex des Piloten bleibt auch dabei
unverändert.

## Das brauchst du

- EuroScope mit dem von dir verwendeten VATGER-Sektorpaket
- GRPlugin und Zugriff auf dessen aktive `GRpluginEventStands.txt`
- das ZIP-Paket `VATGER-GRP-Bridge-0.1.0.zip`
- den Test-Token von deinem LH-Virtual-Ansprechpartner
- einen vorher abgestimmten Testzeitpunkt mit einem aktiven EDDF- oder
  EDDM-Connex-Flug

Der Test-Token ist ein Geheimnis. Nicht in Discord, Tickets, Screenshots oder
Git-Repositories einfügen.

## Installation in acht Schritten

### 1. Paket entpacken

Das ZIP vollständig in einen neuen Ordner entpacken, zum Beispiel
`Dokumente\VATGER-Bridge-Test`. Falls Windows in den Eigenschaften des ZIPs
`Zulassen` oder `Blockierung aufheben` anbietet, diesen Haken **vor** dem
Entpacken setzen.

### 2. INI anlegen

`VatgerGrpBridge.ini.example` kopieren und die Kopie exakt
`VatgerGrpBridge.ini` nennen. In Windows am besten vorher unter
`Ansicht → Dateinamenerweiterungen` die Erweiterungen einblenden. Die Datei
darf nicht versehentlich `VatgerGrpBridge.ini.txt` heißen.

Die INI mit dem Editor öffnen und so eintragen:

```ini
[Bridge]
Endpoint=https://lh-virtual.app/api/internal/vatger/grp-stand-event
Token=HIER-DEN-TEST-TOKEN-EINSETZEN
Airports=EDDF,EDDM
```

`VatgerGrpBridge.ini` und `VatgerGrpBridge.dll` müssen im selben Ordner liegen.

### 3. GRPlugin-Feed eintragen

In der **aktiven** `GRpluginEventStands.txt` des verwendeten Sektorprofils muss
als erste Zeile stehen:

```text
URL=https://lh-virtual.app/api/integrations/vatger/grp-event-stands.txt
```

Wenn mehrere gleichnamige Dateien vorhanden sind, vor der Änderung beim
Paketbetreuer nachfragen, welche das aktive Profil verwendet. Eine vorhandene
Datei vorher sichern.

### 4. Bridge in EuroScope laden

EuroScope öffnen und `OTHER SET → Plug-ins → Load` wählen. Im entpackten Ordner
`VatgerGrpBridge.dll` auswählen.

### 5. Start prüfen

Neben DLL und INI entsteht `VatgerGrpBridge.log`. Darin muss diese Zeile stehen:

```text
Bridge loaded; event worker started
```

Fehlt die Zeile, nicht mit dem Live-Test beginnen, sondern zuerst die
Fehlerhilfe weiter unten verwenden.

### 6. Testflug abstimmen

Der LH-Virtual-Ansprechpartner nennt Rufzeichen, Ziel, bisheriges Arrival Gate
und den Teststand. Die Connex des Piloten muss das ursprüngliche Gate bereits
bekommen haben. Der Pilot muss nichts umstellen und bekommt vom Test nichts mit.

### 7. Stand in GRPlugin ändern

Den abgestimmten Flug in GRPlugin auf den neuen Stand setzen. Im Log müssen
nacheinander sinngemäß diese Meldungen erscheinen:

```text
Captured assign ...
Delivered ... (HTTP 200)
```

### 8. Ergebnis gemeinsam prüfen

- Besteht der neue Stand die Belegungs- und CDM-Prüfung, erscheint er im
  Event-Stand-Feed.
- Ist der Stand blockiert oder nicht zulässig, erscheint er **nicht** im Feed.
  Die versuchte Änderung bleibt trotzdem im LH-Virtual-Prüfprotokoll sichtbar.
- Die bereits an den Piloten gesendete Connex bleibt in beiden Fällen
  unverändert.

GRPlugin lädt seinen Event-Stand-Feed normalerweise nicht sofort neu. Für den
Test GRPlugin neu laden oder den im Sektorprofil vorgesehenen Reload verwenden.

## Welche Datei macht was?

| Datei | Bedeutung |
|---|---|
| `VatgerGrpBridge.dll` | Das EuroScope-Plug-in. Nur diese Datei wird in EuroScope geladen. |
| `VatgerGrpBridge.ini.example` | Sichere Vorlage. Als `VatgerGrpBridge.ini` kopieren und mit dem Test-Token vervollständigen. |
| `GRpluginEventStands.txt.example` | Enthält die eine URL-Zeile, die in die aktive GRPlugin-Datei gehört. |
| `README-FUER-LOTSEN.md` | Diese kurze Installations- und Testanleitung. |
| `README.md` | Technische Betriebs-, Server- und Build-Dokumentation für Administratoren. |
| `VatgerGrpBridge.dll.sha256` | Prüfsumme der DLL, um einen unveränderten Download zu erkennen. |
| `test-endpoint.ps1` | Prüft vor dem Lotsentest, ob Serveradresse und Token funktionieren. |
| `send-test-event.ps1` | Sendet ohne EuroScope ein künstliches Stand-Ereignis. Nur für einen abgestimmten Techniktest. |
| `validate-feed.ps1` | Vergleicht die ausgelieferten Stände mit einer lokalen `GRpluginStands.txt`. |
| `new-test-config.ps1` | Erzeugt den Server-Token und eine lokale INI. Nur für den LH-Virtual-Administrator. |
| `show-audit.ps1` | Liest das geschützte Prüfprotokoll. Nur für den LH-Virtual-Administrator. |
| `build-portable.ps1`, `build.ps1`, `package-test.ps1` | Build- und Paketwerkzeuge. Für die Installation nicht nötig. |
| `VatgerGrpBridge.vcxproj`, `src/` | Visual-Studio-Projekt und Quelltext. Für die Installation nicht nötig. |
| `VatgerGrpBridge.log` | Wird beim ersten Start neben der DLL erzeugt und zeigt Erfassung und Übertragung. |

## Fehlerhilfe

### EuroScope lädt die DLL nicht

- Prüfen, ob das ZIP vor dem Entpacken entsperrt wurde.
- Sicherstellen, dass `VatgerGrpBridge.dll` aus dem fertigen `dist`-Paket und
  nicht eine Quelldatei gewählt wurde.
- EuroScope und Bridge müssen beide 32 Bit sein; die mitgelieferte DLL ist
  bereits entsprechend gebaut.

### Es entsteht keine Logdatei

Die DLL wurde nicht geladen oder der ausgewählte Ordner ist nicht beschreibbar.
Einen normalen Ordner unter `Dokumente` verwenden und erneut laden.

### Im Log steht `Bridge disabled`

`VatgerGrpBridge.ini` fehlt, heißt versehentlich `.ini.txt` oder enthält noch
einen Platzhalter. INI und DLL müssen nebeneinander liegen.

### `Captured`, aber kein `HTTP 200`

Adresse, Test-Token und Internetverbindung prüfen. Den Token nicht zusammen mit
dem Log öffentlich weitergeben.

### `HTTP 200`, aber der Flug erscheint nicht im Feed

Das ist nicht automatisch ein Fehler. Entweder gibt es keinen passenden aktiven
Connex-Flug oder der neue Stand wurde durch die Belegungs-/CDM-Regeln abgelehnt.
Der LH-Virtual-Ansprechpartner sieht den genauen Grund im Prüfprotokoll.

### EDDM-Stände fehlen

Das Langen-/EDGG-Paket enthält EDDF, aber keine EDDM-Standliste. Für München ist
zusätzlich die passende `GRpluginStands.txt` aus dem EDMM-Paket erforderlich.

## Rückbau

1. Unter `OTHER SET → Plug-ins` die Bridge entladen.
2. `VatgerGrpBridge.dll`, `VatgerGrpBridge.ini` und
   `VatgerGrpBridge.log` aus dem Testordner löschen.
3. Die gesicherte `GRpluginEventStands.txt` wiederherstellen, falls die
   Feed-Zeile nur für den Test eingetragen wurde.
4. LH Virtual mitteilen, dass der Test beendet ist, damit der Test-Token
   serverseitig widerrufen werden kann.

Weitere Hilfe und die aktuelle Downloadfassung:
<https://www.lh-virtual.com/vatger-guide>
