프레젠테이션
프레젠테이션은 UPnP 프로세스의 마지막 단계입니다. 디바이스에 프레젠테이션 URL이 있는 경우 제어점은 이 URL에서 페이지를 검색하고 페이지를 브라우저에 로드할 수 있습니다. 프레젠테이션 페이지와 디바이스의 기능에 따라 제어점은 디바이스를 제어하고 디바이스의 상태 볼 수 있습니다.
등록하는 동안 IUPnPRegistrar 에 전달되는 리소스 경로는 디바이스 프레젠테이션과 관련된 모든 파일이 있는 위치입니다. 디바이스 개발자는 각 포함된 디바이스에 대해 별도의 페이지를 제공할 수 있습니다. 디바이스 설명 템플릿의 프레젠테이션 URL은 절대 URL 또는 상대 URL일 수 있습니다. 리소스 경로를 기준으로 하는 상대 URL의 경우 디바이스 설명 템플릿에 파일 이름이 포함되어야 합니다. IUPnPRegistrar 는 이를 실제 위치의 URL로 변환합니다. 절대 URL의 경우 위치가 수정되지 않습니다.
프레젠테이션 페이지 내에서 클라이언트 쪽 스크립트를 지원하기 위해 일반적으로 "쿼리 문자열" 형식의 URL에 추가 정보가 추가됩니다. 추가되는 추가 정보는 디바이스 설명 문서의 URL과 디바이스 또는 포함된 디바이스의 UDN입니다. 디바이스 설명 URL을 사용하여 스크립트에서 설명 문서를 로드한 다음 해당 서비스를 통해 디바이스를 제어할 수 있습니다. UDN은 루트 디바이스에서 포함된 디바이스를 선택하는 데 사용됩니다.
수정된 프레젠테이션 URL의 형식은 실제 프레젠테이션 URL, 물음표("?"), 디바이스 설명 URL, 더하기 기호("+"), 디바이스 UDN입니다. 물음표는 쿼리 문자열의 시작을 표시합니다.
디바이스 설명 템플릿의 프레젠테이션 URL이 절대 URL이고 물음표("?")가 이미 포함되어 있으면 추가 정보가 프레젠테이션 URL에 추가되지 않습니다.
설명 | URL |
---|---|
디바이스 설명 템플릿에서 | presentationURLMyDevice.html**/presentationURL** |
디바이스 호스트에서 생성됨 | presentationURLhttps://machinename/deviceID/MyDevice.html/?https://machine/upnphost/udhisapi.dll?content=uuid:487394 ... + UDN**/presentationURL** |
클라이언트 쪽 스크립트는 IUPnPDescriptionDocument 개체를 로드하기 위해 프레젠테이션 URL에서 디바이스 설명 URL을 추출해야 할 수 있습니다. 이 작업은 쿼리 문자열을 가져와서 더하기 기호("+")에서 종료하여 수행합니다.
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)