ConnectorTester: Versichere deine Erweiterungen
- Erste Schritte
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.

In diesem Tutorial beginnen wir mit dem Projekt MyCompany.Hub.Connectors.ConnectorToBuildingSensorSimulator oben beschrieben Hier.
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
Patterndefiniert. - 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
CanHandlefiltert die Pfade, die zu ihm gehören, gut. - Das
HandleHandlesDie 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).
Zusammenfassend, ConnectorTester ist der unverzichtbare Begleiter für jeden Connector-Entwickler: Es fungiert als Labor, in dem man vor der Produktion experimentieren, validieren und seine Implementierungen verfeinern kann.
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:

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.
Die erste Ansicht gibt eine allgemeine Ansicht zu einer Moment t von allen Griffen. Die zweite Vision gibt eine Historisierung der Entwicklungen Werte/Zustände verwalten.
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.InitializedannIConnector.Connect. Off-TriggerIConnector.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.

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:
- 📦 BuildingSensorSimulator — v1.0 • 1,8 MB • ZIP
- 🔌 Connector (BuildingSensor) — v1.0 • 8 KB • ZIP
- 🧪 ConnectorTester — v1.0 • 155 KB • ZIP
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
- Erläutern sollte man die Projektlösung des ConnectorTest-Projekts erweitern MyCompany.Hub.Connectors.ConnectorToBuildingSensorSimulator.

So können Sie beide Projekte in einer einzigen Sitzung kompilieren und starten, was das Debuggen Ihres Connectors erleichtert.
- Stellen Sie sicher, dass das ConnectorTester-Projekt im Start-up-Projekt ist.
- Teste die Kompilierung und behebe eventuelle Fehler.
- Starten Sie den ConnectorTester und klicken Sie in den Connector-Panels auf das Symbol
. - Lass das Verzeichnis offen, wir verwenden die Adresse später.
- Füge dem ConnectorTester-Projekt eine Projektreferenz zur DLL deines Connectors hinzu (hier MyCompany.Hub.Connectors.ConnectorToBuildingSensorSimulator).

- Öffnen Sie die Projekteigenschaften MyCompany.Hub.Connectors.ConnectorToBuildingSensorSimulator.
- Wir sehen uns im Spiel Bau/Veranstaltungen.
- 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.

Dieser Befehl kopiert die Connector-DLL bei jeder Kompilierung in das dedizierte Verzeichnis des ConnectorTester.
- Kompiliere das Projekt jetzt BuildingSensorSimulator.
- Lass es laufen, es muss starten
https://localhost:7003.

- Kompiliere das Projekt jetzt BuildingSensorSimulator.
- Lass es laufen, es muss starten
https://localhost:7003.
Wir sind jetzt bereit, unseren Verbinder zu testen.
- Führe das Projekt ConnectorTester aus.
- Das Panel von Steckverbinder sollte der Anschluss angezeigt werden ConnectorToBuildingSensorSimulator

- Platziere einen Bruchpunkt in der
OnConnectder KlasseBuildingSensorSimulatorConnector.

- 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:

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.
- Klicken Sie auf die Griffe Nach Aktivierung des Steckers BuildingSensorSimulatorConnector.
- Im Eingabefeld dieses Tabs geben Sie den Pfad ein, wie wir ihn im verlinkten Tutorial definiert haben (Siehe spezieller Punkt)
BuildingSensor://101/floor

- Mach dasselbe für die folgenden Wege:
BuildingSensor://201/door BuildingSensor://1/
- Validieren mit dem Enter oder über das Symbol
. - 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

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