更新记录
1.3.5(2024-07-29) 下载此版本
更新release释放设备接口
1.3.1(2023-10-22) 下载此版本
更新支持H6s不读标签的bug
1.3.0(2023-07-19) 下载此版本
更新为全局对象,切换页面不用重新初始化!退出时需要手动释放 调用 rfid.release()
查看更多平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:5.0 - 11.0 | armeabi-v7a:支持,arm64-v8a:支持,x86:未测试 | × |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios
注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择
使用说明
- 声明 : 本模块代码,仅兼容深圳市探索智能科技有限公司的设备,本公司保留最终解释权。
- 机型 : H1/H2/H3,S1,H5/H5s,H6/H6s/H7,H8,R0/R1/R4/R8/R16,D1/D2.
- 版本 : 1.3.2
- 日期 : 2023年11月19日(最后更新日期)
- 作者 : 施探宇
说明:
- 修改全局对象,使用完需要手动释放!
1. 引入模块
var rfid = uni.requireNativePlugin("Tanso-Rfid-Module-Android");
2. 添加消息接口
// 读写器消息(必须)
plus.globalEvent.addEventListener('OnRfidResponse', function(e) {
console.log("系统消息:" + e);
});
// 端口消息(非必须)
plus.globalEvent.addEventListener('OnPortEvent', function(e) {
console.log("端口事件:" + e.portType + "," + e.portEven);
});
// 蓝牙设备(非必须)
plus.globalEvent.addEventListener('OnPortMessage', function(e) {
console.log("蓝牙消息:" + e);
});
// 按键消息,扳机事件(非必须)
plus.globalEvent.addEventListener('OnKeyEvent', function(e) {
console.log("按键消息:" + e);
});
3. 初始化系统
//-------------------------------------------------------------------------
// 设备初始化 (不区分大小写)
//
// rfid : 读写器参数
// Reader#type='QM100/R2000/G2000/J2000/SLR1200',ch=1/2/4/8/16
//
// port : 端口参数
// BLE#index=<n>/addr='xx.xx.xx.xx.xx.xx'/name='RFID_READER'
// USB#index=<n>/sn=xxxxxxxxxxx
// UART#path='ttyS<n>'/index=<n>,baud=
// TCP#ip='xxx.xxx.xxx.xxx',port=<n>
// UDP#ip='xxx.xxx.xxx.xxx',port=<n>
// SIO#index=0
//
// device : 设备类型参数,(仅针对安卓手持机,其他机型省略) [可选参数]
// "H5/H5S/H6/H6S/H7/H8/H9/H10"
//
//-------------------------------------------------------------------------
rfid.rfidSystemInit({
'rfid' : "Reader#type='QM100',ch=1",
'port' : "BLE#dev='88:99:AA:BB:CC:DD'",
//'device' : 'H1'
},
(ret) => {});
4. 开始扫描[蓝牙设备]
rfid.rfidScanStart(
(ret) => {
// 发现设备,加入列表
if (IsContainDev(this.devices, ret)) {
// 已经添加,不再处理!
} else {
// 添加到列表
this.devices.push(ret);
}
});
5. 停止扫描[蓝牙设备]
rfid.rfidScanStop();
6. 连接到[设备]
// 默认序号
rfid.rfidConnectByIdx(dev.index);
// 或者 指定序号
rfid.rfidConnect({'sel' : 1},(ret)=>{});
// 或者 指定路径
rfid.rfidConnect({'path' : 'ttyS4'},(ret)=>{});
7. 开始轮询[标签]
rfid.rfidSystemStart(
(ret) => {
// 有效标签
if (ret.epc.length > 0) {
// 不添加重复的数据
if (IsContainTag(this.tags, ret)) {
// 重复标签,更新标签状态。
UpdateTag(this.tags, ret);
} else {
// 新标签,添加序号和计数器
ret.index = this.tags.length;、
// 0开始计数
ret.count = 0;
// 添加标签
this.tags.push(ret);
}
}
}
);
8. 停止轮询[标签]
rfid.rfidSystemStop();
9. 清空数据[标签]
rfid.rfidSystemClean();
10. 读取[标签]
rfid.rfidRead({
'epc' : tag.epc, // 标签:默认是EPC内容
'pass' : 0, // 密码:(0x00000000~0xFFFFFFFF)
'bank' : 'tid', // 区域:(epc/tid/rfu/usr)
'pos' : 0, // 起始:(0~63)
'len' : 12 // 长度:(1~64)(字节,必须是2的倍数)
},
(ret) => {}
);
11.写入[标签]
rfid.rfidWrite({
'epc' : tag.epc, // 标签:默认是EPC内容
'pass' : 0, // 密码:(0x00000000~0xFFFFFFFF)
'bank' : 'usr', // 区域:epc/tid/rfu/usr
'pos' : 0, // 起始:(0~63)
'dat' : '00' // 数据:hex格式
},
(ret) => {}
);
12.锁定[标签]
rfid.rfidLock({
'epc' : tag.epc, // 标签:默认是EPC内容
'pass' : 0, // 密码:(0x00000000~0xFFFFFFFF)
'area' : 'tid', // 区域:epc/tid/rfu/usr/access/kill
'type' : 'flash lock', // 类型:flash lock/flash open/otp lock/otp open
},
(ret) => {}
);
13.灭活[标签]
rfid.rfidKill({
'epc' : tag.epc, // 标签:默认是EPC内容
'pass' : 0, // 密码:灭活密码
},
(ret) => {}
);
14.运行状态
rfid.rfidIsRunning(
(ret) => {
console.log("运行状态:" + ret);
}
);
// 或者
var bRun = rfid.IsRunning();
console.log("运行状态:" + bRun);
15.设置参数
rfid.rfidSet({
'tx_power' : 33, // 功率:(0~33)
'region' : 'CHINA_900', // 区域:(CHINA_800/CHINA_900/USA/EROUP)
'antenna' : 2, // 天线:(0~15)
'gpio' : 1, // 端口:(0~3)
'hilo' : 0, // 高低:(0/1)
},(ret)=>{});
不同设备用例
1. 设备H1/H2(蓝牙便携机)
rfid.rfidSystemInit({
'rfid' : "Reader#type='M100',ch=1",
'port' : "BLE#addr='xx:xx:xx:xx:xx:xx'",
},
(ret) => {});
2. 设备H3/S1(蓝牙便携机)
rfid.rfidSystemInit({
'rfid' : "Reader#type='R2000',ch=1",
'port' : "BLE#addr='xx:xx:xx:xx:xx:xx'",
},
(ret) => {});
3. 设备H5/H5s (Android手持机)
rfid.rfidSystemInit({
'rfid' : "Reader#type='QM100',ch=1",
'port' : "SIO#index=0",
'device' : 'H5'
},
(ret) => {});
4. 设备H6/H6s (Android手持机)
rfid.rfidSystemInit({
'rfid' : "Reader#type='SLR1200',ch=1",
'port' : "SIO#index=0",
'device' : 'H6S'
},
(ret) => {});
5. 设备H8 (Android手持机)
rfid.rfidSystemInit({
'rfid' : "Reader#type='R2000',ch=1",
'port' : "USART#path='ttyS4'",
'device' : 'H8'
},
(ret) => {});
6. 设备R1/R4/R8/R16/D2 (固定式读写器)
// 串口模式
rfid.rfidSystemInit({
'rfid' : "Reader#type='R2000',ch=1/4/8/16", // 设备类型:ch=实际通道数
'port' : "USART#path='ttyS1',baud=", // 串口参数:path=实际的串口路径
},
(ret) => {});
// 网口模式
rfid.rfidSystemInit({
'rfid' : "Reader#type='R2000',ch=1/4/8/16", // 设备类型:ch=实际通道数
'port' : "TCP#ip='192.168.0.100',port=7000",// 网络接口
},
(ret) => {});
7. 使用红外扫描(H5/H5s/H6/H6s)
// 初始化
rfid.barcodeInit({
'dev': 'H6S', // H5/H5s/H6/H6s
});
// 打开设备
rfid.barcodeOpen({
'key': 'mode',
'val': 0
},
(ret) => {
console.log("barcode:" + JSON.stringify(ret));
});
// 开始扫描
rfid.barcodeScanStart();
// 停止扫描
rfid.barcodeScanStop();
// 关闭设备
rfid.barcodeClose();
// 释放
rfid.barcodeRelease();
联系方式
- 公司 : 深圳市探索智能科技有限公司
- 网站 : http://www.ts-rfid.com
- 作者 : 施探宇
- 电话 :
- 邮箱 : Alecksty@163.com
- 地址 : 广东省深圳市宝安区西乡航城工业区智汇创新中心B座西607室