簡報
簡報是 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** |
用戶端腳本可能需要從簡報 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)