ConnectorTester: Assicurati le tue prolunghe
- Per iniziare
Panoramica di ConnectorTester
ConnectorTester è uno strumento progettato per facilitare lo sviluppo e la validazione di connettori Immersive. Permette di avviare un connettore al di fuori dell'intero Hub per testare, in condizioni controllate, il suo comportamento riguardo a handle, valori scambiati e comandi (writes/scene).
Training
Il Hub Immersivo rappresenta il livello software che interfaccia l'esposizione dei dati e il suo consumo da parte del Beholder.
Rappresenta uno strato universale di indirezione tra un consumatore (ad esempio un giocatore Immersive Beholder) e i dati, indipendentemente dai protocolli utilizzati per accedervi.

In questo tutorial partiamo dal progetto MyCompany.Hub.Connectors.ConnectorToBuildingSensorSimulator descritto sopra Ecco.
Ruolo dello strumento
- Isolamento : Far funzionare un connettore da solo, senza dispiegare l'intero Hub.
- Validazione : verificare che le maniglie siano correttamente riconosciute e registrate secondo il
Patterndefinito. - Debug : Osservare i messaggi di stato (StateMessages) e notifiche pubblicate dal connettore.
- Simulazione : Testare i cicli di vita (Inizializzare, Connettere, Disconnettersi) e assicurarsi che il connettore risponda come previsto.
Perché usare ConnectorTester?
Durante lo sviluppo di un connettore, diversi elementi devono essere testati prima dell'integrazione nell'Hub:
- Che metodo
CanHandlefiltra bene i percorsi che gli appartengono. - Quello
HandleHandlesRegistra correttamente le coppie Dischietto/Proprietà. - Gli aggiornamenti sui valori sono pubblicati come
HandleSnapshot. - Che gli scritti (
WriteValue) sono correttamente tradotte in chiamate alla sorgente (REST, OPC UA, ecc.).
Benefici
- Riduce i tempi di debug fornendo un ambiente mirato.
- Migliora la qualità dei connettori prima che vengano integrati in un vero hub.
- Facilita la dimostrazione dei connettori a team interni o clienti (prova di concetto rapida).
In sintesi, ConnectorTester è il compagno essenziale per qualsiasi sviluppatore di connettori: funge da laboratorio dove puoi sperimentare, validare e perfezionare le tue implementazioni prima di entrare in produzione.
Panoramica dell'interfaccia
Il ConnectorTester è organizzato in diversi pannelli che permettono di controllare i connettori, visualizzare i loro log e osservare i valori delle maniglie in tempo reale. Ecco una descrizione per aree principali:

1: Il pannello dei Logs
Il pannello di sinistra elenca Tutti gli eventi emessa dal Hub e dai connettori:
- Time (UTC) : Il timestamp dell'evento.
- Origine : Il modulo che ha prodotto il messaggio (Hub, BuildingSensorSimulatorConnector, e così via).
- Tipo : Livello log (Informazioni, Avviso, Errore).
- Messaggio : Descrizione dettagliata (ad esempio "Interessi registrati: 101/Floor").
È associato a una barra degli strumenti, in alto, che permette, da sinistra a destra, di eliminare i log e resettare questa console, oppure di esportare l'elenco dei log attuali sotto forma di file.
2: Panel della Sessione Virtuale
La Parte 2 mostra le maniglie tracciate in Tempo reale. Ogni aggiornamento con:
- Percorso del manico (ad es.
BuildingSensor://101/floor). - Stato (Buono, Cattivo, ecc.).
- Valore : il valore attuale.
- Data di modifica : il timestamp dei dati fornito dalla fonte.
Sono possibili due modalità di visualizzazione che possono essere attivate tramite il pulsante sinistro della barra degli strumenti associata a questo pannello:
- Visualizzazione tramite handle: Tutti gli handle gestiti sono visualizzati in modo unitario e viene aggiornato solo il loro stato o valore.
- Vista basata su eventi: La lista mostra ogni evento relativo a un cambiamento in un handle sotto forma di lista di log.
La prima vista offre una visione generale di un Momento t Di tutti i manubri. La seconda visione dà un Storizzazione degli sviluppi gestisci valori/stati.
È associata a una barra strumentali, in alto, che permette, da sinistra a destra, di cambiare la modalità di visione come abbiamo appena visto, di eliminare i log della modalità di visione associata e di resettare questa console, oppure di esportare sotto forma di file l'elenco dei log attuali di questo pannello.
3: Elenco dei connettori
Nel pannello destro/superiore, il Connettori Visualizza i connettori gestiti. Questi connettori si trovano nel Connectors situato allo stesso livello dell'eseguibile:
- Ogni connettore è elencato con il proprio nome e spazio nominale.
- Un interruttore ON/OFF Ti permette di attivare/disattivare il connettore singolarmente. Noi attiviamo i metodi
IConnector.InitializealloraIConnector.Connect. Trigger spentiIConnector.Disconnect - Lo stato del connettore (verde per attivo) riflette il suo
Status(Connessi, Scollegato, ecc.).
Questo pannello è associato a una barra degli strumenti, in alto, che permette, da sinistra a destra: di aggiornare la lista dei connettori dalla directory Connectors, apri la cartella del connettore in Esplora risorse di Windows.
4: Quadro Proprietà
Sotto di questo, il Proprietà Ti permette di definire chiavi/autovalori che saranno associati al HubSettings.Properties dell'istanza Test Hub.
- Ogni riga corrisponde a una chiave di configurazione (ad esempio,
NewKey1,NewKey2). - I valori possono essere modificati direttamente.
- Cliccando su "Applica" queste proprietà vengono inserite in HubSettings.
Questo pannello è associato a una barra degli strumenti, in alto, che permette, da sinistra a destra: di aggiungere una nuova proprietà, eliminare la proprietà selezionata, applicare le proprietà all'Hub, esporre (sotto forma di json) l'elenco delle proprietà del pannello.
5: Schede Contesto dell'Interfaccia
Queste schede ti permettono di passare dalla gestione dell'Hub con i suoi connettori e proprietà alla gestione delle maniglie. Ci arriveremo tra un attimo.
6: Menu Globale
Il menu globale mostra, sotto il titolo, una barra degli strumenti con due opzioni:
- Un pulsante per nascondere le schede contestuali di visualizzazione, per dare spazio ai log e ai pannelli virtuali delle sessioni.
- Accesso alla finestra "Informazioni".

7: Pannello di gestione delle manette
Cliccando sulla scheda corrispondente si apre la scheda per gestire i handle. Sono associati alla proprietà HubSettings.PreloadPaths dell'istanza Test Hub.
Il pannello mostra dall'alto verso il basso:
- Una barra degli strumenti per copiare, nella clipboard, il json dei handle gestiti dal Test Hub
- Un modulo con un campo di input per aggiungere un nuovo handle sotto forma di percorso.
- L'elenco dei percorsi gestiti dal Test Hub.
Ogni percorso visualizzato in questa lista ha due pulsanti associati:
- Un pulsante per inviare il percorso all'Hub che poi verrà inviato ai Connector già caricati.
- Un pulsante per rimuovere la maniglia dalla lista delle maniglie gestite dal Test Hub.
Usa ConnectorTester con un connettore
Dopo aver compreso il ruolo di ConnectorTester, vediamo come usarlo concretamente per testare un connettore. Lo strumento ti permette di caricare dinamicamente una DLL di connettore, istanziarla e poi interagire con essa come farebbe l'Hub.
Scarica questi tre progetti Visual Studio:
- 📦 BuildingSensorSimulator — v1.0 • 1,8 MB • ZIP
- 🔌 Connettore (BuildingSensor) — v1.0 • 8 KB • ZIP
- 🧪 ConnectorTester — v1.0 • 155 KB • ZIP
Scarica tutte queste risorse, lancia progetti correlati a Visual Studio per:
- BuildingSensorSimulator : esporrà tutti i dispositivi da monitorare sotto forma di servizio Rest.
- ConnectorTester: Permette di avviare l'eseguibile del test del connettore.
Passaggi per testare un connettore
- Per prima cosa, aggiungere alla soluzione del progetto ConnectorTest La mia Azienda.Hub.Connettori.ConnettoreAEdificioSensorSimulatore.

In questo modo, puoi compilare e avviare entrambi i progetti in un'unica sessione, rendendo più facile il debug del connettore.
- Assicurati che il progetto ConnectorTester sia presente nel progetto startup.
- Testa la compilazione e correggi eventuali errori.
- Avvia il ConnectorTester e nei pannelli dei connettori clicca sull'icona
. - Tieni aperta la directory, useremo l'indirizzo più tardi.
- Aggiungi al progetto ConnectorTester un riferimento al progetto dll del tuo connettore (qui La mia Azienda.Hub.Connettori.ConnettoreAEdificioSensorSimulatore).

- Apri le proprietà del progetto La mia Azienda.Hub.Connettori.ConnettoreAEdificioSensorSimulatore.
- Ci vediamo in partita Build/Eventi.
- In "Eventi post-costruzione" inserisci il seguente comando:
copy $(TargetPath) C:\Users\valentin\source\repos\ConnectorTester\bin\Debug\net9.0-windows\Connectors
dove C:\Users\valentin\source\repos\ConnectorTester\bin\Debug\net9.0-windows\Connectors è l'indirizzo della directory dei connettori letta dal progetto ConnectorTester che abbiamo aperto prima.

Questo comando copierà la DLL del connettore nella directory dedicata del ConnectorTester ad ogni compilazione.
- Compila il progetto ora BuildingSensorSimulator.
- Eseguilo, deve avviarsi
https://localhost:7003.

- Compila il progetto ora BuildingSensorSimulator.
- Eseguilo, deve avviarsi
https://localhost:7003.
Ora siamo pronti a testare il nostro connettore.
- Esegui il progetto ConnectorTester.
- Il panel di Connettori dovrebbe mostrare il connettore ConnectorToBuildingSensorSimulator

- Posiziona un punto di rottura nel
OnConnectdella classeBuildingSensorSimulatorConnector.

- Nel pannello del connettore, attiva il connettore Connettore BuildingSensorSimulator cliccando sul pulsante Switch associato (che dovrebbe diventare verde):

Il punto di interruzione si attiva e l'applicazione effettua la stop nel debug:

Siamo in grado di debug del nostro connettore.
Passaggi per testare le maniglia
Qui presumiamo di aver avviato il nostro connettore nel debug dal ConnectorTester come spiegato nel punto precedente.
- Clicca su Manici dopo aver attivato il connettore Connettore BuildingSensorSimulator.
- Nel campo di input di questa scheda, inserisci il percorso come lo abbiamo definito nel tutorial collegato (Vedi punto dedicato)
BuildingSensor://101/floor

- Fai lo stesso per i seguenti percorsi:
BuildingSensor://201/door BuildingSensor://1/
- Valida con il Enter oppure tramite l'icona
. - Una volta aggiunto il percorso alla lista, puoi cliccare sul pulsante di validazione
alla destra per chiedere all'Hub di tenerlo in considerazione

I pannelli di Registri e quello di Sessione specificare la corretta gestione del Handle: