家庭锁 DP 参考

更新时间:2022-03-02 02:05:48下载pdf

Zigbee家庭锁 DP 目前有最大 DP ID 到 61,并且分为两部分:

  • 第一部分:旧版本zigbee家庭锁,至DP52。
  • 第二部分:新增手势密码APP端发起添加开门方式周期性密码等DP功能。至DP61。

DP参考-旧版本Zigbee家庭锁

功能 DP ID 类型 描述 模式 串口命令字 数据长度 数据格式
指纹解锁 1 value 指纹在门锁上录入,录入完成后由硬件分配id,发生指纹解锁后,门锁将上报该DP。 上报 0x23 0x04 {“unit”:“”,“min”:0,“max”:999,“scale”:0,“step”:1,“type”:“value”}
普通密码解锁 2 value 普通密码在门锁上录入,录入完成后由硬件分配id,发生普通密码解锁后,门锁将上报该DP。普通密码指在门锁硬件上创建的密码,不包含通过app创建的临时密码。 上报 0x23 0x04 {“unit”:“”,“min”:0,“max”:999,“scale”:0,“step”:1,“type”:“value”}
临时密码解锁 3 value 通过app创建的临时密码,使用该类型开门成功后需要上报。 上报 0x23 0x04 {“unit”:“”,“min”:0,“max”:999,“scale”:0,“step”:1,“type”:“value”}
动态密码解锁 4 value 使用动态密码开门成功后,进行上报,只要报指定数字1。app显示的时候,只要有动态密码记录,不显示具体编号只显示类型 上报 0x23 0x04 {“unit”:“”,“min”:0,“max”:999,“scale”:0,“step”:1,“type”:“value”}
卡片解锁 5 value 上报 0x23 0x04 {“unit”:“”,“min”:0,“max”:999,“scale”:0,“step”:1,“type”:“value”}
人脸解锁 6 value 上报 0x23 0x04 {“unit”:“”,“min”:0,“max”:999,“scale”:0,“step”:1,“type”:“value”}
机械钥匙解锁 7 value 上报 0x23 0x04 {“unit”:“”,“min”:0,“max”:999,“scale”:0,“step”:1,“type”:“value”}
开关门事件 8 bool 如门锁硬件支持开门、关门事件监测则勾选该项,在开门记录中,加入门的开关门事件,并且最近一次的开关门记录反映门当前的开合状态。0=关,1=开 上报 0x23 0x01 {“type”:“bool”}
报警 9 enum 0=指纹试错报警、1=密码试错报警、2=卡试错报警、3=人脸试错报警、4=假锁(锁舌卡住)、5=高温报警、6=超时未关门、7=电子锁舌未弹出、8=防撬报警 、9=钥匙插入、10=低电报警;低电暂时保留使用单独的DP的设计,如果使用了本DP中的低电报警值,就不要使用11DP 上报 0x05 0x01 {“range”:[“wrong_finger”,“wrong_password”,“wrong_card”,“wrong_face”
“tongue_bad”,“too_hot”,“unclosed_time”,“tongue_not_out”,“pry”,“key_in”,“low_battery”],“type”:“enum”}
剩余电量 10 value 门锁上报电量百分比 上报 0x05 0x04 {“unit”:“”,“min”:0,“max”:100,“scale”:0,“step”:1,“type”:“value”}
低电报警(该版本弃用) 11 Enum 低电暂时保留使用单独的DP的设计,如果使用了109DP中的低电报警,就不要使用该DP。建议无特殊情况,不要使用该DP {“range”:[“normal”,“low”,“power_off”],“type”:“enum”}
反锁状态 12 bool 如果门锁可以通过远程控制进行反锁,则该DP可以下发反锁的指令,通过硬件操作时,也会将是否反锁的状态上报到服务器,解锁反锁的指令 如果门锁无法通过远程进行反锁操作,该DP,仅用作状态展示;门锁硬件上进行反锁,解除反锁的操作将会上报到服务器 下发 0x04 0x01 {“type”:“bool”}
上报 0x05 0x01 {“type”:“bool”}
童锁状态 13 bool 具备童锁功能的门锁需要勾选该功能,当状态变化时将会上报状态值到服务器 上报 0x05 0x01 {“type”:“bool”}
门铃呼叫 14 bool 支持门铃该功能门锁,按键后,门锁硬件发出门铃声,app收到提醒 上报 0x05 0x01 {“type”:“bool”}
门铃选择 15 enum 铃声选择,app设置后,如果硬件收到,需要将原设置值返回给服务器。如设置的是5,硬件设置成功返回5,设置失败,不返回。门铃的档位可以根据实际情况配置 下发 0x04 0x01 {“range”:[“1”,“2”,“3”,“4”,“5”,“6”,“7”,“8”,“9”],“type”:“enum”}
上报 0x05 0x01
门铃音量 16 enum 设置门锁的音量,可统一设置门锁硬件上操作的按键音反馈的声响等级。mute=静音、low=低、normal=普通、high=高音。app设置后,如果硬件收到,需要将原设置值返回给服务器。如设置的是high,硬件设置成功返回high,设置失败,不返回 下发 0x04 0x01 {“range”:[“mute”,“low”,“normal”,“high”],“type”:“enum”}
上报 0x05 0x01
门锁语言切换 17 enum 1=简体中文、2=英文、3=日文、4=德文、5=西班牙语、6=拉丁语、7=法语、8=俄语、9=意大利语、10=繁体中文、11=韩语。app设置后,如果硬件收到,需要将原设置值返回给服务器。如设置的是5,硬件设置成功返回5,设置失败,不返回 下发 0x04 0x01 {“range”:[“1”,“2”,“3”,“4”,“5”,“6”,“7”,“8”,“9”,“10”,“11”],“type”:“enum”}
上报 0x05 0x01
显示屏欢迎词管理(该版本弃用) 18 string 带显示屏的门锁,如果支持从app端定义欢迎词,启用该DP。未实现,勾选不可用。 下发 0x04 N {“type”:“string”,“maxlen”:255}
上报 0x05 N
按键音量 19 enum 从0到9,表示从静音到最大音量。app设置后,如果硬件收到,需要将原设置值返回给服务器。如设置的是5,硬件设置成功返回5,设置失败,不返回 下发 0x04 0x01 {“range”:[“0”,“1”,“2”,“3”,“4”,“5”,“6”,“7”,“8”,“9”],“type”:“enum”}
上报 0x05 0x01
门锁本地导航音量 20 enum 从0到9,表示从静音到最大音量。app设置后,如果硬件收到,需要将原设置值返回给服务器。如设置的是5,硬件设置成功返回5,设置失败,不返回 下发 0x04 0x01 {“range”:[“0”,“1”,“2”,“3”,“4”,“5”,“6”,“7”,“8”,“9”],“type”:“enum”}
上报 0x05 0x01
远程开门指令-含密(该版本弃用) 21 raw 下发开门指令的时候,带有密码到门锁本地校验,校验通过后门锁才解锁。门锁收到该DP后,需要回复22,如果密码正确开门成功,需要回复dp38(如果有门状态),必须回复dp41 下发 0x04 0x06 Data[0]- Data[5] ASCII码对应6位密码
上报 上报使用DP ID 22
远程开门指令响应 22 bool 上报远程开门结果(含密和免密远程开门都用该指令反馈上报),该结果有网关进行转换后上报; 上报 0x05 0x01 {“type”:“bool”}
禁用远程开门 23 bool 通过app进行设置,可以禁用,启用远程开门功能;禁用远程开门功能后,无法通过app进行远程开门,进行该操作门锁硬件会拒绝,重新启用后才能进行远程开门 下发 0x04 0x01 {“type”:“bool”}
上报 0x05 0x01
创建临时密码 24 raw app/web发起操作,调用服务端结构,服务器转换为DP 下发 0x04 0x15 涂鸦序号+服务端序号+门锁厂家编号+起始时间+ 终止时间+是否为一次性+密码。 a) 涂鸦序号:Data[0],Data[1] b) 服务端序号:Data[2] Data [3] c) 门锁厂家编号:Data[4] Data [5],创建时该值为0x0 0x0 d)起始时间:Data[6]-Data[9]:标准时间戳 e)终止时间:Data[10]-Data[13]:标准时间戳 f) 是否为一次性:Data[14],1表示为一次性密码,0表示不是一次性密码 g )密码:Data[15]- Data[20] ASCII码对应6位密码
上报 0x05 0x07 涂鸦序号+服务端序号+门锁厂家编号+返回状态 1)内容解析: 涂鸦序号:Data[0] , Data [1] 服务端序号:Data[2] , Data [3] 门锁厂家编号:Data[4] , Data [5] 返回状态:Data[6],0:失败 1:成功 2:重复密码 3:密码已满
删除临时密码 25 raw app/web发起操作,调用服务端结构,服务器转换为DP 下发 0x04 0x06 涂鸦序号+服务端序号+门锁厂家编号涂鸦序号:Data[0] , Data [1]服务端序号:Data[2] , Data [3]门锁厂家编号:Data[4] , Data [5]
上报 0x05 0x07 涂鸦序号+服务端序号+门锁厂家编号+返回状态 涂鸦序号:Data[0] , Data [1] 服务端序号:Data[2] , Data [3] 门锁厂家编号:Data[4] , Data [5] 返回状态:Data[6],0:失败 1:成功 2:密码不存在
修改临时密码 26 raw app/web发起操作,调用服务端结构,服务器转换为DP 下发 0x04 0x15 格式和创建临时密码相同
上报 0x05 0x07 格式和创建临时密码相同
冻结临时密码 27 raw app/web发起操作,调用服务端结构,服务器转换为DP 下发 0x04 0x06 格式和删除临时密码相同
上报 0x05 0x07 格式和删除临时密码相同
解冻临时密码 28 raw app/web发起操作,调用服务端结构,服务器转换为DP 下发 0x04 0x06 格式和删除临时密码相同
上报 0x05 0x07 格式和删除临时密码相同
单一解锁与组合 解锁切换 34 enum 未实现,勾选不可用 下发 0x04 0x01 {“range”:[“Single”,“Combination”],“type”:“enum”}
上报 0x05 0x01
劫持报警 35 bool 该功能默认不需要硬件实现,门锁不用做劫持判断,只要在app上标记解锁id即可 上报 0x05 0x01 {“type”:“bool”}
门从内测打开 36 bool 如果门锁支持内把手的开门检测,但不支持开/关门动作的检测,则使用该DP。如电子锁体,内侧开门如能检测,可由该DP表示从内测打开门,体现在开门记录中。发生内侧开门时间,上报 true(1) 上报 0x05 0x01 {“type”:“bool”}
清除门锁临时密码 39 raw 当app对门锁进行恢复出厂设置时,云端下发指令给门锁,门锁清除本地的临时密码。如果门锁本地进行恢复出厂设置,清除了本地的临时密码,需要上报该DP云端,确保云端的临时密码记录和本地保持一致。如果本地恢复出厂设置时,上报该39失败,需要在下次重新配网后上报39 下发 0x04 0x06 格式和删除临时密码相同
上报(下发ACK) 0x05 0x07 格式和删除临时密码相同
上报(主动上报)——注:在模块入网10秒后发送有效 0x23 0x07 格式和删除临时密码相同
免密远程开锁-无密(该版本弃用) 40 raw 使用该DP进行远程开门时,app触发无需带密码的远程开门,门锁收到后直接开锁。门锁收到该DP,需要回复22,回复38(如果有门状态),必须回复41。新版本免密远程开门使用DP48设置免密远程开门密码,然后使用DP49下发免密开门指令。 下发 0x04 0x00
上报 上报使用DP ID 22
远程开门解锁记录 41 value 当门锁使用远程开门后,需要1、回复远程开门成功的指令 上报开门记录 3、上报门被打开 上报 0x23 0x04 {“unit”:“”,“min”:0,“max”:999,“scale”:0,“step”:1,“type”:“value”}
上提反锁 42 bool 在门锁外部,进行上提反锁后,上报该DP。反锁=true,未反锁=false 上报 0x23 0x01 {“type”:“bool”}
短信通知 43 bool 如果在app创建临\修改时密码后,需要将密码通过短信通知到用户,请勾选该DP;如不需要短信通知功能,请勿勾选 注:短信通知为收费服务,需pid的所有账号提前充值启用该功能 上报下发 mcu端不需要实现
虹膜解锁 44 value 虹膜在门锁上录入,录入完成后由硬件分配id,发生虹膜解锁后,门锁将上报该DP。请用记录型上报 上报 0x23 0x04 {“unit”:“”,“min”:0,“max”:999,“scale”:0,“step”:1,“type”:“value”}
掌纹解锁 45 value 掌纹在门锁上录入,录入完成后由硬件分配id,发生掌纹解锁后,门锁将上报该DP。请用记录型上报 上报 0x23 0x04 {“unit”:“”,“min”:0,“max”:999,“scale”:0,“step”:1,“type”:“value”}
指静脉解锁 46 value 指静脉在门锁上录入,录入完成后由硬件分配id,发生指静脉解锁后,门锁将上报该DP。请用记录型上报 上报 0x23 0x04 {“unit”:“”,“min”:0,“max”:999,“scale”:0,“step”:1,“type”:“value”}
开合状态 47 enum 门锁硬件上能够判断门开合状态的请勾选该功能(地磁,陀螺仪等),状态变化时,上报对应的值。首次配网初始化时,上报unknown 上报 0x23 0x04 {“range”:[“torque_low”,“torque_midlle”,“torque_high”],“type”:“enum”}
设置免密远程开门密钥(该版新方案) 48 raw 【可选】该功能为免密远程开门安全方案新增DP:免密远程开门功能需要勾选该DP,由服务端下发该DP,带密钥到门锁端。当前逻辑:门锁收到DP48后,存储该远程开门密钥。门锁收到免密远程开门指令DP49后,校验该密钥。 下发 0x04 0x15 是否生效+密钥编号+密钥生效时间+密钥失效时间+密钥使用次数+秘钥内容 是否生效:Data[0] , 0失效,1生效 ,密钥编号:Data [1], Data[2],密钥生效时间:Data[3]-Data[6],密钥失效时间:Data[7]-Data[10],密钥使用次数:Data[11],Data[12],密钥内容:Data[13]-Data[20]
上报 0x05 0x03 状态+密钥编号:状态:Data[0] , 0设置成功,1设置失败。密钥编号:Data [1], Data[2]
新免密远程开门-带密钥(该版新方案 49 raw 【可选】该DP与DP48配合使用。新免密远程开门下发功能使用 新的DP49 ,下发该DP需要mcu端解析数据格式。原DP40免密远程开门弃用。新免密远程开门,先由服务端下发安全密钥:DP48,mcu端存储该密钥。然后面板端发起DP49,免密远程开门,mcu则回复DP49,如果开门成功回复DP22:远程开门记反馈 和DP41:远程开门解锁记录。 下发 0x04 开关状态+密钥编号+密钥内容+解锁方式。 开关状态:Data[0] , 0关门,1开门 ,密钥编号:Data [1], Data[2],密钥内容:Data[3]-Data[10],解锁方式:Data[11]-Data[12],0:远程解锁 1:手机解锁 2:语音解锁
上报 0x05 状态+密钥编号:状态:Data[0] , 0 成功 1失败 2密钥编号不存在 3 密钥对比错误。密钥编号:Data [1], Data[2]
自动落锁开关 50 bool 自动落锁开关 下发上报 0x23 {“type”:“bool”}
自动落锁延时设置 51 value 自动落锁开启后,厂商可根据自己需求在iot平台上设置时间段。定时时长:0-1800(单位:秒)当设置时长为0时,即自动落锁关闭 下发上报 0x23 {“unit”:“”,“min”:0,“max”:1800,“scale”:0,“step”:1,“type”:“value”}
电机扭力 52 enum 电机扭力分为三档,客户可根据自己需求在iot平台上选择档次 下发上报 0x05 {“range”:[“0”,“1”,“2”,“3”],“type”:“enum”}

Zigbee家庭锁PRO-新增功能DP

手势密码

手势密码 功能详情 类型 数据格式
手势密码
DP53
lock_gesture
bool
该功能为云端功能,手势密码二次校验。
勾选该DP,即可开启面板端手势密码功能,不勾选则默认不开启手势密码二次校验。
可下发可上报 1. 下发:true,开启手势密码
2. 上报:true,开启手势密码

添加/删除开门方式

添加开门方式 功能详情 类型
添加开门方式
DP54
unlock_method_create
raw
添加开门方式功能:从APP端发起,设备端处于待添加状态,可添加指纹、卡和密码。 可下发可上报

App面板下发数据格式:

类型 录入状态 管理员标志 成员id 编号(硬件id)
1字节 1字节 1字节 2字节 2字节
0x01: 密码
0x02:门卡
0x03:指纹
0x00: 开始录入
0xFE : 取消录入(面板发起)
0x00:普通成员
0x01:管理员
0x0001~ox03e7(最大999) 0x03e7,创建默认为999

MCU上报数据格式:

类型 录入阶段 管理员标志 成员id 编号(硬件id) 需要录入的总次数 录入返回的状态
1字节 1字节 1字节 2字节 2字节 1字节 1字节
0x01: 密码 0x02:门卡 0x03:指纹 0x00:开始录入 0xFE:取消录入(APP端发起) 0xFD: 录入失败 0xFC:录入中 0xFF:录入完成 0x00:普通成员 0x01:管理员 0x0001~0x03e7
(最大999)
0x0001~0x03e7
(最大999)
录入次数的序号,例如指纹 可能需要 5 次,填写每次的 编号(从 1 开始) 录入失败原因
录入超时:0x00
录入失败:0x01
重复录入:0x02
硬件编号分配完:0x03
添加密码错误,字段为非数字:0x04
添加密码,密码长度错误:0x05
不支持添加的开门方式类型:0x06
当前正处于指纹录入:0x07
当前正处于绑定门卡: 0x08
错误编号:0xFE
录入异常原因
无异常:0x00
指纹不全:0x01

删除开门方式

删除开门方式 功能详情 类型
删除开门方式
DP55
unlock_method_delete
raw
删除开门方式功能:从APP端发起,设备端删除指纹、卡和密码。 可下发可上报

App面板下发数据格式:

类型 阶段 管理员标志 成员id 编号(硬件id) 删除方式
1字节 1字节 1字节 2字节 2字节 1字节
0x00:删除成员
0x01: 密码
0x02:门卡
0x03:指纹
0x00:默认 0x00:普通成员
0x01:管理员
0x0001~ox03e7(最大999) 0x03e7,创建默认为999 0x00:删除成员下所有开锁方式
0x01:删除成员中的一个开锁方式

MCU上报数据格式:

类型 阶段 管理员标志 成员id 编号(硬件id) 删除方式 返回修改状态
1字节 1字节 1字节 2字节 2字节 1字节
0x00:删除成员
0x01: 密码
0x02:门卡
0x03:指纹
0x00:默认 0x00:普通成员
0x01:管理员
0x0001~ox03e7
(最大999)
0x0001~0x03e7
(最大999)
0x00:删除成员下所有开锁方式
0x01:删除成员中的一个开锁方式
0x00:删除失败
0xFF:删除成功
0x01:编号不存在
0x02:编号不可删除

设置免密远程开门密钥DP48

设置免密远程开门秘钥 功能详情 类型
设置免密远程开门密钥
DP48
remote_no_pd_setkey
raw
免密远程开门必须实现该DP。由云端下发免密远程开门密钥,设备端存储该密钥。每次APP端发起免密远程开门,会带密钥到设备端校验,设备校验通过才可以开门。 可下发可上报

App面板下发数据格式:

是否生效 密钥编号 密钥生效时间 密钥失效时间 密钥使用次数 密钥内容
1字节 2字节 4字节 4字节 2字节 8字节
0:失效
1:生效
暂未启用 固定长度8字节 数字

MCU上报数据格式:

状态 密钥编号
1字节 2字节
0 成功 1失败 暂未启用

新免密远程开门-带密钥DP49

新免密远程开门-带密钥 功能详情 类型
新免密远程开门-带密钥
DP49
remote_no_dp_key
raw
免密远程开门是下发该密钥。每次APP端发起免密远程开门,会带密钥到设备端校验,设备校验通过才可以开门。 可下发可上报

App面板下发数据格式:

开关门状态 密钥编号 密钥内容 解锁方式
1字节 2字节 8字节 4字节
0:关门/关锁
1:开门/开锁
暂未启用 固定长度8字节,数字 0:远程解锁
1:手机解锁
2:语音解锁
3、地理围栏

MCU上报数据格式:

状态 密钥编号
1字节 2字节
0 成功
1失败
2 密钥失效,密钥编号不存在
3 密钥次数使用完
4 密钥不在有效期内
5密钥对比错误
暂未启用

指纹录入次数

指纹录入次数 功能详情 类型 数据格式
指纹录入次数
DP56
finger_input_times
value
云端功能,勾选该DP则默认开启指纹录入次数功能,添加开门方式——>指纹录入次数可以通过该DP设置。
也可以在添加开门方式的DP中上报实现。
可下发可上报 1. 下发:指纹次数,2-15次;
2. 上报:指纹次数,2-15次。

锁开合状态反馈

该DP为实现Alexa或者Google语音功能必选功能。 门锁MCU根据开关锁状态上报该DP,上报的准确性决定了语音控制的准确性。

锁开合状态反馈 功能详情 类型 数据格式
锁开合状态反馈
DP57
lock_motor_state
bool
可下发可上报 1. 下发:1字节,true开门,false关门;
2. 上报:1字节,true开门,false关门

同步全部指纹编号DP58

同步全部指纹编号 功能详情 类型 数据格式
同步全部指纹编号
DP58
update_all_finger
raw
同步全部指纹编号,以设备端指纹编号数据为准。
设备端根据情况定时或者数据变化时将全量指纹编号上报到云端。
可下发可上报 1. 下发:状态,1字节,true
2. 上报:参考下表同步数据格式

同步全部密码编号DP59

同步全部密码编号 功能详情 类型 数据格式
同步全部密码编号
DP59
update_all_password
raw
同步全部密码编号,以设备端密码编号数据为准。
设备端根据情况定时或者数据变化时将全量密码编号上报到云端。
可下发可上报 1. 下发:状态,1字节,true
2. 上报:参考下表同步数据格式

同步全部卡编号DP60

同步全部卡编号 功能详情 类型 数据格式
同步全部卡编号
DP60
update_all_card
raw
同步全部卡编号,以设备端卡编号数据为准。
设备端根据情况定时或者数据变化时将全量卡编号上报到云端。
可下发可上报 1. 下发:状态,1字节,true
2. 上报:参考下表同步数据格式

一次性密码DP61

添加开门方式 功能详情 类型 数据格式
一次性密码
DP61
single_use_password
bool
云端功能,勾选该DP即可面板端开通一次性密码功能。不勾选则默认不开启。 可下发可上报 1. 下发:1字节,true
2. 上报:1字节,true

时效性数据格式

字节 含义 说明 举例 字段值
1 起始时间
unsigned int 4字节(大端)

例如unix时间为:

123-456-789 = 0x075BCD15‬‬‬‬‬‬‬‬‬‬‬
7B
2 5B
3 CD
4 15
5 结束时间
unsigned int4字节(大端)
例如unix时间为:

999-999-999 = 0x3B9AC9FF‬‬‬‬‬‬‬‬‬‬‬
3B
6 9A
7 C9
8 FF
9 时效的循环方式 0x01:天循环 0x02:周循环 0x00:无循环








10
该字节默认为0x00
bit7:默认为0
bit6:周日
……
bit0:周一
11 一天中起始时间1(小时数)
起始时间:8:30
08(十进制)
12 一天中起始时间2(分钟数) 30(十进制)
13 一天中结束时间1(小时数)

结束时间:20:30
20(十进制)
14 一天中结束时间2(分钟数) 30(十进制)
**示例:** 设置2018-01-26 08:00:00到2018-08-08 09:56:32期间内,每周一至周五的早上8:00到8:30生效
  1. 2018-01-26 08:00:00转换为unix时间为1516924800 = 0x5A6A6F80‬‬‬‬‬‬‬‬‬‬‬

  2. 2018-08-08 09:56:32转换为unix时间为1533693392 = 0x5B6A4DD0‬

  3. 时效的循环方式为:0x02-周循环

  4. 循环天标志位 = 0x1F(周一至周五)

  5. 一天中的起始时间1 = 0x08,一天中的起始时间2 = 0x00

  6. 一天中的结束时间1 = 0x08,一天中的结束时间2 = 0x1E

    所以,时效性 = 0x 5A6A6F80 5B6A4DD0 02 1F 0800 081E‬‬‬‬‬‬‬‬‬‬

注意:生效时间和失效时间下发的是格林时间,周期性的循环时间和星期则下发的是本地时间。

同步数据格式

Zigbee门锁的开锁方式同步

前置条件
每种门锁的各个开门方式上限为999(zigbee的上限默认为199)
门锁上无需关心开锁方式的是否有冻结状态等属性

设计方案

  1. 分片设计:
    将开锁方式分成125份,每份8个密码与一个字节8位对应, 则刚好可以存储1000个密码, 且满足DP数据上报最大长度255的限制

    注解:一份是2个字节,第一个字节表示分片在数据包中的位置,第二个字节表示该分片中都有哪些位上有密码

  2. 数据格式(字节组成):

    byte0 分片位置 byte1 该分片上的开锁方式, 开锁方式字节数据上对应标位的比特为1,则表明该密码存在

  3. 数据示例:

    • 00000001 00010011 表明第一个分片上0,1,4号开锁方式存在
    • 01000001 00100101 表明第65个分片(2^6+1)上0,2,5位置, 如位置5实际密码编号((2^6+1)*8)+5为525
    • 00000010 00000000 空分片需要硬件处理,不必上传, 减少实际长度