WPFxUPnP その12
UPnPデバイスとしては動作するようになりました。
次に、プレゼンテーションを作成して、コントロールとイベントを動かします。
まずは、イベントを。
UPnPライトの状態をイベントで受け取り、プレゼンテーションのHTMLに表示します。
これには、VBScriptを用いておこないます。
まずは、表示するところに次のように、HTMLを記載します。
<p>ライトの状態: <span id="LightStatus"></span></p>
Dim SwitchPowerSrv Set SwitchPowerSrv = Nothing Dim descriptionDoc, device Dim QueryString QueryString = window.location.search Dim DescURLString DescURLString = Trim(Mid(QueryString, 2, Instr(QueryString, "+") - 2)) '*** Get DeviceDesc *** Set descriptionDoc = CreateObject("UPnP.DescriptionDocument") descriptionDoc.Load(DescURLString) Set device = descriptionDoc.RootDevice Set SwitchPowerSrv = device.Services("urn:upnp-org:serviceId:SwitchPower:1")
UPnPデバイスからイベントを受け取るには、イベントハンドラを作成し、登録します。
SwitchPowerSrv.AddCallback GetRef("eventHandler") ' ----------------------------------------------------------------------------- ' Event ' ----------------------------------------------------------------------------- Sub eventHandler(callbackType, svcObj, varName, value) If (callbackType = "VARIABLE_UPDATE") Then select case svcObj.Id case "urn:upnp-org:serviceId:SwitchPower:1" select case varName Case "Status" If value Then LightStatus.innerText = "ON" Else LightStatus.innerText = "OFF" End if end select end select End If End Sub
これで、UPnPデバイスを起動し、ネットワークのUPnPライトを開くと、ページに現在のライトの状態が表示されます。
また、WPFのUIで、ON/OFFを行うと一緒にステータスが変更されます。