🐛 Fehlerbehebungen
- Import-Vorgang liest Zähler-Daten jetzt korrekt aus
counters.json(vorher falscher Dateiname) - Variablen-ID-Zuordnung beim Import korrigiert (vertauschte Schlüssel-Wert-Reihenfolge bei Variablen-, Zähler-, Sprech- und Stoppuhr-Mapping)
- Überlauf bei der natürlichen String-Sortierung mit sehr langen Zahlenanteilen behoben
- KI-Auswertung stabilisiert: Es wird jetzt der Kamera-Snapshot statt eines flüchtigen Live-Frames verwendet, um Frame-Races bei Belichtungsänderungen zu vermeiden
- Verbindungsaufbau zu UNC-Netzwerkfreigaben korrigiert: Authentifizierung erfolgt jetzt gegen die Freigabewurzel, sodass verschachtelte oder noch nicht angelegte Unterordner nicht mehr zu Fehlern führen
- Race Conditions im Workflow-Laufzeitsystem und Timeouts bei GPIO-Verbindungen behoben: A2-GPIO-Verbindungen laufen nicht mehr unbegrenzt, veraltete Timer/Runtimes können keine neueren Neustarts mehr aus Manager/Dashboard entfernen
- Verwaiste Variablen werden beim Löschen von Inspektionsbildern jetzt korrekt mit entfernt
- Fehlerhafte Pfadbehandlung bei Workflow-Aktionen korrigiert (Windows-/Unix-Trenner wurden nicht einheitlich normalisiert, was zu kaputten Pfaden in Dialogen führte)
- Thread-Zeiten korrigiert (Start-/Endzeit waren vertauscht, fehlende Endzeit zeigt jetzt „-“) und Kamera-Listendarstellung repariert, sodass Vorschaubilder nur noch für tatsächliche Bilddateien verwendet werden
- Parameter-Typ-Überschreibungen von Workflow-Aktionen werden jetzt korrekt pro Arbeitsschritt gespeichert (behebt u. a. falsches Rendering bei Kamera-Klassifikation und Variablenwert-Feldern)
- ROI-Anfasspunkte (Handles) behalten beim Zoomen jetzt eine konstante Bildschirmgröße, statt zu verrutschen
- Neu angelegte, dann abgebrochene Displays werden korrekt verworfen, statt leer geöffnet zu bleiben
- Fataler-Log-Einträge werden jetzt korrekt als Fehler behandelt und in Filtern/Anzeige der Logs berücksichtigt
- Fehlende Miniaturbilder bei Kamera-Inspektionsbildern behoben: Dateiexistenz wird vor dem Erzeugen der Thumbnail-URL geprüft, sonst erscheint das Standard-Kamerabild
- Debug-Basispfad für Standardbilder im CameraManager korrigiert
- Zeichenreihenfolge in der Display-Anzeige (SVG) korrigiert, sodass KLT-/Virtual-Button-Indikatoren nicht mehr von anderen Display-Elementen verdeckt werden
- Fehlerhafte Klick-Erkennung bei Tiefensensor-Einträgen behoben: neu registrierte Einträge durchlaufen jetzt eine kurze Beruhigungsphase (300 ms), bevor Klicks ausgewertet werden – verhindert Fehlauslösungen durch Nachschwingen der Hand
- ROI-Fallback für Kameras korrigiert: fehlende UI-Frame-Daten beim Speichern von KLTs/Virtual Buttons werden nun aus dem Frame abgeleitet, wenn der Display-Tab nie geöffnet wurde
- Report-Verarbeitung korrigiert (#275)
- Berechnung der KI-Bildgröße korrigiert (#280)
- ONNX-Vorverarbeitung stabilisiert
✨ Neue Funktionen
- Bluetooth-Unterstützung hinzugefügt: neue System-Konfigurationsseite für Bluetooth, Geräte scannen/koppeln/verbinden/trennen/vergessen, sowie ein Bluetooth-Messschieber (Caliper) als externes Gerät inkl. Workflow-Integration
- Interner Update-Kanal für berechtigte Benutzer hinzugefügt
- Betriebsstundenzähler (Uptime) im Systeminformations-Panel ergänzt
- Bedingungen pro Element deaktivierbar: einzelne Anzeigebedingungen können jetzt gezielt ausgewählt statt nur global umgeschaltet werden
- Ignorierte Anzeigebedingungen werden jetzt auch in der Live-Vorschau des Editors berücksichtigt
- Ein-/ausklappbare Ordner im Workflow-Starter-Widget, inkl. „Alle auf-/zuklappen“-Aktionen
- Automatisches Wiederanlegen gelöschter Provider-Variablen (Zähler, Stoppuhren, Code-Bildergebnisse), mit Warnhinweis vor dem Löschen automatisch erzeugter Variablen
- Import-Funktion für Display-Elemente: Elemente können jetzt aus einem anderen Display übernommen werden (inkl. Auswahldialog)
- Variablen-Platzhalter in Workflow-Prüfungen: Einfüge-Auswahl für String-Parameter, Auflösung von
{Variablenname}in Prüfwerten, neue Vergleichsoperatoren „ungleich“/„enthält nicht“ - Workflow „Start-Workflow“-Aktion wartet jetzt optional auf den Abschluss des gestarteten Kind-Workflows, bevor sie selbst als beendet gilt
- Stummschalt-Option für Videos in Displays hinzugefügt
- Automatisches Scrollen zur neu hinzugefügten Aktion im Arbeitsschritt-Designer
- Leere Arbeitsschritte (ohne Aktionen/Timer) werden automatisch übersprungen, statt den Workflow anzuhalten
- Bestätigungsdialog vor dem Neustart eines bereits laufenden Workflows im Dashboard
- Neues Berechtigungsrecht „Workflow starten“, mit dem der Workflow-Starter für Benutzer ohne Zugriff ausgeblendet werden kann
- Ordnerauswahl-Dialog beim Kopieren von Workflows, um das Ziel frei wählen zu können (statt immer im Quellordner zu kopieren)
- Neues Systeminformations-Panel in der Konfiguration (CPU, RAM, Laufzeit, Hostname, Betriebssystem, Speicherplatz, mit automatischer und manueller Aktualisierung)
- Formatierung von Variablen im Display-Text:
{Variable:Format}wird jetzt unterstützt (Zahlenformate, Bool-Texte, Groß-/Kleinschreibung) - Umschalter zum Ignorieren von Anzeigebedingungen in der Live-Vorschau der Display-Bearbeitung
- Ordnerbaum-Ansicht im Workflow-Starter-Widget (statt flacher Buttonliste)
- Konfigurierbarer IO-/A2-Ausgang für Inspektions- und KI-Bilder, inkl. UI-Steuerung und Rücksetzlogik
- Bestätigungsdialog vor dem Löschen einer Ausgabeseite in den Display-Einstellungen
- Vorschau-Dialog für Inspektionsbilder: angelernte Bilder lassen sich jetzt direkt anklicken und vergrößert ansehen
- Pflichtfeld-Validierung für Namen eingeführt (Kamera-Inspektionsbilder, Display-Details, Workflow-Arbeitsschritte) mit Inline-Fehleranzeige und lokalisierten Meldungen; neue Elemente werden nicht mehr mit Standardnamen vorbelegt, das Namensfeld ist beim Öffnen direkt fokussiert
- Hinweis-Dialog ergänzt: Fehlt die trainierte Höhe, wird vor dem Speichern zum Anlernen aufgefordert
- Anpassbarer Text für die Workflow-Historie hinzugefügt
- Zwischenspeichern (Interim Save) für Teile-Reports hinzugefügt
- Metadaten zu KI-Bildern hinzugefügt
- Zoom-Steuerung im Browser hinzugefügt, inkl. Speicherung des Zoom-Status
- Fenster-Positionen von Haupt- und weiteren Fenstern werden gespeichert und beim nächsten Start wiederhergestellt; befindet sich der gespeicherte Monitor nicht mehr im System, wird das Fenster auf dem Hauptmonitor platziert
- Unterstützung für Ordner-Kameras sowie Multi-ROI-Auswertung für die KI-Erkennung hinzugefügt
- Dynamisches Batch-Processing für die ONNX-KI-Klassifizierung hinzugefügt
🔧 Verbesserungen
- Bildvorschau-Dialog überarbeitet (festes 80vh-Fenster mit vollständig eingepasster Bilddarstellung)
- Maximale Strichstärke bei Display-Elementen von 20 auf 200 erhöht
- Standardgröße neuer Interventionsrahmen (KLT/Virtual Button) vereinheitlicht auf 70×70
- Umfangreiche Architektur-Review-Dokumentation ergänzt (Sicherheit, DI-Refactoring, Modularisierung, Async-Modernisierung, Testabdeckung)
- Konverter-Zuordnungen an aktuelle Aktions-/Parameter-Bezeichner angeglichen
- KI-Inspektionsanzeige aktualisiert: Bestehen/Nicht-Bestehen wird jetzt anhand von Ist-/Soll-Anzahl und Modell-Schwellenwerten dargestellt, aktualisiert sich nach Modell-Nachtraining, Live-Bild pausiert während Mehrfach-Anlern-Dialogen
- Zahlreiche fehlende Übersetzungsschlüssel in allen Sprachen (EN, ES, FR, IT, JA, KO, ZH) ergänzt, u. a. für Validierung, Workflow-Rechte, Kamera-Ordnertest, ONNX-KI-Erkennungseinstellungen und Anlern-Hinweise
- Deutsche Kamera-/Display-Übersetzungen überarbeitet („Projektion“ durch „Anzeige“ ersetzt für klarere Beschriftungen)
- Wiederverwendbares Auswahlfeld für Display-Zuweisungen eingeführt und mehrfach verwendete Auswahl-Elemente in Kamera-, Display- und Workflow-UI vereinheitlicht; Variablensuche nutzt jetzt Autovervollständigung
- Neue Display-Elemente erhalten sinnvolle Standardwerte (Standardbild bzw. lokalisierter Standardtext)
- Standard-Belichtungszeit der Kamera auf 100 gesetzt
- IoModule-Logging gedrosselt, um übermäßige Log-Ausgaben zu vermeiden
- KI-Klassenparameter ist jetzt optional
- Zusammenführung der Zwischen-Report-Dateien vereinheitlicht
- Firewalls werden automatisch per PowerShell-Skript aktiviert