Vollständige Implementierung des EngineeringSync-Middleware-Tools: - Windows Service (Kestrel :5050) mit FileSystemWatcher + SignalR - WPF Tray-App mit PendingChanges- und Projektverwaltungs-Fenster - Setup-Wizard (8-Schritte-Installer) - SQLite/EF Core Datenschicht (WAL-Modus) - SHA-256-basiertes Debouncing (2s Fenster) - Backup-System mit konfigurierbarer Aufbewahrung Bugfixes & Verbesserungen: - BUG-1: AppDbContext OnConfiguring invertierte Bedingung behoben - BUG-2: Event-Handler-Leak in TrayApp (Fenster-Singleton-Pattern) - BUG-3: ProjectConfigChanged SignalR-Signal in allen CRUD-Endpoints - BUG-5: Rename-Sync löscht alte Datei im Simulations-Ordner - BUG-6: Doppeltes Dispose von SignalR verhindert - BUG-7: Registry-Deinstallation nur EngineeringSync-Eintrag entfernt - S1: Path-Traversal-Schutz via SafeCombine() im SyncManager - E1: FSW Buffer 64KB + automatischer Re-Scan bei Overflow - E2: Retry-Logik (3x) für gesperrte Dateien mit exponentiellem Backoff - E4: Channel.Writer.TryComplete() beim Shutdown - C2: HubMethodNames-Konstanten statt Magic Strings - E3: Pagination in Changes-API (page/pageSize Query-Parameter) - A1: Fire-and-Forget mit try/catch + Logging Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
28 KiB
EngineeringSync – Benutzerhandbuch
Version 1.0.0 | Stand: März 2026
Inhaltsverzeichnis
- Einführung
- Systemvoraussetzungen
- Installation
- Die Tray-App im Überblick
- Projekte verwalten
- Änderungen überwachen und synchronisieren
- Backup-Funktion
- Windows-Dienst verwalten
- Deinstallation
- Technische Architektur
- Fehlerbehebung & FAQ
1. Einführung
EngineeringSync ist ein Middleware-Werkzeug, das die Arbeit zwischen der Konstruktionsabteilung (CAD) und der Simulationsabteilung (z. B. Process Simulate) koordiniert.
Das Problem ohne EngineeringSync
In der täglichen Praxis arbeiten Konstrukteure und Simulationsingenieure an denselben Dateien, aber in unterschiedlichen Verzeichnissen. Dateien werden manuell kopiert – oft zur falschen Zeit, in der falschen Version, oder sogar während eine Simulation läuft. Das kann zu:
- Datenverlust führen (Überschreiben aktiver Simulationsdateien)
- Inkonsistenz erzeugen (Simulation basiert auf veralteten CAD-Daten)
- Zeitverlust verursachen (manuelles Tracking von Änderungen)
Die Lösung mit EngineeringSync
Konstrukteur Simulationsingenieur
│ │
│ speichert CAD-Datei │
▼ │
Engineering-Ordner Simulations-Ordner
(wird überwacht) (Sync-Ziel)
│ │
└──────── EngineeringSync ──────────┘
│
├─ erkennt Änderungen automatisch
├─ benachrichtigt den Sim-Ingenieur
├─ wartet auf Freigabe
└─ kopiert erst nach Bestätigung
Der Simulationsingenieur behält die volle Kontrolle: Dateien werden nie automatisch überschrieben – erst nach expliziter Freigabe durch die Tray-App.
2. Systemvoraussetzungen
| Komponente | Mindestanforderung |
|---|---|
| Betriebssystem | Windows 10 (64-Bit) oder Windows 11 |
| .NET Runtime | .NET 10 (wird vom Installer mitgeliefert) |
| Arbeitsspeicher | 256 MB RAM (Dienst) |
| Festplatte | 150 MB freier Speicher |
| Netzwerk | Keine (rein lokal, localhost:5050) |
| Benutzerrechte | Administratorrechte für die Installation |
Hinweis: EngineeringSync läuft ausschließlich lokal auf einem Rechner. Netzwerkfreigaben können als überwachte Pfade genutzt werden, sofern sie als Laufwerksbuchstabe eingebunden sind.
3. Installation
3.1 Setup-Assistent starten
Führen Sie die Installationsdatei EngineeringSync-Setup.exe aus. Falls eine Sicherheitswarnung von Windows erscheint, klicken Sie auf „Weitere Informationen" → „Trotzdem ausführen".
Der Setup-Assistent öffnet sich als modernes Fenster mit einer linken Navigationsleiste, die den aktuellen Fortschritt anzeigt.
3.2 Schritt: Willkommen
Der erste Schritt begrüßt Sie und gibt einen Überblick über die installierten Komponenten:
- EngineeringSync-Dienst – der Hintergrunddienst, der Dateien überwacht
- Tray-App – die Benutzeroberfläche im Windows-Systemtray
- SQLite-Datenbank – lokale Speicherung aller Änderungen und Konfigurationen
Klicken Sie auf „Weiter →" um fortzufahren.
3.3 Schritt: Installation
Wählen Sie den Installationsordner. Der Standardpfad lautet:
C:\Program Files\EngineeringSync\
Sie können über das Ordner-Symbol einen anderen Pfad wählen. Klicken Sie auf „Weiter →".
3.4 Schritt: Erstes Projekt konfigurieren
Dies ist der wichtigste Konfigurationsschritt. Sie definieren hier Ihr erstes überwachtes Projekt.
Projektname
Vergeben Sie einen aussagekräftigen Namen, z. B. Linie 3 – Roboterzelle oder Projekt Alpha.
Engineering-Quellpfad (wird überwacht)
Der Ordner, in dem der Konstrukteur arbeitet und CAD-Dateien speichert. Jede Änderung in diesem Verzeichnis wird automatisch erfasst und dem Simulationsingenieur gemeldet.
Beispiel: C:\CAD-Projekte\Linie3\
Klicken Sie auf das Ordner-Symbol rechts neben dem Eingabefeld um einen Ordner per Dialog auszuwählen.
Simulations-Zielpfad (Sync-Ziel)
Der Ordner, in dem der Simulationsingenieur arbeitet. Freigegebene Änderungen werden in dieses Verzeichnis kopiert (mit automatischem Backup der bestehenden Dateien).
Beispiel: C:\ProcessSimulate\Projekte\Linie3\
Überwachte Dateien
Sie können wählen, welche Dateitypen überwacht werden:
| Option | Beschreibung |
|---|---|
| Alle Dateitypen überwachen | Jede Dateiänderung im Ordner wird protokolliert (unabhängig von der Endung) |
| Spezifische Endungen | Nur bestimmte Dateitypen werden überwacht |
Für spezifische Endungen stehen Quick-Select-Buttons bereit:
| Button | Format | Verwendung |
|---|---|---|
.jt |
JT (Jupiter Tesselation) | Siemens NX, Teamcenter |
.cojt |
Compound JT | Process Simulate Assemblies |
.xml |
XML | Konfigurationsdateien |
.stp / .step |
STEP | CAD-Austauschformat |
.igs / .iges |
IGES | Älteres CAD-Austauschformat |
.prt |
Part File | NX Part-Dateien |
Sie können auch manuell Endungen (komma-getrennt) eingeben, z. B.:
.jt, .cojt, .xml, .prt
3.5 Schritt: Backup-Einstellungen
Bevor EngineeringSync eine Simulationsdatei überschreibt, kann automatisch eine Sicherungskopie erstellt werden.
Backups aktivieren
Aktivieren Sie den Schalter um Backups zu aktivieren (empfohlen). Das Backup wird unmittelbar vor dem Überschreiben erstellt.
Das Namensschema der Backup-Datei lautet:
{Dateiname}_{JJJJMMTT_HHMMSS}.bak
Beispiel: Roboter_Arm.jt_20260315_143022.bak
Backup-Speicherort
| Option | Beschreibung |
|---|---|
| Gleicher Ordner | Das Backup liegt neben der Originaldatei (Standard) |
| Eigener Backup-Ordner | Alle Backups werden zentral in einem Ordner gesammelt |
Aufbewahrung
Legen Sie fest, wie viele Backups pro Datei maximal behalten werden:
0= unbegrenzt (alle Backups behalten)5= die letzten 5 Backups werden behalten, ältere werden gelöscht
3.6 Schritt: Start- und Verknüpfungs-Optionen
Autostart
| Option | Empfehlung | Beschreibung |
|---|---|---|
| Windows-Dienst automatisch starten | ✅ Empfohlen | Der Hintergrunddienst startet mit Windows |
| Tray-App bei Anmeldung starten | ✅ Empfohlen | Die Tray-App erscheint nach dem Login automatisch |
Verknüpfungen
| Option | Beschreibung |
|---|---|
| Desktop-Verknüpfung | Startet die Tray-App per Doppelklick vom Desktop |
| Startmenü-Eintrag | EngineeringSync im Windows-Startmenü |
Nach Installation
| Option | Beschreibung |
|---|---|
| Tray-App nach Installation starten | Startet die App direkt nach Abschluss |
3.7 Schritt: Zusammenfassung & Installation
Überprüfen Sie alle gewählten Einstellungen in der Zusammenfassung. Mit „Installieren" wird die Installation durchgeführt:
- Dateien werden in den Installationsordner kopiert
- Der Windows-Dienst
EngineeringSyncwird registriert - Der Dienst wird gestartet
- Autostart-Einträge werden gesetzt (falls ausgewählt)
- Verknüpfungen werden erstellt (falls ausgewählt)
Ein Fortschrittsbalken zeigt den aktuellen Status an.
3.8 Schritt: Fertig
Die Installation ist abgeschlossen. Klicken Sie auf „Schließen" um den Setup-Assistenten zu beenden. Falls die Option „Tray-App nach Installation starten" aktiviert war, erscheint das Tray-Icon automatisch in der Windows-Taskleiste.
4. Die Tray-App im Überblick
Die Tray-App lebt im Windows-Systemtray (rechte Seite der Taskleiste, neben der Uhr).
Taskleiste: [...] [🔔] [EngineeringSync-Icon] [Zeit]
▲
Rechtsklick-Menü:
┌─────────────────────────────────┐
│ 🔔 Ausstehende Änderungen (3) │
│ ⚙ Projekte verwalten │
│ ─────────────────────────────── │
│ ✕ Beenden │
└─────────────────────────────────┘
Tray-Icon-Zustände
| Symbol | Bedeutung |
|---|---|
| Normal | Dienst läuft, keine ausstehenden Änderungen |
| Mit Zahl | Anzahl der ausstehenden Änderungen, die auf Freigabe warten |
Toast-Benachrichtigungen
Sobald neue Dateländerungen erkannt werden, erscheint automatisch eine Windows-Benachrichtigung:
EngineeringSync
───────────────
Projekt "Linie 3": 2 neue Änderungen
Ein Klick auf die Benachrichtigung öffnet direkt das Fenster „Ausstehende Änderungen".
5. Projekte verwalten
Über Rechtsklick → „Projekte verwalten" öffnet sich das Projektverwaltungs-Fenster.
5.1 Neues Projekt anlegen
- Klicken Sie auf „+ Projekt hinzufügen"
- Füllen Sie die Felder aus (gleiche Felder wie im Setup-Assistenten)
- Bestätigen Sie mit „Speichern"
Der Dienst beginnt sofort mit der Überwachung des neuen Ordners. Ein initialer Scan vergleicht vorhandene Dateien zwischen Engineering- und Simulations-Ordner und erstellt für abweichende Dateien sofort ausstehende Änderungen.
5.2 Projekt bearbeiten
- Wählen Sie ein Projekt in der Liste aus
- Klicken Sie auf „Bearbeiten" (oder Doppelklick)
- Ändern Sie die gewünschten Felder
- Bestätigen Sie mit „Speichern"
Hinweis: Nach dem Speichern wird der Dateiwatcher automatisch neu gestartet. Laufende Scans werden abgebrochen und neu begonnen.
5.3 Projekt löschen
- Wählen Sie ein Projekt in der Liste aus
- Klicken Sie auf „Löschen"
- Bestätigen Sie die Sicherheitsfrage
Achtung: Beim Löschen eines Projekts werden auch alle zugehörigen ausstehenden Änderungen und die Datei-Revisionshistorie gelöscht. Die tatsächlichen Dateien auf der Festplatte werden nicht verändert.
5.4 Dateiüberwachung konfigurieren
Aktive / inaktive Projekte
Projekte können vorübergehend deaktiviert werden (z. B. während Wartungsarbeiten). Ein deaktiviertes Projekt erzeugt keine neuen Änderungseinträge.
Dateierweiterungen
Die überwachten Dateitypen können jederzeit angepasst werden. Änderungen wirken sich auf zukünftige Ereignisse aus – bestehende ausstehende Änderungen bleiben erhalten.
6. Änderungen überwachen und synchronisieren
6.1 Benachrichtigungen empfangen
EngineeringSync überwacht den Engineering-Ordner in Echtzeit mittels FileSystemWatcher. Folgende Ereignisse werden erfasst:
| Ereignistyp | Beschreibung |
|---|---|
| Erstellt | Eine neue Datei wurde im Engineering-Ordner abgelegt |
| Geändert | Eine bestehende Datei wurde modifiziert (SHA-256-Prüfung bestätigt tatsächliche Änderung) |
| Umbenannt | Eine Datei wurde umbenannt oder verschoben |
| Gelöscht | Eine Datei wurde aus dem Engineering-Ordner entfernt |
Debouncing (Entprellung)
Schnelle aufeinanderfolgende Speichervorgänge (z. B. Autosave alle 5 Sekunden) werden zu einem einzigen Ereignis zusammengefasst. Das Zeitfenster beträgt 2 Sekunden – erst nach 2 Sekunden ohne weitere Aktivität auf derselben Datei wird das Ereignis verarbeitet.
SHA-256-Prüfung
Bevor eine Änderung als „ausstehend" eingetragen wird, vergleicht EngineeringSync den SHA-256-Hash der Datei mit dem zuletzt gespeicherten Hash. Nur bei tatsächlich unterschiedlichem Inhalt wird eine neue Änderung erfasst. Das verhindert Falschmeldungen bei Metadaten-Änderungen (z. B. Zeitstempel-Updates).
6.2 Das Fenster „Ausstehende Änderungen"
Öffnen Sie das Fenster über Rechtsklick → „Ausstehende Änderungen" oder per Klick auf eine Toast-Benachrichtigung.
┌─────────────────────────────────────────────────────────────┐
│ Ausstehende Änderungen │
│ │
│ Projekt: [Linie 3 – Roboterzelle ▼] │
│ │
│ ┌──────────────────────────────────────┬──────┬──────────┐ │
│ │ Datei │ Typ │ Datum │ │
│ ├──────────────────────────────────────┼──────┼──────────┤ │
│ │ ☑ Roboter\Arm_links.jt │ Mod. │ 14:30:22 │ │
│ │ ☑ Roboter\Arm_rechts.jt │ Neu │ 14:31:05 │ │
│ │ ☐ Basis\Grundplatte.jt │ Mod. │ 09:15:44 │ │
│ └──────────────────────────────────────┴──────┴──────────┘ │
│ │
│ [Alle wählen] [Keine] [✔ Sync] [✖ Ignorieren] │
└─────────────────────────────────────────────────────────────┘
Projektauswahl
Falls mehrere Projekte konfiguriert sind, wählen Sie das gewünschte Projekt aus dem Dropdown-Menü. Die Tabelle aktualisiert sich automatisch per SignalR – neue Änderungen erscheinen sofort ohne manuelles Neuladen.
Änderungstypen
| Symbol | Typ | Bedeutung |
|---|---|---|
| Neu | Created | Datei existiert noch nicht im Simulations-Ordner |
| Mod. | Modified | Datei wurde inhaltlich geändert (anderer SHA-256) |
| Umbn. | Renamed | Datei wurde umbenannt (Alter Name wird im Sim-Ordner entfernt) |
| Gel. | Deleted | Datei wurde aus dem Engineering-Ordner gelöscht |
6.3 Änderungen synchronisieren
- Wählen Sie die gewünschten Änderungen per Checkbox aus (oder „Alle wählen")
- Klicken Sie auf „✔ Sync"
EngineeringSync verarbeitet jede ausgewählte Änderung:
Bei „Erstellt" oder „Geändert":
1. Backup der bestehenden Simulationsdatei erstellen (falls Backup aktiviert)
2. Zielverzeichnis erstellen (falls nicht vorhanden)
3. Datei aus Engineering-Ordner in Simulations-Ordner kopieren
4. Änderung als "Synchronisiert" markieren
Bei „Gelöscht":
1. Backup der Simulationsdatei erstellen (falls Backup aktiviert)
2. Datei aus Simulations-Ordner entfernen
3. Änderung als "Synchronisiert" markieren
Bei „Umbenannt":
1. Neue Datei unter neuem Namen in Simulations-Ordner kopieren
2. Alte Datei aus Simulations-Ordner entfernen
3. Änderung als "Synchronisiert" markieren
Tipp: Sie müssen nicht auf alle Änderungen gleichzeitig reagieren. Wählen Sie gezielt die Dateien aus, die für die aktuell laufende Simulation relevant sind.
6.4 Änderungen ignorieren
Änderungen, die für die Simulation nicht relevant sind (z. B. temporäre Hilfsdateien, Arbeitsversionen), können ignoriert werden:
- Wählen Sie die irrelevanten Änderungen per Checkbox aus
- Klicken Sie auf „✖ Ignorieren"
Ignorierte Änderungen werden in der Hauptliste ausgeblendet und in der Historienliste mit dem Status „Ignoriert" gespeichert. Sie haben keinen Einfluss auf den Simulations-Ordner.
6.5 Änderungshistorie
Die Historienliste zeigt die letzten 100 bearbeiteten Änderungen (synchronisiert oder ignoriert) mit Zeitstempel und Bearbeiter-Status. Die Ansicht dient zur Nachvollziehbarkeit: Wann wurde welche Datei zuletzt synchronisiert?
7. Backup-Funktion
Das Backup-System schützt Simulationsdateien vor ungewolltem Überschreiben.
Wann wird ein Backup erstellt?
Ein Backup wird unmittelbar vor dem Überschreiben einer Datei erstellt, also beim Synchronisieren einer „Geändert"-, „Erstellt"- oder „Gelöscht"-Änderung, wenn die Datei bereits im Simulations-Ordner existiert.
Backup-Dateiname
Das Namensschema: {Originalname}_{JJJJMMTT_HHMMSS}.bak
Beispiele:
Roboter_Arm.jt_20260315_143022.bak
Grundplatte.cojt_20260316_091500.bak
Backup-Speicherort
| Modus | Speicherort |
|---|---|
| Gleicher Ordner | Backup liegt neben der Simulationsdatei |
| Eigener Ordner | Alle Backups in einem zentralen Verzeichnis (Unterordnerstruktur bleibt erhalten) |
Aufbewahrungsregel
Bei aktivierter Aufbewahrungsregel (z. B. max. 5 Backups pro Datei) wird nach dem Erstellen des neuen Backups geprüft, ob ältere Backups gelöscht werden müssen. Die Backups werden nach Erstellungsdatum sortiert – die ältesten werden zuerst gelöscht.
Backup manuell wiederherstellen
EngineeringSync bietet keine automatische Wiederherstellungsfunktion. Um eine Backup-Datei manuell wiederherzustellen:
- Navigieren Sie zum Backup-Speicherort im Windows Explorer
- Benennen Sie die
.bak-Datei um (entfernen Sie den Zeitstempel und.bak) - Kopieren Sie die Datei an den gewünschten Ort
8. Windows-Dienst verwalten
Der EngineeringSync-Dienst läuft als Windows-Dienst und ist unabhängig von der Tray-App.
Dienst-Status prüfen
Öffnen Sie den Windows Taskmanager (Strg+Umsch+Esc) → Reiter „Dienste", oder:
# PowerShell
Get-Service EngineeringSync
# Ausgabe:
Status Name DisplayName
------ ---- -----------
Running EngineeringSync EngineeringSync
Dienst manuell steuern
# Dienst starten
Start-Service EngineeringSync
# Dienst stoppen
Stop-Service EngineeringSync
# Dienst neu starten
Restart-Service EngineeringSync
Alternativ über die Windows Dienste-Verwaltung (Win+R → services.msc).
API-Endpunkt
Der Dienst stellt eine lokale REST-API unter http://localhost:5050 bereit. Die Tray-App kommuniziert über diese API. Sie können die API auch direkt im Browser testen:
| Endpunkt | Beschreibung |
|---|---|
GET /api/projects |
Alle konfigurierten Projekte |
GET /api/changes/{projectId} |
Ausstehende Änderungen eines Projekts |
GET /api/changes/{projectId}/history |
Letzte 100 bearbeitete Änderungen |
Hinweis: Der API-Endpunkt ist nur lokal erreichbar (
localhost). Er ist nicht durch Authentifizierung gesichert – stellen Sie sicher, dass kein unberechtigter Netzwerkzugang besteht.
9. Deinstallation
Über die Windows Einstellungen
- Öffnen Sie Einstellungen → Apps → Installierte Apps
- Suchen Sie nach „EngineeringSync"
- Klicken Sie auf „Deinstallieren"
Manuell
Führen Sie die Setup-Datei mit dem Parameter /uninstall aus:
EngineeringSync-Setup.exe /uninstall
Was wird bei der Deinstallation entfernt?
| Element | Wird entfernt? |
|---|---|
| Installationsdateien | ✅ Ja |
| Windows-Dienst | ✅ Ja (wird gestoppt und gelöscht) |
| Autostart-Eintrag | ✅ Ja (nur der EngineeringSync-Eintrag) |
| Desktop-Verknüpfung | ✅ Ja |
| Startmenü-Eintrag | ✅ Ja |
| SQLite-Datenbank | ❌ Nein (Konfiguration und Historie bleiben erhalten) |
| Backup-Dateien | ❌ Nein |
| Engineering-/Simulations-Ordner | ❌ Nein (niemals) |
Die SQLite-Datenbank (
engineeringsync.db) verbleibt im Installationsordner und kann manuell gelöscht werden.
10. Technische Architektur
Dieser Abschnitt richtet sich an technische Nutzer und Administratoren.
Komponenten
┌─────────────────────────────────────────────────────────────┐
│ EngineeringSync │
│ │
│ ┌──────────────────┐ ┌───────────────────────────┐ │
│ │ TrayApp (WPF) │◄────│ Service (Worker Service) │ │
│ │ │ │ │ │
│ │ • Tray-Icon │ │ • FileSystemWatcher │ │
│ │ • Änderungs- │ │ • Debounce-Channel │ │
│ │ fenster │ │ • SHA-256-Hashing │ │
│ │ • Projekt- │ │ • SyncManager │ │
│ │ verwaltung │ │ • REST API (Port 5050) │ │
│ │ │ │ • SignalR Hub │ │
│ └────────┬─────────┘ └──────────────┬────────────┘ │
│ │ │ │
│ │ HTTP (REST + SignalR) │ │
│ └───────────────────────────────┘ │
│ │
│ ┌────────────────────────────────────────────────────┐ │
│ │ SQLite-Datenbank (WAL-Modus) │ │
│ │ • ProjectConfig • FileRevision • PendingChange │ │
│ └────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
Datenbankschema
ProjectConfig – Projektkonfigurationen
| Feld | Typ | Beschreibung |
|---|---|---|
Id |
GUID | Eindeutiger Bezeichner |
Name |
Text | Anzeigename des Projekts |
EngineeringPath |
Text | Überwachter Quellordner |
SimulationPath |
Text | Sync-Zielordner |
FileExtensions |
Text | Überwachte Dateitypen (komma-getrennt oder *) |
IsActive |
Bool | Überwachung aktiv/inaktiv |
BackupEnabled |
Bool | Backup aktiviert |
BackupPath |
Text? | Optionaler Backup-Pfad |
MaxBackupsPerFile |
Int | Max. Backups pro Datei (0 = unbegrenzt) |
FileRevision – Zuletzt bekannte Dateiversion
| Feld | Typ | Beschreibung |
|---|---|---|
Id |
GUID | Eindeutiger Bezeichner |
ProjectId |
GUID | Verweis auf Projekt |
RelativePath |
Text | Relativer Dateipfad |
FileHash |
Text | SHA-256-Hash des Dateiinhalts |
Size |
Long | Dateigröße in Bytes |
LastModified |
DateTime | Letzte Änderungszeit |
PendingChange – Ausstehende oder bearbeitete Änderungen
| Feld | Typ | Beschreibung |
|---|---|---|
Id |
GUID | Eindeutiger Bezeichner |
ProjectId |
GUID | Verweis auf Projekt |
RelativePath |
Text | Relativer Dateipfad |
ChangeType |
Enum | Created / Modified / Renamed / Deleted |
OldRelativePath |
Text? | Alter Pfad (nur bei Renamed) |
Status |
Enum | Pending / Synced / Ignored |
CreatedAt |
DateTime | Zeitpunkt der Erkennung |
SyncedAt |
DateTime? | Zeitpunkt der Bearbeitung |
Kommunikation (SignalR)
Die Tray-App empfängt Echtzeit-Benachrichtigungen über SignalR (WebSockets):
| Methode | Parameter | Auslöser |
|---|---|---|
ReceiveChangeNotification |
projectId, projectName, count |
Neue ausstehende Änderungen erkannt |
ProjectConfigChanged |
– | Projekt wurde erstellt, geändert oder gelöscht |
Datenbankdatei
%ProgramFiles%\EngineeringSync\engineeringsync.db
Die Datenbank läuft im WAL-Modus (Write-Ahead Logging), was gleichzeitige Lese- und Schreibzugriffe ohne Sperren ermöglicht.
11. Fehlerbehebung & FAQ
Die Tray-App zeigt „Dienst nicht erreichbar"
Ursache: Der EngineeringSync-Dienst läuft nicht oder Port 5050 ist belegt.
Lösung:
- Prüfen Sie den Dienst-Status:
Get-Service EngineeringSync - Starten Sie den Dienst:
Start-Service EngineeringSync - Falls Port 5050 belegt ist:
netstat -ano | findstr :5050
Änderungen werden nicht erkannt
Mögliche Ursachen und Lösungen:
| Ursache | Lösung |
|---|---|
| Projekt ist inaktiv | In Projektverwaltung das Projekt aktivieren |
| Falsche Dateierweiterung konfiguriert | Erweiterungen prüfen oder „Alle Dateitypen" wählen |
| Engineering-Pfad nicht erreichbar | Pfad im Explorer prüfen, Netzlaufwerk verbunden? |
| Dienst gestoppt | Start-Service EngineeringSync |
Sehr viele Änderungen auf einmal (z. B. nach Bulk-Copy)
Bei vielen gleichzeitigen Dateiereignissen kann der interne Event-Puffer des Datei-Watchers überlaufen. EngineeringSync startet in diesem Fall automatisch einen vollständigen Re-Scan des Engineering-Ordners. Dieser Vorgang kann bei großen Ordnern mehrere Minuten dauern.
Eine Datei ist gesperrt und wird nicht synchronisiert
CAD-Anwendungen sperren Dateien während der Bearbeitung exklusiv. EngineeringSync versucht beim Erkennen einer gesperrten Datei automatisch bis zu 3 Wiederholungen mit zunehmendem Warteintervall (2s, 4s, 6s). Wenn die Datei nach allen Versuchen noch gesperrt ist, wird das Ereignis in den Logs vermerkt und beim nächsten periodischen Scan erneut versucht.
Empfehlung: Synchronisieren Sie Dateien erst, wenn die CAD-Anwendung die Datei freigegeben hat (Datei geschlossen oder gespeichert).
Wo liegen die Log-Dateien?
%ProgramFiles%\EngineeringSync\logs\
Oder im Windows Ereignisprotokoll unter:
Ereignisanzeige → Windows-Protokolle → Anwendung (Quelle: EngineeringSync)
Kann ich mehrere Engineering-Ordner mit einem Simulations-Ordner verbinden?
Ja – legen Sie pro Engineering-Ordner ein eigenes Projekt an. Mehrere Projekte können auf denselben Simulations-Ordner zeigen, solange sich die relativen Pfade nicht überschneiden.
Was passiert, wenn ich eine Datei im Simulations-Ordner manuell bearbeite?
EngineeringSync überwacht nur den Engineering-Quellordner. Änderungen im Simulations-Ordner werden nicht erfasst. Bei der nächsten Synchronisation einer entsprechenden Datei wird die manuell bearbeitete Version im Simulations-Ordner durch ein Backup gesichert und dann überschrieben.
Wie hoch ist der Ressourcenverbrauch des Dienstes?
Im Normalbetrieb (Überwachung aktiv, keine Aktivität):
- CPU: < 0,1 %
- RAM: ca. 50–80 MB
Bei einem vollständigen Re-Scan großer Ordner (>10.000 Dateien) kann die CPU-Last kurzzeitig auf 10–20 % steigen.
Kann ich die Datenbank auf einem Netzlaufwerk ablegen?
Nein. Die SQLite-Datenbank muss auf einem lokalen Laufwerk liegen. SQLite und Netzlaufwerke sind nicht kompatibel (Sperr-Mechanismus funktioniert über SMB nicht zuverlässig).
Dieses Handbuch bezieht sich auf EngineeringSync Version 1.0.0. Für Fragen und Support wenden Sie sich an den Projektverantwortlichen.