프레젠테이션

프레젠테이션은 UPnP 프로세스의 마지막 단계입니다. 디바이스에 프레젠테이션 URL이 있는 경우 제어점은 이 URL에서 페이지를 검색하고 페이지를 브라우저에 로드할 수 있습니다. 프레젠테이션 페이지 및 디바이스의 기능에 따라 제어점에서 디바이스를 제어하고 디바이스의 상태를 볼 수 있습니다.

등록하는 동안 IUPnPRegistrar 전달되는 리소스 경로는 디바이스의 프레젠테이션과 관련된 모든 파일이 있는 위치입니다. 디바이스 개발자는 포함된 각 디바이스에 대해 별도의 페이지를 제공할 수 있습니다. 디바이스 설명 템플릿의 프레젠테이션 URL은 절대 URL 또는 상대 URL일 수 있습니다. 리소스 경로를 기준으로 하는 상대 URL의 경우 디바이스 설명 템플릿에 파일 이름이 포함되어야 합니다. IUPnPRegistrar 실제 위치가 있는 URL로 변환합니다. 절대 URL의 경우 위치가 수정되지 않습니다.

프레젠테이션 페이지 내에서 클라이언트 쪽 스크립트를 지원하기 위해 일반적으로 URL에 "쿼리 문자열" 형식의 추가 정보가 추가됩니다. 추가되는 추가 정보는 디바이스 설명 문서의 URL과 디바이스 또는 포함된 디바이스의 UDN입니다. 디바이스 설명 URL을 사용하여 스크립트에서 설명 문서를 로드한 다음 해당 서비스를 통해 디바이스를 제어할 수 있습니다. UDN은 루트 디바이스에서 포함된 디바이스를 선택하는 데 사용됩니다.

수정된 프레젠테이션 URL의 형식은 실제 프레젠테이션 URL, 물음표("?"), 디바이스 설명 URL, 더하기 기호("+"), 디바이스 UDN입니다. 물음표는 쿼리 문자열의 시작을 표시합니다.

디바이스 설명 템플릿의 프레젠테이션 URL이 절대 URL이고 물음표("?")가 이미 포함되어 있으면 추가 정보가 프레젠테이션 URL에 추가되지 않습니다.

묘사 URL
디바이스 설명 템플릿에서 presentationURL MyDevice.html**/presentationURL**
디바이스 호스트에 의해 생성됨 presentationURL https://machinename/deviceID/MyDevice.html/?https://machine/upnphost/udhisapi.dll?content=uuid:487394... + UDN**/presentationURL**

 

클라이언트 쪽 스크립트는 프레젠테이션 URL에서 디바이스 설명 URL을 추출하여 IUPnPDescriptionDocument 개체를 로드해야 할 수 있습니다. 이 작업은 쿼리 문자열을 가져와서 더하기 기호("+")에서 종료하여 수행됩니다.

Dim QueryString
QueryString = window.location.search
Dim DescURLString
DescURLString = Trim(Mid(QueryString,2,Instr(QueryString,"+")-2))& vbCrLf

    Dim LightDesc
    Set LightDesc = CreateObject("UPnP.DescriptionDocument.1")
    LightDesc.Load(DescURLString)

포함된 디바이스에 대한 프레젠테이션 페이지의 경우 몇 가지 추가 작업이 필요합니다. UPnPDescriptionDocument로드한 후 스크립트는 포함된 디바이스의 컬렉션을 가져온 다음 쿼리 문자열에서 UDN과 일치하는 디바이스를 선택해야 합니다. 다음 스크립트는 현재 프레젠테이션 페이지에 포함된 디바이스를 선택하는 방법을 보여 있습니다. LightDesc가 이미 로드되어 있다고 가정합니다.

Dim LightDevice
Set LightDevice = LightDesc.RootDevice

Dim EmbeddedDevices 
set EmbeddedDevices = LightDevice.Children

Dim DeviceUdnString
DeviceUdnString = Trim(Mid(QueryString,Instr(QueryString,"+")+1,Len(QueryString)))

Dim Item
set Item = EmbeddedDevices.Item(DeviceUdnString)