Canali di dati personalizzati con Holographic Remoting e l'API OpenXR

Nota

Queste linee guida sono specifiche per Holographic Remoting nei PC HoloLens 2 e Windows che eseguono Windows Mixed Reality.

Usare canali di dati personalizzati per inviare dati personalizzati tramite una connessione remota stabilita.

Importante

I canali di dati personalizzati richiedono un'app remota personalizzata e un'app lettore personalizzata. Ciò consente la comunicazione tra le due app personalizzate.

Suggerimento

Un semplice esempio di ping-pong è disponibile negli esempi remoti e del lettore all'interno del repository github degli esempi di Holographic Remoting. Rimuovere il commento #define ENABLE_CUSTOM_DATA_CHANNEL_SAMPLE all'interno dei file OpenXrProgramm.cpp e SamplePlayerMain.h per abilitare il codice di esempio.

Importante

La specifica dettagliata è disponibile nel repository github degli esempi di Holographic Remoting.

Creare un canale dati personalizzato

Dopo aver stabilito una connessione, è possibile creare nuovi canali di dati tramite la xrCreateRemotingDataChannelMSFT funzione . È possibile creare canali di dati personalizzati dal lettore e dall'applicazione remota anche se i runtime sono diversi. Se un canale dati viene creato dal lato lettore, il lato remoto viene notificato con la struttura XrEventDataRemotingDataChannelCreatedMSFT dell'evento.

Lo stato XrRemotingDataChannelStatusMSFT iniziale dopo la chiamata di è xrCreateRemotingDataChannelMSFT XR_REMOTING_DATA_CHANNEL_STATUS_OPEN_PENDING_MSFT . Dopo che il canale dati è stato completamente stabilito, lo stato del canale passa a XR_REMOTING_DATA_CHANNEL_STATUS_OPENED_MSFT . La struttura degli eventi viene inserita nella coda degli eventi quando lo stato di un canale dati creato in precedenza XrEventDataRemotingDataChannelOpenedMSFT passa da XR_REMOTING_DATA_CHANNEL_STATUS_OPEN_PENDING_MSFT a XR_REMOTING_DATA_CHANNEL_STATUS_OPENED_MSFT .

Inviare dati

La xrSendRemotingDataMSFT funzione viene usata per inviare dati al lato lettore.

Recuperare i dati

Ogni volta che i dati arrivano tramite un canale dati, una XrEventDataRemotingDataChannelDataReceivedMSFT struttura di eventi viene inserita nella coda degli eventi. I pacchetti ricevuti possono essere recuperati con la xrRetrieveRemotingDataMSFT funzione .

Ottenere lo stato del canale

La xrGetRemotingDataChannelStateMSFT funzione può essere usata per eseguire query sullo stato del canale dati.

Eliminare un canale dati

È possibile eliminare un canale dati con xrDestroyRemotingDataChannelMSFT . XrRemotingDataChannelMSFTL'handle non è valido dopo la chiamata e xrDestroyRemotingDataChannelMSFT l'handle del canale dati non deve essere usato in seguito.

L'oggetto verrà inserito nella coda degli eventi nel caso in cui il lato XrEventDataRemotingDataChannelClosedMSFT lettore chiuda o distruggi il canale dati. Lo stato del canale dati passa a XR_REMOTING_DATA_CHANNEL_STATUS_CLOSED_MSFT . Per un canale dati chiuso, XrRemotingDataChannelMSFT l'handle rimane valido.

Vedere anche