3 Architektur
Batista82 edited this page 2026-07-06 17:24:05 +02:00

Architektur

Komponenten

TruckSimLogBook.Plugin

Native C++-DLL auf Basis des SCS Telemetry SDK. Zuständig für Kanäle, Gameplay-Ereignisse und Shared Memory.

TruckSimLogBook.Core

.NET-Kernbibliothek mit:

  • Domänenmodellen
  • Telemetrie-Leser
  • Tourzustandslogik
  • SQLite-Zugriff
  • Statistikberechnung
  • CSV-, JSON- und PDF-Export
  • Konfigurations- und Launcher-Diensten

TruckSimLogBook.App

Unpackaged WinUI-3-Desktop-App für x64. Sie verwendet MVVM und bindet Ansichten an den gemeinsamen MainViewModel-Zustand.

TruckSimLogBook.Tests

Automatisierte Tests für zentrale Geschäftslogik und Datenverarbeitung.

Installer

Inno Setup veröffentlicht App, Konfiguration, Dokumente und Plugin. Das Setup verwaltet Neuinstallation und datenbewahrendes Update.

Repository-Gerüst

src/          App, Core, Plugin und Tests
scripts/      Build-, Release- und Prüfscripte
installer/    Inno-Setup-Definition und Assets, keine Release-Ablage
third_party/  SCS SDK und weitere unveränderte Abhängigkeiten
docs/         technische Dokumentation
wiki/         separates Wiki-Repository
build/        lokale versionierte Release-Artefakte

Das Gerüst entspricht dem gemeinsamen Bastelhof-Standard. Produktspezifisch bleiben das native Plugin und der zusätzliche third_party-Bereich.

Freizugebende Versionen entstehen ausschließlich unter build/trucksim_logbook/<version>. installer/out ist nur temporäres Staging der Build-Skripte.

Datenfluss

  1. Das Spiel ruft das Plugin über die SCS Telemetry API auf.
  2. Das Plugin normalisiert Werte in einen Shared-Memory-Snapshot.
  3. Die App liest und validiert den Snapshot.
  4. Der Tourdienst erkennt Zustandsübergänge.
  5. Repository und Statistikdienst arbeiten auf SQLite.
  6. Die Oberfläche aktualisiert gebundene ViewModels.

Designziele

  • vollständig lokale Datenhaltung
  • klare Trennung zwischen nativer Telemetrie und .NET-App
  • robuste Zustandsübergänge statt blindem Polling
  • updatefähige Installationsstruktur
  • nachvollziehbare Diagnose über Textlogs