dxFingerZaz 指纹模块文档
目录
模块介绍
dxFingerZaz 是一个用于与 Zaz 指纹识别模块通信的 JavaScript 模块。该模块通过 UART(串口)与指纹识别硬件进行通信,提供了完整的指纹管理功能,包括指纹录入、验证、存储和管理等操作。
主要特性
- 连接测试:验证与指纹模块的连接状态
- 指纹管理:获取空ID、查询注册状态、删除指纹模板、统计注册数量
- 图像采集:捕获指纹图像、检测手指是否放置
- 模板生成:从图像生成指纹模板、合并多个模板
- 存储操作:存储、加载、上传、下载指纹模板
- 搜索匹配:在指纹库中搜索匹配的指纹
- 系统配置:读取和设置模块参数、获取设备信息
技术规格
- 通信方式:UART 串口通信
- 默认波特率:115200-8-N-1
- 指纹容量:默认 5000 个(可配置)
- 缓冲区数量:3 个 RAM 缓冲区(Buffer 0-2)
- 超时时间:默认 500ms(可配置)
依赖模块
dxStd.js- 标准库(用于 sleep 等操作)dxUart.js- UART 串口通信模块dxCommon.js- 通用工具函数dxLogger.js- 日志记录模块
快速开始
1. 导入模块
import dxFingerZaz from './js/dxFingerZaz.js';
2. 初始化模块
在使用任何功能之前,必须先初始化模块,配置串口参数:
dxFingerZaz.init({
id: 'fingerUart', // 连接ID,默认 'fingerUart'
type: '3', // UART类型,默认 '3'
path: '/dev/ttySLB1', // 串口路径,默认 '/dev/ttySLB1'
baudrate: '115200-8-N-1', // 波特率配置,默认 '115200-8-N-1'
total: 5000, // 指纹总容量,默认 5000
timeout: 500 // 超时时间(毫秒),默认 500
});
3. 测试连接
if (dxFingerZaz.test()) {
console.log("指纹模块连接成功");
} else {
console.error("指纹模块连接失败");
}
4. 基本使用示例
录入指纹
// 1. 获取一个空的指纹ID
const emptyId = dxFingerZaz.getEmptyId(1, 5000);
if (!emptyId) {
console.error("未找到可用的指纹ID");
return;
}
// 2. 检测手指是否放置
if (!dxFingerZaz.fingerDetect()) {
console.log("请放置手指");
return;
}
// 3. 采集指纹图像(第一次)
if (!dxFingerZaz.getImage()) {
console.error("采集指纹图像失败");
return;
}
// 4. 生成模板到 Buffer 0
if (!dxFingerZaz.generate(0)) {
console.error("生成模板失败");
return;
}
// 5. 提示用户再次放置手指
console.log("请再次放置手指");
// 6. 采集指纹图像(第二次)
if (!dxFingerZaz.getImage()) {
console.error("采集指纹图像失败");
return;
}
// 7. 生成模板到 Buffer 1
if (!dxFingerZaz.generate(1)) {
console.error("生成模板失败");
return;
}
// 8. 合并两个模板到 Buffer 0
if (!dxFingerZaz.merge(2, 0)) {
console.error("合并模板失败");
return;
}
// 9. 存储指纹模板
if (dxFingerZaz.storeChar(emptyId, 0)) {
console.log(`指纹录入成功,ID: ${emptyId}`);
} else {
console.error("存储指纹失败");
}
验证指纹
// 1. 检测手指
if (!dxFingerZaz.fingerDetect()) {
console.log("请放置手指");
return;
}
// 2. 采集指纹图像
if (!dxFingerZaz.getImage()) {
console.error("采集指纹图像失败");
return;
}
// 3. 生成模板
if (!dxFingerZaz.generate(0)) {
console.error("生成模板失败");
return;
}
// 4. 在指纹库中搜索匹配
const matchedId = dxFingerZaz.search(0, 1, 5000);
if (matchedId) {
console.log(`指纹匹配成功,ID: ${matchedId}`);
} else {
console.log("未找到匹配的指纹");
}
接口调用流程
注册指纹
采集指纹并录入,模块支持合并多次采集,用于提高识别成功率,建议采集次数1~3次,接口调用流程如下(支持直接保存特征值):

识别指纹

上传特征

特征值采集并下发多设备

下载模板(从主机到模块)
开始
↓
读取模板数据(十六进制字符串)
↓
下载模板到缓冲区 (downChar)
↓
存储模板 (storeChar)
↓
结束