Controlando dispositivos
Os dispositivos baseados em UPnP são controlados pelos serviços que expõem. Um serviço UPnP é a menor entidade controlável na arquitetura UPnP. Os dispositivos expõem um serviço para cada função primária que executam. Dispositivos complexos normalmente são compostos por vários serviços simples e outros dispositivos.
Um serviço consiste em um conjunto de variáveis de estado e um conjunto de ações que um aplicativo pode invocar que operam nessas variáveis de estado. Na API do Ponto de Controle com a tecnologia UPnP, os serviços são representados por objetos de serviço que expõem a interface IUPnPService .
Um tipo de serviço define as variáveis de estado e as ações compatíveis com um serviço específico. Por exemplo, o tipo de serviço para um serviço de relógio define as ações GetTime e SetTime , juntamente com uma variável de estado Time .
Uma ID de serviço diferencia vários tipos de serviço comuns em um único dispositivo. Por exemplo, pode haver dois serviços de relógio em um alarme, um para o relógio normal e outro para o alarme. Precisa haver uma maneira de diferenciar entre os dois serviços, que têm tipos de serviço idênticos. A ID do serviço fornece uma maneira exclusiva de identificar uma instância de um tipo de serviço. Em seguida, essa ID de serviço é usada para acessar o serviço correto da coleção IUPnPServices , pois o tipo de serviço não é um identificador exclusivo. A interface IUPnPService também permite que os aplicativos registrem uma função de retorno de chamada com o objeto de serviço. Quando o valor da variável de estado de um serviço é alterado, o objeto de serviço invoca o retorno de chamada registrado para notificar o aplicativo da alteração. A estrutura UPnP também invoca esse retorno de chamada para notificar os aplicativos quando uma instância de serviço fica indisponível. O serviço pode ficar indisponível por vários motivos, incluindo falhas transitórias de rede.
Para obter mais informações, consulte estes tópicos:
- Obtendo objetos de serviço
- Registrando um retorno de chamada
- Consultando variáveis de estado
- Invocando ações