接口列表
(00)请求设备信息(LoRaWAN'923'专用)
1、主机发送(明文发送,无需加密)
| 指令码 | 操作对象(MAC) | 时间戳(unix时间戳转16进制) |
|---|---|---|
| 0x00 | 6字节Mac地址 | 50c7de36 |
TIP
LORA专用:
指令:00
完整:00 + Mac地址 + 时间戳转16进制
例如:
Mac地址:A1A2A3A4A5A6
时间:2012-12-12 09:30:30 转 unix时间戳后是:1355275830,再转成16进制后是:50c7de36
拼接得到完整指令:00A1A2A3A4A5A650c7de36
2、从机回复
参考01指令
(01)请求设备信息
1、主机发送(明文发送,无需加密)
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 时间戳(发送指令的时间) | 校验和 |
|---|---|---|---|---|---|
| 0x01 | 0x00 | 0x00,0x0d | 6字节Mac地址 | 0x19,0x09,0x0c,0x11,0x28,0x1e | XX |
TIP
2、从机回复
| 类型 | 值 | 说明 |
|---|---|---|
| 指令码 | 0x01 | |
| 滚动码 | 0x00 | |
| 数据长度 | 2字节长度 | |
| MAC | 6字节Mac地址 | |
| 硬件版本号 | 0x0C | 0x0C 转10进制=12 |
| 软件版本号 | 0x00,0x01 | 0x00,0x01 转换10进制=0001 |
| 厂商ID | 4字节 | 4字节数据,转10进制 |
| 报警模式 | 0x00 | 0x00:不报警,0x01:迟钝模式,0x02:中等模式,0x03:敏感模式 |
| 锁状态 | 1字节 | 0x00:锁关,0x01:锁开 |
| 备用数据 | 4字节 | |
| 是否新锁 | 0x55 | 0x55新锁,0xAA旧锁 |
| 开锁记录 | 0x27,0x10 | 2字节数据转10进制,例如:0x2710转10进制=10000 |
| 电量 | 0x30 | 1字节,转10进制后百分比,例如0x64则是100% |
| 静音模式 | 0x01 | 0x00静音模式关闭,0x01静音模式打开,其他错误 |
| 休眠模式 | 0x01 | 0x00:正常休眠,0x01:Blue常开,0x02:省电模式 |
| 校验和 | 0x00 |
(02)获取开锁记录
离线开锁记录,没有连接蓝牙时,连接蓝牙后,开锁记录通过13指令实时上传
1、主机发送
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 开始位置 | 本次上传N个记录 | 时间戳(发送指令的时间) | 校验和 |
|---|---|---|---|---|---|---|---|
| 0x02 | 0x00 | 0x00,0x10 | 6字节Mac地址 | 0x00,0x01 | 0x01 | 0x19,0x09,0x0c,0x11,0x28,0x1e | XX |
2、从机回复
| 类型 | 值 | 说明 |
|---|---|---|
| 指令码 | 0x02 | |
| 滚动码 | 0x00 | |
| 数据长度 | 2字节长度 | |
| MAC | 6字节Mac地址 | |
| 剩余记录 | 0x00 0x01 | |
| 本次上传N个记录 | 0x01 | |
| 开锁时间 | 0x15,0x04,0x03,0x08,0x10,0x20 | |
| 开锁方式 | 0x21 | |
| 开锁ID | 0x00, 0x21 | |
| 当时电量 | 0x64 | |
| 校验和 | XX |
TIP
这是一组开锁记录,一个帧里面有N组(N = 本次上传个数)每组共计10字节
开锁时间:6字节,如果该锁体不带RTC,那么时间我会填0x00以补齐数据6个字节数
开锁方式:1字节,转二进制(例如:0x21转二进制后是100001,此时需要前面补0,补足8位,得到00100001,那么前3bit:001则代表开锁角色,后5bit:00001则代表开锁方式类型)
开锁方式角色:开锁方式的前3bit:001代表管理员用户,010代表普通用户,000其他
开锁方式类型:开锁方式的后5bit转10进制后:1指纹解锁,2微信解锁,10密码解锁,11卡片解锁,12App解锁,13临时授权解锁,1110临时密码,1111锁开,10000锁关
开锁ID:2字节,指的是哪一个指纹或者密码或者卡片开的锁
当时电量:1字节,转10进制后百分比,例如0x64则是100%
| 开锁时间 | 开锁方式 | 开锁ID | 当时电量 |
|---|---|---|---|
| 0x15,0x04,0x03,0x08,0x10,0x20 | 0x01 | 0x00, 0x01 | 0x64 |
(03)删除终端开锁记录
1、主机发送
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 时间戳(发送指令的时间) | 校验和 |
|---|---|---|---|---|---|
| 0x03 | 0x00 | 0x00,0x0d | 6字节Mac地址 | 0x19,0x09,0x0c,0x11,0x28,0x1e | XX |
2、从机回复
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 操作结果 | 校验和 |
|---|---|---|---|---|---|
| 0x03 | 0x00 | 0x00,0x08 | 6字节Mac地址 | 0x01 | XX |
TIP
操作结果: 0x01成功,其他失败
(04)设置终端语言模式
1、主机发送
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 模式 | 时间戳(发送指令的时间) | 校验和 |
|---|---|---|---|---|---|---|
| 0x04 | 0x00 | 0x00,0x0e | 6字节Mac地址 | 0x01 | 0x19,0x09,0x0c,0x11,0x28,0x1e | XX |
TIP
模式:0x00中文模式,0x01英文模式,其他错误
2、从机回复
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 操作结果 | 校验和 |
|---|---|---|---|---|---|
| 0x04 | 0x00 | 0x00,0x08 | 6字节Mac地址 | 0x01 | XX |
TIP
操作结果: 0x01成功,其他失败
(05)设置终端是否打开静音模式
1、主机发送
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 是否静音 | 时间戳(发送指令的时间) | 校验和 |
|---|---|---|---|---|---|---|
| 0x05 | 0x00 | 0x00,0x0e | 6字节Mac地址 | 0x00 | 0x19,0x09,0x0c,0x11,0x28,0x1e | XX |
TIP
是否静音:0x00静音模式关闭,0x01静音模式打开,其他错误
2、从机回复
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 操作结果 | 校验和 |
|---|---|---|---|---|---|
| 0x05 | 0x00 | 0x00,0x08 | 6字节Mac地址 | 0x01 | XX |
TIP
操作结果: 0x01成功,其他失败
(06)设置终端休眠模式
1、主机发送
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC | 休眠模式 | 时间戳(发送指令的时间) | 校验和 |
|---|---|---|---|---|---|---|
| 0x06 | 0x00 | 0x00,0x0e | 6字节Mac地址 | 0x00 | 0x19,0x09,0x0c,0x11,0x28,0x1e | XX |
TIP
休眠模式:0x00正常模式休眠,0x01蓝牙常开模式
2、从机回复
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 操作结果 | 校验和 |
|---|---|---|---|---|---|
| 0x06 | 0x00 | 0x00,0x08 | 6字节Mac地址 | 0x01 | XX |
TIP
操作结果: 0x01成功,其他失败
(07)设置报警灵敏度
1、主机发送
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC | 报警灵敏度 | 时间戳(发送指令的时间) | 校验和 |
|---|---|---|---|---|---|---|
| 0x07 | 0x00 | 0x00,0x0e | 6字节Mac地址 | 0x00 | 0x19,0x09,0x0c,0x11,0x28,0x1e | XX |
TIP
报警灵敏度:0x00:不报警,0x01:迟钝模式,0x02:中等模式,0x03:敏感模式
2、从机回复
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 操作结果 | 校验和 |
|---|---|---|---|---|---|
| 0x07 | 0x00 | 0x00,0x08 | 6字节Mac地址 | 0x01 | XX |
TIP
操作结果: 0x01成功,其他失败
(08)读取终端三元组信息
仅LORA设备可用
1、主机发送
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 时间戳(发送指令的时间) | 校验和 |
|---|---|---|---|---|---|
| 0x08 | 0x00 | 0x00,0x0d | 6字节Mac地址 | 0x19,0x09,0x0c,0x11,0x28,0x1e | XX |
2、从机回复
| 类型 | 值 | 说明 |
|---|---|---|
| 指令码 | 0x08 | |
| 滚动码 | 0x00 | |
| 数据长度 | 2字节长度 | |
| MAC | 6字节Mac地址 | |
| DeviceEUI | 8字节 | |
| DeviceAddress | 4字节 | |
| NetworkSessionKey | 16字节 | |
| ApplicationSessionKey | 16字节 | |
| 操作结果 | 0x01 | 0x01成功,其他失败 |
| 校验和 | XX |
(09)给终端绑定三元组信息
仅LORA设备可用
1、主机发送(初次使用时,使用默认密钥加密)
| 类型 | 值 | 说明 |
|---|---|---|
| 指令码 | 0x09 | |
| 滚动码 | 0x00 | |
| 数据长度 | 0x00,0x39 | 2字节长度 |
| MAC | 6字节 | Mac地址 |
| DeviceEUI | 8字节 | |
| DeviceAddress | 4字节 | |
| NetworkSessionKey | 16字节 | |
| ApplicationSessionKey | 16字节 |
2、从机回复
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 操作结果 | 校验和 |
|---|---|---|---|---|---|
| 0x09 | 0x00 | 0x00,0x08 | 6字节Mac地址 | 0x01 | XX |
TIP
操作结果: 0x01成功,其他失败
(10)给终端设定新的加密密钥
1、主机发送(初次使用时,使用默认密钥加密)
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 16字节新的密钥 | 时间戳(发送指令的时间) | 校验和 |
|---|---|---|---|---|---|---|
| 0x10 | 0x00 | 0x00,0x1d | 6字节Mac地址 | 16Bytes | 0x19,0x09,0x0c,0x11,0x28,0x1e | XX |
2、从机回复
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 操作结果 | 16字节新的密钥 | 校验和 |
|---|---|---|---|---|---|---|
| 0x10 | 0x00 | 0x00,0x08 | 6字节Mac地址 | 0x01 | 16Bytes | XX |
TIP
操作结果: 0x01成功,其他失败
⚠️危险警告:16字节的新密钥,一定要保证长度正确,否则会导致锁体永久损坏
(11)给终端设定新的编码
1、主机发送
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 编号字节数长度 | 编号 | 时间戳(发送指令的时间) | 校验和 |
|---|---|---|---|---|---|---|---|
| 0x11 | 0x00 | 0x00,0x16 | 6字节Mac地址 | 1 Bytes | 8 Bytes | 0x19,0x09,0x0c,0x11,0x28,0x1e | XX |
TIP
编号有效字节长度:8字节
编号只可以使用a-z,0-9之间的字母或数字
编号:例如:12345678 将该数值转为ASCII编码,为:\u0031\u0032\u0033\u0034\u0035\u0036\u0037\u0038;此时需要去除\u00 只保留最后2位即可,即有效内容为:3132333435363738。
2、从机回复
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 操作结果 | 校验和 |
|---|---|---|---|---|---|
| 0x11 | 0x00 | 0x00,0x08 | 6字节Mac地址 | 0x01 | XX |
TIP
操作结果: 0x01成功,其他失败
(12)给终端设定新的蓝牙名称
1、主机发送
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 蓝牙名称字节长度 | 蓝牙名称 | 时间戳(发送指令的时间) | 校验和 |
|---|---|---|---|---|---|---|---|
| 0x12 | 0x00 | 2字节长度 | 6字节Mac地址 | 1Bytes | N Bytes | 0x19,0x09,0x0c,0x11,0x28,0x1e | XX |
TIP
蓝牙名称有效字节长度:1-20字节
蓝牙名称:限类型:中文、英文、数字、英文状态下的下划线_、中横线-、加号+。
例如:将"大门锁Aa-1_2+3"
中文部分"大门锁"进行UrlEncode编码得到 %E5%A4%A7%E9%97%A8%E9%94%81 去除 % 得到 E5A4A7E997A8E99481;
剩下的"Aa-1_2+3"转ASCII再转16进制,即得到41612D315F322B33
拼接起来即得到有效内容为:E5A4A7E997A8E9948141612d315f322b33
此时计算有效内容长度为 17字节,用16进制表示则为:0x11
2、从机回复
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC | 操作结果 | 校验和 |
|---|---|---|---|---|---|
| 0x12 | 0x00 | 0x00,0x08 | 6字节Mac地址 | 0x01 | XX |
TIP
操作结果: 0x01成功,其他失败
(13)主动上传开锁记录
连接蓝牙后,开锁记录通过本指令实时上传
1、从机发送
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC | 开锁时间 | 开锁方式 | 开锁ID | 电量 | 校验和 |
|---|---|---|---|---|---|---|---|---|
| 0x13 | 0x00 | 2字节长度 | 6字节Mac地址 | 0x19,0x09,0x0c,0x11,0x28,0x1e | 0x21 | 0x00,0x01 | 0x30 | XX |
TIP
开锁时间:6字节,如果该锁体不带RTC,那么时间我会填0x00以补齐数据6个字节数
开锁方式:1字节,转二进制(例如:0x21转二进制后是100001,此时需要前面补0,补足8位,得到00100001,那么前3bit:001则代表开锁角色,后5bit:00001则代表开锁方式类型)
开锁方式角色:开锁方式的前3bit:001代表管理员用户,010代表普通用户,其他保留
开锁方式类型:开锁方式的后5bit:1指纹解锁,2微信解锁,10密码解锁,11卡片解锁,12App解锁,13临时授权解锁,1110临时密码,1111锁开,10000锁关
开锁ID:2字节,指的是哪一个指纹或者密码或者卡片开的锁
当时电量:1字节,例如:0x64则对应100%
注意:E0指令触发的在线开锁,不会上传记录
2、主机回复
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 确认码 | 开锁时间 | 校验和 |
|---|---|---|---|---|---|---|
| 0x13 | 0x00 | 0x00,0x14 | 6字节Mac地址 | 0x01 | 0x19,0x09,0x0c,0x11,0x28,0x1e | XX |
TIP
确认码: 0x01(App已收到)
(14)主动上传锁体报警通知
1、从机发送
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 报警类型 | 报警时间 | 校验和 |
|---|---|---|---|---|---|---|
| 0x14 | 0x00 | 0x00,0x0e | 6字节Mac地址 | 0x01 | 0x19,0x09,0x0c,0x11,0x28,0x1e | XX |
TIP
报警类型:0x01:振动报警、0x02:撬锁报警
2、主机回复
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 确认码 | 开锁时间 | 校验和 |
|---|---|---|---|---|---|---|
| 0x14 | 0x00 | 0x00,0x14 | 6字节Mac地址 | 0x01 | 0x19,0x09,0x0c,0x11,0x28,0x1e | XX |
TIP
确认码: 0x01(App已收到)
(15)锁体上下线通知
1、从机发送
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 类型 | 状态 | 电量 | 时间戳(发送指令的时间) | 校验和 |
|---|---|---|---|---|---|---|---|---|
| 0x15 | 0x00 | 0x00,0x10 | 6字节Mac地址 | 0x01 | 0x01 | 0x64 | 0x19,0x09,0x0c,0x11,0x28,0x1e | XX |
TIP
类型:0x00:下线、0x01:上线、0x02:自动唤醒上线
锁状态:0x00:锁关,0x01:锁开
电量: 转10进制后百分比,例如0x64则是100%
2、主机回复
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 确认码 | 开锁时间 | 校验和 |
|---|---|---|---|---|---|---|
| 0x15 | 0x00 | 0x00,0x14 | 6字节Mac地址 | 0x01 | 0x19,0x09,0x0c,0x11,0x28,0x1e | XX |
TIP
确认码: 0x01(App已收到)
(16)获取当前设备硬件信息
1、主机发送
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 时间戳(发送指令的时间) | 校验和 |
|---|---|---|---|---|---|
| 0x16 | 0x00 | 0x00,0x0d | 6字节Mac地址 | 0x19,0x09,0x0c,0x11,0x28,0x1e | XX |
2、从机回复
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 指纹模版 | 备用数据 | 校验和 |
|---|---|---|---|---|---|---|
| 0x16 | 0x00 | 0x00,0x26 | 6字节Mac地址 | 0x01 | 30字节 | XX |
TIP
指纹芯片型号:1字节
| ID | 型号 |
|---|---|
| 0x01 | ML08064001T6 |
| 0x02 | ML17664001T6 |
备用数据: --
(17)设置定时唤醒间隔
1、主机发送
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC | 唤醒间隔(单位分钟) | 时间戳(发送指令的时间) | 校验和 |
|---|---|---|---|---|---|---|
| 0x17 | 0x00 | 0x00,0x0F | 6字节Mac地址 | 0x270F | 0x19,0x09,0x0c,0x11,0x28,0x1e | XX |
TIP
唤醒间隔频率:16进制数据,默认0关闭,可修改0-9999分钟;0关闭定时唤醒,例如:9999分钟转换16进制后是0x270F
2、从机回复
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 操作结果 | 校验和 |
|---|---|---|---|---|---|
| 0x17 | 0x00 | 0x00,0x08 | 6字节Mac地址 | 0x01 | XX |
TIP
操作结果: 0x01成功,其他失败
(18)下发OTA升级包到锁体
1、主机发送
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 总次数 | 当前次数 | OTA数据 | 时间戳(发送指令的时间) | 校验和 |
|---|---|---|---|---|---|---|---|---|
| 0x18 | 0x00 | 0x00,0x00 | 6字节Mac地址 | 0x03,0x34 | 0x03,0x34 | 0x00,0x01... | 0x19,0x09,0x0c,0x11,0x28,0x1e | XX |
TIP
OTA数据:单次100字节
总次数: 总共会发送多少次
当前次数: 当前是第几次
2、从机回复
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 操作结果 | 校验和 |
|---|---|---|---|---|---|
| 0x18 | 0x00 | 0x00,0x08 | 6字节Mac地址 | 0x01 | XX |
TIP
操作结果: 0x01成功,其他失败
(1A)设置锁体旋转方向及等待时间
1、主机发送
| 类型 | 值 | 说明 |
|---|---|---|
| 指令码 | 0x1A | |
| 滚动码 | 0x00 | |
| 数据长度 | 0x00,0x15 | 2字节长度 |
| MAC | 6字节 | Mac地址 |
| 开锁旋转方向 | 0x00 | 1字节、0x00顺时针,0x01逆时针 |
| 开锁旋转时间 | 0x270F | 2字节、0x270F(代表9999)单位ms毫秒 |
| 停留时间 | 0x270F | 2字节、0x270F(代表9999)单位ms毫秒 |
| 关锁旋转方向 | 0x01 | 1字节、0x00顺时针,0x01逆时针 |
| 关锁旋转时间 | 0x270F | 2字节、0x270F(代表9999)单位ms毫秒 |
| 关锁后停留时间 | 0x270F | 2字节、0x270F(代表9999)单位ms毫秒 |
| 时间戳 | 0x19,0x09,0x0c,0x11,0x28,0x1e | 发送指令的时间16字节 |
| 校验和 | XX |
2、从机回复
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 操作结果 | 校验和 |
|---|---|---|---|---|---|
| 0x1A | 0x00 | 0x00,0x08 | 6字节Mac地址 | 0x01 | XX |
TIP
操作结果: 0x01成功,其他失败
(1F)对终端进行复位操作
终端清除所有开锁记录,指纹,密码,卡片,密钥,并且标记为新锁 1、主机发送
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 时间戳(发送指令的时间) | 校验和 |
|---|---|---|---|---|---|
| 0x1F | 0x00 | 0x00,0x0d | 6字节Mac地址 | 0x19,0x09,0x0c,0x11,0x28,0x1e | XX |
2、从机回复
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 操作结果 | 校验和 |
|---|---|---|---|---|---|
| 0x1F | 0x00 | 0x00,0x08 | 6字节Mac地址 | 0x01 | XX |
TIP
操作结果: 0x01成功,其他失败
(24)获取设备指纹库数据
1、主机发送
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 时间戳(发送指令的时间) | 校验和 |
|---|---|---|---|---|---|
| 0x24 | 0x00 | 0x00,0x0d | 6字节Mac地址 | 0x19,0x09,0x0c,0x11,0x28,0x1e | XX |
2、从机回复
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 本机指纹容量 | 位置数据 | 校验和 |
|---|---|---|---|---|---|---|
| 0x24 | 0x00 | 0x00,0x00 | 6字节Mac地址 | 0x00,0xC8 | 0x80,0x00,0x00.... | XX |
TIP
重要:
本机指纹容量:2字节;0x00,0xC8转成10进制是200,则代表有200个指纹。
位置数据: 比如指纹有200个,而每个字节表示8个指纹数据,则200/8=有25个字节。
将这25个字节分别各自转2进制,比如第一个字节是0x80转二进制后是:10000000。这代表8个位置,如果是1则代表有数据,0代表无数据
(25)设置是否进入指纹工作模式
1、主机发送
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 参数 | 时间戳 | 校验和 |
|---|---|---|---|---|---|---|
| 0x25 | 0x00 | 0x00,0x0e | 6字节Mac地址 | 0x01 | 0x19,0x09,0x0c,0x11,0x28,0x1e | XX |
TIP
参数:0x01正常模式,0x02指纹录入模式
2、从机回复
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 操作结果 | 校验和 |
|---|---|---|---|---|---|
| 0x25 | 0x00 | 0x00,0x08 | 6字节Mac地址 | 0x01 | XX |
TIP
操作结果: 0x01成功,其他失败
(20)录入一个指纹
1、主机发送
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 第N次 | 超时秒数 | 时间戳(发送指令的时间) | 校验和 |
|---|---|---|---|---|---|---|---|
| 0x20 | 0x00 | 0x00,0x0f | 6字节Mac地址 | 0x01 | 0x10 | 0x19,0x09,0x0c,0x11,0x28,0x1e | XX |
TIP
第N次:从传感器录入第N枚指纹(N小于模板里面的特征值个数,一般是6)
超时时间:长时间等不到指纹按下,报错,单位为秒
2、从机回复
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 操作结果 | 校验和 |
|---|---|---|---|---|---|
| 0x20 | 0x00 | 0x00,0x08 | 6字节Mac地址 | 0x00 | XX |
TIP
操作结果: 0x00成功,其他失败
(21)保存当前指纹到指纹库
(0x20指令提取到的特征值),并储存到模板
1、主机发送
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 存储类型 | 被替换的ID | 时间戳(发送指令的时间) | 校验和 |
|---|---|---|---|---|---|---|---|
| 0x21 | 0x00 | 0x00,0x10 | 6字节Mac地址 | 0x11 | 0x00,0x00 | 0x19,0x09,0x0c,0x11,0x28,0x1e | XX |
TIP
储存类型(储存到空位):0x10按管理员存入,0x11按普通用户存入,如无特殊说明按11存入
储存类型(强制储存):0x20按管理员存入,0x21按普通用户存入,需要指定替换掉的ID?
被替换的ID:指当前存储的指纹要替换哪个指纹ID,如无特别说明默认0000
2、从机回复
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 操作结果 | 位置 | 校验和 |
|---|---|---|---|---|---|---|
| 0x21 | 0x00 | 0x00,0x0a | 6字节Mac地址 | 0x00 | 0x01,0x02 | XX |
TIP
操作结果: 0x00成功,其他失败
(22)删除指纹库指定ID的指纹
1、主机发送
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 删除的ID | 时间戳(发送指令的时间) | 校验和 |
|---|---|---|---|---|---|---|
| 0x22 | 0x00 | 0x00,0x0f | 6字节Mac地址 | 0x00 0x01 | 0x19,0x09,0x0c,0x11,0x28,0x1e | XX |
TIP
删除的ID:2字节
2、从机回复
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 操作结果 | 校验和 |
|---|---|---|---|---|---|
| 0x22 | 0x00 | 0x00,0x08 | 6字节Mac地址 | 0x00 | XX |
TIP
操作结果: 0x00成功,其他失败
(23)清空指纹库
1、主机发送
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 库类型 | 时间戳(发送指令的时间) | 校验和 |
|---|---|---|---|---|---|---|
| 0x23 | 0x00 | 0x00,0x0e | 6字节Mac地址 | 0x01 | 0x19,0x09,0x0c,0x11,0x28,0x1e | XX |
TIP
库类型:0x00删除管理员库,0x01删除普通用户库,0x02删除全部
2、从机回复
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 操作结果 | 校验和 |
|---|---|---|---|---|---|
| 0x23 | 0x00 | 0x00,0x08 | 6字节Mac地址 | 0x00 | XX |
TIP
操作结果: 0x00成功,其他失败
(26)获取当前录入的指纹模板
1、主机发送
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 时间戳(发送指令的时间) | 校验和 |
|---|---|---|---|---|---|
| 0x26 | 0x00 | 0x00,0x0d | 6字节Mac地址 | 0x19,0x09,0x0c,0x11,0x28,0x1e | XX |
2、从机回复
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 总次数 | 当前次数 | 指纹数据 | 校验和 |
|---|---|---|---|---|---|---|---|
| 0x26 | 0x00 | 0x00,0x00 | 6字节Mac地址 | 0x03,0x34 | 0x03,0x34 | 0x00,0x01... | XX |
TIP
总次数: 总共会发送多少次
当前次数: 当前是第几次
(27)下发指纹模板到锁体
1、主机发送
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 总次数 | 当前次数 | 指纹数据 | 时间戳(发送指令的时间) | 校验和 |
|---|---|---|---|---|---|---|---|---|
| 0x27 | 0x00 | 0x00,0x00 | 6字节Mac地址 | 0x03,0x34 | 0x03,0x34 | 0x00,0x01... | 0x19,0x09,0x0c,0x11,0x28,0x1e | XX |
TIP
指纹数据:单次100字节
总次数: 总共会发送多少次
当前次数: 当前是第几次
2、从机回复
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 操作结果 | 校验和 |
|---|---|---|---|---|---|
| 0x27 | 0x00 | 0x00,0x08 | 6字节Mac地址 | 0x01 | XX |
TIP
操作结果: 0x01成功,其他失败
(30)存入一组用户密码
1、主机发送
| 类型 | 值 | 说明 |
|---|---|---|
| 指令码 | 0x30 | |
| 滚动码 | 0x00 | |
| 数据长度 | 2字节 | 2字节长度 |
| MAC | 6字节 | Mac地址 |
| 存储类型 | 0x00 | |
| 被替换的ID | 0x00 0x00 | |
| 密码长度 | 0x06 | |
| 密码 | 0x01,0x02,0x03,0x04,0x05,0x06 | |
| 时间戳 | 0x19,0x09,0x0c,0x11,0x28,0x1e | 发送指令的时间16字节 |
| 校验和 | XX |
TIP
储存类型(储存到空位):0x10按管理员存入,0x11按普通用户存入, 替换的ID全部是 0x00 0x00
储存类型(强制储存):0x20按管理员存入,0x21按普通用户存入,需要制定替换掉谁?
密码长度: 6 - 10位,只有 0 - 9数字,1用0x01表示
2、从机回复
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 操作结果 | 存入位置 | 校验和 |
|---|---|---|---|---|---|---|
| 0x30 | 0x00 | 0x00,0x0a | 6字节Mac地址 | 0x01 | 0x00,0x01 | XX |
TIP
操作结果:
0x01成功
0x02失败,空间满
0x03失败,flash读写错误
0x04失败,指定的ID无效,超出最大储存空间
0x30失败,密码长度无效
0x31失败,密码含有非法数据
(31)删除指定ID的用户密码
1、主机发送
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 库类型 | 删除ID | 时间戳(发送指令的时间) | 校验和 |
|---|---|---|---|---|---|---|---|
| 0x31 | 0x00 | 0x00,0x10 | 6字节Mac地址 | 0x00 | 0x00 0x01 | 0x19,0x09,0x0c,0x11,0x28,0x1e | XX |
TIP
库类型:0x00删除管理员库,0x01删除普通用户库
2、从机回复
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 操作结果 | 校验和 |
|---|---|---|---|---|---|
| 0x31 | 0x00 | 0x00,0x08 | 6字节Mac地址 | 0x01 | XX |
TIP
操作结果:
1成功,其他失败
4失败,指定的ID无效,超出最大储存空间
(32)清空密码库
1、主机发送
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 库类型 | 时间戳(发送指令的时间) | 校验和 |
|---|---|---|---|---|---|---|
| 0x32 | 0x00 | 0x00,0x0e | 6字节Mac地址 | 0x01 | 0x19,0x09,0x0c,0x11,0x28,0x1e | XX |
TIP
库类型:0x00删除管理员库,0x01删除普通用户库,0x02删除全部
2、从机回复
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 操作结果 | 校验和 |
|---|---|---|---|---|---|
| 0x32 | 0x00 | 0x00,0x08 | 6字节Mac地址 | 0x01 | XX |
TIP
操作结果: 0x01成功,其他失败
(33)请求设备密码库状态
1、主机发送
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 时间戳(发送指令的时间) | 校验和 |
|---|---|---|---|---|---|
| 0x33 | 0x00 | 0x00,0x0d | 6字节Mac地址 | 0x19,0x09,0x0c,0x11,0x28,0x1e | XX |
2、从机回复
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 本机密码容量 | 位置数据 | 校验和 |
|---|---|---|---|---|---|---|
| 0x33 | 0x00 | 0x00,0x00 | 6字节Mac地址 | 0x7D | 0xA5,0x43,0xD5.... | XX |
TIP
重要:
本机密码容量:1字节;0x7D转成10进制是125,则代表有125个密码位置。
位置数据: 比如密码有125个,而每个字节表示8个密码数据,则125/8=15.625 向上取整后即有16个字节。将这16个字节分别各自转2进制,比如第一个字节是0xA5转二进制后是:10100101。这代表8个位置,如果是1则代表有数据,0代表无数据
(34)存入一组临时密码
1、主机发送
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 密码数量 | 密码长度 | 一组密码(N个) | 时间戳(发送指令的时间) | 校验和 |
|---|---|---|---|---|---|---|---|---|
| 0x34 | 0x00 | 2字节长度 | 6字节Mac地址 | 0x05 | 0x09 | 0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09.... | 0x19,0x09,0x0c,0x11,0x28,0x1e | XX |
TIP
密码数量: 每次发送多少个密码
密码长度: 每个密码的长度;最大9位
一组密码: 每个密码,密码数量多少个,这里就有多少个
2、从机回复
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 操作结果 | 校验和 |
|---|---|---|---|---|---|
| 0x34 | 0x00 | 0x00,0x0a | 6字节Mac地址 | 0x01 | XX |
TIP
操作结果:
0x01成功
(35)清空所有临时密码
1、主机发送
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 时间戳(发送指令的时间) | 校验和 |
|---|---|---|---|---|---|
| 0x35 | 0x00 | 2字节长度 | 6字节Mac地址 | 0x19,0x09,0x0c,0x11,0x28,0x1e | XX |
2、从机回复
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 操作结果 | 校验和 |
|---|---|---|---|---|---|
| 0x35 | 0x00 | 0x00,0x0a | 6字节Mac地址 | 0x01 | XX |
TIP
操作结果:
0x01成功
(40)录入卡片
1、主机发送
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 超时时间 | 存储类型 | 被替换的ID | 时间戳(发送指令的时间) | 校验和 |
|---|---|---|---|---|---|---|---|---|
| 0x40 | 0x00 | 0x00,0x11 | 6字节Mac地址 | 0x01 | 0x00 | 0x00 0x01 | 0x19,0x09,0x0c,0x11,0x28,0x1e | XX |
TIP
储存类型(储存到空位):0x10按管理员存入,0x11按普通用户存入
储存类型(强制储存):0x20按管理员存入,0x21按普通用户存入,需要制定替换掉谁?
2、从机回复
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 操作结果 | 存入位置 | 校验和 |
|---|---|---|---|---|---|---|
| 0x40 | 0x00 | 0x00,0x0a | 6字节Mac地址 | 0x01 | 0x00,0x01 | XX |
TIP
结果:0x01成功
结果:0x02失败,空间满
结果:0x03失败,flash读写错误
结果:0x04失败,指定的ID无效,超出最大储存空间
结果:0x10失败,超时
(41)删除指定ID的卡片
1、主机发送
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 库类型 | 删除ID | 时间戳(发送指令的时间) | 校验和 |
|---|---|---|---|---|---|---|---|
| 0x41 | 0x00 | 0x00,0x10 | 6字节Mac地址 | 0x00 | 0x00 0x01 | 0x19,0x09,0x0c,0x11,0x28,0x1e | XX |
TIP
库类型:0x00删除管理员库,0x01删除普通用户库
2、从机回复
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 操作结果 | 校验和 |
|---|---|---|---|---|---|
| 0x41 | 0x00 | 0x00,0x08 | 6字节Mac地址 | 0x01 | XX |
TIP
结果:0x01成功
结果:0x04失败,指定的ID无效,超出最大储存空间
(42)清空卡片库
1、主机发送
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 库类型 | 时间戳(发送指令的时间) | 校验和 |
|---|---|---|---|---|---|---|
| 0x42 | 0x00 | 0x00,0x0e | 6字节Mac地址 | 0x01 | 0x19,0x09,0x0c,0x11,0x28,0x1e | XX |
TIP
库类型:0x00删除管理员库,0x01删除普通用户库,0x02删除全部
2、从机回复
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 操作结果 | 校验和 |
|---|---|---|---|---|---|
| 0x42 | 0x00 | 0x00,0x08 | 6字节Mac地址 | 0x01 | XX |
TIP
操作结果: 0x01成功,其他失败
(43)请求卡片库状态
1、主机发送
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 时间戳(发送指令的时间) | 校验和 |
|---|---|---|---|---|---|
| 0x43 | 0x00 | 0x00,0x0d | 6字节Mac地址 | 0x19,0x09,0x0c,0x11,0x28,0x1e | XX |
2、从机回复
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 本机卡片容量 | 位置数据 | 校验和 |
|---|---|---|---|---|---|---|
| 0x43 | 0x00 | 0x00,0x00 | 6字节Mac地址 | 0x7D | 0xA5,0x43,0xD5.... | XX |
TIP
重要:
本机卡片容量:1字节;0x7D转成10进制是125,则代表有125个卡片位置。
位置数据: 比如卡片有125个,而每个字节表示8个卡片数据,则125/8=15.625 向上取整后即有16个字节。将这16个字节分别各自转2进制,比如第一个字节是0xA5转二进制后是:10100101。这代表8个位置,如果是1则代表有数据,0代表无数据
(E0)开锁
1、主机发送
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 时间戳(发送指令的时间) | 校验和 |
|---|---|---|---|---|---|
| 0xE0 | 0x00 | 0x00,0x0d | 6字节Mac地址 | 0x19,0x09,0x0c,0x11,0x28,0x1e | XX |
加解密测试小工具
其他参数:
当前时间:
加密密钥:
2、从机回复
| 指令码 | 滚动码 | 数据长度 | 操作对象(MAC) | 操作结果 | 校验和 |
|---|---|---|---|---|---|
| 0xE0 | 0x00 | 0x00,0x08 | 6字节Mac地址 | 0x01 | XX |
TIP
操作结果:
0x01 成功;
0x05 MAC地址错误
(E1)开锁(LoRaWAN'923'专用)
1、主机发送(明文发送,无需加密)
| 指令码 | 操作对象(MAC) | 时间戳(unix时间戳转16进制) |
|---|---|---|
| 0xE1 | 6字节Mac地址 | 50c7de36 |
TIP
LORA专用:
指令:E1
完整:E1 + Mac地址 + 时间戳转16进制
例如:
Mac地址:A1A2A3A4A5A6
时间:2012-12-12 09:30:30 转 unix时间戳后是:1355275830,再转成16进制后是:50c7de36
拼接得到完整指令:E1A1A2A3A4A5A650c7de36
2、从机回复
参考01指令