数据同步
本文档介绍智能门锁的数据同步功能,用于从门锁获取各类钥匙列表和设置信息,实现 APP 与门锁的数据一致性。
功能概述
数据同步模块支持查询门锁中存储的各类数据:
| 数据类型 | 指令码 | 说明 |
|---|---|---|
| 密码列表 | 0x3021 | 获取已注册的密码钥匙 |
| 卡片列表 | 0x3022 | 获取已注册的 IC/NFC 卡片 |
| 指纹列表 | 0x3023 | 获取已注册的指纹 |
| 人脸列表 | 0x3024 | 获取已注册的人脸 |
| 掌静脉列表 | 0x3025 | 获取已注册的掌静脉 |
| 遥控列表 | 0x3026 | 获取已注册的遥控器 |
| 设置列表 | 0x302A | 获取功能设置参数 |
权限要求
所有数据同步指令都需要超级管理员权限。
通用钥匙字段说明
除密码和设置列表外,其他钥匙列表的应答消息共享以下字段结构:
| 字段名称 | 字段类型 | 字段长度 | 字段说明 |
|---|---|---|---|
| ID | 整型 | 2 | 钥匙 ID |
| UserId | 整型 | 4 | APP 创建的电子钥匙 ID,本地创建为 0xFFFFFFFF |
| StartDate | 整型 | 4 | 启用日期,UNIX 时间戳 |
| ExpireDate | 整型 | 4 | 停用日期,UNIX 时间戳 |
| UseCountLimit | 整型 | 2 | 使用次数限制,0xFFFF 表示不限次数 |
| IsRound | 整型 | 1 | 是否循环生效 |
| WeekRound | 整型 | 1 | 循环周期,Bit0~6 分别代表周日~周六 |
| StartHour | 整型 | 1 | 每日开始小时 |
| StartMin | 整型 | 1 | 每日开始分钟 |
| EndHour | 整型 | 1 | 每日结束小时 |
| EndMin | 整型 | 1 | 每日结束分钟 |
| Role | 整型 | 1 | 用户角色:0=普通用户,1=管理员,0xFF=超级管理员 |
| IsForce | 整型 | 1 | 是否为挟持钥匙 |
WeekRound 位定义
| Bit | 含义 |
|---|---|
| Bit0 | 周日 |
| Bit1 | 周一 |
| Bit2 | 周二 |
| Bit3 | 周三 |
| Bit4 | 周四 |
| Bit5 | 周五 |
| Bit6 | 周六 |
获取密码列表
指令码: 0x3021
方向: APP → 门锁
加密: SM4 私钥模式
请求消息
| 字段名称 | 字段类型 | 字段长度 | 字段说明 |
|---|---|---|---|
| CmdID | 整型 | 2 | 指令 ID |
| LockID | 字符串 | 40 | 锁 ID |
| UserID | 字符串 | 20 | 授权者 ID,要求是超级管理员 |
| Page | 整型 | 1 | 页码,从 0 开始 |
| CountReq | 整型 | 1 | 请求的密码个数,最大为 10 |
| Token | 整型 | 4 | 动态口令 |
| AuthCodeLen | 整型 | 1 | 鉴权码长度 |
| AuthCode | 字符串 | 变长 | 鉴权码 |
应答消息
| 字段名称 | 字段类型 | 字段长度 | 字段说明 |
|---|---|---|---|
| CmdID | 整型 | 2 | 指令 ID |
| Status | 整型 | 1 | 处理状态 |
| Token | 整型 | 4 | 动态口令 |
| Page | 整型 | 1 | 页码 |
| CountAck | 整型 | 1 | 实际返回的密码个数 |
| ID | 整型 | 2 | 密码 ID |
| UserId | 整型 | 4 | APP 创建的电子钥匙 ID |
| StartDate | 整型 | 4 | 启用日期 |
| ExpireDate | 整型 | 4 | 停用日期 |
| UseCountLimit | 整型 | 2 | 使用次数限制 |
| IsRound | 整型 | 1 | 是否循环 |
| WeekRound | 整型 | 1 | 循环周期 |
| StartHour | 整型 | 1 | 开始小时 |
| StartMin | 整型 | 1 | 开始分钟 |
| EndHour | 整型 | 1 | 结束小时 |
| EndMin | 整型 | 1 | 结束分钟 |
| Role | 整型 | 1 | 用户角色 |
| IsForce | 整型 | 1 | 是否挟持 |
| Password | 字符串 | - | 密码内容 |
| ... | 混合 | 34×N | CountAck > 1 时重复 ID 到 Password 字段 |
获取卡片列表
指令码: 0x3022
方向: APP → 门锁
加密: SM4 私钥模式
请求消息
| 字段名称 | 字段类型 | 字段长度 | 字段说明 |
|---|---|---|---|
| CmdID | 整型 | 2 | 指令 ID |
| LockID | 字符串 | 40 | 锁 ID |
| UserID | 字符串 | 20 | 授权者 ID,要求是超级管理员 |
| Page | 整型 | 1 | 页码,从 0 开始 |
| CountReq | 整型 | 1 | 请求的卡片个数,最大为 10 |
| Token | 整型 | 4 | 动态口令 |
| AuthCodeLen | 整型 | 1 | 鉴权码长度 |
| AuthCode | 字符串 | 变长 | 鉴权码 |
应答消息
| 字段名称 | 字段类型 | 字段长度 | 字段说明 |
|---|---|---|---|
| CmdID | 整型 | 2 | 指令 ID |
| Status | 整型 | 1 | 处理状态 |
| Token | 整型 | 4 | 动态口令 |
| Page | 整型 | 1 | 页码 |
| CountAck | 整型 | 1 | 实际返回的卡片个数 |
| ID | 整型 | 2 | 卡片 ID |
| UserId | 整型 | 4 | APP 创建的电子钥匙 ID |
| StartDate | 整型 | 4 | 启用日期 |
| ExpireDate | 整型 | 4 | 停用日期 |
| UseCountLimit | 整型 | 2 | 使用次数限制 |
| IsRound | 整型 | 1 | 是否循环 |
| WeekRound | 整型 | 1 | 循环周期 |
| StartHour | 整型 | 1 | 开始小时 |
| StartMin | 整型 | 1 | 开始分钟 |
| EndHour | 整型 | 1 | 结束小时 |
| EndMin | 整型 | 1 | 结束分钟 |
| Role | 整型 | 1 | 用户角色 |
| IsForce | 整型 | 1 | 是否挟持 |
| ... | 混合 | 24×N | CountAck > 1 时重复 ID 到 IsForce 字段 |
获取指纹列表
指令码: 0x3023
方向: APP → 门锁
加密: SM4 私钥模式
请求消息
| 字段名称 | 字段类型 | 字段长度 | 字段说明 |
|---|---|---|---|
| CmdID | 整型 | 2 | 指令 ID |
| LockID | 字符串 | 40 | 锁 ID |
| UserID | 字符串 | 20 | 授权者 ID,要求是超级管理员 |
| Page | 整型 | 1 | 页码,从 0 开始 |
| CountReq | 整型 | 1 | 请求的指纹个数,最大为 10 |
| Token | 整型 | 4 | 动态口令 |
| AuthCodeLen | 整型 | 1 | 鉴权码长度 |
| AuthCode | 字符串 | 变长 | 鉴权码 |
应答消息
| 字段名称 | 字段类型 | 字段长度 | 字段说明 |
|---|---|---|---|
| CmdID | 整型 | 2 | 指令 ID |
| Status | 整型 | 1 | 处理状态 |
| Token | 整型 | 4 | 动态口令 |
| Page | 整型 | 1 | 页码 |
| CountAck | 整型 | 1 | 实际返回的指纹个数 |
| ID | 整型 | 2 | 指纹 ID |
| UserId | 整型 | 4 | APP 创建的电子钥匙 ID |
| StartDate | 整型 | 4 | 启用日期 |
| ExpireDate | 整型 | 4 | 停用日期 |
| UseCountLimit | 整型 | 2 | 使用次数限制 |
| IsRound | 整型 | 1 | 是否循环 |
| WeekRound | 整型 | 1 | 循环周期 |
| StartHour | 整型 | 1 | 开始小时 |
| StartMin | 整型 | 1 | 开始分钟 |
| EndHour | 整型 | 1 | 结束小时 |
| EndMin | 整型 | 1 | 结束分钟 |
| Role | 整型 | 1 | 用户角色 |
| IsForce | 整型 | 1 | 是否挟持 |
| ... | 混合 | 24×N | CountAck > 1 时重复 ID 到 IsForce 字段 |
获取人脸列表
指令码: 0x3024
方向: APP → 门锁
加密: SM4 私钥模式
请求消息
| 字段名称 | 字段类型 | 字段长度 | 字段说明 |
|---|---|---|---|
| CmdID | 整型 | 2 | 指令 ID |
| LockID | 字符串 | 40 | 锁 ID |
| UserID | 字符串 | 20 | 授权者 ID,要求是超级管理员 |
| Page | 整型 | 1 | 页码,从 0 开始 |
| CountReq | 整型 | 1 | 请求的人脸个数,最大为 10 |
| Token | 整型 | 4 | 动态口令 |
| AuthCodeLen | 整型 | 1 | 鉴权码长度 |
| AuthCode | 字符串 | 变长 | 鉴权码 |
应答消息
| 字段名称 | 字段类型 | 字段长度 | 字段说明 |
|---|---|---|---|
| CmdID | 整型 | 2 | 指令 ID |
| Status | 整型 | 1 | 处理状态 |
| Token | 整型 | 4 | 动态口令 |
| Page | 整型 | 1 | 页码 |
| CountAck | 整型 | 1 | 实际返回的人脸个数 |
| ID | 整型 | 2 | 人脸 ID |
| UserId | 整型 | 4 | APP 创建的电子钥匙 ID |
| StartDate | 整型 | 4 | 启用日期 |
| ExpireDate | 整型 | 4 | 停用日期 |
| UseCountLimit | 整型 | 2 | 使用次数限制 |
| IsRound | 整型 | 1 | 是否循环 |
| WeekRound | 整型 | 1 | 循环周期 |
| StartHour | 整型 | 1 | 开始小时 |
| StartMin | 整型 | 1 | 开始分钟 |
| EndHour | 整型 | 1 | 结束小时 |
| EndMin | 整型 | 1 | 结束分钟 |
| Role | 整型 | 1 | 用户角色 |
| IsForce | 整型 | 1 | 是否挟持 |
| ... | 混合 | 24×N | CountAck > 1 时重复 ID 到 IsForce 字段 |
获取掌静脉列表
指令码: 0x3025
方向: APP → 门锁
加密: SM4 私钥模式
请求消息
| 字段名称 | 字段类型 | 字段长度 | 字段说明 |
|---|---|---|---|
| CmdID | 整型 | 2 | 指令 ID |
| LockID | 字符串 | 40 | 锁 ID |
| UserID | 字符串 | 20 | 授权者 ID,要求是超级管理员 |
| Page | 整型 | 1 | 页码,从 0 开始 |
| CountReq | 整型 | 1 | 请求的掌静脉个数,最大为 10 |
| Token | 整型 | 4 | 动态口令 |
| AuthCodeLen | 整型 | 1 | 鉴权码长度 |
| AuthCode | 字符串 | 变长 | 鉴权码 |
应答消息
| 字段名称 | 字段类型 | 字段长度 | 字段说明 |
|---|---|---|---|
| CmdID | 整型 | 2 | 指令 ID |
| Status | 整型 | 1 | 处理状态 |
| Token | 整型 | 4 | 动态口令 |
| Page | 整型 | 1 | 页码 |
| CountAck | 整型 | 1 | 实际返回的掌静脉个数 |
| ID | 整型 | 2 | 掌静脉 ID |
| UserId | 整型 | 4 | APP 创建的电子钥匙 ID |
| StartDate | 整型 | 4 | 启用日期 |
| ExpireDate | 整型 | 4 | 停用日期 |
| UseCountLimit | 整型 | 2 | 使用次数限制 |
| IsRound | 整型 | 1 | 是否循环 |
| WeekRound | 整型 | 1 | 循环周期 |
| StartHour | 整型 | 1 | 开始小时 |
| StartMin | 整型 | 1 | 开始分钟 |
| EndHour | 整型 | 1 | 结束小时 |
| EndMin | 整型 | 1 | 结束分钟 |
| Role | 整型 | 1 | 用户角色 |
| IsForce | 整型 | 1 | 是否挟持 |
| ... | 混合 | 24×N | CountAck > 1 时重复 ID 到 IsForce 字段 |
获取遥控列表
指令码: 0x3026
方向: APP → 门锁
加密: SM4 私钥模式
请求消息
| 字段名称 | 字段类型 | 字段长度 | 字段说明 |
|---|---|---|---|
| CmdID | 整型 | 2 | 指令 ID |
| LockID | 字符串 | 40 | 锁 ID |
| UserID | 字符串 | 20 | 授权者 ID,要求是超级管理员 |
| Page | 整型 | 1 | 页码,从 0 开始 |
| CountReq | 整型 | 1 | 请求的遥控个数,最大为 10 |
| Token | 整型 | 4 | 动态口令 |
| AuthCodeLen | 整型 | 1 | 鉴权码长度 |
| AuthCode | 字符串 | 变长 | 鉴权码 |
应答消息
| 字段名称 | 字段类型 | 字段长度 | 字段说明 |
|---|---|---|---|
| CmdID | 整型 | 2 | 指令 ID |
| Status | 整型 | 1 | 处理状态 |
| Token | 整型 | 4 | 动态口令 |
| Page | 整型 | 1 | 页码 |
| CountAck | 整型 | 1 | 实际返回的遥控个数 |
| ID | 整型 | 2 | 遥控 ID |
| UserId | 整型 | 4 | APP 创建的电子钥匙 ID |
| StartDate | 整型 | 4 | 启用日期 |
| ExpireDate | 整型 | 4 | 停用日期 |
| UseCountLimit | 整型 | 2 | 使用次数限制 |
| IsRound | 整型 | 1 | 是否循环 |
| WeekRound | 整型 | 1 | 循环周期 |
| StartHour | 整型 | 1 | 开始小时 |
| StartMin | 整型 | 1 | 开始分钟 |
| EndHour | 整型 | 1 | 结束小时 |
| EndMin | 整型 | 1 | 结束分钟 |
| Role | 整型 | 1 | 用户角色 |
| IsForce | 整型 | 1 | 是否挟持 |
| ... | 混合 | 24×N | CountAck > 1 时重复 ID 到 IsForce 字段 |
获取设置列表
指令码: 0x302A
方向: APP → 门锁
加密: SM4 私钥模式
请求消息
| 字段名称 | 字段类型 | 字段长度 | 字段说明 |
|---|---|---|---|
| CmdID | 整型 | 2 | 指令 ID |
| LockID | 字符串 | 40 | 锁 ID |
| UserID | 字符串 | 20 | 授权者 ID,要求是超级管理员 |
| Token | 整型 | 4 | 动态口令 |
| AuthCodeLen | 整型 | 1 | 鉴权码长度 |
| AuthCode | 字符串 | 变长 | 鉴权码 |
应答消息
| 字段名称 | 字段类型 | 字段长度 | 字段说明 |
|---|---|---|---|
| CmdID | 整型 | 2 | 指令 ID |
| Status | 整型 | 1 | 处理状态 |
| Token | 整型 | 4 | 动态口令 |
| FeatureParaTotal | 整型 | 1 | 支持的带参数特征值的总条目数 |
| FeatureParaBit | 整型 | 1 | 对应特征值的位 |
| FeatureParaLength | 整型 | 1 | 对应特征值的参数长度 |
| FeatureParaData | 变长 | 变长 | 对应特征值的参数 |
| ... | 混合 | 变长 | FeatureParaTotal > 1 时重复 FeatureParaBit 到 FeatureParaData 字段 |
指令汇总
| 指令码 | 名称 | 方向 | 加密 |
|---|---|---|---|
| 0x3021 | 获取密码列表 | APP → 门锁 | SM4 私钥模式 |
| 0x3022 | 获取卡片列表 | APP → 门锁 | SM4 私钥模式 |
| 0x3023 | 获取指纹列表 | APP → 门锁 | SM4 私钥模式 |
| 0x3024 | 获取人脸列表 | APP → 门锁 | SM4 私钥模式 |
| 0x3025 | 获取掌静脉列表 | APP → 门锁 | SM4 私钥模式 |
| 0x3026 | 获取遥控列表 | APP → 门锁 | SM4 私钥模式 |
| 0x302A | 获取设置列表 | APP → 门锁 | SM4 私钥模式 |
