3 Telemetrie und Plugin
Timo Bannier edited this page 2026-10-12 02:37:28 +02:00

Telemetrie und Plugin

Stand: App/Plugin 0.13.18, 12.10.2026.

Datenweg

ETS2/ATS
  -> SCS Telemetry SDK
  -> TruckSimLogBook.Plugin.dll
  -> TruckSimLogBook.SharedMemory
  -> WinUI-App
  -> SQLite-Datenbank

Das native C++-Plugin registriert Telemetriekanäle und Gameplay-Ereignisse. Es schreibt einen binären Snapshot in eine benannte Shared-Memory-Struktur. Die App liest diesen Snapshot in festen Intervallen.

Erfasste Bereiche

  • Spiel- und Pausenzustand
  • Auftrag, Route und Firmen
  • Fracht und Gewicht
  • Zugmaschine und Trailer
  • Geschwindigkeit, Drehzahl, Gang und Tempomat
  • Treibstoff, AdBlue, Verbrauch und Reichweite
  • Kilometerstand und tatsächliche Fahrstrecke
  • Fahrzeug-, Trailer- und Frachtschaden
  • Einnahmen und Gameplay-Kosten

Shared Memory

Standardname:

TruckSimLogBook.SharedMemory

Plugin und App müssen exakt denselben Namen und dieselbe Datenstruktur verwenden. Eine Strukturänderung erfordert normalerweise einen gemeinsamen Build beider Komponenten.

Aktuell: TSL2, 1232 Byte, kompatibler 1064-Byte-Präfix. result_flags enthält Ergebnisbits 1..64 sowie Live-Gültigkeit 128 Auflieger, 256 Fahrzeug, 512 Fracht. Schadenkanäle liefern je Frame frische Werte oder explizit unbekannt; Job-Fracht hat Vorrang vor Trailer-Fracht desselben Frames. Neue App und neues Plugin gemeinsam verwenden, Spiel vor Austausch der DLL schließen.

Auftragserkennung

Die App eröffnet eine aktive Tour, wenn ein valider Auftrag erkannt wird. Bei Auftragswechsel, erfolgreicher Abgabe oder Abbruch wird der Status anhand der SDK-Ereignisse und stabiler Zustandsübergänge festgelegt. Schutzlogik verhindert das erneute Anlegen bereits abgeschlossener Fahrten.

Seit 0.13.18 wird genau ein passender persistierter aktiver Checkpoint nach App-Neustart wiederaufgenommen. Ein fehlgeschlagener Read beendet keine Tour. Neue Schäden sind ein separater, manuell korrigierbarer Zusatz zum Abschluss; Vergleichsregeln und Grenzen. Die bisherige absolute 20-%- Schwelle gilt nicht mehr. Historische Daten bleiben erhalten.

Unterstützte Telemetry-API

Das Plugin akzeptiert SCS Telemetry API 1.01 und 1.00. Der Build verwendet die im Projekt eingebundene SCS-SDK-Version 1.15.

Grenzen

  • Tankkosten werden derzeit aus Tankfüllstandsanstiegen und einem geschätzten Literpreis abgeleitet, nicht als tatsächlicher Kaufpreis gemeldet.

  • Reparaturen und Abschleppen werden teilweise heuristisch erkannt; die detaillierte Kostenabnahme ist noch offen.

  • Fähre und Zug teilen einen Kostenzähler; Strafen besitzen keine getrennte Unfall-/Verstoßklassifikation.

  • Mod-Karten können unbekannte Länder- oder Fahrzeugcodes liefern.

  • Manche Gameplay-Ereignisse unterscheiden sich zwischen Spielversionen.

  • Daten, die das SDK nicht liefert, können nicht zuverlässig rekonstruiert werden.

  • Bei Savegame-Reloads prüft die App Zustände konservativ, um Dubletten zu vermeiden.

  • Die vollständige Profil-/Savegame-/Gerätewechsel-Abnahme bleibt offen; gleiches Gerätemodell ist kein eindeutiger Fahrzeugbezeichner.

  • Chassis-Verschleiß ist kein Gesamt-/Unfallschaden. Schwellwerte, Messpausen und normale Abnutzung gesondert im Spiel prüfen.

Aufliegerschaden ab 0.13.10

Das neue Plugin kennzeichnet die Verfügbarkeit des SDK-Auflieger-Chassiswerts. App und Plugin gemeinsam aktualisieren. Touren speichern die letzte gültige LKW-Messung, auch wenn der Channel beim Abkopplen wegfällt. Ältere Touren oder Plugins ohne Gültigkeitskennung liefern keinen erfundenen Wert von 0 %. Auflieger-, Fahrzeug- und Frachtschaden bleiben getrennt; aus Schaden entstehen keine automatischen Reparaturkosten. Ab 0.13.11 bleibt die Aufliegerschaden-Zeile auch bei Road Trip sichtbar und zeigt „Nicht zutreffend“, ohne Messung zu erfinden. Ein eigener Statistikdurchschnitt verwendet nur bekannte Aufliegerwerte. Der Chassiswert ist kein Gesamtwert aller Aufliegerkomponenten; echter Spielvergleich und Mehrfachaufliegerprüfung stehen noch aus.

JSON-Diagnosemodus ab 0.13.4

Das Plugin kann ausdrücklich für eine Testfahrt JSON-Rohprotokolle schreiben. Im Normalbetrieb bleibt dies deaktiviert. Details zu Aktivierung, Grenzen und Fahrplan stehen im Hauptprojekt unter docs/fieldtest/telemetry-costs.md. Kosten ohne aktive Tour verändern nicht die letzte abgeschlossene Fahrt; Firmen-/Ortsnamen dienen nicht mehr als Reparatur-/Abschleppnachweis. Der Shared-Memory-Vertrag bleibt unverändert. Echte Kosten-Testfahrten sind noch nicht abgeschlossen.

Entwicklerdokumentation

Die technische Referenz liegt im Hauptprojekt unter docs/architecture/plugin-integration.md. Arbeitsregeln, Entscheidungen, Prüfungen und offene Schritte werden fortlaufend in docs/development/plugin-development.md geführt. Beide Dokumente sind bei jeder Telemetrieänderung im selben Arbeitsstand zu aktualisieren, damit parallele Entwicklungen den bestehenden Stand übernehmen können. SDK-Belege, synthetische Tests und reale Spieltests werden ausdrücklich unterschieden.

Aktueller Prüfstand: 104 App-Tests, nativer CTest sowie App-/Plugin-/Setup-Build und Release-Prüfsummen bestanden. Reale Kosten-/Schadensabnahme weiterhin offen.