一种基于SmartPnP协议的设备互连方法及系统的制作方法_2

文档序号:8945594阅读:来源:国知局
扩充其它型态。
[0042]整数型态,可以视需求定义有效范围(range )属性。
[0043]range
有效范围,选择性限制,为两个整数的array,有效范围包含这两个整数。例如:{"value":2,"range": [O, 4] },有效范围为 O 兰 value = 4。
[0044]string
字符串型态,可以视需求定义最大长度(maxLength )与有效字符串(validList )属性。
[0045]最大长度,选择性限制。值为用来表示最大长度的整数。为有效字符长度(UTF-8)ο例如:{ "value": "Smart PnP〃,"maxLength": 8 },最大有效长度为8,正好是字符串Smart PnP的长度。在软件中若以C字符串存放,array长度需大于等于9以确保有足够空间加入 NULL terminator ο
[0046]设置有效字符串选项,选择性限制。为一字符串array。值只能是这个array的其中—个。例如:{ "value": "bright","validList": ["bright","normal","dark"]},即有效字符串有〃bright〃、〃normal〃与〃dark〃三种D
[0047]State Subscript1n
对 state URL (底下以 /api/spnp/FixedApplianceBasic/state/ 为例)发送SUBSCRIBE请求,可以订阅装置状态的变动,具体代码如下:
SUBSCRIBE /api/spnp/FixedApplianceBasic/state/ HTTP/1.1
HOST: 10.70.10.21
CALLBACK: callback URL
NT: spnp:event
TIMEOUT: Second-3600
其中,各字段定义为:HOST:订阅者IP地址,CALLBACK:消息回呼URL,NT:通知类型(Notificat1n Type) ? TIMEOUT:请求的订阅持续时间。
[0048]若订阅请求正确,将会回传如下的消息:
HTTP/1.1 200 OK
DATE: Thuj 03 Jul 2014 04:07:37 GMTSERVER: OS/vers1n UPnP/1.0 product/vers1nSID: uuid:subscript1n uuidTIMEOUT: Second-3600
其中各字段定义为:DATE:响应时间,SERVER:系统版本,SID:本订阅的通用唯一标识符,TIMEOUT:允许的订阅持续时间。
[0049]若被订阅装置有状态变化时,就会发送如下面的消息到订阅者指定的callbackURL0具体代码如下:
NOTIFY callback path HTTP/1.1
HOST: client address
NT: spnp:event
NTS: spnp:propchange
SID: uuid:subscript1n uuid
SEQ: 205
CONTENT-TYPE: applicat1n/jsonCONTENT-LENGTH: 39
{ ,,locat1n,,: 1,〃name〃:,,Bedroom TV〃 }
其中,各字段定义为HOST:订阅者IP地址,NT:通知类型(Notificat1n Type),NTS:通知子类型(Notificat1n Sub Type) ? SID:本订阅的通用唯一标识符,SEQ:本订阅消息的通知序号,CONTENT-TYPE:消息格式,C0NTENT-LENGTH:消息长度。
[0050]Services
Service为以REST订制的服务。一般服务应置于HTTP服务中/api/spnp/[ServiceName]/下,使用HTTP GET连上该网址可以取得服务的功能描述Jg务的所有状态则置于该服务路径下的state/,也就是/api/spnp/[Service Name]/state/o客户端可以对该URL直接取得所有的状态。也可对特定状态逐一取得。对于特定状态的修改,只需对其post其value所需要的新值即可。
[0051]基本定义
个别特定装置规范均依循下面所述相同格式制定。
[0052]功能描述
针对装置的/api/spnp/[Service Name] /发送GET请求,可以取得该服务的功能描述,格式如下:
{
"service": "[URN of the service]",
〃stateURL〃: api/spnp/[Service Name]/state/〃,
〃controlList〃: {
〃[ControlNamel]〃: {
〃url〃:〃/api/spnp/[Service Name]/[Entry]〃,
〃methocT: " [HTTP method, like GET, POST]'
〃data〃: { [Data format descript1n] }
},
〃[ControlName2]〃: {
”-1 //// , //
url: * ,
,,target,,: ,,[Invoke target identifier],,,
"method":"[HTTP method, like INVOKE]",
〃data〃: { [Data format descript1n] }
}
},
〃states〃: {
〃[Statel]〃: { [StateType of Statel] },
"[State2]": { [StateType of State2] }
}
}
Data format descript1n
数据格式描述定义。以下描述调用一个控制(Control )时所附带的DATA字段数据格式。参数数据必须为一 JSON dict1nary ο利用此dict1nary来串起多个变动参数。而描述该数据形式的JSON也是一个dict1nary,但值部分改为依State Type章节描述的变量定义,再补上〃type〃元素来记录变量的类别。例如integer就会补上{ 〃type〃:"integer" }。
[0053]例如,某一控制需要以下格式的参数
{
”-,////-1//
name1: valueI ,
〃name2〃: 〃value2〃,
〃name3〃: 24 }
其数据格式描述将会是类似下面表示的样式
{
name1: { type: string I, namez: { type: string I,
”0 //「// j” //.,// ?
nameJ: { type:1nteger I
}
为具体地说明Service的描述,底下以两项具体服务作为实例说明。
[0054]FixedApplianceBasic Service
固定式家电服务,设装置位置与自订名称。
[0055]功能描述具体代码如下:
{
,,service,,: 〃urn: Smart PnP-org: service: FixedApplianceBasic: 1〃,
〃stateURL〃: 〃/api/spnp/FixedApplianceBasic/state/,,,
〃controlList〃: {},
,,states,,: {
,,power,,: { 〃value〃:l,,,compatibility,,: ,,controllable,subscribable,,, ^type^:^integer^, "range":[0,1]},
,,locat1n,,: {〃value〃:0,,,compatibility,,: ,,controllable,subscribable,,,〃type:1nteger I,
””f //I// // T.T4γγλ-?τ//
name: { value: Living Room IV ,
,,compatibility,,: ,,controllable,subscribable,,,〃type〃: ,,string,,}
}
}
States
直接使用HTTP GET连上stateURL,可以取得所有状态的集合描述,具体代码如下: stateURL:/api/spnp/FixedAppIianceBasic/state/
{
〃power〃: {〃value〃:l,,,compatibility,,: ,,controllable,subscribable,,,
^type^:^integer^, "range":[0,1]},
,,locat1n,,: {〃value〃:0,,,compatibility,,: ,,controllable,subscribable,,,〃type:1nteger I,
””f //I// // T.T4γγλ-?τ//
name: { value: Living Room IV ,
,,compatibility,,: ,,controllable,subscribable,,,〃type〃: ,,string,,}
}
电源状态具体代码如下:
stateURL:/api/spnp/FixedApplianceBasic/state/power
{〃value〃:l,,,compatibility,,: ,,controllable,subscribable,,,〃type〃: ,,integer,,,〃range,,: [0,I]} 物理位置具体代码如下:
设置装置在家中的哪个房间或区块
stateURL:/api/spnp/FixedAppIianceBasic/state/locat1n
{〃value〃:0,,,compatibility,,: ,,controllable,subscribable,,,〃type〃: ,,integer,,}
装置名称具体代码如下:
stateURL:/api/spnp/FixedApplianceBasic/state/name
{〃value〃: ,,Living Room TV〃,,,compatibility,,: ,,controllable,subscribable,,,〃type: string I
Announcer Service
接收通知信息,并提示或警告使用者。
[0056]功能描述,具体代码如下:
{
,,service,,: 〃urn: Smart PnP-org: service: Announcer: 1〃,
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1