Appearance
指令表
本文档定义蓝牙协议 V2 的指令编号分配规则。
编号规则
指令码为 16 位无符号整数,采用分块编号:
- 高字节:模块标识(0x01-0xFF)
- 低字节:模块内操作(0x00-0xFF)
+----------+----------+
| 模块 ID | 操作 ID |
| (1 byte) | (1 byte) |
+----------+----------+指令容量
理论上可支持 255 个模块 × 256 个操作 = 65,280 条指令,足以满足未来扩展需求。
模块分配
| 区块 | 范围 | 模块 | 已用 | 预留 |
|---|---|---|---|---|
0x00xx | 0x0000-0x00FF | 通用指令 | 1 | 255 |
0x01xx | 0x0100-0x01FF | 设备绑定与管理 | 7 | 249 |
0x02xx | 0x0200-0x02FF | 用户与权限 | 5 | 251 |
0x03xx | 0x0300-0x03FF | 锁操作 | 4 | 252 |
0x04xx | 0x0400-0x04FF | 电子钥匙管理 | 6 | 250 |
0x05xx | 0x0500-0x05FF | 密码管理 | 6 | 250 |
0x06xx | 0x0600-0x06FF | 卡片管理 | 6 | 250 |
0x07xx | 0x0700-0x07FF | 指纹管理 | 9 | 247 |
0x08xx | 0x0800-0x08FF | 人脸管理 | 9 | 247 |
0x09xx | 0x0900-0x09FF | 掌静脉管理 | 9 | 247 |
0x0Axx | 0x0A00-0x0AFF | 遥控器管理 | 6 | 250 |
0x0Bxx | 0x0B00-0x0BFF | 事件与记录 | 3 | 253 |
0x0Cxx | 0x0C00-0x0CFF | 功能设置 | 4 | 252 |
0x0Dxx | 0x0D00-0x0DFF | 固件升级 | 6 | 250 |
0xFFxx | 0xFF00-0xFFFF | 系统保留 | 3 | 253 |
| - | 0x0E00-0xFEFF | 未分配模块 | - | 61,696 |
模块内编号规则
每个模块内的操作 ID 按以下规则分配:
| 范围 | 用途 |
|---|---|
0x00-0x0F | 模块级通用操作 |
0x10-0x7F | 常规操作 |
0x80-0xEF | 扩展操作 |
0xF0-0xFF | 预留 |
指令速查表
凭证更新说明
凭证的 Update* 指令用于更新凭证属性:
- 通用属性:有效期、使用次数限制、胁迫标记、标签
- 密码:可更新密码内容本身
- 卡片:可更新卡号(需重新刷卡)
- 生物特征(指纹、人脸、掌静脉):原始数据无法更新,如需修改需删除后重新录入
通用指令 (0x00xx)
| 指令码 | 名称 | 说明 |
|---|---|---|
0x0010 | SubmitAuthPacket | 提交授权指令包 |
设备绑定与管理 (0x01xx)
| 指令码 | 名称 | 说明 |
|---|---|---|
0x0100 | GetBindingInfo | 获取绑定信息(未绑定时返回 userSecret) |
0x0101 | ConfirmBinding | 完成绑定 |
0x0102 | Unbind | 解除绑定(保留数据) |
0x0110 | GetDeviceInfo | 获取设备信息 |
0x0111 | GetDeviceStatus | 获取设备状态 |
0x0112 | SetDeviceTime | 设置设备时间 |
0x0113 | ResetDevice | 恢复出厂设置 |
用户与权限 (0x02xx)
| 指令码 | 名称 | 说明 |
|---|---|---|
0x0200 | ListUsers | 获取用户列表 |
0x0201 | AddUser | 添加用户 |
0x0202 | UpdateUser | 更新用户信息 |
0x0203 | DeleteUser | 删除用户 |
0x0204 | SetUserRole | 设置用户角色 |
锁操作 (0x03xx)
| 指令码 | 名称 | 说明 |
|---|---|---|
0x0300 | GetLockStatus | 获取锁状态 |
0x0301 | Unlock | 开锁 |
0x0302 | Lock | 上锁 |
0x0303 | SetPassageMode | 设置常开模式 |
电子钥匙管理 (0x04xx)
| 指令码 | 名称 | 说明 |
|---|---|---|
0x0400 | ListKeys | 获取电子钥匙列表 |
0x0401 | GetKey | 获取电子钥匙详情 |
0x0402 | AddKey | 添加电子钥匙 |
0x0403 | UpdateKey | 更新电子钥匙 |
0x0404 | DeleteKey | 删除电子钥匙 |
0x0405 | ClearKeys | 清空所有电子钥匙 |
电子钥匙
电子钥匙是用于 APP/小程序蓝牙开锁的凭证,与密码、指纹等凭证地位相同。用户需拥有电子钥匙凭证才能使用蓝牙开锁功能。
密码管理 (0x05xx)
| 指令码 | 名称 | 说明 |
|---|---|---|
0x0500 | ListPasswords | 获取密码列表 |
0x0501 | GetPassword | 获取密码详情 |
0x0502 | AddPassword | 添加密码 |
0x0503 | UpdatePassword | 更新密码 |
0x0504 | DeletePassword | 删除密码 |
0x0505 | ClearPasswords | 清空所有密码 |
离线密码
离线密码由 APP/服务器端生成,无需与门锁通信。详见 离线密码算法。
卡片管理 (0x06xx)
| 指令码 | 名称 | 说明 |
|---|---|---|
0x0600 | ListCards | 获取卡片列表 |
0x0601 | GetCard | 获取卡片详情 |
0x0602 | AddCard | 添加卡片 |
0x0603 | UpdateCard | 更新卡片 |
0x0604 | DeleteCard | 删除卡片 |
0x0605 | ClearCards | 清空所有卡片 |
指纹管理 (0x07xx)
| 指令码 | 名称 | 说明 |
|---|---|---|
0x0700 | ListFingerprints | 获取指纹列表 |
0x0701 | GetFingerprint | 获取指纹详情 |
0x0702 | StartFingerprintEnroll | 启动指纹录入 |
0x0703 | CancelFingerprintEnroll | 取消指纹录入 |
0x0704 | UpdateFingerprint | 更新指纹信息 |
0x0705 | DeleteFingerprint | 删除指纹 |
0x0706 | ClearFingerprints | 清空所有指纹 |
0x0780 | FingerprintEnrollProgress | 录入进度通知(设备→APP) |
0x0781 | FingerprintEnrollResult | 录入结果通知(设备→APP) |
人脸管理 (0x08xx)
| 指令码 | 名称 | 说明 |
|---|---|---|
0x0800 | ListFaces | 获取人脸列表 |
0x0801 | GetFace | 获取人脸详情 |
0x0802 | StartFaceEnroll | 启动人脸录入 |
0x0803 | CancelFaceEnroll | 取消人脸录入 |
0x0804 | UpdateFace | 更新人脸信息 |
0x0805 | DeleteFace | 删除人脸 |
0x0806 | ClearFaces | 清空所有人脸 |
0x0880 | FaceEnrollProgress | 录入进度通知(设备→APP) |
0x0881 | FaceEnrollResult | 录入结果通知(设备→APP) |
掌静脉管理 (0x09xx)
| 指令码 | 名称 | 说明 |
|---|---|---|
0x0900 | ListPalmVeins | 获取掌静脉列表 |
0x0901 | GetPalmVein | 获取掌静脉详情 |
0x0902 | StartPalmVeinEnroll | 启动掌静脉录入 |
0x0903 | CancelPalmVeinEnroll | 取消掌静脉录入 |
0x0904 | UpdatePalmVein | 更新掌静脉信息 |
0x0905 | DeletePalmVein | 删除掌静脉 |
0x0906 | ClearPalmVeins | 清空所有掌静脉 |
0x0980 | PalmVeinEnrollProgress | 录入进度通知(设备→APP) |
0x0981 | PalmVeinEnrollResult | 录入结果通知(设备→APP) |
遥控器管理 (0x0Axx)
| 指令码 | 名称 | 说明 |
|---|---|---|
0x0A00 | ListRemotes | 获取遥控器列表 |
0x0A01 | GetRemote | 获取遥控器详情 |
0x0A02 | AddRemote | 添加遥控器 |
0x0A03 | UpdateRemote | 更新遥控器信息 |
0x0A04 | DeleteRemote | 删除遥控器 |
0x0A05 | ClearRemotes | 清空所有遥控器 |
事件与记录 (0x0Bxx)
| 指令码 | 名称 | 说明 |
|---|---|---|
0x0B00 | ListEvents | 获取事件列表 |
0x0B01 | GetEvent | 获取事件详情 |
0x0B02 | ClearEvents | 清空事件记录 |
功能设置 (0x0Cxx)
| 指令码 | 名称 | 说明 |
|---|---|---|
0x0C00 | GetSettings | 获取所有设置 |
0x0C01 | GetSetting | 获取单项设置 |
0x0C02 | SetSetting | 修改单项设置 |
0x0C03 | ResetSettings | 重置为默认设置 |
固件升级 (0x0Dxx)
| 指令码 | 名称 | 说明 |
|---|---|---|
0x0D00 | GetFirmwareInfo | 获取固件信息 |
0x0D01 | CheckUpdate | 检查更新 |
0x0D02 | StartOTA | 开始 OTA 升级 |
0x0D03 | TransferOTAData | 传输 OTA 数据 |
0x0D04 | FinishOTA | 完成 OTA 升级 |
0x0D05 | CancelOTA | 取消 OTA 升级 |
系统保留 (0xFFxx)
| 指令码 | 名称 | 说明 |
|---|---|---|
0xFF00 | Ping | 心跳/连通性检测 |
0xFF01 | GetProtocolVersion | 获取协议版本 |
0xFFFF | Reserved | 保留 |
命名规范
指令命名
- 使用 PascalCase
- 动词 + 名词结构
- 查询类:
Get*/List* - 创建类:
Add*/Create* - 更新类:
Update*/Set* - 删除类:
Delete*/Clear* - 执行类:动词(如
Unlock、Lock)
消息体命名
| 类型 | 后缀 | 示例 |
|---|---|---|
| 请求 | Req | GetDeviceInfoReq |
| 响应 | Resp | GetDeviceInfoResp |
| 推送 | Notify | EventNotify |
