六、UPnP程序的编写

UPnP开发包中使用很简单,可以参考sample例子中的源代码,大部分API函数的调用是固定的,需要我们做的工作主要集中在XML文档的编写上,我这里以一例子中的TvDevice Control State Table中的Power选项为例。首先查看它的定义,在sample下的web目录下的tvdevicepres.html中:

Power

……

If (callbackType="VARIABLE_UPDATE") Then

select case svcObj.Id      case "urn:upnp-org:serviceId:tvcontrol1"

select case varName          Case "Power"Power.innerText=value

……

function SetPowerOn()

Dim inArgs(0)

Dim outArgs(0)

TvControlService.InvokeAction "PowerOn", inArgs, outArgs

end function

function SetPowerOff()

Dim inArgs(0)

Dim outArgs(0)

TvControlService.InvokeAction "PowerOff", inArgs, outArgs

end function

Power旁边的编辑框ID为Power,后面紧跟的两个按钮On和Off触发的函数依次为SetPowerOn()和SetPowerOff()。由VBscript中的判断语句中可以看到当服务ID为"urn:upnp-org:serviceId:tvcontrol1"的变量"Power"值发生变化时,编辑框ID为Power的内容为服务的"Power"变量值。这里将网页中的编辑框内容与服务中的变量值绑定起来了。再来看按钮On的触发函数SetPowerOn(),函数定义中说明函数最终执行TvControlService中的PowerOn动作。再来看tvcontrol服务的描述文件对状态变量和动作的说明(在web目录下tvcontrolSCPD.xml文件中):

PowerOn

Power

Power

out

……

Power

Boolean

0

……

tvcontrol服务的状态变量Power是一个bool类型的变量,PowerOn动作与状态变量Power绑定,这样我们在执行PowerOn时会影响状态变量Power,而这个具体的影响是在程序代码中完成的,这里只是完成一个关系建立的工作。在UPnP代码中也是根据这里设定好的动作名称和状态变量名称去执行不同动作所对应的函数和改变对应变量的值。

arm linux编译upnp,ARM Linux下UPnP使用相关推荐

  1. gsoap linux 编译,gSOAP嵌入式linux下的移植与程序开发

    一.移植 1.下载源码 本例下载最新版本为:gsoap_2.8.33.zip 2.解压源码 $ unzip gsoap_2.8.33.zip 3.平台准备unbuntu1204 $sudo apt-g ...

  2. linux 编译工具链,Linux工具链for TKStudio下载_Linux工具链for TKStudio官方下载-太平洋下载中心...

    Linux工具链for TKStudio是一款支持TKStudio IDE集成开发环境的辅助LINUX交叉编译工具链软件,交叉编译就是跨架构编译,编译出来的程序不能在本机执行(当然有例外情况).所以这 ...

  3. linux 编译 freescale arm 的gdb server

    一.gdb server 的生成 1.官网下载 gdb-7.8.tar.gz http://ftp.gnu.org/gnu/gdb 2.解压 $ tar zxf gdb-7.8.tar.gz 参考 g ...

  4. linux编译fdk aac,Ubuntu下利用NDK编译ffmpeg+x264+fdk-aac

    由于FFmpeg.x264.Fdk-aac的版本问题,所以编译的时候有很多坑 编译顺序: 首先利用脚本分别编译x264和fdk-aac库,生成头文件(.h)与静态库文件(.a/.la). 将FFmpe ...

  5. g++ linux 编译开栈_Linux下编写C++服务器(配置C++编译调试环境)

    Linux下编写C++服务器(配置C++编译调试环境) 安装好linux虚拟机,确定能上网后,我们可以开始编写C++程序了,但在这之前我们需要下载编译器和调试器 下载gcc 1.在终端输入yum se ...

  6. linux编译redis打包,linux下下载redis,并且编译

    1:下载.解压.编译 $ wget http://download.redis.io/releases/redis-3.0.6.tar.gz $ tar xzf redis-3.0.6.tar.gz ...

  7. linux编译ffmepg,在Ubuntu下编译FFmpeg

    在之前,我们成功地使用mingw+msys在Windows平台下编译FFmpeg(见 http://www.linuxidc.com/Linux/2014-11/109839.htm),并生成了ffp ...

  8. ubuntu linux编译apt,Ubuntu Linux系统下apt-get命令详解

    整理了Ubuntu Linux操作系统下apt-get命令的详细说明,分享给大家. 常用的APT命令参数: apt-cache search package 搜索包 apt-cache show pa ...

  9. Linux编译代码卡死,Linux下970Pro编译卡死的问题

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 本人小白一个,想请教图吧技术佬一个Linux下多线程编译C++时系统卡死的问题. 先说下家里电脑大体配置:CPU是Ryzen 1600X,显卡是华硕战枭G ...

  10. linux编译ffmpeg.exe,linux下编译FFmpeg

    linux下编译FFmpeg 2020年01月11日 阅读数:12 这篇文章主要向大家介绍linux下编译FFmpeg,主要内容包括基础应用.实用技巧.原理机制等方面,希望对大家有所帮助. 1.首先获 ...

最新文章

  1. 图论 ---- DAG删点+枚举+暴力+离线前缀异或和 J Red-Black Paths (2021 icpc网络赛第一场)
  2. 106页的《Python进阶》中文版(附下载)!
  3. 不懂装饰器,就不是真正会 Python
  4. JAVA进阶day04多态(向上转化,向下转化)
  5. LeetCode 93. 复原IP地址(回溯)
  6. 你的adonis用对了吗?不同因素的顺序竟然对结果有很大影响
  7. P1423 小玉在游泳(python3实现)
  8. 无人驾驶(大安全概念)
  9. java调用tuxedo中间件,BEA-TUXEDO中间件介绍.ppt
  10. java压缩解压文件
  11. java 模糊图片_记录三种实现图片模糊的方法
  12. 2022年PMP考试安排
  13. 关于京东抢票的一个BUG
  14. python爬取 东方财富/天天基金网 基金排行数据
  15. unity mono编译
  16. Zynga和StarLark庆祝《Golf Rival》面世四周年
  17. Stadia云游戏平台
  18. appium使用相对坐标定位元素
  19. JavaScript大师必须掌握的12个知识点 1
  20. CSS弹性盒子布局flex

热门文章

  1. 东方证券万字报告:微信视频号进入稳定的发展期
  2. 请收藏ANSYS Fluent电子风扇效能及噪音仿真攻略
  3. Origin画法——简单的分布图画法
  4. mysql jdbc密码密文_druid配置数据库连接使用密文密码
  5. CentOS防火墙开启masquerade后即开启包转发功能
  6. Linux TOP CPU %wa 值的理解
  7. spy——[1220] SPY
  8. 基于微信小程序的资产管理平台的设计与实现
  9. 青年与计算机比赛,我市首届青少年电脑机器人竞赛精彩上演
  10. ABT 共识社区北京聚会 共建去中心化生态 | ArcBlock 社区