该内容对您有帮助吗?
是否更新时间:2022-03-03 07:20:25下载pdf
针对 Raw 和 String 类型复杂功能点,提供标准化的解析说明,便于能快速了解DP协议解析规则。同时标准化的Dp协议规则,能在跨品类选功能点、面板开发、云开发、大数据解析时能够被复用,请按照标准协议规则进行设备端开发,以未来兼容更多的开发方式。
协议预览说明:
1,每个字段展示一个F,用于表示一个字节长度;
2,每个字段下面展示对应的数字,每个数字代表具体协议字段,同时每个数字会有长度范围,对应字段长度;
3,协议会存在循环情况,循环分为三种类型循环:无固定次数循环、固定次数循环、依赖循环,基于1个以上字段组成循环,并结合其他普通字段实现完整的复杂协议内容;无固定次数循环:根据接受到的总字段长度,动态计算循环次数,其存在位置为固定,但是长度为不固定的;固定次数循环:指定次数循环,其存在位置及长度均为固定;依赖字段循环:基于某一个字段的数值作为其循环次数,其存在位置及长度均为固定;
4,循环解析规则:由于循环存在循环套循环的情况,解析循环时,应先解析内循环,待内循环解析完成,再解析上一级循环;
5,关于不同数据类型的协议解析说明:由于Raw格式为16进制组成,String格式为字符串形式,故协议解析时,默认以Raw格式字节长度定义,String格式解析时,按照协议字段定义长度*2进行逐位裁剪;
1,序号:协议字段序号,关系到协议字段的顺序;
2,字段名称:协议字段的名称解释;
3,长度:协议字段长度;
4,数据类型:协议字段类型,目前包括布尔、数值、枚举、String,周数据、比特位类型,不同类型对应属性值不一致;
5,字段属性:具体字段属性值;
6,字段说明:字段的补充解释说明;
{
"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
]
}
}
]
}
1、解析内容为一个json对象
2、json对象的key为字段、组的标识符
3、字段的值为json对象、组的值为数组
4、多语言标识符需要通过Dubbo接口解析具体中英文
{
"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
]
}
}
]
json数组,相同的字段定义重复多次
不循环的组,是长度为1的数组
该内容对您有帮助吗?
是否该内容对您有帮助吗?
是否