更新时间:2024-06-20 02:21:26下载pdf
本文介绍了涂鸦智能可视对讲门锁方案中涉及的 DP 功能、帧格式及其使用方法,适用于可视对讲门锁公版项目。
下表罗列了本文涉及到的部分名词和解释,更多详情,请参考 涂鸦名词解释。
名词 | 解释 |
---|---|
DP | 全称为 Data Point,同时被称为 DP。一个 DP 指的就是 一个功能点 或者 一条/对指令码,DP-data point。 |
PID | 全称为 Product ID,表示描述一类产品功能(DP)的集合。在 涂鸦开发者平台 创建的每一个产品都会产生一个唯一的产品编号, 关联了产品具体的功能、App 控制面板、出货信息等所有跟这个产品相关的信息。 |
固件 key | 固件在涂鸦平台的唯一身份标识。 |
成员 | 也称作 用户。 |
成员 ID | 1 字节无符号整数,指成员编号(也称为用户编号),由云端分配下发,本地无需维护,取值范围 0x01~0x64,其他为保留值。 |
硬件 ID | 1 字节无符号整数,指开锁方式相关的硬件编号,由本地分配维护,每一个开锁方式对应一个硬件 ID。例如,指纹一硬件 ID 为 0x01, 密码一硬件 ID 为 0x02,取值范围 0x00~0xFE,0xFF 为保留值。 |
时效性 | 某个具体的开锁方式(例如指纹、密码、门卡)在指定的时间范围内有效。 |
下发 | 数据传输的方向,手机 → 设备。 |
上报 | 数据传输的方向,设备 → 手机。 |
使用涂鸦可视对讲方案开发时,dp_data_len
的长度为 2 个字节。其他 DP 格式信息,请参考下表:
字段 | 字节数 | 说明 |
---|---|---|
dp_id | 1 | DP 的指令码 |
dp_type | 1 | DP 的数据类型 |
dp_data_len | 2 | DP 的数据长度 |
dp_data_value | dp_data_len | DP 的数据内容 |
数据 方向 |
dp_id (1 字节) |
dp_type (1 字节) |
dp_data_len (2 字节) |
dp_data_value | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
下发 | 1 | raw | len | 类型 (1 字节) |
阶段 (1 字节) |
管理员标记 (1 字节) |
成员 ID (1 字节) |
硬件 ID (1 字节) |
时效性 (17 字节) |
次数 (1 字节) |
密码长度 (1 字节) |
密码内容 (n 字节) |
消息 uuid (2 字节) |
0x01:密码 0x02:门卡 0x03:指纹 0x04:人脸 0x05:掌纹 0x06:指静脉 |
0x00: 录入开始 0xFE: 录入取消( App 端发起) |
0x00:普通成员 0x01:管理员 |
0x01~0x64 | 0xFF:默认值 | 详见 附录:时效性 | 0x00:永久有效 0x01:1 次有效 …… 0xFE:254 次有效 0xFF:失效 |
密码字节数 n (仅用于密码类型) |
密码以数值形式下发,每字节取值范围:0x00~0x09 如密码为 123456,则下发密码内容为 [0x01,0x02,0x03,0x04,0x05,0x06] 当密码长度为 0 时无密码内容字段 |
说明 | ||||
上报 | 1 | raw | len | 类型 (1 字节) |
阶段 (1 字节) |
管理员标记 (1 字节) |
成员 ID (1 字节) |
硬件 ID (1 字节) |
次数 (1 字节) |
返回状态 (1 字节) |
消息 uuid (2 字节) |
||
0x01:密码 0x02:门卡 0x03:指纹 0x04:人脸 0x05:掌纹 0x06:指静脉 |
0x00: 录入开始 |
0x00:普通成员 0x01:管理员 |
0x01~0x64 | 0xFF:默认值 | 需要录入的总次数 例如:指纹一般是 6-8 次,门卡、人脸一般是 1 次 |
0x00:默认值 | 同上 | ||||||
0xFC: 录入中 |
0x00:普通成员 0x01:管理员 |
0x01~0x64 | 0xFF:默认值 | 录入次数的序号,例如指纹可能是 8 次, 填写当前录入次数(从 1 开始) |
录入异常原因: 0x00:无异常 0x01:指纹采图失败,如指纹不全/湿手指等 |
||||||||
0xFD: 录入失败 |
0x00:普通成员 0x01:管理员 |
0x01~0x64 | 0xFF:默认值 | 当前的录入阶段: 0x00:录入开始 0xFC:录入中 0xFF:录入完成 |
录入失败原因 | ||||||||
0xFE: 录入取消( App 端发起) |
0x00:普通成员 0x01:管理员 |
0x01~0x64 | 0xFF:默认值 | 0x00:默认值 | 0x00:默认值 | ||||||||
0xFF: 录入完成 |
0x00:普通成员 0x01:管理员 |
0x01~0x64 | 设备分配的硬件 ID 范围 0x00~0xFE |
0x00:默认值 | 0x00:默认值 |
交互示例
当开锁方式为密码、门卡、人脸时,交互流程如下图所示:
当开锁方式为指纹时,交互流程如下图所示:
数据 方向 |
dp_id (1 字节) |
dp_type (1 字节) |
dp_data_len (2 字节) |
dp_data_value | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
下发 | 2 | raw | len | 类型 (1 字节) |
阶段 (1 字节) |
管理员标记 (1 字节) |
成员 ID (1 字节) |
硬件 ID (1 字节) |
删除方式 (1 字节) |
||||
0x00:删除成员 | 0x00:默认 | 0x00:默认 [MCU 无需检查该字段] |
0x01~0x64 | 0xFF:默认值 | 0x00:删除某个成员下所有开锁方式 | ||||||||
0x01:密码 0x02:门卡 0x03:指纹 0x04:人脸 0x05:掌纹 0x06:指静脉 |
0x00:默认 | 0x00:普通成员 0x01:管理员 |
0x01~0x64 | 0x00~0xFE | 0x01:删除某成员的某一个开锁方式 | ||||||||
上报 | 2 | raw | len | 类型 (1 字节) |
阶段 (1 字节) |
管理员标记 (1 字节) |
成员 ID (1 字节) |
硬件 ID (1 字节) |
删除方式 (1 字节) |
返回状态 (1 字节) |
|||
0x00:删除成员 | 0x00:默认 | 0x00:普通成员 0x01:管理员 |
0x01~0x64 | 0xFF:默认值 | 0x00:删除某个成员下所有开锁方式 | 0x00:删除失败 0xFF:删除成功 0x01:硬件 ID 不存在 0x02:硬件 ID 不能删除(如超级管理员) |
|||||||
0x01:密码 0x02:门卡 0x03:指纹 0x04:人脸 0x05:掌纹 0x06:指静脉 |
0x00:默认 | 0x00:普通成员 0x01:管理员 |
0x01~0x64 | 0x00~0xFE | 0x01:删除某成员的某一个开锁方式 | 0x00:删除失败 0xFF:删除成功 0x01:硬件 ID 不存在 0x02:硬件 ID 不能删除(如超级管理员) |
数据 方向 |
dp_id (1 字节) |
dp_type (1 字节) |
dp_data_len (2 字节) |
dp_data_value | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
下发 | 3 | raw | len | 类型 (1 字节) |
阶段 (1 字节) |
管理员标记 (1 字节) |
成员 ID (1 字节) |
硬件 ID (1 字节) |
时效性 (17 字节) |
次数 (1 字节) |
密码长度 (1 字节) |
密码内容 (n 字节) |
|
0x00:仅修改成员时效性 | 0x00:默认 | 0x00:普通成员 0x01:管理员 |
0x01~0x64 | 0xFF:默认值 | 详见 附录:时效性 |
0x00:默认值 (次数不允许修改) |
密码字节数 n (仅用于密码类型) |
说明 | |||||
0x01:密码 0x02:门卡 0x03:指纹 0x04:人脸 0x05:掌纹 0x06:指静脉 |
0x00:默认 | 0x00:普通成员 0x01:管理员 |
0x01~0x64 | 0x00~0xFE | 详见 附录:时效性 |
0x00:永久有效 0x01:1 次有效 …… 0xFE:254 次有效 0xFF:失效 |
密码字节数 n (仅用于密码类型) |
同上 | |||||
上报 | 3 | raw | len | 类型 (1 字节) |
阶段 (1 字节) |
管理员标记 (1 字节) |
成员 ID (1 字节) |
硬件 ID (1 字节) |
次数 (1 字节) |
返回状态 (1 字节) |
|||
0x00: 仅修改某个成员的时效性 |
0x00:默认 | 0x00:普通成员 0x01:管理员 |
0x01~0x64 | 0xFF:默认值 | 0x00:默认值 (次数不允许修改) |
0x00:修改失败 0xFF:修改成功 |
|||||||
0x01:密码 0x02:门卡 0x03:指纹 0x04:人脸 0x05:掌纹 0x06:指静脉 |
0x00:默认 | 0x00:普通成员 0x01:管理员 |
0x01~0x64 | 0x00~0xFE | 0x00:永久有效 0x01:1 次有效 …… 0xFE:254 次有效 0xFF:失效 |
0x00:修改失败 0xFF:修改成功 |
临时密码包括一次性密码和周期性密码。临时密码和普通密码的不同之处有以下几点:
临时密码的使用 风险 在于:
数据方向 | dp_id (1 字节) |
dp_type (1 字节) |
dp_data_len (2 字节) |
dp_data_value | |||||
---|---|---|---|---|---|---|---|---|---|
下发 | 4 | raw | len | 云端编号 (2 字节) |
状态 (1 字节) |
时效性 (17 字节) |
次数 (1 字节) |
密码长度 (1 字节) |
密码内容 (n 字节) |
云端分配的关联编号 | 0x00:冻结 0x01:生效 |
详见 附录:时效性 | 0x00:永久有效 0x01:1 次有效 …… 0xFE:254 次有效 0xFF:失效 |
密码字节数 n (仅用于密码类型) |
同添加开锁方式字段含义 | ||||
上报 | 4 | raw | len | 云端编号 (2 字节) |
硬件 ID (1 字节) |
返回状态 (1 字节) |
|||
同上 | 0x00~0xFE | 0x00:添加成功 0x01:添加失败 0x02:硬件 ID 分配完 |
数据方向 | dp_id (1 字节) |
dp_type (1 字节) |
dp_data_len (2 字节) |
dp_data_value | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
下发 | 5 | raw | len | 硬件 ID (1 字节) |
|||||||||
0x00~0xFE | |||||||||||||
上报 | 5 | raw | len | 硬件 ID (1 字节) |
返回状态 (1 字节) |
||||||||
0x00~0xFE | 0x00:删除成功 0x01:删除失败 |
数据方向 | dp_id (1 字节) |
dp_type (1 字节) |
dp_data_len (2 字节) |
dp_data_value | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
下发 | 6 | raw | len | 硬件 ID (1 字节) |
状态 (1 字节) |
时效性 (17 字节) |
次数 (1 字节) |
密码长度 (1 字节) |
密码内容 (n 字节) |
||||
0x00~0xFE | 0x00:冻结 0x01:生效 |
详见 附录:时效性 | 同添加临时密码 次数字段说明 | 密码字节数 n (仅用于密码类型) |
同添加临时密码 密码内容字段说明 | ||||||||
上报 | 6 | raw | len | 硬件 ID (1 字节) |
返回状态 (1 字节) |
||||||||
0x00~0xFE | 0x00:修改成功 0x01:修改失败 |
目的与意义:为了保持云端和设备本地开锁方式的一致性,每次进入面板成员管理列表,或者在成员管理界面下拉刷新时,都会触发解锁方式的全量同步,包括手机和本地添加的所有开锁方式。
硬件类型枚举:用来通知设备端本次需要同步的解锁方式类型,未下发的硬件类型无需上报。阶段为 同步中 的每包数据长度由用户自定义,每包数据总长度不大于 200 个字节。
同步本地添加的开锁方式:本地添加的开锁方式通过同步的方式上报给云端,目前有以下几种情况:
0xFF
,云端统一将本地添加的开锁方式挂到配网账户下,并存储相应的用户 ID,之后每次下发该类开锁方式时,相应的用户 ID 也为 0xFF
(云端不可删除)。0xFD
,云端统一将本地添加的开锁方式挂到配网账户下,并存储相应的用户 ID,之后每次下发该类开锁方式时,相应的用户 ID 也为 0xFD
(通用)。该公版方案支持离线创建临时密码,即当前设备不在线时,可先在面板内编辑生成临时密码,缓存在云端。当设备连云拉取云端缓存的临时密码后,需主动同步云端编码与硬件 ID 映射关系,以便云端绑定对应关系。
数据方向 | dp_id (1 字节) |
dp_type (1 字节) |
dp_data_len (2 字节) |
dp_data_value | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
下发 | 7 | raw | len | 硬件类型枚举数值 (len 字节) |
|||||||||
0x01:密码 0x02:门卡 0x03:指纹 0x04:人脸 0x05:掌纹 0x06:指静脉 0xF0:临时密码 |
|||||||||||||
上报 | 7 | raw | len | 阶段 (1 字节) |
数据包序号 (1 字节) |
同步数据 (n 字节) |
|||||||
0x00:同步中 | 0x00~0xFF 序号从 0 开始依次递增 |
数据 1、数据 2 …… 数据 n 数据格式定义 | |||||||||||
上报 | 7 | raw | len | 阶段 (1 字节) |
总包数 (1 字节) |
||||||||
0x01:同步结束 | 总包数 例如发送了 2 次阶段为同步中的包,则总包数为 2 |
进行远程开锁前,必须先设置远程开锁相关秘钥,一般配网成功后由云端下发。另外 MCU 也可主动拉取,上报返回状态 0x10
。
远程开锁 DP10 指令里的 秘钥内容 是通过 远程解锁设置秘钥 指令进行设置的。
该指令中的 是否生效、成员 ID、秘钥生效时间、秘钥失效时间、秘钥使用次数 都是预留的字段,可暂不做处理。
为了实现更高的安全性,远程解锁秘钥会不定期更新,规则由云端控制,使用 n 次后会通过 DP9 重新下发给设备,进行解锁秘钥更新。
数据方向 | dp_id (1 字节) |
dp_type (1 字节) |
dp_data_len (2 字节) |
dp_data_value | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
下发 | 9 | raw | len | 是否生效 (1 字节) |
成员 ID (2 字节) |
秘钥生效时间 (4 字节) |
秘钥失效时间 (4 字节) |
秘钥使用次数 (2 字节) |
秘钥内容 (8 字节) |
|||
0x00:失效 0x01:生效 |
0x01~0x64 | Unix 时间戳 |
Unix 时间戳 |
0x0000~0xFFFF | ASCII 码 | |||||||
上报 | 9 | raw | len | 返回状态 (1 字节) |
成员 ID (2 字节) |
|||||||
0x00:成功 0x01:失败 0x10:主动请求拉取远程开门秘钥 注:建议 MCU 维护是否已获取秘钥状态,如未获取到则每次模组连上云均主动请求一次 |
0x01~0x64 |
远程开锁指的是通过非近场(例如蓝牙直连)的通信链路进行开锁,可视对讲方案因为是 Wi-Fi 方案均满足远程解锁定义。
数据方向 | dp_id (1 字节) |
dp_type (1 字节) |
dp_data_len (2 字节) |
dp_data_value | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
下发 | 10 | raw | len | 状态 (1 字节) |
成员 ID (2 字节) |
秘钥内容 (8 字节) |
解锁方式 (2 字节) |
|||||
0x00:关锁 0x01:开锁 |
0x01~0x64 | ASCII 码 | 0x0000:未知远程解锁 0x0001:App 远程解锁 0x0002:语音音箱解锁 |
|||||||||
上报 | 10 | raw | len | 返回状态 (1 字节) |
成员 ID (2 字节) |
|||||||
0x00:成功 0x01:失败 0x02:失效 0x03:秘钥使用次数用完 0x04:密钥不在有效期内 0x05:秘钥对比错误 |
0x01~0x64 |
功能 | 数据流向 | dp_id (1 字节) |
dp_type (1 字节) |
dp_data_len (2 字节) |
dp_data_value len 字节 |
||
---|---|---|---|---|---|---|---|
门铃音效 | 下发/上报 | 20 | enum | 0x01 | 音效(1 字节) | ||
0x00:音效 0 0x01:音效 1 …… 0x0A:音效 10 |
|||||||
门铃音量 | 下发/上报 | 21 | enum | 0x01 | 音量枚举(1 字节) | ||
0x00:静音 0x01:音量低 0x02:音量中 0x03:音量高 |
|||||||
门锁语言设置 | 下发/上报 | 22 | enum | 0x01 | 语言枚举(1 字节) | ||
0x00:简体中文 0x01:英文 0x02:日文 0x03:德文 0x04:西班牙语 0x05:拉丁语 0x06:法语 0x07:俄语 0x08:意大利语 0x09:繁体中文 0x0A:韩语 |
|||||||
自动落锁开关设置 | 下发/上报 | 23 | bool | 0x01 | 状态(1 字节) | ||
0x00:关闭 0x01:开启 |
|||||||
自动落锁延迟时间 | 下发/上报 | 24 | value | 0x04 | 落锁时间(4 字节) | ||
0x00000001~0xFFFFFFFF 单位:秒 |
|||||||
单一/组合解锁设置 | 下发/上报 | 25 | enum | 0x01 | 组合解锁方式枚举(1 字节) | ||
0x00:单一开锁 0x01:指纹+密码 0x02:指纹+门卡 0x03:指纹+人脸 0x04:密码+门卡 0x05:密码+人脸 0x06:门卡+人脸 |
|||||||
上锁校验开关 | 下发/上报 | 26 | bool | 0x01 | 状态(1 字节) | ||
0x00:关闭 0x01:开启 |
|||||||
离家布防设置 | 下发/上报 | 27 | bool | 0x01 | 状态(1 字节) | ||
0x00:关闭 0x01:打开 |
|||||||
勿扰模式设置 | 下发/上报 | 28 | bool | 0x01 | 状态(1 字节) | ||
0x00:关闭 0x01:打开 |
|||||||
勿扰时间段设置 | 下发/上报 | 29 | raw | 0x04 | 起始时间(2 字节) | 结束时间(2 字节) | |
HH:MM(时:分) | HH:MM(时:分) | ||||||
保活开关设置 | 下发/上报 | 44 | bool | 0x01 | 状态(1 字节) | ||
0x00:关闭状态(非保活),Wi-Fi 按需使用在线 0x01:开启状态(保活),Wi-Fi 一直在线,根据休眠时间段进行休眠 与 DP30 互斥,2 选 1,都选中时以 DP44 为准 |
|||||||
休眠模式设置 | 下发/上报 | 30 | bool | 0x01 | 状态(1 字节) | ||
0x00:关闭 0x01:打开 与 DP44 互斥,2 选 1 |
|||||||
休眠时间段设置 | 下发/上报 | 31 | raw | 0x05 | 起始时间(2 字节) | 结束时间(2 字节) | 周循环(1 字节) |
HH:MM(时:分) | HH:MM(时:分) | 0x00:无周循环 详见附件时效性 | |||||
引导功能 | 下发/上报 | 32 | raw | 0x02 | 功能(1 字节) | 状态(1 字节) | |
0x00:角度0x01:悬停... | 0x00:成功0x01:失败... | ||||||
特殊控制 | 下发/上报 | 33 | bool | 0x01 | 状态(1 字节) | ||
0x00:关闭0x01:开启 | |||||||
特殊功能 | 下发/上报 | 34 | enum | 0x01 | 自定义功能(1 字节) | ||
0x00:功能 00x01:功能 1... | |||||||
电子反锁 | 下发/上报 | 35 | bool | 0x01 | 状态(1 字节) | ||
0x00:关闭0x01:开启(仅管理员解锁方式可解锁) | |||||||
手动关锁 | 下发 | 8 | bool | 0x01 | 固定值(1 字节) | ||
0x01 | 上报 | 8 | bool | 0x01 | 返回状态(1 字节) | ||
0x00:失败 0x01:成功 |
功能 | 数据流向 | dp_id (1 字节) |
dp_type (1 字节) |
dp_data_len (2 字节) |
dp_data_value len 字节 |
|
---|---|---|---|---|---|---|
设备运行模式 | 上报 | 11 | enum | 0x01 | 模式(1 字节) | |
0x00:keep_alive0x01:sleep0x02:lock_keep0x03:lock_sleep | ||||||
干电池电量百分比 | 上报 | 45 | value | 0x04 | 电量百分比(4 字节) | |
0x00~0x64 | ||||||
锂电池电量 | 上报 | 46 | raw | 0x02 | 电量百分比(1 字节) | 充电状态(1 字节) |
0x00~0x64:电量百分比0xFF:未获取到电量 | 0x00:未充电 0x01:充电中 0x02:充满 | |||||
锁开合状态 | 上报 | 47 | bool | 0x01 | 状态(1 字节) | |
0x00:锁关闭 0x01:锁打开 |
||||||
童锁状态 | 上报 | 48 | bool | 0x01 | 状态(1 字节) | |
0x00:童锁关闭 0x01:童锁打开 |
||||||
上提反锁状态 | 上报 | 49 | bool | 0x01 | 状态(1 字节) | |
0x00:未上提反锁 0x01:已上提反锁 |
||||||
反锁状态 | 下发/上报 | 50 | bool | 0x01 | 状态(1 字节) | |
0x00:未反锁 0x01:已反锁 |
||||||
门开合状态 | 上报 | 51 | enum | 0x01 | 状态(1 字节) | |
0x00:门关闭 0x01:门打开 0x02:未知 注:与其他公版枚举值定义有差异 |
||||||
门从内侧开锁状态 | 上报 | 52 | bool | 0x01 | 状态(1 字节) | |
0x00:未定义0x01:从内测开锁 |
功能 | 数据方向 | dp_id (1 字节) |
dp_type (1 字节) |
dp_data_len (1 字节) |
dp_data_value len 字节 |
|
---|---|---|---|---|---|---|
门铃呼叫记录 | 上报 | 53 | bool | 0x01 | 状态(1 字节) | |
0x00:未定义0x01:呼叫 | ||||||
告警记录 | 上报 | 60 | enum | 0x01 | 报警原因(1 字节) | |
取值范围 | ||||||
普通密码解锁记录 | 上报 | 61 | value | 0x04 | 硬件 ID(4 字节) | |
0x00~0xFE | ||||||
指纹解锁记录 | 上报 | 63 | value | 0x04 | 硬件 ID(4 字节) | |
0x00~0xFE | ||||||
门卡解锁记录 | 上报 | 64 | value | 0x04 | 硬件 ID(4 字节) | |
0x00~0xFE | ||||||
人脸识别解锁记录 | 上报 | 65 | value | 0x04 | 硬件 ID(4 字节) | |
0x00~0xFE | ||||||
掌纹解锁记录 | 上报 | 66 | value | 0x04 | 硬件 ID(4 字节) | |
0x00~0xFE | ||||||
指静脉解锁记录 | 上报 | 67 | value | 0x04 | 硬件 ID(4 字节) | |
0x00~0xFE | ||||||
虹膜解锁记录 | 上报 | 68 | value | 0x04 | 硬件 ID(4 字节) | |
0x00~0xFE | ||||||
临时密码开锁 | 上报 | 69 | value | 0x04 | 硬件 ID(4 字节) | |
0x00~0xFE | ||||||
机械钥匙开锁 | 上报 | 71 | value | 0x04 | 无效字段(4 字节) | |
默认用 0xFF 填充 | ||||||
远程手机解锁 | 上报 | 72 | value | 0x04 | 成员 ID(4 字节) | |
0x01~0x64 | ||||||
远程语音开锁 | 上报 | 73 | value | 0x04 | 成员 ID(4 字节) | |
0x01~0x64 |
数据方向 | dp_id (1 字节) |
dp_type (1 字节) |
dp_data_len (2 字节) |
dp_data_value | |||||
---|---|---|---|---|---|---|---|---|---|
上报 | 62 | raw | 0x05 | 关锁/落锁方式 (1 字节) |
成员 ID (4 字节) |
||||
0x00:未定义 xxx 关锁 0x01:手机远程关锁 0x02:语音远程关锁 0x03:地理围栏关锁 0x04:App 长按关锁 0x05:配件关锁 0x06:自动落锁 0x07:本地手动落锁 | 0x01~0x64 |
数据方向 | dp_id (1 字节) |
dp_type (1 字节) |
dp_data_len (2 字节) |
dp_data_value | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
上报 | 70 | raw | len | 组合类型 (1 字节) |
开锁方式-1 (1 字节) |
硬件 ID-1 (1 字节) |
开锁方式-2 (1 字节) |
硬件 ID-2 (1 字节) |
||||
0x01:指纹+密码 0x02:指纹+门卡 0x03:指纹+人脸 0x04:密码+门卡 0x05:密码+人脸 0x06:门卡+人脸 |
0x01:密码 0x02:门卡 0x03:指纹 0x04:人脸 0x05:掌纹 0x06:指静脉 0xF0:临时密码 | 0x01~0xFE | 同开锁方式-1 | 0x01~0xFE |
使用场景:
操作人员通过 App 获取离线密码,并告知用户,
用户得到单次密码:6 小时内使用,开门成功,密码失效,并产生一条开门记录,6 小时后失效。
用户得到时效密码:24 小时内使用 1 次,密码激活,时效内都可使用,使用一次产生一条开门记录。24 小时内未使用,则失效。
用户得到清空单条密码:时效性和要清空的那条密码相同,多次使用只有第 1 次生效,产生使用过 清空单条密码 的记录。
用户得到清空所有密码:24 小时内使用,清空所有密码,只有 1 次,产生使用过"清空所有密码"的记录。24 小时后失效。
清空单条密码或者所有密码的限制:
使用方式:请参考 MCU 通用对接串口协议-0x16 指令。
功能 | 数据方向 | dp_id (1 字节) |
dp_type (1 字节) |
dp_data_len (1 字节) |
dp_data_value |
---|---|---|---|---|---|
离线密码 设置 T0 时间 |
下发/上报 | 86 | string | len | T0 时间戳字符串(10 字节) |
UNIX 时间戳字符串模组会处理该 DP,MCU 无需关心 | |||||
离线密码解锁记录 | 上报 | 89 | raw | 0x10 | 加密后的开锁密码(16 字节) |
请参考 门锁通用对接串口协议 | |||||
离线密码 清空单条记录 |
上报 | 87 | raw | 0x10 | 加密后的清空码(16 字节) |
请参考 门锁通用对接串口协议 | |||||
离线密码 清空所有记录 |
上报 | 88 | raw | 0x10 | 加密后的清空码(16 字节) |
请参考 门锁通用对接串口协议 |
背景说明:默认/标准公版方案支持的成员以及解锁方式数量仅 1 字节,不能满足一些集中使用的门禁场景,因此设计新增了一套支持大容量的 DP 功能点。与原 DP 无本质上差异,仅体现在成员 ID 与硬件 ID 字段的字节数上。在创建产品/代码实现时,按需选择对应的 DP 功能。
功能点 | 默认/标准方案 | 大容量方案 |
---|---|---|
添加开锁方式 | DP ID=1 | DP ID=13 |
删除开锁方式 | DP ID=2 | DP ID=14 |
修改开锁方式 | DP ID=3 | DP ID=15 |
添加临时密码 | DP ID=4 | DP ID=16 |
删除临时密码 | DP ID=5 | DP ID=17 |
修改临时密码 | DP ID=6 | DP ID=18 |
解锁方式同步 | DP ID=7 | DP ID=19 |
组合开锁记录 | DP ID=70 | DP ID=74 |
数据 方向 |
dp_id (1 字节) |
dp_type (1 字节) |
dp_data_len (2 字节) |
dp_data_value | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
下发 | 13 | raw | len | 类型 (1 字节) |
阶段 (1 字节) |
管理员标记 (1 字节) |
成员 ID (2 字节) |
硬件 ID (2 字节) |
时效性 (17 字节) |
次数 (1 字节) |
密码长度 (1 字节) |
密码内容 (n 字节) |
消息 UUID (2 字节) |
0x01:密码 0x02:门卡 0x03:指纹 0x04:人脸 0x05:掌纹 0x06:指静脉 |
0x00: 录入开始 0xFE: 录入取消( App 端发起) |
0x00:普通成员 0x01:管理员 |
0x0001~0xFFFF | 0xFFFF:默认值 | 详见 附录:时效性 | 0x00:永久有效 0x01:1 次有效 …… 0xFE:254 次有效 0xFF:失效 |
密码字节数 n (仅用于密码类型) |
密码以数值形式下发,每字节取值范围:0x00~0x09 如密码为 123456,则下发密码内容为 [0x01,0x02,0x03,0x04,0x05,0x06] 当密码长度为 0 时无密码内容字段 |
说明 | ||||
上报 | 13 | raw | len | 类型 (1 字节) |
阶段 (1 字节) |
管理员标记 (1 字节) |
成员 ID (2 字节) |
硬件 ID (2 字节) |
次数 (1 字节) |
返回状态 (1 字节) |
消息 uuid (2 字节) |
||
0x01:密码 0x02:门卡 0x03:指纹 0x04:人脸 0x05:掌纹 0x06:指静脉 |
0x00: 录入开始 |
0x00:普通成员 0x01:管理员 |
0x0001~0xFFFF | 0xFFFF:默认值 | 需要录入的总次数 例如:指纹一般是 6-8 次,门卡、人脸一般是 1 次 |
0x00:默认值 | 同上 | ||||||
0xFC: 录入中 |
0x00:普通成员 0x01:管理员 |
同上 | 同上 | 录入次数的序号,例如指纹可能是 8 次, 填写当前录入次数(从 1 开始) |
录入异常原因: 0x00:无异常 0x01:指纹采图失败,如指纹不全/湿手指等 |
||||||||
0xFD: 录入失败 |
0x00:普通成员 0x01:管理员 |
同上 | 同上 | 当前的录入阶段: 0x00:录入开始 0xFC:录入中 0xFF:录入完成 |
录入失败原因 | ||||||||
0xFE: 录入取消( App 端发起) |
0x00:普通成员 0x01:管理员 |
同上 | 同上 | 0x00:默认值 | 0x00:默认值 | ||||||||
0xFF: 录入完成 |
0x00:普通成员 0x01:管理员 |
0x0001~0xFFFF | 设备分配的硬件 ID 范围 0x0000~0xFFFE |
0x00:默认值 | 0x00:默认值 |
数据 方向 |
dp_id (1 字节) |
dp_type (1 字节) |
dp_data_len (2 字节) |
dp_data_value | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
下发 | 14 | raw | len | 类型 (1 字节) |
阶段 (1 字节) |
管理员标记 (1 字节) |
成员 ID (2 字节) |
硬件 ID (2 字节) |
删除方式 (1 字节) |
||||
0x00:删除成员 | 0x00:默认 | 0x00:默认 [MCU 无需检查该字段] |
0x0001~0xFFFF | 0xFFFF:默认值 | 0x00:删除某个成员下所有开锁方式 | ||||||||
0x01:密码 0x02:门卡 0x03:指纹 0x04:人脸 0x05:掌纹 0x06:指静脉 |
0x00:默认 | 0x00:普通成员 0x01:管理员 |
0x0001~0xFFFF | 0x0000~0xFFFE | 0x01:删除某成员的某一个开锁方式 | ||||||||
上报 | 14 | raw | len | 类型 (1 字节) |
阶段 (1 字节) |
管理员标记 (1 字节) |
成员 ID (2 字节) |
硬件 ID (2 字节) |
删除方式 (1 字节) |
返回状态 (1 字节) |
|||
0x00:删除成员 | 0x00:默认 | 0x00:普通成员 0x01:管理员 |
0x0001~0xFFFF | 0xFFFF:默认值 | 0x00:删除某个成员下所有开锁方式 | 0x00:删除失败 0xFF:删除成功 0x01:硬件 ID 不存在 0x02:硬件 ID 不能删除(如超级管理员) |
|||||||
0x01:密码 0x02:门卡 0x03:指纹 0x04:人脸 0x05:掌纹 0x06:指静脉 |
0x00:默认 | 0x00:普通成员 0x01:管理员 |
0x0001~0xFFFF | 0x0000~0xFFFE | 0x01:删除某成员的某一个开锁方式 | 0x00:删除失败 0xFF:删除成功 0x01:硬件 ID 不存在 0x02:硬件 ID 不能删除(如超级管理员) |
数据 方向 |
dp_id (1 字节) |
dp_type (1 字节) |
dp_data_len (2 字节) |
dp_data_value | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
下发 | 15 | raw | len | 类型 (1 字节) |
阶段 (1 字节) |
管理员标记 (1 字节) |
成员 ID (2 字节) |
硬件 ID (2 字节) |
时效性 (17 字节) |
次数 (1 字节) |
密码长度 (1 字节) |
密码内容 (n 字节) |
|
0x00:仅修改成员时效性 | 0x00:默认 | 0x00:普通成员 0x01:管理员 |
0x0001~0xFFFF | 0xFFFF:默认值 | 详见 附录:时效性 |
0x00:默认值 (次数不允许修改) |
密码字节数 n (仅用于密码类型) |
说明 | |||||
0x01:密码 0x02:门卡 0x03:指纹 0x04:人脸 0x05:掌纹 0x06:指静脉 |
0x00:默认 | 0x00:普通成员 0x01:管理员 |
0x0001~0xFFFF | 0x0000~0xFFFE | 详见 附录:时效性 |
0x00:永久有效 0x01:1 次有效 …… 0xFE:254 次有效 0xFF:失效 |
密码字节数 n (仅用于密码类型) |
同上 | |||||
上报 | 15 | raw | len | 类型 (1 字节) |
阶段 (1 字节) |
管理员标记 (1 字节) |
成员 ID (2 字节) |
硬件 ID (2 字节) |
次数 (1 字节) |
返回状态 (1 字节) |
|||
0x00: 仅修改某个成员的时效性 |
0x00:默认 | 0x00:普通成员 0x01:管理员 |
0x0001~0xFFFF | 0xFFFF:默认值 | 0x00:默认值 (次数不允许修改) |
0x00:修改失败 0xFF:修改成功 |
|||||||
0x01:密码 0x02:门卡 0x03:指纹 0x04:人脸 0x05:掌纹 0x06:指静脉 |
0x00:默认 | 0x00:普通成员 0x01:管理员 |
0x0001~0xFFFF | 0x0000~0xFFFE | 0x00:永久有效 0x01:1 次有效 …… 0xFE:254 次有效 0xFF:失效 |
0x00:修改失败 0xFF:修改成功 |
数据方向 | dp_id (1 字节) |
dp_type (1 字节) |
dp_data_len (2 字节) |
dp_data_value | |||||
---|---|---|---|---|---|---|---|---|---|
下发 | 16 | raw | len | 云端编号 (2 字节) |
状态 (1 字节) |
时效性 (17 字节) |
次数 (1 字节) |
密码长度 (1 字节) |
密码内容 (n 字节) |
云端分配的 关联编号 |
0x00:冻结 0x01:生效 |
详见 附录:时效性 | 0x00:永久有效 0x01:1 次有效 …… 0xFE:254 次有效 0xFF:失效 |
密码字节数 n (仅用于密码类型) |
同添加开锁方式 字段含义 | ||||
上报 | 16 | raw | len | 云端编号 (2 字节) |
硬件 ID (2 字节) |
返回状态 (1 字节) |
|||
同上 | 0x0000~0xFFFE | 0x00:添加成功 0x01:添加失败 0x02:硬件 ID 分配完 |
数据方向 | dp_id (1 字节) |
dp_type (1 字节) |
dp_data_len (2 字节) |
dp_data_value | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
下发 | 17 | raw | len | 硬件 ID (2 字节) |
|||||||||
0x0000~0xFFFE | |||||||||||||
上报 | 17 | raw | len | 硬件 ID (2 字节) |
返回状态 (1 字节) |
||||||||
0x0000~0xFFFE | 0x00:删除成功 0x01:删除失败 |
数据方向 | dp_id (1 字节) |
dp_type (1 字节) |
dp_data_len (2 字节) |
dp_data_value | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
下发 | 18 | raw | len | 硬件 ID (2 字节) |
状态 (1 字节) |
时效性 (17 字节) |
次数 (1 字节) |
密码长度 (1 字节) |
密码内容 (n 字节) |
||||
0x0000~0xFFFE | 0x00:冻结 0x01:生效 |
详见 附录:时效性 | 同添加临时密码 次数字段说明 | 密码字节数 n (仅用于密码类型) |
同添加临时密码 密码内容字段说明 | ||||||||
上报 | 18 | raw | len | 硬件 ID (2 字节) |
返回状态 (1 字节) |
||||||||
0x0000~0xFFFE | 0x00:修改成功 0x01:修改失败 |
该公版方案支持离线创建临时密码,亦即当前设备不在线时可先在面板内编辑生成临时密码,缓存在云端。当设备连云拉取完云端缓存的临时密码后,需主动同步云端编码与硬件 ID 映射关系,以便云端绑定对应关系。
临时密码只存在设备主动上报的场景,云端不会下发同步临时密码指令,此时消息 ID 固定为 0xFFFF。
数据方向 | dp_id (1 字节) |
dp_type (1 字节) |
dp_data_len (2 字节) |
dp_data_value | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
下发 | 19 | raw | len | 消息 ID (2 字节) |
硬件类型枚举数值 (n 字节) |
||||||||
云端用于上报的 分包数据关联 |
0x01:密码 0x02:门卡 0x03:指纹 0x04:人脸 0x05:掌纹 0x06:指静脉 |
||||||||||||
上报 | 19 | raw | len | 阶段 (1 字节) |
消息 ID (2 字节) |
数据包序号 (1 字节) |
同步数据 (n 字节) |
||||||
0x00:同步中 | 同下发 | 0x00~0xFF 序号从 0 开始依次递增 |
数据 1、数据 2、……、数据 n 数据格式定义 | ||||||||||
上报 | 19 | raw | len | 阶段 (1 字节) |
消息 ID (2 字节) |
总包数 (1 字节) |
|||||||
0x01:同步结束 | 同下发 | 总包数 例如发送了 2 次阶段为同步中的包,则总包数为 2 |
数据方向 | dp_id (1 字节) |
dp_type (1 字节) |
dp_data_len (2 字节) |
dp_data_value | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
上报 | 74 | raw | len | 组合类型 (1 字节) |
开锁方式-1 (1 字节) |
硬件 ID-1 (2 字节) |
开锁方式-2 (1 字节) |
硬件 ID-2 (2 字节) |
||||
0x01:指纹+密码 0x02:指纹+门卡 0x03:指纹+人脸 0x04:密码+门卡 0x05:密码+人脸 0x06:门卡+人脸 |
0x01:密码 0x02:门卡 0x03:指纹 0x04:人脸 0x05:掌纹 0x06:指静脉 0xF0:临时密码 | 0x0000~0xFFFE | 同开锁方式-1 | 0x0000~0xFFFE |
字节 | 含义 | 说明 | 举例 | |||
---|---|---|---|---|---|---|
1 | 时效起始时间 | unsigned int 4 字节(大端) |
例如 Unix 时间为: 123-456-789 = 0x075BCD15 若时效为永久有效,则起始时间为 0x386CD300 |
07 | ||
2 | 5B | |||||
3 | CD | |||||
4 | 15 | |||||
5 | 时效结束时间 | unsigned int 4 字节(大端) |
例如 Unix 时间为: 999-999-999 = 0x3B9AC9FF 若时效为永久有效,则结束时间为 0x72BC9B7F |
3B | ||
6 | 9A | |||||
7 | C9 | |||||
8 | FF | |||||
9 | 时效循环方式 | 0x00:不循环 | 0x01:天循环 | 0x02:周循环 | 0x03:月循环 | |
10 | 循环标志位 1 | 不循环时 10~17 字节全部为 0 |
该字节 默认为 0x00 |
该字节 默认为 0x00 |
bit7:默认为 0 bit6:31 号 …… bit0:25 号 |
|
11 | 循环标志位 2 | 该字节 默认为 0x00 |
该字节 默认为 0x00 |
bit7:24 号 …… bit0:17 号 |
||
12 | 循环标志位 3 | 该字节 默认为 0x00 |
该字节 默认为 0x00 |
bit7:16 号 …… bit0:9 号 |
||
13 | 循环标志位 4 | 该字节 默认为 0x00 |
bit7:默认为 0 bit6:周六 …… bit1:周一 bit0:周日 |
bit7:8 号 …… bit0:1 号 |
||
14 | 一天中起始时间 1(小时数) | 起始时间:8:30 | 08(十进制) | |||
15 | 一天中起始时间 2(分钟数) | 30(十进制) | ||||
16 | 一天中结束时间 1(小时数) | 结束时间:20:30 | 20(十进制) | |||
17 | 一天中结束时间 2(分钟数) | 30(十进制) |
添加或者修改开锁方式时,时效性的循环方式和次数同时生效,但是一般仅使用以下两种情况:
例如,设置 2018-01-26 08:00:00
到 2018-08-08 09:56:32
期间内,每周一至周五的早上 8:00 到 8:30 生效,则时效性为 0x 5A6A6F80 5B6A4DD0 02 0000003E 0800 081E
:
2018-01-26 08:00:00
转换为 Unix 时间为 1516924800
,即 0x5A6A6F802018-08-08 09:56:32
转换为 Unix 时间为 1533693392
,即 0x5B6A4DD0该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈