Controllo dei dispositivi
I dispositivi basati su UPnP sono controllati dai servizi esposti. Un servizio UPnP è l'entità controllabile più piccola nell'architettura UPnP. I dispositivi espongono un servizio per ogni funzione primaria eseguita. I dispositivi complessi sono in genere costituiti da diversi servizi semplici e altri dispositivi.
Un servizio è costituito da un set di variabili di stato e un set di azioni che un'applicazione può richiamare che opera su tali variabili di stato. Nell'API Punto di controllo con tecnologia UPnP i servizi sono rappresentati da oggetti del servizio che espongono l'interfaccia IUPnPService .
Un tipo di servizio definisce le variabili di stato e le azioni supportate da un servizio specifico. Ad esempio, il tipo di servizio per un servizio orologio definisce le azioni GetTime e SetTime, insieme a una variabile di stato Time.
Un ID servizio differenzia più tipi di servizio comuni all'interno di un singolo dispositivo. Ad esempio, possono essere presenti due servizi orologio in un orologio di allarme, uno per l'orologio regolare e l'altro per l'allarme. C'è bisogno di un modo per distinguere tra i due servizi, che hanno tipi di servizio identici. L'ID servizio fornisce un modo univoco per identificare un'istanza di un tipo di servizio. Questo ID servizio viene quindi usato per accedere al servizio corretto dall'insieme IUPnPServices , perché il tipo di servizio non è un identificatore univoco. L'interfaccia IUPnPService consente anche alle applicazioni di registrare una funzione di callback con l'oggetto servizio. Quando il valore della variabile di stato di un servizio cambia, l'oggetto del servizio richiama il callback registrato per notificare l'applicazione della modifica. Il framework UPnP richiama anche questo callback per notificare alle applicazioni quando un'istanza del servizio non è disponibile. Il servizio può non essere disponibile per diversi motivi, tra cui un errore di rete temporaneo.
Per altre informazioni, vedere gli argomenti seguenti:
- Recupero di oggetti del servizio
- Registrazione di un callback
- Esecuzione di query su variabili di stato
- Chiamata di azioni