关于UPnP Device Architecture 2.0的阅读笔记(十)

设备描述之服务描述文件

    服务描述文件
    UPnP设备服务描述文件定义了一个服务的动作及参数,状态变量的值、范围和事件特性。
    每一个服务应该含有0个或多个动作,每个动作含有0个或多个参数,每个参数被设置成输入和输出状态。
    输入参数应该列在前面,如果一个动作含有多个输出参数,则第一个参数被设为动作返回值。
    每个参数应该与设备服务描述文件SCPD的<serviceStateTable>的一个<stateVarable>元素对应
    每个服务应该含有一个或多个状态变量。
    
    一个服务描述文件格式如下(我使用##表示每个元素标签的含义,所有的标签大小写敏感,标签值初URL外大小写不敏感):
    <?xml version="1.0"?>      ##xml文件标识,大小写敏感,必须
    <scpd         ##包含了服务描述文件的其他的元素
        xmlns="urn:schemas-upnp-org:service-1-0"
        xmlns:dt1="urn:domain-name:more-datatypes"
        <!-- Declarations for other namespaces added by UPnP Forum working committee (if any) go here -->
        <!-- The value of the attribute shall remain as defined by the UPnP Forum working committee.-->
        xmlns:dt2="urn:domain-name:vendor-datatypes"
        <!-- Declarations for other namespaces added by UPnP vendor (if any) go here -->
        <!-- Vendors shall change the URN’s domain-name to a Vendor Domain Name -->
        <!-- Vendors shall change vendor-datatypes to reference a vendor-defined namespace -->
        configId="configuration number">
        <specVersion>              ##UDA的版本说明
            <major>2</major>
            <minor>0</minor>
        </specVersion>
        <actionList>                                                  ##服务所含有的动作列表
            <action>                                                    ##动作,一般由委员会或服务商提供
                <name>actionName</name>           ##动作的名字
                <argumentList>                                    ##动作的参数列表
                    <argument>                                       ##具体参数
                        <name>argumentNameIn1</name>                  ##参数名

                        <direction>in</direction>                                      ##参数的方向,in/out所有的in参数要列在所有的out参数前面

                         <relatedStateVariable>stateVariableName</relatedStateVariable>    ##该该参数在状态变量表中的名字
                    </argument>
                    <!-- Declarations for other IN arguments defined by UPnP Forum working Committee (if any) go here -->
                    <argument>
                        <name>argumentNameOut1</name>
                        <direction>out</direction>
                        <retval/>                                                                  ##标识至多一个输出为返回值
                        <relatedStateVariable>stateVariableName</relatedStateVariable>
                    </argument>
                    <argument>
                        <name>argumentNameOut2</name>
                        <direction>out</direction>
                        <relatedStateVariable>stateVariableName</relatedStateVariable>
                    </argument>
                    <!-- Declarations for other OUT arguments defined by UPnP Forum working committee (if any) go here -->
                </argumentList>
            </action>
            <!-- Declarations for other actions defined by UPnP Forum working committee (if any)go here -->
            <!-- Declarations for other actions added by UPnP vendor (if any) go here -->
        </actionList>

        <serviceStateTable>                                                                               ##服务状态表
            <stateVariable sendEvents="yes"|"no" multicast="yes"|"no">     ##sendEvents表明变化时是否发送事件,multicast表明是否组播
                <name>variableName</name>                              ##状态变量名字
                <dataType>basic data type</dataType>               ##数据类型 ui1/ui2/ui4/ui8/i1/i2/i4/i8/string/boolean/uuid等
                <defaultValue>default value</defaultValue>       ##默认值
                <allowedValueRange>                                            ##允许范围
                    <minimum>minimum value</minimum>          ##最大值
                    <maximum>maximum value</maximum>       ##最小值
                    <step>increment value</step>                           ##步长
                </allowedValueRange>
            </stateVariable>
            <stateVariable sendEvents="yes"|"no" multicast="yes"|"no">
                <name>variableName</name>
                <dataType type="dt1:variable data type">string</dataType>
                <defaultValue>default value</defaultValue>
                <allowedValueList>
                    <allowedValue>enumerated value</allowedValue>
                    <!-- Other allowed values defined by UPnP Forum working committee (if any) go here -->
                    <!-- Other allowed values defined by vendor (if any) go here -->
                </allowedValueList>
            </stateVariable>
            <stateVariable sendEvents="yes"|"no" multicast="yes"|"no">
                <name>variableName</name>
                <dataType type="dt2:vendor data type">string</dataType>
                <defaultValue>default value</defaultValue>
            </stateVariable>
            <!-- Declarations for other state variables defined by UPnP Forum working committee (if any) go here -->
            <!-- Declarations for other state variables added by UPnP vendor (if any) go here -->
        </serviceStateTable>
    </scpd>    

    <relatedStateVariable>标签种的元素名应该和状态变量表中的变量名一致。
    如果该标签下的变量名在状态变量表中没有找到,则状态变量会为其单独生成一个前缀为“A_ARG_TYPE”的变量。
    用户可以使用和处理自己定义的数据类型
    关于描述文件中元素的顺序,应该与规定的设备和服务类型的顺序一致
    关于控制消息和响应中的顺序,应该与描述文件中的顺序一致

   UPnP服务模版


    服务模版与服务描述文件的关系和设备模版与设备描述文件的关系是相同的。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: UPnP测试工具是一种软件程序, 可以测试数字设备之间的通信连接和功能,通过UPnP协议互相发现和控制,从而确保这些设备可以在网络上相互通信,发现和使用。UPNP是通用即插即用网络协议,可以实现局域网中不同类型数字设备互相发现和管理。测试工具可以检测设备是否正确实现了UPnP标准,并能够识别设备的功能,这对于数字家电的测试和集成尤为重要。测试工具的主要功能是测试UPnP设备之间的互相通信,这类设备包括计算机、打印机、路由器、音频设备等,通过测试可以检查设备的UPnP功能的完整性、正确性和安全性。UPnP测试工具通常提供图形化界面和命令行接口,测试结果可以以文本文档或XML文件的格式输出,为集成测试提供了重要的数据支持。测试工具的使用需要一定的技术知识和经验,对于专业测试人员来说,它是必不可少的工具,对于普通用户而言,使用UPnP设备时知道有这个工具存在即可。 ### 回答2: UPnP Test工具有利于测试网络中的UPnP(通用即插即用协议)设备及其功能。UPnP是一种能够让设备自主配置网络资源的协议,它通过使用标准的Internet协议来增强网络设备的互操作性。利用UPnP Test工具,网络管理员可以识别和排除UPnP虚拟服务和外部暴露风险,确保网络安全。同时,UPnP Test工具可以检测网络中的兼容性和性能问题,帮助网络管理员解决相关问题并优化网络性能。 UPnP Test工具可以用于测试路由器、打印机、摄像机、扫描仪、音频设备等多种网络设备。操作简单,使用方便,能够有效地测试UPnP设备、检测漏洞,为网络设备的强大和安全性提供保障。 使用UPnP Test工具还可以对UPnP服务的性能进行测试、优化,以提高网络的整体效率。 总之,UPnP Test工具是一种非常实用的网络测试工具,可以帮助网络管理员提高网络性能、保障网络安全、及时检测和解决UPnP设备的性能和兼容性问题,从而让网络更加稳定、高效和安全。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值