1.1.14 • Published 12 months ago

rfid-js-sdk v1.1.14

Weekly downloads
-
License
ISC
Repository
github
Last release
12 months ago

Rfid读写器JS-SDK

开始使用

步骤一:引入JS

通过script标签引入js

<script src="./rfid-js-sdk.es.js"></script>

通过npm安装

# npm 安装
npm install rfid-js-sdk
# 在ts中使用
import { RfidManager } from 'rfid-js-sdk';

步骤二:初始化模块

初始化模块只需要在页面加载完成调用一次即可

window.RfidManager.initAsync({
    success: (e) => {
    },
    fail: (e) => {
    }
})

接口调用说明

所有接口通过RfidManager对象调用,除了Util的方法其他所有接口统一返回格式如下:

  1. code 0表示成功,-1表示失败

  2. data 返回的数据

  3. msg 返回的信息

开发流程

盘点扫描模式

有默认设置的参数,如果不需要修改可以不用设置。

npm.io

单标签模式

单标签模式只需要设置标签类型,如果标签类型是 6C 标签,则可以不用设置。

npm.io

接口详情

初始化RFID模块

window.RfidManager.initAsync({
    success: (e) => {
        // 初始化成功
    },
    fail: (e) => {
        // 初始化失败
    }
})

启动盘点扫描

window.RfidManager.startInventoryScanAsync({
    success: (tagInfo) => {
        // 扫描完成
        // tagInfo 扫描放回的标签信息
    },
    fail: (e) => {
        // 扫描错误
    }
})

停止盘点扫描

window.RfidManager.stopInventoryScan()

读单标签

属于单标签读取操作,支持指定标签读取,也支持不指定标签读取;读取区域是 EPC 区只支持 6C标签。

const { data } = window.RfidManager.readTag(
    readBank: MemoryBank,
    address: number,
    blockCount: number,
    password: string,
    selectBank: MemoryBank | null,
    selectData: string | null,
)

参数说明:

  1. readBank:读取区域,EPCMemory(EPC 区)、UserMemory(用户区)、TIDMemory(TID 区)、ReservedMemory(保留区)

  2. address:读取的起始地址,EPC 区默认是 2 位,其他是 0

  3. blockCount:读取的块数,16 进制模式(1 块对应 4 个字符);ASCII码模式(1 块对应 2 个字符),GBK 和 UTF-8 模式(1 块对应 1 个字符)

  4. password:芯片默认密码是 00000000

  5. selectBank:指定操作标签区域,枚举类型 EPCMemory(EPC 区)、TIDMemory(TID 区),目前只支持这两个类型,为 null 值表示不指定操作标签区域

  6. selectData:指定操作的标签数据(tid),为 null 值表示不指定标签,会读取附近一个标签

读单标签EPC区

属于单标签读取操作;此操作会读取 Epc 区整个数据,不需要指定起始地址和读取块数,不需要指定标签,会随机读取附近一个标签(离读写器设备距离近、信号好)的标签;大约 5 秒没有读取到标签,则会提示找不到标签,该接口属于阻塞模式;只支持 6C 标签,6B 标签没有 EPC 区。

const { data } = window.RfidManager.readEpc()

读单标签Tid

属于单标签读取操作;此操作会读取 Tid 区整个数据,不需要指定起始地址和读取块数,不需要指定标签,会随机读取附近一个标签(离读写器设备距离近、信号好)的标签;大约 5 秒没有读取到标签,则会提示找不到标签,该接口属于阻塞模式;6C 标签和 6B 标签都支持。

const { data } = window.RfidManager.readTid()

写单标签

属于单标签写入操作,支持指定标签写入,也支持不指定标签写入,写入块数会自动根据写入数据进行计算;写入区域是 EPC 区时只支持 6C 标签。

const { data } = window.RfidManager.writeTag(
    writeBank: MemoryBank,
    address: number,
    tagData: string,
    password: string,
    selectBank: MemoryBank | null,
    selectData: string | null,
)

参数说明:

  1. writeBank:EPCMemory(EPC 区)、UserMemory(用户区),目前只支持这两个类型。

  2. address:写入标签的起始地址,EPC 区默认是 2 位,其他是 0。

  3. tagData:写入标签数据。

  4. password:默认密码是 00000000

  5. selectBank:指定操作标签区域,枚举类型 EPCMemory(EPC 区)、TIDMemor(TID 区),目前只支持这两个类型,为 null 值表示不指定操作标签区域。

  6. selectData:指定操作的标签数据,为 null 值表示不指定标签,会写入附近一个标签。

锁定/解锁标签

锁定/解锁指定标签的区域,锁定指定标签区域后不能读取和写入操作;解锁指定标签区域后可以读取和写入操作,只支持 6C 标签,6B 标签不支持。

const { data } = window.RfidManager.lockTag(
    lockType: LockType,
    password: string,
    lockBank: LockMemoryBank,
    selectBank: MemoryBank | null,
    selectData: string | null,
)

参数说明:

  1. lockType:锁定标签类型,LOCK(锁定)、UNLOCK(解锁)

  2. password:默认是 00000000

  3. lockBank:锁定标签区域,ALL(所有区域)、TID(TID 区域)、EPC(EPC 区域)、USERDATA(用户区域)、ACCESSPWD(访问密码区域)、KILLPWD(销毁密码区域)

  4. selectBank:指定操作标签区域,枚举类型 EPCMemory(EPC 区)、TIDMemory(TID 区),目前只支持这两个类型,为 null 值表示不指定操作标签区域。

  5. selectData:指定操作的标签数据,为 null 值表示不指定标签,会锁定或解锁附近一个标签。

设置参数

const { data } = window.RfidManager.setParameters(
    paraType: ParamType;
    paraValue: number
)
// 设置是否成功 true 成功 false 失败

获取参数

const { data } = window.RfidManager.getParameters(
    paraType: ParamType
)
// 返回参数值,与设置的参数值保持一致,除读写器的最小功率和最大功率之外。

设置盘点是否单次扫描

只针对盘点扫描生效,如果是单次扫描,扫描到一个标签则自动停止扫描。

const { data } = window.RfidManager.setInventorySingleScan(
    isNo: boolean
)
// isOn:是否单次扫描 true:单次扫描 false:循环扫描

设置盘点是否开启扫描声音

只针对盘点扫描生效,默认是有声音提示。

const { data } = window.RfidManager.setInventoryBeep(
    isNo: boolean
)
// isOn:是否开启扫描声音 true:有声音提示(默认) false:无声音

设置是否过滤盘点重复的标签

只针对盘点扫描生效,默认是停用。

const { data } = window.RfidManager.setInventoryFilterRepeatTag(
    isNo: boolean
)

设置是否过滤盘点的指定标签

只针对盘点扫描生效,默认停用

const { data } = window.RfidManager.setFilterInventoryTag(
    isNo: boolean
)

设置过滤盘点标签数据

只针对盘点扫描和

const { data } = window.RfidManager.setFilterInventoryData(
    filterData: string;
    memoryBank: MemoryBank;
)

设置盘点是否返回 RSSI 信息值

只针对盘点扫描生效,默认停用

const { data } = window.RfidManager.setInventoryReturnRssi(
    isNo: boolean;
)
/* isOn:是否启用返回 RSSI 值 true:启用(在 startInventoryScanAsync 接口中返回
tagInfo 会有 RSSI 值返回) false:停用(默认)
*/

RFID 模块下电

const { data } = window.RfidManager.powerControlOff()

RFID 模块上电

const { data } = window.RfidManager.powerControlOn()

释放 RFID 模块

const { data } = window.RfidManager.release()

类型说明:

  • MemoryBank:

    1)EPCMemory(EPC 区)

    2)UserMemory(用户区)

    3)TIDMemor(TID 区)

    4)ReservedMemory(保留区)

  • LockType:

    1)LOCK(锁定)

    2)UNLOCK(解锁)

  • LockMemoryBank:

    1)ALL(所有区域)

    2)TID(TID 区域)

    3)EPC(EPC 区域)

    4)USERDATA(用户区域)

    5)ACCESSPWD(访问密码区域)

    6)KILLPWD(销毁密码区域)

  • ParamType:

    1)PARA_TAG_TYPE(当前标签类型)

    2)PARA_POWER(读写器的当前功率)

    3)PARA_MIN_POWER(读写器的最小功率)

    4)PARA_MAX_POWER(读写器的最大功率)

    5)PARA_QVALUE(当前 Q 值)

    6)PARA_INVENTORY_APPLICATION_SCENE(当前盘点扫描应用场景)0 :单标签 ; 1:多标签 ; 2:多标签 2 ; 3:多标签 3

    7)PARA_INVENTORY_READ_CONTENT(当前盘点读取内容)

数据转换接口

16进制转字节 hexStrToByte

const str = window.RfidManager.hexStrToByte(str: string);

字节转16进制 byteToHexStr

const str = window.RfidManager.byteToHexStr(str: string);

字节转ascii码 byteToASCIIStr

const str = window.RfidManager.byteToASCIIStr(str: string);

ascii码转字节 asciiStrToByte

const str = window.RfidManager.asciiStrToByte(str: string);

字节转GBK编码 byteToGBKStr

const str = window.RfidManager.byteToGBKStr(str: string);

GBK转字节 gbkStrToByte

const str = window.RfidManager.gbkStrToByte(str: string);

字节转UTF-8 byteToUTFStr

const str = window.RfidManager.byteToUTFStr(str: string);

UTF-8转字节 utfStrToByte

const str = window.RfidManager.utfStrToByte(str: string);
1.1.14

12 months ago

1.1.13

12 months ago

1.1.12

12 months ago

1.1.11

12 months ago

1.1.10

12 months ago

1.1.9

12 months ago

1.1.8

12 months ago

1.1.7

12 months ago

1.1.6

12 months ago

1.1.5

12 months ago

1.1.4

12 months ago

1.1.3

12 months ago

1.1.2

12 months ago

1.1.1

12 months ago

1.1.0

12 months ago

1.0.9

12 months ago

1.0.8

12 months ago

1.0.7

12 months ago

1.0.6

12 months ago

1.0.5

12 months ago

1.0.4

12 months ago

1.0.3

12 months ago

1.0.2

12 months ago

1.0.1

12 months ago

1.0.0

12 months ago