随着智能家居的普及,音视频设备也成为了智能家居的重要组成部分。不同厂商的音视频设备之间存在着互相独立的控制协议,这给用户的使用带来了很大的不便。为了解决这个问题,UPnP(通用即插即用)论坛制定了音视频设备控制协议的标准,即ISO/IEC 29341-20-4:2017。
该标准定义了音视频设备控制协议的数据结构模板,包括设备、服务、动作和状态变量等。设备是指音视频设备,服务是指设备提供的功能,动作是指服务可以执行的操作,状态变量是指服务的状态信息。通过这些数据结构模板,不同厂商的音视频设备可以互相识别和控制。
设备是音视频设备控制协议的最基本单位,每个设备都有一个唯一的设备标识符(UDN),用于区分不同的设备。每个设备可以包含多个服务,每个服务都有一个唯一的服务标识符(SID),用于区分不同的服务。每个服务可以包含多个动作,每个动作都有一个唯一的动作标识符(AID),用于区分不同的动作。每个服务还可以包含多个状态变量,每个状态变量都有一个唯一的状态变量标识符(SVID),用于区分不同的状态变量。
设备发现是音视频设备控制协议的第一步,设备之间需要相互发现和识别。设备发现可以通过多种方式实现,例如SSDP(简单服务发现协议)、DNS-SD(DNS服务发现)等。设备发现的结果是设备描述文档(DD),包含了设备的基本信息、服务的描述信息、动作的描述信息和状态变量的描述信息等。
设备描述文档是音视频设备控制协议的核心,它包含了设备的所有信息。设备描述文档采用XML格式,可以通过HTTP协议获取。设备描述文档中包含了设备的基本信息,例如设备的名称、型号、制造商等;服务的描述信息,例如服务的类型、名称、动作列表等;动作的描述信息,例如动作的名称、参数列表、返回值等;状态变量的描述信息,例如状态变量的名称、数据类型、取值范围等。
设备描述文档获取后,就可以对设备进行控制操作。控制操作是通过SOAP(简单对象访问协议)实现的,SOAP是一种基于XML的协议,用于在Web服务之间交换信息。控制操作包括调用动作和获取状态变量值两种方式。调用动作是指执行服务中的动作,可以通过SOAP消息实现。获取状态变量值是指获取服务中的状态变量值,可以通过HTTP GET请求实现。
设备状态变化时,需要向其他设备发送事件通知。事件通知是通过HTTP POST请求实现的,事件通知包含了事件的类型、设备的UDN、服务的SID和状态变量的SVID等信息。其他设备可以通过订阅事件的方式获取事件通知,订阅事件需要提供订阅者的回调地址和订阅的事件类型等信息。
总之,ISO/IEC 29341-20-4:2017定义了音视频设备控制协议的数据结构模板和通信机制,使得不同厂商的音视频设备可以互相通信和控制。该标准的实现可以提高用户的使用体验,使得智能家居更加智能化和便捷化。
相关标准
- ISO/IEC 29341-20-1:2016 通用即插即用设备架构 第20-1部分:基础设施
- ISO/IEC 29341-20-2:2016 通用即插即用设备架构 第20-2部分:网络设备控制协议
- ISO/IEC 29341-20-3:2016 通用即插即用设备架构 第20-3部分:设备管理协议
- ISO/IEC 29341-20-5:2017 通用即插即用设备架构 第20-5部分:媒体服务器设备控制协议
- ISO/IEC 29341-20-6:2017 通用即插即用设备架构 第20-6部分:媒体渲染器设备控制协议