更新记录
1.0.5(2026-07-10)
sdk 104 版本更新
1.0.0(2025-12-20)
一、首次提交
平台兼容性
uni-app(4.62)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | Android插件版本 | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|---|
| × | × | × | × | - | - | 4.4 | 1.0.5 | × | - |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | - | - | - | - | - | - | - |
uni-app x(4.76)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| - | - | - | - | - | - |
hl-iuhfq-uts — 设备型号=T91 Pro, iData Q3000 UHF RFID 读写器插件
基于 iUHFQ SDK V1.0.4,封装为 uni-app UTS 插件,支持 Android 平台。
这个插件能做什么?
- 读写 RFID 标签:盘点、读取、写入、锁定、销毁
- 蓝牙连接:扫描并连接 Q3000 蓝牙读写器
- 设备配置:功率、Session、盘点模式、区域、蜂鸣器等
- 固件升级:模块固件 + Q3000 固件
快速开始
第 1 步:导入插件
在页面中引入插件并获取客户端实例:
import { getUhfClient } from '@/uni_modules/hl-iuhfq-uts'
const uhf = getUhfClient()
第 2 步:注册标签回调(页面加载时)
必须做:在
onLoad里注册回调,否则盘点时收不到标签数据。
import { onLoad, onUnload } from '@dcloudio/uni-app'
onLoad(() => {
uhf.onTagCallback((res) => {
if (res.code !== 0) return
if (res.type === 'tagReport') {
// 盘点到标签:res.epc / res.tid / res.count
console.log('标签:', res.epc, 'TID:', res.tid)
} else if (res.type === 'inventoryRate') {
// 盘点速率:res.rate(标签/秒)
console.log('速率:', res.rate)
} else if (res.type === 'log') {
// 诊断日志(排查问题时会用到)
console.log('日志:', res.message)
}
})
})
第 3 步:初始化设备
有两种初始化方式,根据设备类型选择:
// 方式一:内置串口设备(直接初始化)
uhf.initDevice({ mode: 1 }, (res) => {
if (res.code === 0) {
console.log('初始化成功:', res.deviceModel)
// 可以开始盘点或配置参数了
} else {
console.log('初始化失败:', res.message)
// 如果失败,可能是蓝牙外接设备,请走方式二
}
})
// 方式二:蓝牙外接 Q3000(先扫描再连接)
// 1. 扫描蓝牙设备
uhf.scanBluetooth((res) => {
if (res.type === 'log') {
console.log(res.message) // 诊断日志
}
if (res.code === 0 && res.type === 'btDevice') {
// res.devices 是扫描到的设备列表 [{name, mac, rssi}]
// 选择 Q3000 设备进行连接
const target = res.devices.find(d => d.name.includes('Q3000'))
if (target) {
// 2. 连接设备(连接成功后自动初始化)
uhf.connectBluetooth({ mac: target.mac, mode: 1 }, (res) => {
if (res.type === 'log') console.log(res.message)
if (res.type === 'btConnected') {
console.log('蓝牙连接并初始化成功')
// 可以开始盘点了
}
})
}
}
})
第 4 步:开始盘点
// 最简单的方式:只盘 EPC(与官方 demo 一致,兼容性最好)
uhf.startInventory((res) => {
if (res.code === 0) {
console.log('盘点已开始,标签数据通过 onTagCallback 回调')
}
})
// 需要高级配置时:
uhf.startInventoryEx(
{
readMode: 0, // 0:仅EPC(推荐) / 1:EPC+TID / 2:EPC+TID+USER
invMode: 0, // 0:远距离 / 1:多标签
enableFastId: true,
isFilter: false // true 时需设置 filterBank/filterAddress/filterLength/filterData
},
(res) => {
if (res.code === 0) console.log('盘点已开始')
}
)
// 停止盘点
uhf.stopInventory((res) => {
// res.totalTags / res.uniqueTags / res.lastRate
})
接口列表
设备管理
| 方法 | 说明 | 参数 |
|---|---|---|
initDevice |
初始化设备(串口模式) | { mode?: 0\|1 } |
disconnect |
断开连接 | 无 |
getBatteryLevel |
获取电池电量 | 无 |
getCurrentMode |
获取当前工作模式 | 返回 currentMode: 0-扫描 / 1-RFID |
盘点
| 方法 | 说明 |
|---|---|
startInventory |
默认盘点(仅 EPC,与官方 demo 一致) |
startInventoryTag |
简单盘点(仅 EPC) |
startInventoryEx |
高级盘点(可配 readMode / 过滤等) |
stopInventory |
停止盘点 |
getTagList |
获取已盘点的标签列表 |
clearTagList |
清空标签列表 |
参数配置
| 方法 | 说明 | 参数 |
|---|---|---|
setPower / getPower |
天线功率 | { power: 0–33 } |
setSession / getSession |
Session | { session: 0–2 } |
setInventoryMode |
盘点模式 | { mode: 0-远距离 / 1-多标签 } |
setInventoryInterval |
盘点间歇 | { scanTime, waitTime } |
setPerformanceMode |
待机模式 | { mode: 0-常规 / 1-低功耗 } |
setRegion / getRegion |
工作区域 | { region: 0-北美 / 1-中国 / 2-欧洲 } |
setTarget / getTarget |
Target | { target: 0-A / 1-B / 2-A→B / 3-B→A } |
setRssiFilter / getRssiFilter |
RSSI 过滤 | { threshold } (0=关闭) |
setAutoPowerOffTime |
自动关机 | { time } (分钟) |
setBeep |
蜂鸣器 | { enable: boolean } |
switchTriggerMode |
扫描键锁定 | { lock: boolean } |
标签读写
| 方法 | 说明 |
|---|---|
readTag |
读取标签数据 |
writeTag |
写入标签数据 |
lockOrUnlockTag |
锁定/解锁标签 |
killTag |
销毁标签 |
存储区(bank)说明:0-保留区 / 1-EPC / 2-TID / 3-USER
// 读标签示例
uhf.readTag({ bank: 1, address: 2, length: 4, password: '00000000' }, (res) => {
if (res.code === 0) console.log('读取数据:', res.readData)
})
// 写标签示例
uhf.writeTag({ bank: 1, address: 2, data: '30001234', password: '00000000' }, (res) => {
if (res.code === 0) console.log('写入成功')
})
蓝牙
| 方法 | 说明 |
|---|---|
scanBluetooth |
扫描蓝牙设备(只显示名称含 Q3000 的设备) |
stopScanBluetooth |
停止扫描 |
connectBluetooth |
连接蓝牙设备(连接成功后自动初始化) |
固件升级
| 方法 | 说明 |
|---|---|
getQ3000Version |
查询 Q3000 版本 |
updateModuleFirmware |
模块固件升级 |
updateQ3000Firmware |
Q3000 固件升级 |
uhf.updateModuleFirmware({ path: '/sdcard/module.bin' }, (res) => {
if (res.type === 'firmwareProgress') console.log('进度:', res.progress + '%')
if (res.type === 'firmwareSuccess') console.log('升级完成')
})
回调数据结构
所有接口的回调都返回 HlIuhfqUtsResult:
| 字段 | 类型 | 说明 |
|---|---|---|
code |
number | 0=成功,非0=失败 |
message |
string? | 结果描述 |
type |
string? | 回调类型(见下表) |
level |
string? | type="log" 时的日志级别:info / warn / error |
type 字段含义:
| type 值 | 说明 |
|---|---|
tagReport |
盘点标签上报(含 epc/tid/count) |
inventoryRate |
盘点速率上报(含 rate) |
btDevice |
蓝牙扫描设备列表上报(含 devices) |
btConnected |
蓝牙连接成功 |
btDisconnected |
蓝牙已断开 |
btConnectionFailed |
蓝牙连接失败 |
firmwareProgress |
固件升级进度(含 progress 0-100) |
firmwareSuccess |
固件升级完成 |
firmwareFailure |
固件升级失败 |
log |
诊断日志(排查问题时查看 message 和 level) |
诊断日志
插件内置全链路诊断日志,通过 type='log' 回传前端,方便排查问题:
uhf.onTagCallback((res) => {
if (res.type === 'log') {
console.log(`[${res.level}] ${res.message}`)
// 在日志面板显示:addLog(res.message, res.level)
}
})
日志覆盖范围:设备初始化每一步、蓝牙状态/权限/扫描流程、SDK 回调、异常堆栈、系统信息(型号/品牌/系统版本)。
Demo 页面说明
| 页面 | 功能 |
|---|---|
pages/uhf/uhf-demo.vue |
主页:设备初始化、盘点、参数配置 |
pages/uhf/uhf-tag.vue |
标签读写:读取、写入、锁定、销毁 |
pages/uhf/uhf-bluetooth.vue |
蓝牙:扫描、连接、断开 |
pages/uhf/uhf-firmware.vue |
固件升级 |
每个页面的操作日志区域都有「复制」按钮,可以一键复制日志发给开发者排查问题。
注意事项
- 先初始化再操作:所有读写/盘点操作前必须先
initDevice或connectBluetooth成功 - 内置设备 vs 蓝牙设备:
- 内置串口设备 → 用
initDevice - 蓝牙外接 Q3000 → 用
scanBluetooth+connectBluetooth(连接成功自动初始化) - 如果
initDevice失败,大概率是蓝牙外接设备,请改走蓝牙连接
- 内置串口设备 → 用
- 盘点模式:
readMode=0(仅 EPC)兼容性最好,与官方一致;readMode=1/2(读 TID/USER)部分设备可能不兼容 - 回调注册:页面
onLoad必须调用onTagCallback,否则收不到标签数据 - 及时断开:页面
onUnload中调用disconnect,释放设备连接

收藏人数:
购买源码授权版(
试用
使用 HBuilderX 导入示例项目
赞赏(0)
下载 307
赞赏 0
下载 12490867
赞赏 1939
赞赏
京公网安备:11010802035340号