更新时间:2024-06-20 03:38:52下载pdf
本文提供了数据类型为部分采用字符型、透传型的产品功能(DP,Data Point)的解析说明,让您了解该类复杂 DP 协议解析规则。
复杂协议适用于部分电工、照明、门锁类产品,且适用于部分字符型(String)和透传型(Raw)类型的标准功能。
您在了解这类复杂协议功能的组成规律后,能在跨品类选功能点、面板开发、智能小程序开发、云开发、大数据解析时查看,以及复用对应的取值。建议您按照标准协议规则进行设备端开发,以未来兼容更多的开发方式。
产品功能中,涂鸦支持布尔型、数值型、枚举型、故障型、字符型、透传型这六种数据类型。
登录 涂鸦开发者平台。
在 产品列表 中,找到一款开发中的照明、电工、或者门锁等产品,单击操作列的 继续开发。
进入 功能定义 页面,在 标准功能 下,找到一个字符型或者透传型功能,如果出现了 协议解析说明 链接,单击该链接。
在 复杂协议解析 页面,查看协议预览。
下图的协议解析规则中,F 代表字节,一个 F 表示一个字节,数字代表具体字段:
每个字段用一个 F 展示,用于表示一个字节长度。
每个字段下面展示对应的数字,每个数字代表具体协议字段。同时每个数字会有长度范围,对应字段长度。
协议会存在循环情况,循环分为三种类型循环:无固定次数循环、固定次数循环、依赖循环,基于 1 个以上字段组成循环,并结合其他普通字段实现完整的复杂协议内容。
循环解析规则:由于循环存在循环套循环的情况,解析循环时,应先解析内循环。待内循环解析完成,再解析上一级循环。
字节长度定义:由于 Raw 格式为 16 进制组成,String 格式为字符形式,故协议解析时,默认以 Raw 格式字节长度定义,String 格式解析时,按照协议字段定义长度 × 2 进行逐位裁剪。
序号:协议字段序号,关系到协议字段的顺序。
字段名称:协议字段的名称解释。
长度:协议字段长度。
数据类型:协议字段类型。目前,包括布尔、数值、枚举、String、周数据、比特位类型。不同类型对应属性值不一致。
字段属性:具体字段属性值。
说明:字段的补充解释说明。
类型 | 参数名 | 说明 | 示例 |
---|---|---|---|
布尔型 | bool | 非真即假的二值型变量 | 开关功能的开或者关 |
数值型 | value | 可线性调节类型的数据 | 温度调节,温度范围 20~40 °C |
枚举型 | enum | 自定义的有限集合值 | 工作档位:低档、中档、高档 |
周数据 | week | 以二进制形式透传的数据 | 周一到周日的生效日期 |
字符型 | string | 以字符形式传输的数据 | - |
比特位 | bit | 以二进制形式透传的数据 | bit0~bit7 的生效情况 |
以下为一个复杂协议的 JSON 对象预览。JSON 对象的 key 为字段、组的标识符。字段的值为 JSON 对象、组的值为数组。多语言标识符需要通过 Dubbo 接口解析具体中英文。
{
"bs2":[
{
"bs22":{
"langKey":"30d7e1f1",
"type":"string",
"value":[
17
]
}
},
{
"bs22":{
"langKey":"30d7e1f1",
"type":"string",
"value":[
34
]
}
}
],
"bs1":{
"langKey":"5165502",
"type":"enum",
"value":{
"value":[
2
]
}
},
"bs4":[
{
"bs44":{
"langKey":"731d3b7e",
"type":"string",
"value":[
85
]
}
},
{
"bs44":{
"langKey":"731d3b7e",
"type":"string",
"value":[
17
]
}
},
{
"bs44":{
"langKey":"731d3b7e",
"type":"string",
"value":[
17
]
}
},
{
"bs44":{
"langKey":"731d3b7e",
"type":"string",
"value":[
17
]
}
}
],
"bs3":[
{
"bs33":{
"langKey":"d372e06a",
"type":"string",
"value":[
51
]
}
},
{
"bs33":{
"langKey":"d372e06a",
"type":"string",
"value":[
68
]
}
}
]
}
{
"langKey":"d372e06a",
"type":"string",
"value":[
51
]
}
langKey
:字段多语言标识符。type
:字段类型,取值 string、number。value
:int 数组。{
"langKey":"d372e06a",
"type":"week",
"value":[
1,0,0,0,0,0,0
]
}
langkey
:字段多语言标识符。type
:字段类型取值 week
。value
:int 数组,固定 7 位,从 0 到 6 位,数据坐标依次为周一至周末的取值。以上述案例举例表示周一启动。{
"langKey":"5165502",
"type":"enum",
"value":{
"langKey":"d372e06a",
"value":[
2
]
}
}
langKey
:字段多语言标识符。type
:字段类型取值 enum、boolean。value
:JSON 对象。langKey
:值多语言标识符。若 value 未匹配到预定义的值,则会缺失。value
:int 数组。{
"langKey":"2ecbe5e2",
"type":"bit",
"value":{
"bit7":{
"langKey":"8ebb4416",
"index":7,
"type":"boolean",
"value":{
"langKey":"2d3975fd",
"value":[
0
]
}
},
"bit5":{
"langKey":"d0cc3145",
"index":5,
"type":"boolean",
"value":{
"langKey":"2d3975fd",
"value":[
0
]
}
},
"bit6":{
"langKey":"fc9a8919",
"index":6,
"type":"boolean",
"value":{
"langKey":"2d3975fd",
"value":[
0
]
}
},
"bit3":{
"langKey":"c978dd00",
"index":3,
"type":"boolean",
"value":{
"langKey":"7f18c924",
"value":[
1
]
}
},
"bit4":{
"langKey":"15d5ee1e",
"index":4,
"type":"boolean",
"value":{
"langKey":"7f18c924",
"value":[
1
]
}
},
"bit1":{
"langKey":"50b1a328",
"index":1,
"type":"boolean",
"value":{
"langKey":"7f18c924",
"value":[
1
]
}
},
"bit2":{
"langKey":"18d3937b",
"index":2,
"type":"boolean",
"value":{
"langKey":"2d3975fd",
"value":[
0
]
}
},
"bit0":{
"langKey":"801acde4",
"index":0,
"type":"boolean",
"value":{
"langKey":"2d3975fd",
"value":[
0
]
}
}
}
}
langKey
:字段多语言标识符。
type
:字段类型取值 bit。
value
: 字段值,JSON 类型。比特字段属于“复合类型字段”,包含 8 个子字段。JSON 的 key 为子字段的标识符。
子字段:
langKey
: 子字段多语言标识符。index
:顺序号。type
: 子字段类型,取值为 boolean。value
:子字段取值(多语言类型)。langKey
:子字段取值多语言标识符。value
:子字段取值,int 数组。取值范围 0
或者 1
。[
{
"a":{
"langKey":"266edefb",
"type":"string",
"value":[
12
]
},
"d":{
"langKey":"01f1e022",
"type":"string",
"value":[
18
]
}
},
{
"a":{
"langKey":"266edefb",
"type":"string",
"value":[
12
]
},
"d":{
"langKey":"01f1e022",
"type":"string",
"value":[
18
]
}
}
]
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈