init
This commit is contained in:
commit
cc514ab4a2
51
.gitignore
vendored
Normal file
51
.gitignore
vendored
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
# Specifies intentionally untracked files to ignore when using Git
|
||||||
|
# http://git-scm.com/docs/gitignore
|
||||||
|
|
||||||
|
*~
|
||||||
|
*.sw[mnpcod]
|
||||||
|
.tmp
|
||||||
|
*.tmp
|
||||||
|
*.tmp.*
|
||||||
|
UserInterfaceState.xcuserstate
|
||||||
|
$RECYCLE.BIN/
|
||||||
|
|
||||||
|
*.log
|
||||||
|
log.txt
|
||||||
|
|
||||||
|
|
||||||
|
/.sourcemaps
|
||||||
|
/.versions
|
||||||
|
/coverage
|
||||||
|
|
||||||
|
# IDEs and editors
|
||||||
|
.idea/
|
||||||
|
.project
|
||||||
|
.classpath
|
||||||
|
.c9/
|
||||||
|
*.launch
|
||||||
|
.settings/
|
||||||
|
*.sublime-project
|
||||||
|
*.sublime-workspace
|
||||||
|
|
||||||
|
# Visual Studio Code
|
||||||
|
.vscode/*
|
||||||
|
!.vscode/settings.json
|
||||||
|
!.vscode/tasks.json
|
||||||
|
!.vscode/launch.json
|
||||||
|
!.vscode/extensions.json
|
||||||
|
.history/*
|
||||||
|
|
||||||
|
|
||||||
|
# Miscellaneous
|
||||||
|
/.angular
|
||||||
|
/.angular/cache
|
||||||
|
.sass-cache/
|
||||||
|
/connect.lock
|
||||||
|
/coverage
|
||||||
|
/libpeerconnection.log
|
||||||
|
testem.log
|
||||||
|
/typings
|
||||||
|
|
||||||
|
# System files
|
||||||
|
.DS_Store
|
||||||
|
Thumbs.db
|
10
README.md
Normal file
10
README.md
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
# 优博讯 PDA 的 RFID 读卡插件
|
||||||
|
|
||||||
|
不完善,只实际了基本的巡卡、读卡(EPC码、TID)的功能
|
||||||
|
|
||||||
|
## 已知问题
|
||||||
|
|
||||||
|
1. 在开始读卡后,再调用其它方法,将导致后续读到的卡信息无法返回前端。
|
||||||
|
|
||||||
|
## 示例App
|
||||||
|
https://m.shuto.cn:8681/public/ubxrfid-demo
|
18
package.json
Normal file
18
package.json
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"name": "cordova-plugin-ubx-rfid",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "Cordova UBX RFID Plugin",
|
||||||
|
"cordova": {
|
||||||
|
"id": "cordova-plugin-ubx-rfid",
|
||||||
|
"platforms": [
|
||||||
|
"android"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"keywords": [
|
||||||
|
"ecosystem:cordova",
|
||||||
|
"cordova-android"
|
||||||
|
],
|
||||||
|
"types": "./www/index.d.ts",
|
||||||
|
"author": "shuto",
|
||||||
|
"license": "MIT"
|
||||||
|
}
|
24
plugin.xml
Normal file
24
plugin.xml
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
<?xml version='1.0' encoding='utf-8'?>
|
||||||
|
<plugin id="cordova-plugin-ubx-rfid" version="1.0.0"
|
||||||
|
xmlns="http://apache.org/cordova/ns/plugins/1.0"
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
|
||||||
|
<name>Cordova UBX RFID Plugin</name>
|
||||||
|
|
||||||
|
<js-module name="cordova-plugin-ubx-rfid" src="www/ubx-rfid.js">
|
||||||
|
<clobbers target="cordova.plugin.ubxRfid" />
|
||||||
|
</js-module>
|
||||||
|
|
||||||
|
<platform name="android">
|
||||||
|
<config-file parent="/*" target="res/xml/config.xml">
|
||||||
|
<feature name="UbxRfid">
|
||||||
|
<param name="android-package" value="cordova.plugin.rfid.UbxRfid" />
|
||||||
|
</feature>
|
||||||
|
</config-file>
|
||||||
|
<config-file parent="/*" target="AndroidManifest.xml"></config-file>
|
||||||
|
<source-file src="src/android/UbxRfid.java" target-dir="src/cordova/plugin/rfid" />
|
||||||
|
<lib-file src="src/android/USDKLibrary-v2.3.0620.aar"/>
|
||||||
|
<framework src="src/android/build.gradle" custom="true" type="gradleReference" />
|
||||||
|
</platform>
|
||||||
|
|
||||||
|
</plugin>
|
BIN
src/android/USDKLibrary-v2.3.0620.aar
Executable file
BIN
src/android/USDKLibrary-v2.3.0620.aar
Executable file
Binary file not shown.
339
src/android/UbxRfid.java
Normal file
339
src/android/UbxRfid.java
Normal file
@ -0,0 +1,339 @@
|
|||||||
|
package cordova.plugin.rfid;
|
||||||
|
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
|
import com.ubx.usdk.RFIDSDKManager;
|
||||||
|
import com.ubx.usdk.rfid.RfidManager;
|
||||||
|
import com.ubx.usdk.rfid.aidl.IRfidCallback;
|
||||||
|
import com.ubx.usdk.util.SoundTool;
|
||||||
|
|
||||||
|
import org.apache.cordova.CallbackContext;
|
||||||
|
import org.apache.cordova.CordovaPlugin;
|
||||||
|
import org.apache.cordova.PluginResult;
|
||||||
|
import org.json.JSONArray;
|
||||||
|
import org.json.JSONException;
|
||||||
|
import org.json.JSONObject;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 优博讯超高频(UHF)RFID 读 EPC 插件
|
||||||
|
*/
|
||||||
|
public class UbxRfid extends CordovaPlugin {
|
||||||
|
|
||||||
|
private final String TAG = "UbxUHF";
|
||||||
|
private RfidManager rfidManager;
|
||||||
|
private ScanCallback callback;
|
||||||
|
public boolean RFID_INIT_STATUS = false;
|
||||||
|
public int readerType = 0;
|
||||||
|
private byte session = 0; // 值有 0、1、2、3 ,一般用 0或者1.
|
||||||
|
private SoundTool soundTool;
|
||||||
|
private CallbackContext callbackContext;
|
||||||
|
private boolean beep = true; // 是否响铃
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void pluginInitialize() {
|
||||||
|
super.pluginInitialize();
|
||||||
|
soundTool = SoundTool.getInstance(cordova.getContext());
|
||||||
|
this.callbackContext = null;
|
||||||
|
// openScanDevice(); // 放在这里,应用加载时会很慢
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean openScanDevice() {
|
||||||
|
boolean connect = RFIDSDKManager.getInstance().connect();
|
||||||
|
|
||||||
|
if (connect) {
|
||||||
|
Log.d(TAG, "initRfid() success.");
|
||||||
|
RFID_INIT_STATUS = true;
|
||||||
|
rfidManager = RFIDSDKManager.getInstance().getRfidManager();
|
||||||
|
readerType = rfidManager.getReaderType();//80为短距,其他为长距
|
||||||
|
Log.d(TAG, "initRfid: firmware = " + rfidManager.getFirmwareVersion());
|
||||||
|
Log.d(TAG, "initRfid: ReaderType = " + readerType);
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
Log.d(TAG, "initRfid fail.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class ScanCallback implements IRfidCallback {
|
||||||
|
@Override
|
||||||
|
public void onInventoryTag(String epc, final String tid, final String rssi) {
|
||||||
|
Log.e(TAG, "onInventoryTag:............... epc:" + epc + ", tid:" + tid + ", rssi:" + rssi);
|
||||||
|
if (callbackContext == null) {
|
||||||
|
Log.w(TAG, "callbackContext is NULL");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (beep) {
|
||||||
|
soundTool.playBeep(1);
|
||||||
|
}
|
||||||
|
JSONObject content = new JSONObject();
|
||||||
|
try {
|
||||||
|
content.put("epc", epc);
|
||||||
|
content.put("tid", tid);
|
||||||
|
content.put("rssi", rssi);
|
||||||
|
} catch (JSONException e) {
|
||||||
|
Log.w(TAG, e);
|
||||||
|
callbackContext.error(e.getMessage());
|
||||||
|
}
|
||||||
|
PluginResult pluginResult = new PluginResult(PluginResult.Status.OK, content);
|
||||||
|
pluginResult.setKeepCallback(true);
|
||||||
|
callbackContext.sendPluginResult(pluginResult);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 盘存结束回调(Inventory Command Operate End)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void onInventoryTagEnd() {
|
||||||
|
Log.d(TAG, "onInventoryTagEnd()");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setCallback() {
|
||||||
|
if (this.rfidManager != null) {
|
||||||
|
if (this.callback == null) {
|
||||||
|
this.callback = new ScanCallback();
|
||||||
|
this.rfidManager.registerCallback(callback);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Log.e(TAG, "rfidManager NOT exist");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
|
||||||
|
this.callbackContext = callbackContext;
|
||||||
|
if (action.equals("searchCard")) {
|
||||||
|
this.searchCard();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (action.equals("startSearchCard")) {
|
||||||
|
this.startSearchCard();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (action.equals("stopSearchCard")) {
|
||||||
|
this.stopSearchCard();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (action.equals("getPower")) {
|
||||||
|
this.getPower();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (action.equals("setPower")) {
|
||||||
|
this.setPower(args);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (action.equals("getDeviceInfo")) {
|
||||||
|
this.getDeviceInfo();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (action.equals("getScanInterval")) {
|
||||||
|
this.getScanInterval();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (action.equals("setScanInterval")) {
|
||||||
|
this.setScanInterval(args);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (action.equals("getBeep")) {
|
||||||
|
this.getBeep();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (action.equals("beepOn")) {
|
||||||
|
this.beepOn();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (action.equals("beepOff")) {
|
||||||
|
this.beepOff();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (action.equals("setBeep")) {
|
||||||
|
this.setBeep(args.getBoolean(0));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
Log.w(TAG, "Unrecognized action: " + action);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 开始巡卡
|
||||||
|
*/
|
||||||
|
private void startSearchCard() {
|
||||||
|
if (!this.tryConnect()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
PluginResult pluginResult = new PluginResult(PluginResult.Status.NO_RESULT);
|
||||||
|
pluginResult.setKeepCallback(true); // Keep callback
|
||||||
|
callbackContext.sendPluginResult(pluginResult);
|
||||||
|
rfidManager.startInventory(session);
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean tryConnect() {
|
||||||
|
if (!RFID_INIT_STATUS) {
|
||||||
|
if (!openScanDevice()) {
|
||||||
|
callbackContext.error("RFID 未初始化,可能未连接或不可使用");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
setCallback();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 停止巡卡
|
||||||
|
*/
|
||||||
|
private void stopSearchCard() {
|
||||||
|
if (!this.tryConnect()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
rfidManager.stopInventory();
|
||||||
|
callbackContext.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 巡一次卡
|
||||||
|
*/
|
||||||
|
private void searchCard() {
|
||||||
|
if (!this.tryConnect()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
PluginResult pluginResult = new PluginResult(PluginResult.Status.NO_RESULT);
|
||||||
|
pluginResult.setKeepCallback(true); // Keep callback
|
||||||
|
callbackContext.sendPluginResult(pluginResult);
|
||||||
|
rfidManager.inventorySingle();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取天线功率
|
||||||
|
*/
|
||||||
|
private void getPower() {
|
||||||
|
if (!this.tryConnect()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
PluginResult pluginResult = new PluginResult(PluginResult.Status.OK, rfidManager.getOutputPower());
|
||||||
|
pluginResult.setKeepCallback(true); // Keep callback
|
||||||
|
callbackContext.sendPluginResult(pluginResult);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置天线功率
|
||||||
|
*
|
||||||
|
* @param message 功率,长距功率范围:0-33,短距版功率范围:0-26
|
||||||
|
* @throws JSONException
|
||||||
|
*/
|
||||||
|
private void setPower(JSONArray message) throws JSONException {
|
||||||
|
if (!this.tryConnect()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
int power = message.getInt(0);
|
||||||
|
int readerType = rfidManager.getReaderType();
|
||||||
|
int maxPower = readerType == 80 ? 26 : 33; // 80 短矩,其它 长矩
|
||||||
|
if (power > maxPower) {
|
||||||
|
power = maxPower;
|
||||||
|
} else if (power < 0) {
|
||||||
|
power = 0;
|
||||||
|
}
|
||||||
|
rfidManager.setOutputPower((byte) power);
|
||||||
|
PluginResult pluginResult = new PluginResult(PluginResult.Status.OK);
|
||||||
|
pluginResult.setKeepCallback(true); // Keep callback
|
||||||
|
callbackContext.sendPluginResult(pluginResult);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取巡卡间隔
|
||||||
|
*/
|
||||||
|
private void getScanInterval() {
|
||||||
|
if (!this.tryConnect()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
PluginResult pluginResult = new PluginResult(PluginResult.Status.OK, rfidManager.getScanInterval());
|
||||||
|
pluginResult.setKeepCallback(true); // Keep callback
|
||||||
|
callbackContext.sendPluginResult(pluginResult);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置巡卡间隔
|
||||||
|
* @param message 巡卡间隔,一般在 0-60 之间
|
||||||
|
* @throws JSONException
|
||||||
|
*/
|
||||||
|
private void setScanInterval(JSONArray message) throws JSONException {
|
||||||
|
if (!this.tryConnect()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
int interval = message.getInt(0);
|
||||||
|
if (interval > 60) {
|
||||||
|
interval = 60;
|
||||||
|
} else if (interval < 0) {
|
||||||
|
interval = 0;
|
||||||
|
}
|
||||||
|
rfidManager.setScanInterval(interval);
|
||||||
|
PluginResult pluginResult = new PluginResult(PluginResult.Status.OK);
|
||||||
|
pluginResult.setKeepCallback(true); // Keep callback
|
||||||
|
callbackContext.sendPluginResult(pluginResult);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置读卡响铃
|
||||||
|
*/
|
||||||
|
private void beepOn() {
|
||||||
|
this.setBeep(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关闭读卡响铃
|
||||||
|
*/
|
||||||
|
private void beepOff() {
|
||||||
|
this.setBeep(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setBeep(boolean beep) {
|
||||||
|
this.beep = beep;
|
||||||
|
PluginResult pluginResult = new PluginResult(PluginResult.Status.OK);
|
||||||
|
pluginResult.setKeepCallback(true); // Keep callback
|
||||||
|
callbackContext.sendPluginResult(pluginResult);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取是否响铃
|
||||||
|
*/
|
||||||
|
private void getBeep() {
|
||||||
|
PluginResult pluginResult = new PluginResult(PluginResult.Status.OK, this.beep);
|
||||||
|
pluginResult.setKeepCallback(true); // Keep callback
|
||||||
|
callbackContext.sendPluginResult(pluginResult);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取设备信息
|
||||||
|
*/
|
||||||
|
private void getDeviceInfo() {
|
||||||
|
if (!this.tryConnect()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
JSONObject content = new JSONObject();
|
||||||
|
try {
|
||||||
|
content.put("type", rfidManager.getReaderType() == 80 ? "短矩" : "长矩");
|
||||||
|
content.put("firmware", rfidManager.getFirmwareVersion());
|
||||||
|
content.put("power", rfidManager.getOutputPower());
|
||||||
|
content.put("scanInterval", rfidManager.getScanInterval());
|
||||||
|
content.put("beep", this.beep);
|
||||||
|
} catch (JSONException e) {
|
||||||
|
Log.w(TAG, e);
|
||||||
|
callbackContext.error(e.getMessage());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
PluginResult pluginResult = new PluginResult(PluginResult.Status.OK, content);
|
||||||
|
pluginResult.setKeepCallback(true); // Keep callback
|
||||||
|
callbackContext.sendPluginResult(pluginResult);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDestroy() {
|
||||||
|
if (rfidManager != null) {
|
||||||
|
rfidManager.unregisterCallback(callback);
|
||||||
|
rfidManager.disConnect();
|
||||||
|
rfidManager.release();
|
||||||
|
callback = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
3
src/android/build.gradle
Normal file
3
src/android/build.gradle
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
dependencies {
|
||||||
|
implementation files('libs/USDKLibrary-v2.3.0620.aar')
|
||||||
|
}
|
124
www/ubx-rfid.js
Normal file
124
www/ubx-rfid.js
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
var cordova = require('cordova');
|
||||||
|
var exec = require('cordova/exec');
|
||||||
|
|
||||||
|
var UbxRfid = function () {};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 读到卡信息(EPC/ID)时的回调
|
||||||
|
*
|
||||||
|
* @param {Object} epc info
|
||||||
|
*/
|
||||||
|
UbxRfid.prototype._epcs = function (info) {
|
||||||
|
if (info) {
|
||||||
|
cordova.fireWindowEvent('ubxrfid', info);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Error callback for error
|
||||||
|
*/
|
||||||
|
// UbxRfid.prototype._error = function (e) {
|
||||||
|
// console.log('Error : ' + e);
|
||||||
|
// };
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 巡一次卡
|
||||||
|
*
|
||||||
|
* @returns 卡信息
|
||||||
|
*/
|
||||||
|
UbxRfid.prototype.searchCard = async function () {
|
||||||
|
return new Promise((resolve, reject) => exec(resolve,reject, 'UbxRfid', 'searchCard', []));
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 开始巡卡
|
||||||
|
*/
|
||||||
|
UbxRfid.prototype.startSearchCard = async function () {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
exec(ubxRfid._epcs, reject, 'UbxRfid', 'startSearchCard', []);
|
||||||
|
resolve();
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 停止巡卡
|
||||||
|
*/
|
||||||
|
UbxRfid.prototype.stopSearchCard = async function () {
|
||||||
|
return new Promise((resolve, reject) => exec(resolve,reject, 'UbxRfid', 'stopSearchCard', []));
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取天线功率
|
||||||
|
*
|
||||||
|
* @returns 天线功率
|
||||||
|
*/
|
||||||
|
UbxRfid.prototype.getPower = async function () {
|
||||||
|
return new Promise((resolve, reject) => exec(resolve,reject, 'UbxRfid', 'getPower', []));
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置天线功率
|
||||||
|
*
|
||||||
|
* @param {*} data 功率值;长距功率范围:0-33,短距版功率范围:0-26
|
||||||
|
*/
|
||||||
|
UbxRfid.prototype.setPower = async function (data) {
|
||||||
|
return new Promise((resolve, reject) => exec(resolve,reject, 'UbxRfid', 'setPower', [data]));
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取巡卡时的间隔
|
||||||
|
*
|
||||||
|
* @returns 间隔值,应该在 0-60 之间
|
||||||
|
*/
|
||||||
|
UbxRfid.prototype.getScanInterval = async function () {
|
||||||
|
return new Promise((resolve, reject) => exec(resolve,reject, 'UbxRfid', 'getScanInterval', []));
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置巡卡间隔
|
||||||
|
*
|
||||||
|
* @param {*} data 间隔值,应该在 0-60 之间
|
||||||
|
*/
|
||||||
|
UbxRfid.prototype.setScanInterval = async function (data) {
|
||||||
|
return new Promise((resolve, reject) => exec(resolve,reject, 'UbxRfid', 'setScanInterval', [data]));
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取设备信息
|
||||||
|
*
|
||||||
|
* @returns 设备信息
|
||||||
|
*/
|
||||||
|
UbxRfid.prototype.getDeviceInfo = async function () {
|
||||||
|
return new Promise((resolve, reject) => exec(resolve,reject, 'UbxRfid', 'getDeviceInfo', []));
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置读卡响铃
|
||||||
|
*/
|
||||||
|
UbxRfid.prototype.beepOn = async function () {
|
||||||
|
return new Promise((resolve, reject) => exec(resolve,reject, 'UbxRfid', 'beepOn', []));
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关闭读卡响铃
|
||||||
|
*/
|
||||||
|
UbxRfid.prototype.beepOff = async function () {
|
||||||
|
return new Promise((resolve, reject) => exec(resolve,reject, 'UbxRfid', 'beepOff', []));
|
||||||
|
};
|
||||||
|
|
||||||
|
UbxRfid.prototype.setBeep = async function (data) {
|
||||||
|
return new Promise((resolve, reject) => exec(resolve,reject, 'UbxRfid', 'setBeep', [data]));
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取是否响铃
|
||||||
|
*
|
||||||
|
* @returns 是否响铃
|
||||||
|
*/
|
||||||
|
UbxRfid.prototype.getBeep = async function () {
|
||||||
|
return new Promise((resolve, reject) => exec(resolve,reject, 'UbxRfid', 'getBeep', []));
|
||||||
|
};
|
||||||
|
|
||||||
|
var ubxRfid = new UbxRfid();
|
||||||
|
|
||||||
|
module.exports = ubxRfid;
|
Loading…
Reference in New Issue
Block a user