ConnectorTester: Versichere deine Erweiterungen

ConnectorTester-Überblick

ConnectorTester ist ein Werkzeug, das entwickelt wurde, um die Entwicklung und Validierung von Immersive Connectors zu erleichtern. Es ermöglicht es, einen Connector außerhalb des gesamten Hubs zu starten, um unter kontrollierten Bedingungen dessen Verhalten in Bezug auf Handles, ausgetauschte Werte und Befehle (Writes/Scenes) zu testen.

Training

Die Hub-Immersivität stellt die Softwareschicht dar, die zwischen der Datenexposition und deren Nutzung durch den Betrachter verbunden ist.

Sie stellt eine universelle Schicht der Indirektion zwischen einem Konsumenten (zum Beispiel einem Immersive Beholder-Player) und Daten dar, unabhängig davon, welche Protokolle zum Zugriff verwendet werden.

Titel

Rolle des Werkzeugs

  • Isolierung : Einen Stecker allein betreiben, ohne den gesamten Hub zu entfalten.
  • Validierung : Überprüfen Sie, dass die Handles korrekt erkannt und gemäß der Pattern definiert.
  • Debugger : Beobachte Statusmeldungen (StateMessages) und vom Connector veröffentlichte Benachrichtigungen.
  • Simulation : Teste die Lebenszyklen (initialisieren, verbinden, trennen) und stelle sicher, dass der Stecker wie erwartet reagiert.

Warum ConnectorTester verwenden?

Bei der Entwicklung eines Connectors müssen vor der Integration in den Hub mehrere Elemente getestet werden:

  • Dass die Methode CanHandle filtert die Pfade, die zu ihm gehören, gut.
  • Das HandleHandles Die Paare werden korrekt aufgezeichnet Gerät/Eigenschaft.
  • Wertupdates werden veröffentlicht als HandleSnapshot.
  • Dass die Schriften (WriteValue) korrekt in Aufrufe zur Quelle übersetzt werden (REST, OPC UA usw.).

Vorteile

  • Verkürzt die Debug-Zeit, indem eine gezielte Umgebung bereitgestellt wird.
  • Verbessert die Qualität der Steckverbinder, bevor sie in einen echten Hub integriert werden.
  • Erleichtert die Demonstration von Connectors an interne Teams oder Kunden (schneller Proof of Concept).

Schnittstellen-Überblick

Die ConnectorTester ist in mehrere Panels organisiert, mit denen Sie die Steckverbinder steuern, deren Logs ansehen und die Werte der Griffe unter Kontrolle beobachten können. Hier ist eine Beschreibung nach Hauptbereichen:

Schnittstelle 1

1: Das Logs-Panel

Das linke Panel listet Alle Veranstaltungen vom Hub und den Steckverbindern ausgesendet:

  • Zeit (UTC) : Der Zeitstempel des Ereignisses.
  • Ursprung : Das Modul, das die Nachricht erzeugte (Hub, BuildingSensorSimulatorConnector usw.).
  • Typ : Log-Level (Informationen, Warnung, Fehler).
  • Botschaft : Detaillierte Beschreibung (z. B. "Eingetragene Interessen: 101/Stockwerk").

Sie ist mit einer Symbolleiste am oberen Ende verknüpft, die es von links nach rechts ermöglicht, die Logs zu löschen und diese Konsole zurückzusetzen oder die Liste der aktuellen Logs in Form einer Datei zu exportieren.

2: Virtuelle Sitzungs-Podiumsdiskussion

Teil 2 zeigt die erfassten Griffe Echtzeit. Jedes Update mit:

  • Verlauf des Griffs (z. B. BuildingSensor://101/floor).
  • Status (Gut, Schlecht usw.).
  • Wert : Der Barwert.
  • ChangeDate : der Zeitstempel der Daten, wie von der Quelle bereitgestellt.

Zwei Aufrufmodi sind möglich und können über den linken Button der mit diesem Panel verbundenen Symbolleiste aktiviert werden:

  • Ansicht nach Handles: Alle verwalteten Handles werden einheitlich angezeigt und nur ihr Status oder Wert wird aktualisiert.
  • Ereignisbasierte Ansicht: Die Liste zeigt jedes Ereignis an, das mit einer Änderung eines Handles zusammenhängt, in Form einer Logliste.

Sie ist mit einer Symbolleiste oben verknüpft, die es ermöglicht, von links nach rechts den Vision-Modus zu ändern, wie wir gerade gesehen haben, die Logs des zugehörigen Vision-Modus zu löschen und diese Konsole zurückzusetzen oder die Liste der aktuellen Logs dieses Panels in Form einer Datei zu exportieren.

3: Liste der Steckverbinder

Im rechten/oberen Fenster ist die Steckverbinder Zeigt die verwalteten Connectors an. Diese Steckverbinder befinden sich in der Connectors Befindet sich auf derselben Ebene wie die ausführbare Datei:

  • Jeder Connector ist mit seinem Namen und Namensraum aufgeführt.
  • Ein Schalter AN/AUS Ermöglicht es, den Anschluss einzeln zu aktivieren oder zu deaktivieren. Wir lösen die Methoden aus IConnector.Initialize dann IConnector.Connect. Off-Trigger IConnector.Disconnect
  • Der Steckverbinderstatus (grün für aktiv) spiegelt die Status (Verbunden, Getrennt, usw.).

Dieses Panel ist mit einer Symbolleiste am oberen Ende verknüpft, die es ermöglicht, von links nach rechts die Liste der Connectors aus dem Verzeichnis zu aktualisieren Connectors, öffne das Connector-Verzeichnis im Windows Explorer.

4: Property-Panel

Darunter folgt die Eigenschaften ermöglicht es, Schlüssel/Eigenwerte zu definieren, die mit dem HubSettings.Properties der Testhub-Instanz.

  • Jede Zeile entspricht einem Konfigurationsschlüssel (z. B. NewKey1, NewKey2).
  • Die Werte können direkt bearbeitet werden.
  • Wenn man auf "Anwenden" klickt, werden diese Eigenschaften in HubSettings übertragen.

Dieses Panel ist mit einer Symbolleiste am oberen Ende verknüpft, die es von links nach rechts ermöglicht: eine neue Eigenschaft hinzuzufügen, die ausgewählte Eigenschaft zu löschen, die Eigenschaften auf den Hub anzuwenden und (in Form eines JSON) die Liste der Eigenschaften des Panels anzuzeigen.

5: Interface-Kontext-Tabs

Diese Tabs ermöglichen es Ihnen, von der Verwaltung des Hubs mit seinen Connectoren und Eigenschaften zur Verwaltung der Handles zu wechseln. Dazu kommen wir gleich.

6: Globales Menü

Das globale Menü zeigt unter dem Titel eine Symbolleiste mit zwei Optionen an:

  • Ein Button, um die Display-Kontext-Tabs auszublenden, um den Logs und virtuellen Sitzungspanels Platz zu geben.
  • Zugang zum "Über"-Fenster.
Schnittstelle 2

7: Verwaltet das Verwaltungsgremium

Ein Klick auf den entsprechenden Tab öffnet den Tab zur Verwaltung der Handles. Sie sind mit der Immobilie verbunden HubSettings.PreloadPaths der Testhub-Instanz.

Das Panel zeigt von oben nach unten:

  • Eine Werkzeugleiste, um das JSON der vom Test Hub verwalteten Handles auf die Zwischenablage zu kopieren
  • Ein Formular mit einem Eingabefeld, um einen neuen Handle in Form eines Pfades hinzuzufügen.
  • Die Liste der vom Test Hub verwalteten Pfade.

Jeder in dieser Liste angezeigte Pfad hat zwei damit verbundene Buttons:

  • Ein Button, um den Pfad zum Hub einzureichen, der dann an die bereits geladenen Connectors weitergeleitet wird.
  • Ein Button, um den Handle aus der Liste der vom Test Hub verwalteten Handles zu entfernen.

Verwenden Sie ConnectorTester mit einem Stecker

Nach dem Verständnis der Rolle von ConnectorTester, schauen wir mal, wie man ihn konkret zum Testen eines Steckers einsetzt. Das Tool erlaubt es, einen Connector-DLL dynamisch zu laden, ihn zu instanziieren und dann wie der Hub zu interagieren.

Laden Sie diese drei Visual Studio-Projekte herunter:

Laden Sie all diese Ressourcen herunter, starten Sie verwandte Visual Studio-Projekte, um:

  • BuildingSensorSimulator : alle zu überwachenden Geräte in Form eines Ruhedienstes offenlegen.
  • ConnectorTester: Ermöglicht es, die ausführbare Connector-Testdatei zu starten.

Schritte zum Testen eines Steckers

  1. Erläutern sollte man die Projektlösung des ConnectorTest-Projekts erweitern MyCompany.Hub.Connectors.ConnectorToBuildingSensorSimulator.
One-Stop-Lösung

So können Sie beide Projekte in einer einzigen Sitzung kompilieren und starten, was das Debuggen Ihres Connectors erleichtert.

  1. Stellen Sie sicher, dass das ConnectorTester-Projekt im Start-up-Projekt ist.
  2. Teste die Kompilierung und behebe eventuelle Fehler.
  3. Starten Sie den ConnectorTester und klicken Sie in den Connector-Panels auf das Symbol .
  4. Lass das Verzeichnis offen, wir verwenden die Adresse später.
  5. Füge dem ConnectorTester-Projekt eine Projektreferenz zur DLL deines Connectors hinzu (hier MyCompany.Hub.Connectors.ConnectorToBuildingSensorSimulator).
Referenziertes Connector-Projekt
  1. Öffnen Sie die Projekteigenschaften MyCompany.Hub.Connectors.ConnectorToBuildingSensorSimulator.
  2. Wir sehen uns im Spiel Bau/Veranstaltungen.
  3. In "Ereignisse nach dem Bau" Geben Sie folgenden Befehl ein:
copy $(TargetPath) C:\Users\valentin\source\repos\ConnectorTester\bin\Debug\net9.0-windows\Connectors

wobei C:\Users\valentin\source\repos\ConnectorTester\bin\Debug\net9.0-windows\Connectors ist die Adresse des vom Projekt gelesenen Verzeichnisses der Connectoren ConnectorTester die wir vorhin geöffnet haben.

Automatische Kopie des Steckers bei jedem Bau

Dieser Befehl kopiert die Connector-DLL bei jeder Kompilierung in das dedizierte Verzeichnis des ConnectorTester.

  1. Kompiliere das Projekt jetzt BuildingSensorSimulator.
  2. Lass es laufen, es muss starten https://localhost:7003.
BuildingSensorSimulator gestartet
  1. Kompiliere das Projekt jetzt BuildingSensorSimulator.
  2. Lass es laufen, es muss starten https://localhost:7003.

Wir sind jetzt bereit, unseren Verbinder zu testen.

  1. Führe das Projekt ConnectorTester aus.
  2. Das Panel von Steckverbinder sollte der Anschluss angezeigt werden ConnectorToBuildingSensorSimulator
Der ConnectorToBuildingSensorSimulator-Anschluss ist verfügbar
  1. Platziere einen Bruchpunkt in der OnConnect der Klasse BuildingSensorSimulatorConnector.
Breakpoint in OnConnect
  1. Im Steckerpanel aktivieren Sie den Stecker BuildingSensorSimulatorConnector indem man auf den zugehörigen Switch-Button klickt (der grün werden sollte):

Der Breakpoint wird aktiviert und die Anwendung unterbricht das Debugging:

Breakpoint in OnConnect

Wir können unseren Connector debuggen.

Schritte zum Testen von Handles

Wir gehen hier davon aus, dass wir unseren Connector im Debugging über den ConnectorTester gestartet haben, wie im vorherigen Punkt erklärt.

  1. Klicken Sie auf die Griffe Nach Aktivierung des Steckers BuildingSensorSimulatorConnector.
  2. Im Eingabefeld dieses Tabs geben Sie den Pfad ein, wie wir ihn im verlinkten Tutorial definiert haben (Siehe spezieller Punkt)
BuildingSensor://101/floor
Breakpoint in OnConnect
  1. Mach dasselbe für die folgenden Wege:
BuildingSensor://201/door
BuildingSensor://1/
  1. Validieren mit dem Enter oder über das Symbol .
  2. Sobald der Pfad zur Liste hinzugefügt wurde, kannst du auf den Validierungsbutton rechts davon klicken, um den Hub zu bitten, ihn zu berücksichtigen
Betrachtung der Griffe

Die Tafeln von Protokolle und die von Sitzung Spezifizieren Sie die korrekte Handhabung des Handles:

Tracking-Handles im ConnectorTester