WLT+ASA: Panoramica del software di supporto
IBinder
- Associazione di Puntini spazi a Ancoraggi nello spazio di Azure
L'interfaccia IBinder
si trova al centro, implementata qui dalla classe SpacePinBinder. SpacePinBinder è un monobehaviour di Unity e può essere configurato dallo script Inspector di Unity o da uno script.
Ognuno IBinder
è denominato, quindi un singolo IBindingOracle
può gestire le associazioni per più IBinder
s.
IPublisher
- lettura e scrittura di ancoraggi nello spazio nel cloud
L'interfaccia IPublisher
gestisce la pubblicazione di ancoraggi nello spazio nel cloud e quindi recuperarli in sessioni successive o in altri dispositivi. IPublisher
viene implementato qui con la classe PublisherASA. La posizione dei dati nello spazio fisico corrente viene acquisita e recuperata usando Ancoraggi nello spazio di Azure.
Quando viene pubblicato un ancoraggio nello spazio, viene ottenuto un ID ancoraggio cloud. Questo ID può essere usato nelle sessioni successive o in altri dispositivi per recuperare la posizione dell'ancoraggio cloud nel sistema di coordinate corrente, insieme a tutte le proprietà archiviate con esso. Il sistema aggiunge sempre una proprietà che identifica l'ancoraggio cloud associato a SpacePin.
Si noti che , IPublisher
e publisherASA, non sanno nulla di SpacePins. IPublisher
non sa o importa cosa verrà fatto con i dati di ancoraggio cloud. Fornisce un'interfaccia awaitable semplificata per la pubblicazione e il recupero di ancoraggi cloud.
Lettura e ricerca
Se l'ID di un ancoraggio cloud è noto, l'ancoraggio cloud può essere recuperato dal relativo ID. Questo metodo è il modo più affidabile per recuperare un ancoraggio cloud. Il metodo è Read.
Esistono tuttavia scenari interessanti in cui gli ID per gli ancoraggi cloud all'interno di un'area non sono noti da un dispositivo, ma se potrebbero essere recuperati ancoraggi cloud, i dati spaziali e le proprietà si combinano per fornire informazioni sufficienti per renderli utili.
Trova cerca nell'area intorno a un dispositivo ancoraggi cloud e restituisce qualsiasi elemento che sia stato in grado di identificare. Questo processo è noto come rilocazione grossolana.
IBindingOracle - Condivisione degli ID di ancoraggio cloud
L'interfaccia IBindingOracle consente di rendere persistenti e condividere associazioni tra SpacePins e ancoraggi cloud specifici. In particolare, rende persistenti le coppie space-pin-ID/cloud-anchor-ID, insieme al nome dell'oggetto IBinder
.
L'interfaccia dell'oracolo è estremamente semplice. Dato un IBinder
oggetto , può inserire i IBinder
binding dell'oggetto oppure recuperarli. Inserire li archivia e Get li recupera. Il meccanismo di archiviazione e recupero viene lasciato all'implementazione della classe concreta che implementa l'interfaccia IBindingOracle.
Questo esempio implementa probabilmente il più semplice possibile IBindingOracle, sotto forma di classe SpacePinBinderFile. In Put scrive le IBinder
associazioni in un file di testo. In Get le legge dal file di testo (se disponibile) e le inserisce in IBinder
.
ILocalPeg - BLOB che contrassegna una posizione nello spazio fisico
L'interfaccia ILocalPeg è un'astrazione di un ancoraggio locale del dispositivo. In un mondo più perfetto, l'ILocalPegs richiesto sarebbe gestito internamente da IPublisher
. Tuttavia, gli ancoraggi locali del dispositivo funzionano molto meglio quando viene creato mentre il dispositivo si trova nelle vicinanze della posizione dell'ancoraggio. L'unico IPublisher
elemento sa dove devono essere posizionati gli ancoraggi locali del dispositivo quando sono necessari, non al momento ottimale di crearli.
SpacePinASA sa quando è il momento migliore per creare il suo ancoraggio locale. Quando la manipolazione di SpacePin termina e il relativo set di posizioni, SpacePinASA richiede IPublisher
a di creare un peg locale opaco alla posizione desiderata. SpacePinBinder estrae quindi ILocalPeg da SpacePinASA e lo passa all'oggetto IPublisher
da usare per creare un ancoraggio nello spazio cloud.