다음을 통해 공유


디바이스 제어

UPnP 기반 디바이스는 노출하는 서비스에 의해 제어됩니다. UPnP 서비스는 UPnP 아키텍처에서 가장 작은 제어 가능한 엔터티입니다. 디바이스는 수행하는 각 기본 함수에 대해 하나의 서비스를 노출합니다. 복잡한 디바이스는 일반적으로 여러 간단한 서비스 및 기타 디바이스로 구성됩니다.

서비스는 상태 변수 집합과 해당 상태 변수에서 작동하는 애플리케이션이 호출할 수 있는 작업 집합으로 구성됩니다. UPnP 기술을 사용하는 제어 지점 API에서 서비스는 IUPnPService 인터페이스를 노출하는 서비스 개체로 표시됩니다.

서비스 유형은 특정 서비스에서 지원하는 상태 변수 및 작업을 정의합니다. 예를 들어 클록 서비스의 서비스 유형은 Time 상태 변수와 함께 GetTimeSetTime 작업을 정의합니다.

서비스 ID는 단일 디바이스 내에서 여러 공통 서비스 유형을 구분합니다. 예를 들어 알람 시계에는 두 개의 클록 서비스가 있을 수 있습니다. 하나는 일반 클록용이고 다른 하나는 알람용입니다. 서비스 유형이 동일한 두 서비스를 구분하는 방법이 있어야 합니다. 서비스 ID는 서비스 유형의 instance 식별하는 고유한 방법을 제공합니다. 그런 다음 서비스 유형이 고유 식별자가 아니므로 이 서비스 ID를 사용하여 IUPnPServices 컬렉션에서 올바른 서비스에 액세스합니다. 또한 IUPnPService 인터페이스를 사용하면 애플리케이션이 서비스 개체에 콜백 함수를 등록할 수 있습니다. 서비스의 상태 변수 값이 변경되면 서비스 개체는 등록된 콜백을 호출하여 애플리케이션에 변경 내용을 알립니다. 또한 UPnP 프레임워크는 서비스 instance 사용할 수 없게 되면 애플리케이션에 알리기 위해 이 콜백을 호출합니다. 일시적인 네트워크 오류를 비롯한 다양한 이유로 서비스를 사용할 수 없게 될 수 있습니다.

자세한 내용은 아래 항목을 참조하세요.