SOAP协议实现UPnP-AV播放系统设备控制

SOAP协议实现UPnP-AV播放系统设备控制
论文导读:使用UPnP协议不需要设备驱动程序。UPnP设备工作过程由设备寻址、设备发现、设备描述、设备控制、设备事件、设备表征几部分构成。下面重点介绍GetProtocolInfo、RendererControl、PrepareForConnection、SetAVTransportURI、Play等操作的设计与实现。它用来针对不同的请求类型生成不同的SOAP内容体和信封格式。关键词:UPnP,设备控制,SOAP,设计与实现 
1. 引言
UPnP是通用即插即用(UniversalPlug and Play)的缩写,主要用于实现设备的智能互联互通。在结合了UPnP技术的设备以物理形式连接到网络中之后,它们可以通过网络自动彼此连接在一起,而且连接过程无需用户的参与和使用中央服务器   [4]   。使用UPnP协议不需要设备驱动程序,因此使用UPnP建立的网络是介质无关的,它可以运行在几乎所有的操作系统平台之上,可使用C,C++,JAVA和VB等开发语言,可方便地构建设备相互联通的网络环境。
2. UPnP-AV媒体播放系统概述
UPnP提供的媒体播放系统体系结构定义了基本的AV设备和服务模板,说明了UPnP控制点
UPnP-AV设备之间的整体关系,支持多种设备类型、内容格式及传输协议。一个UPnP控制点控制多个设备完成所需工作,但这些设备与控制点之间的相互作用都是独立的,控制点协调各台设备,使其成为一个整体。
1.1 UPnP设备控制的过程
UPnP设备工作过程由设备寻址、设备发现、设备描述、设备控制、设备事件、设备表征几部分构成,其核心部分就是设备控制。免费论文参考网。
设备控制过程主要基于简单对象存取协议(SimpleObject Access Protocol )。SOAP协议是一种应用程序之间进行数据通讯的机制,是一种在HTTP上使用XML发送命令并接收值的远程过程调用   [5]   。控制点通过向设备服务发出操作来控制设备,一般通过向服务的控制URL地址发送一个适当的控制消息,而服务则做出相应的响应。操作的效果可能改变一个描述服务运行状态的变量,设备事件将这一改变发送到所有相关的控制点。控制点也会轮询服务以获得状态变量的当前值,而每个服务则必须保持状态变量的一致性。
1.2 UPnP-AV媒体播放系统的控制过程
   一个完整的UPnP-AV体系由三部分组成:一个用于控制播放过程的控制点(ControlPoint),相当于遥控器;一台用于存取视频、音频文件的MediaServer,相当于
影碟机;一台用于输出图像和声音的MediaRenderer,相当于电视机。UPnP-AV系统工作由控制点启动。控制点请求设置 MediaServer 和MediaRenderer 以便使需要的内容从 MediaServer 流动到MediaRenderer (使用双方都支持的协议和数据格式)。 MediaServer 和 MediaRenderer 则处理控制点的UPnP操作调用。控制点不参与实际的内容传送过程,而只在需要时对它们进行简单的设置,并启动传输,一旦传输开始,控制点就退出了。如果用户需要,控制点可以调用各种各样的 AVTransport 操作来控制内容的流动,如Stop、Pause、FF、REW等。此外,控制点也能控制 MediaRenderer 设备的播放特性,如亮度、对比度、音量等。图1描述了三者之间的相互作用顺序。
 
                                                                               
图1 UPnP-AV设备作用顺序
2. UPnP-AV系统设备控制的实现
2.1 设备控制消息格式   [6]   设备控制过程由控制点通过发SOAP请求,调用设备的各种服务提供的操作方法,控制数据从MediaServer传到MediaRenderer的过程,并控制MediaRenderer的播放过程。所用的消息格式由SOAP协议规定。典型的设备控制消息格
式如下:
POST path of control URL  HTTP/1.1
HOST:host of control URL:port of control URL
CONTENT-LENGTH:bytes in body
CONTENT-TYPE: text/xml;charset=”utf-8”
SOAPACTION:”urn:schemas-upnp-org:service:serviceType:v#actionName”



in argvalue
other in args and their values go here, if any



2.2 设备控制设计与实现   [1][2][3]   下面重点介绍GetProtocolInfo、RendererControl、
PrepareForConnection、SetAVTransportURI、Play等操作的设计与实现。
2.2.1 GetProtocolInfo操作
1)作用
控制点通过该操作从MediaServer和MediaRenderer获取各自所支持的传输协议和数据格式并进行匹配,确定最后传输时所用的协议。
2)输入参数:无
3)输出参数:2个
source:源设备可用协议
sink: 播放设备可用协议
协议格式如下:
’:’ ’:’’:’
4)GetProtocolInfo()函数工作过程,如图2所示。
 
                                                                               
图2 GetProtocolInfo()函数工作过程
2.2.2 RendererControl操作
1)作用
这是整个设备控制阶段中最重要的一个操作,它用来针对不同的请求类型生成不同的SOAP内容体和信封格式,并将此SOAP请求发送到相应服务的控制URL,从而调用该服务所提供的相应操作,实现控制点的控制请求。
2)算法描述
PublicSub RendererControl()
Select Case m_enuRequestType '根据请求类型生成不同的SOAP请求
Case 枚举请求类型值
strBody =…  ’生成请求体
enuService = … ’确定要调用的MediaRenderer服务名
strAction = … ’确定要调用的MediaRenderer操作名
 

本文发布于:2024-09-21 08:05:43,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/95981.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:设备   控制   控制点   过程   服务   协议   播放
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议