com.rscja.deviceapi.interfaces

## Interface IUHF

- All Known Subinterfaces:
    IRFIDWithUHFA4NetWork, IRFIDWithUHFA4RS232, IRFIDWithUHFA4Uart, IRFIDWithUHFA8NetWork, IRFIDWithUHFA8RS232, IRFIDWithUHFA8Uart, IRFIDWithUHFRLM, IRFIDWithUHFUrxNetwork, IRFIDWithUHFUrxUart, IRFIDWithUHFUrxUsbToUart, IRFIDWithUHFUSB, IUHFA4, IUhfBle, IUHFOfAndroidUart, IUHFURx
  All Known Implementing Classes:
    RFIDWithUHFA4, RFIDWithUHFA4NetWork, RFIDWithUHFA4RS232, RFIDWithUHFA8, RFIDWithUHFA8NetWork, RFIDWithUHFA8RS232, RFIDWithUHFAxBase, RFIDWithUHFBLE, RFIDWithUHFRLM, RFIDWithUHFUART, RFIDWithUHFUrxNetwork, RFIDWithUHFUrxUart, RFIDWithUHFUrxUsbToUart, RFIDWithUHFUSB

      public interface IUHF

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `Bank_EPC` EPC存储区(EPC area)
    `static int` | `Bank_RESERVED` RESERVED存储区（RESERVED area）
    `static int` | `Bank_TID` TID存储区(TID area)
    `static int` | `Bank_USER` USER存储区(USER area)
    `static int` | `LockBank_ACCESS` 锁定的区域ACCESS (ACCESS LOCK area)
    `static int` | `LockBank_EPC` 锁定的区域EPC (EPC LOCK area)
    `static int` | `LockBank_KILL` 锁定的区域KILL (KILL LOCK area)
    `static int` | `LockBank_TID` 锁定的区域TID (TID LOCK area)
    `static int` | `LockBank_USER` 锁定的区域USER (USER LOCK area)
    `static int` | `LockMode_LOCK` 锁定模式:锁定(LOCK mode: lock)
    `static int` | `LockMode_OPEN` 锁定模式:开放(LOCK mode: Release)
    `static int` | `LockMode_PLOCK` 锁定模式:永久锁定(LOCK mode: Permanent LOCK)
    `static int` | `LockMode_POPEN` 锁定模式:永久开放(LOCK mode: Permanent release)
    `static char` | `UPDATE_UHF`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `blockWriteData(java.lang.String accessPwd, int filterBank, int filterPtr, int filterCnt, java.lang.String filterData, int bank, int ptr, int cnt, java.lang.String writeData)` 向标签写入数据(支持大数据标签写入)、当需要写入的标签数据比较大可以使用此函数写入 Write data into tag(support big-sized data writing), user could use this function when big-sized data need to be written.
    `boolean` | `eraseData(java.lang.String accessPwd, int bank, int ptr, int cnt)` 擦除数据，被擦除的数据块其内容将被设置成0. Data block that has been cleaned will be setup to 0.
    `boolean` | `eraseData(java.lang.String accessPwd, int filterBank, int filterPtr, int filterCnt, java.lang.String filterData, int bank, int ptr, int cnt)` 擦除指定标签的数据，被擦除的数据块其内容将被设置成0. Clean specific tag data, data block after cleaned will be set to 0.
    `boolean` | `free()` 关闭UHF模块 Switch OFF UHF module
    `java.lang.String` | `generateLockCode(java.util.ArrayList<java.lang.Integer> lockBank, int lockMode)` 获取锁定码 Get lock code
    `ConnectionStatus` | `getConnectStatus()` 获取UHF连接状态 Acquire UHF connection status
    `int` | `getCW()` 获取连续波设置 Acquire CW setup
    `InventoryModeEntity` | `getEPCAndTIDUserMode()` 获取当前循环盘点的模式(EPC或者EPC+TID或者EPC+TID+USER) Acquire current scan mode(EPC or EPC+TID or EPC+TID+USER)
    `int` | `getFrequencyMode()` 读取模块的工作模式 Read work mode of module
    `Gen2Entity` | `getGen2()` 获取Gen2参数 Acquire Gen2 parameter 获取GEN2参数值(Get GEN2 parameter value)
    `int` | `getProtocol()` 获取协议 Acquire protocol
    `int[]` | `getPwm()` 获取占空比，仅适用于R2000模块 acquire duty ratio, used for R2000 module only
    `int` | `getRFLink()` 获取链路参数 acquire link parameter
    `int` | `getTemperature()` 获取模块温度 Acquire module Temperature
    `java.lang.String` | `getVersion()` 读取UHF模块版本号 Read UHF module version
    `boolean` | `init(Context context)` 初始化UHF模块 Initiate UHF module
    `UHFTAGInfo` | `inventorySingleTag()` 单步识别标签 Identify tag in single mode
    `boolean` | `isWorking()` uhf 是否正在盘点
    `boolean` | `killTag(java.lang.String killPwd)` 销毁指定标签,默认密码(0x00 0x00 0x00 0x00)不能执行销毁 Kill specific tag, default password(0x00 0x00 0x00 0x00)
    `boolean` | `killTag(java.lang.String accessPwd, int filterBank, int filterPtr, int filterCnt, java.lang.String filterData)` 销毁指定标签 ,默认密码(0x00 0x00 0x00 0x00)不能执行销毁 Kill specific tag, default password(0x00 0x00 0x00 0x00)
    `boolean` | `lockMem(java.lang.String accessPwd, int bank, int ptr, int cnt, java.lang.String filterData, java.lang.String lockCode)` 锁定指定标签 Lock specific tag
    `boolean` | `lockMem(java.lang.String accessPwd, java.lang.String lockCode)` 锁定标签 Lock tag
    `java.lang.String` | `readData(java.lang.String accessPwd, int bank, int ptr, int cnt)` 读取标签数据 Read tag data
    `java.lang.String` | `readData(java.lang.String accessPwd, int filterBank, int filterPtr, int filterCnt, java.lang.String filterData, int bank, int ptr, int cnt)` 读取指定标签数据 Read specific tag data
    `UHFTAGInfo` | `readTagFromBuffer()` 获取缓冲区的标签数据 Get tag data from buffer `startInventoryTag()`启动识别标签之后，在子线程循环调用此函数不断获取缓冲区的标签信息，每次返回一张标签数据 `startInventoryTag()` After tag reading has been enabled, call this function in sub threads to get data information continously, return one tag information for each time. 在调用`stopInventory()`之后，应当退出子线程。 After call `stopInventory()`, exit sub threads.
    `void` | `setConnectionStatusCallback(ConnectionStatusCallback<java.lang.Object> btStatusCallback)` 设置UHF连接状态回调 Setup UHF continuous stauts call-back
    `boolean` | `setCW(int flag)` 设置连续波 Setup CW
    `boolean` | `setEPCAndTIDMode()` 设置循环盘点同时读取 EPC、TID 模式 Setup auto scan to acquire EPC, TID mode
    `boolean` | `setEPCAndTIDUserMode(int user_prt, int user_len)` 设置循环盘点同时读取 EPC、TID、USER 模式 Setup auto scan to acquire EPC, TID, User mode
    `boolean` | `setEPCMode()` 设置循环盘点只获取EPC的数据 Setup auto scan to acquire EPC only
    `boolean` | `setFastID(boolean enalbe)` 开关FastID功能 ON/OFF FastID function
    `boolean` | `setFilter(int bank, int ptr, int cnt, java.lang.String data)` 过滤循环盘点的标签，在`startInventoryTag()`循环盘点标签之前，可以设置要过滤的数据。 Filter tag in auto scan mode, before scanning tags `startInventoryTag()`, setup data that needs to be filtered. 设置过滤条件之后，盘点标签时将符合过滤条件的标签上传到缓存区`readTagFromBuffer()`。 After setup, upload filtered tags to buffer `readTagFromBuffer()`.
    `boolean` | `setFreHop(float fre)` 设置模块频点 Setup frequency Hop
    `boolean` | `setFrequencyMode(int freMode)` 设置模块的工作模式 Setup work mode of module
    `boolean` | `setGen2(Gen2Entity gen2Entity)` 设置 Gen2参数 Setup Gen2 parameter
    `void` | `setInventoryCallback(IUHFInventoryCallback inventoryCallback)`
    `boolean` | `setProtocol(int protocol)` 设置协议 Setup protocol
    `boolean` | `setPwm(int WorkTime, int WaitTime)` 设置占空比，仅适用于R2000模块 setup duty ration, used for R2000 module
    `boolean` | `setRFLink(int mode)` 设置链路参数 Setup RFlink
    `boolean` | `setTagFocus(boolean enalbe)` 开关TagFocus功能 ON/OFF TagFocus
    `boolean` | `startInventoryTag()` 启动识别Tag循环，只是开启识别Tag循环，之后将识别到的标签号上传到缓冲区， `readTagFromBuffer()` Enable Tag auto reading and upload tag number to buffer, `readTagFromBuffer()` 用于从缓冲区读取一个标签号数据，开启循环识别之后，模块只能响应`stopInventory()`函数 。 Read tag data from buffer, after switch on auto reading, module will give feedback to `stopInventory()` only.
    `boolean` | `stopInventory()` 停止循环识别，在调用此函数之后应当退出循环获取缓冲区的标签信息的子线程 Stop auto reading, after call this function to exit sub threads of tag data of buffer.
    `boolean` | `uhfBlockPermalock(java.lang.String accessPwd, int filterBank, int filterPtr, int filterCnt, java.lang.String filterData, int ReadLock, int uBank, int uPtr, int uRange, byte[] uMaskbuf)` 数据块操作
    `boolean` | `uhfJump2Boot()` uhf进入boot模式 ，开始升级之前需要调用此函数 UHF enter boot mode, need to call this formula before upgrade
    `boolean` | `uhfJump2Boot(int type)`
    `boolean` | `uhfStartUpdate()` 开始升级uhf模块 Start upgrade UHF module
    `boolean` | `uhfStopUpdate()` 停止升级uhf模块，uhf模块升级完成后需要调用此函数 Stop upgrade UHF module, call this formula after module has been upgraded.
    `boolean` | `uhfUpdating(byte[] buff)` 升级uhf模块，发送uhf固件数据 Upgrade UHF module, send UHF firmware data
    `boolean` | `writeData(java.lang.String accessPwd, int bank, int ptr, int cnt, java.lang.String data)` 向标签写入数据 Write data in tag
    `boolean` | `writeData(java.lang.String accessPwd, int filterBank, int filterPtr, int filterCnt, java.lang.String filterData, int bank, int ptr, int cnt, java.lang.String writeData)` 将数据写入指定标签 Write data
    `boolean` | `writeDataToEpc(java.lang.String accessPwd, int filterBank, int filterPtr, int filterCnt, java.lang.String filterData, java.lang.String writeData)` 将数据写入到EPC,而且自动适配盘点的EPC长度 Write data to epc
    `boolean` | `writeDataToEpc(java.lang.String accessPwd, java.lang.String writeData)` 将数据写入到EPC,而且自动适配盘点的EPC长度 Write data to epc

- - ### Field Detail

    - #### UPDATE_UHF

          static final char UPDATE_UHF

      See Also:
        Constant Field Values

    - #### Bank_RESERVED

          static final int Bank_RESERVED

      RESERVED存储区（RESERVED area）
      See Also:
        Constant Field Values

    - #### Bank_EPC

          static final int Bank_EPC

      EPC存储区(EPC area)
      See Also:
        Constant Field Values

    - #### Bank_TID

          static final int Bank_TID

      TID存储区(TID area)
      See Also:
        Constant Field Values

    - #### Bank_USER

          static final int Bank_USER

      USER存储区(USER area)
      See Also:
        Constant Field Values

    - #### LockMode_LOCK

          static final int LockMode_LOCK

      锁定模式:锁定(LOCK mode: lock)
      See Also:
        Constant Field Values

    - #### LockMode_OPEN

          static final int LockMode_OPEN

      锁定模式:开放(LOCK mode: Release)
      See Also:
        Constant Field Values

    - #### LockMode_PLOCK

          static final int LockMode_PLOCK

      锁定模式:永久锁定(LOCK mode: Permanent LOCK)
      See Also:
        Constant Field Values

    - #### LockMode_POPEN

          static final int LockMode_POPEN

      锁定模式:永久开放(LOCK mode: Permanent release)
      See Also:
        Constant Field Values

    - #### LockBank_KILL

          static final int LockBank_KILL

      锁定的区域KILL (KILL LOCK area)
      See Also:
        Constant Field Values

    - #### LockBank_ACCESS

          static final int LockBank_ACCESS

      锁定的区域ACCESS (ACCESS LOCK area)
      See Also:
        Constant Field Values

    - #### LockBank_EPC

          static final int LockBank_EPC

      锁定的区域EPC (EPC LOCK area)
      See Also:
        Constant Field Values

    - #### LockBank_TID

          static final int LockBank_TID

      锁定的区域TID (TID LOCK area)
      See Also:
        Constant Field Values

    - #### LockBank_USER

          static final int LockBank_USER

      锁定的区域USER (USER LOCK area)
      See Also:
        Constant Field Values

  - ### Method Detail

    - #### init

          boolean init(Context context)

      初始化UHF模块
      Initiate UHF module
      Parameters:
        `context` - context
      Returns:
        true:成功(success) false:失败(failure)

    - #### free

          boolean free()

      关闭UHF模块
      Switch OFF UHF module
      Returns:
        true:成功(success) false:失败(failure)

    - #### getVersion

          java.lang.String getVersion()

      读取UHF模块版本号
      Read UHF module version
      Returns:
        返回模块类型，null为读取失败(Resture module type, null means read failure.)

    - #### getFrequencyMode

          int getFrequencyMode()

      读取模块的工作模式
      Read work mode of module
      Returns:
        返回工作模式，返回-1为失败 (return work mode, return -1 means failure)
        0x01：China Standard(840~845MHz)
        0x02：China Standard2(920~925MHz)
        0x04：Europe Standard(865~868MHz)
        0x08：USA(902-928MHz)
        0x16：Korea(917~923MHz)
        0x32: Japan(952~953MHz)
        0x33: South Africa(915~919MHz)
        0x34: China Taiwan(920~928Mhz)
        0x35:Vietnam(918~923MHz)
        0x36:Peru(915MHz-928MHz)
        0x37:Russia( 860MHz-867.6MHz)
        0x80:Morocco
        0x3E:Malaysia(919-923MHz)
        0x3F:Indonesia(920-923MHz)

    - #### setFrequencyMode

          boolean setFrequencyMode(int freMode)

      设置模块的工作模式
      Setup work mode of module
      Parameters:
        `freMode` - 0x01：China Standard(840~845MHz)
        0x02：China Standard2(920~925MHz)
        0x04：Europe Standard(865~868MHz)
        0x08：USA(902-928MHz)
        0x16：Korea(917~923MHz)
        0x32: Japan(952~953MHz)
        0x33: South Africa(915~919MHz)
        0x34: China Taiwan
        0x35:Vietnam(918~923MHz)
        0x36:Peru(915MHz-928MHz)
        0x37:Russia( 860MHz-867.6MHz)
        0x80 Morocco
        0x3B:Malaysia 0x3E:Australia(920-926MHz)
        0x3F:Indonesia(920-923MHz)
      Returns:
        true:成功(success) false:失败(failure)

    - #### startInventoryTag

          boolean startInventoryTag()

      启动识别Tag循环，只是开启识别Tag循环，之后将识别到的标签号上传到缓冲区， `readTagFromBuffer()`
      Enable Tag auto reading and upload tag number to buffer, `readTagFromBuffer()`
      用于从缓冲区读取一个标签号数据，开启循环识别之后，模块只能响应`stopInventory()`函数 。
      Read tag data from buffer, after switch on auto reading, module will give feedback to `stopInventory()` only.
      `stopInventory()` 停止识别循环(Stop auto reading)
      `readTagFromBuffer()` 获取冲区的数据(get data from buffer)
      Returns:
        true:成功(success) false:失败(failure)

    - #### readTagFromBuffer

          UHFTAGInfo readTagFromBuffer()

      获取缓冲区的标签数据
      Get tag data from buffer
      `startInventoryTag()`启动识别标签之后，在子线程循环调用此函数不断获取缓冲区的标签信息，每次返回一张标签数据
      `startInventoryTag()` After tag reading has been enabled, call this function in sub threads to get data information continously, return one tag information for each time.
      在调用`stopInventory()`之后，应当退出子线程。
      After call `stopInventory()`, exit sub threads.
      Returns:
        标签数据(Tag data)

    - #### stopInventory

          boolean stopInventory()

      停止循环识别，在调用此函数之后应当退出循环获取缓冲区的标签信息的子线程
      Stop auto reading, after call this function to exit sub threads of tag data of buffer.
      Returns:
        true:成功(success) false:失败(failure)

    - #### generateLockCode

          java.lang.String generateLockCode(java.util.ArrayList<java.lang.Integer> lockBank,
                                            int lockMode)

      获取锁定码
      Get lock code
      Parameters:
        `lockBank` - 要锁定的区域 (lockBank areas that need to lock ):
        `LockBank_KILL`
        `LockBank_ACCESS`
        `LockBank_TID`
        `LockBank_USER`
        `LockBank_EPC`
        `lockMode` - 锁定的模式(lockMode lock modes):
        `LockMode_LOCK`
        `LockMode_OPEN`
        `LockMode_PLOCK`
        `LockMode_POPEN`
      Returns:
        返回锁定码，null表示失败(return lock code, null means failure)

    - #### lockMem

          boolean lockMem(java.lang.String accessPwd,
                          int bank,
                          int ptr,
                          int cnt,
                          java.lang.String filterData,
                          java.lang.String lockCode)

      锁定指定标签
      Lock specific tag
      Parameters:
        `accessPwd` - ACCESS PASSWORD (4 bites)
        `bank` - 标签的存储区(memory area):
        `Bank_RESERVED`、`Bank_EPC`、`Bank_TID`、`Bank_USER`
        `ptr` - 过滤起始地址,单位:bit (Filter start address,unit:bit)
        `cnt` - 过滤数据长度(单位:bit),当过滤的数据长度为0时，表示无过滤。 (Filter data length(unit:bit) when filter length is 0, it means no filter.)
        `filterData` - 过滤数据(Filter data)
        `lockCode` - 锁定码 (Lock Code)
      Returns:
        true:成功(success) false:失败(failure)

    - #### lockMem

          boolean lockMem(java.lang.String accessPwd,
                          java.lang.String lockCode)

      锁定标签
      Lock tag
      Parameters:
        `accessPwd` - ACCESS PASSWORD (4 bites)
        `lockCode` - 锁定码 (Lock Code)
      Returns:
        true:成功(success) false:失败(failure)

    - #### inventorySingleTag

          UHFTAGInfo inventorySingleTag()

      单步识别标签
      Identify tag in single mode
      Returns:
        返回标签信息(return tag infor)

    - #### readData

          java.lang.String readData(java.lang.String accessPwd,
                                    int bank,
                                    int ptr,
                                    int cnt)

      读取标签数据
      Read tag data
      Parameters:
        `accessPwd` - Access password
        `bank` - 读取的存储区(read storage area): `Bank_RESERVED`、`Bank_EPC`、`Bank_TID`、`Bank_USER`
        `ptr` - 读取的起始地址(单位:字) (read start address(unit: word))
        `cnt` - 读取的数据长度(单位:字) (read data length(unit: word))
      Returns:
        返回获取的数据, null表示读取失败 (return acquired data, null means read failure)

    - #### readData

          java.lang.String readData(java.lang.String accessPwd,
                                    int filterBank,
                                    int filterPtr,
                                    int filterCnt,
                                    java.lang.String filterData,
                                    int bank,
                                    int ptr,
                                    int cnt)

      读取指定标签数据
      Read specific tag data
      Parameters:
        `accessPwd` - ACCESS PASSWORD (4 bites)
        `filterBank` - 过滤的存储区(Filtered storage area ): `Bank_EPC`、`Bank_TID`、`Bank_USER`
        `filterPtr` - 过滤的起始地址(Filter start address)
        `filterCnt` - 过滤数据长度(单位:bit),当过滤的数据长度为0时，表示无过滤 ( Filter data length(unit:bit), when filter data length is 0, it means no filter.)
        `filterData` - 过滤的数据(Filtered data)
        `bank` - 读取的存储区(Read storage area) `Bank_RESERVED`、`Bank_EPC`、`Bank_TID`、`Bank_USER`
        `ptr` - 读取的起始地址(单位:字) (read start address(unit: word))
        `cnt` - 读取的数据长度(单位:字) (read data length(unit: word))
      Returns:
        返回获取的数据, null表示读取失败 (return acquired data, null means read failure)

    - #### writeData

          boolean writeData(java.lang.String accessPwd,
                            int bank,
                            int ptr,
                            int cnt,
                            java.lang.String data)

      向标签写入数据
      Write data in tag
      Parameters:
        `accessPwd` - ACCESS PASSWORD (4 bites)
        `bank` - 标签的存储区(Storage area):`Bank_RESERVED`、`Bank_EPC`、`Bank_TID`、`Bank_USER`
        `ptr` - 起始地址的偏移量(start address(unit: word))
        `cnt` - 数据的长度（Word为单位，不能为0）(Data length(Word is unit, cannot be 0))
        `data` - 要写入的数据,十六进制格式 (Data format should be hexvalue)
      Returns:
        true:成功(success) false:失败(failure)

    - #### writeData

          boolean writeData(java.lang.String accessPwd,
                            int filterBank,
                            int filterPtr,
                            int filterCnt,
                            java.lang.String filterData,
                            int bank,
                            int ptr,
                            int cnt,
                            java.lang.String writeData)

      将数据写入指定标签
      Write data
      Parameters:
        `accessPwd` - ACCESS PASSWORD (4 bites)
        `filterBank` - 过滤的存储区(Filtered storage area ): `Bank_EPC`、`Bank_TID`、`Bank_USER`
        `filterPtr` - 过滤的起始地址(Filter start address)
        `filterCnt` - 过滤数据长度(单位:bit),当过滤的数据长度为0时，表示无过滤 ( Filter data length(unit:bit), when filter data length is 0, it means no filter.)
        `filterData` - 过滤的数据(Filtered data)
        `bank` - 标签的存储区(Storage area): `Bank_RESERVED`、`Bank_EPC`、`Bank_TID`、`Bank_USER`
        `ptr` - 起始地址的偏移量(start address(unit: word))
        `cnt` - 数据的长度（Word为单位，不能为0）(Data length(Word is unit, cannot be 0))
        `writeData` - 要写入的数据,十六进制格式 (Data format should be hexvalue)
      Returns:
        true:成功(success) false:失败(failure)

    - #### writeDataToEpc

          boolean writeDataToEpc(java.lang.String accessPwd,
                                 int filterBank,
                                 int filterPtr,
                                 int filterCnt,
                                 java.lang.String filterData,
                                 java.lang.String writeData)

      将数据写入到EPC,而且自动适配盘点的EPC长度
      Write data to epc
      Parameters:
        `accessPwd` - ACCESS PASSWORD (4 bites)
        `filterBank` - 过滤的存储区(Filtered storage area ): `Bank_EPC`、`Bank_TID`、`Bank_USER`
        `filterPtr` - 过滤的起始地址(Filter start address)
        `filterCnt` - 过滤数据长度(单位:bit),当过滤的数据长度为0时，表示无过滤 ( Filter data length(unit:bit), when filter data length is 0, it means no filter.)
        `filterData` - 过滤的数据(Filtered data)
        `writeData` - 要写入的数据,十六进制格式 (Data format should be hexvalue)
      Returns:
        true:成功(success) false:失败(failure)

    - #### writeDataToEpc

          boolean writeDataToEpc(java.lang.String accessPwd,
                                 java.lang.String writeData)

      将数据写入到EPC,而且自动适配盘点的EPC长度
      Write data to epc
      Parameters:
        `accessPwd` - ACCESS PASSWORD (4 bites)
        `writeData` - 要写入的数据,十六进制格式 (Data format should be hexvalue)
      Returns:
        true:成功(success) false:失败(failure)

    - #### blockWriteData

          boolean blockWriteData(java.lang.String accessPwd,
                                 int filterBank,
                                 int filterPtr,
                                 int filterCnt,
                                 java.lang.String filterData,
                                 int bank,
                                 int ptr,
                                 int cnt,
                                 java.lang.String writeData)

      向标签写入数据(支持大数据标签写入)、当需要写入的标签数据比较大可以使用此函数写入
      Write data into tag(support big-sized data writing), user could use this function when big-sized data need to be written.
      Parameters:
        `accessPwd` - ACCESS PASSWORD (4 bites)
        `filterBank` - 过滤的存储区(Filtered storage area ): `Bank_EPC`、`Bank_TID`、`Bank_USER`
        `filterPtr` - 过滤的起始地址(Filter start address)
        `filterCnt` - 过滤数据长度(单位:bit),当过滤的数据长度为0时，表示无过滤 ( Filter data length(unit:bit), when filter data length is 0, it means no filter.)
        `filterData` - 过滤的数据(Filtered data)
        `bank` - 标签的存储区(Storage area): `Bank_RESERVED`、`Bank_EPC`、`Bank_TID`、`Bank_USER`
        `ptr` - 起始地址的偏移量(start address(unit: word))
        `cnt` - 数据的长度（Word为单位，不能为0）(Data length(Word is unit, cannot be 0))
        `writeData` - 要写入的数据,十六进制格式 (Data format should be hexvalue)
      Returns:
        true:成功(success) false:失败(failure)

    - #### eraseData

          boolean eraseData(java.lang.String accessPwd,
                            int filterBank,
                            int filterPtr,
                            int filterCnt,
                            java.lang.String filterData,
                            int bank,
                            int ptr,
                            int cnt)

      擦除指定标签的数据，被擦除的数据块其内容将被设置成0.
      Clean specific tag data, data block after cleaned will be set to 0.
      Parameters:
        `accessPwd` - ACCESS PASSWORD (4 bites)
        `filterBank` - 过滤的存储区(Filtered storage area ):`Bank_EPC`、`Bank_TID`、`Bank_USER`
        `filterPtr` - 过滤的起始地址(Filter start address)
        `filterCnt` - 过滤数据长度(单位:bit),当过滤的数据长度为0时，表示无过滤 ( Filter data length(unit:bit), when filter data length is 0, it means no filter.)
        `filterData` - 过滤的数据(Filtered data)
        `bank` - 擦除的数据区域(Cleaned data block):`Bank_RESERVED`、 `Bank_EPC`、`Bank_TID`、`Bank_USER`
        `ptr` - 擦除的起始地址(单位:字) (Cleaned start address(Unit: word))
        `cnt` - 擦除的数据长度(单位:字) (Cleaned data length(Unit: word))
      Returns:
        true:成功(success) false:失败(failure)

    - #### eraseData

          boolean eraseData(java.lang.String accessPwd,
                            int bank,
                            int ptr,
                            int cnt)

      擦除数据，被擦除的数据块其内容将被设置成0.
      Data block that has been cleaned will be setup to 0.
      Parameters:
        `accessPwd` - ACCESS PASSWORD (4 bites)
        `bank` - 擦除的数据区域(Cleaned data block):`Bank_RESERVED`、 `Bank_EPC`、`Bank_TID`、`Bank_USER`
        `ptr` - 擦除的起始地址(单位:字) (Cleaned start address(Unit: word))
        `cnt` - 擦除的数据长度(单位:字) (Cleaned data length(Unit: word))
      Returns:
        true:成功(success) false:失败(failure)

    - #### setFilter

          boolean setFilter(int bank,
                            int ptr,
                            int cnt,
                            java.lang.String data)

      过滤循环盘点的标签，在`startInventoryTag()`循环盘点标签之前，可以设置要过滤的数据。
      Filter tag in auto scan mode, before scanning tags `startInventoryTag()`, setup data that needs to be filtered.
      设置过滤条件之后，盘点标签时将符合过滤条件的标签上传到缓存区`readTagFromBuffer()`。
      After setup, upload filtered tags to buffer `readTagFromBuffer()`.
      Parameters:
        `bank` - 过滤的存储区(Filtered storage area ): `Bank_EPC`、`Bank_TID`、`Bank_USER`
        `ptr` - 过滤的起始地址(Filter start address)
        `cnt` - 过滤数据长度(单位:bit),当过滤的数据长度为0时，表示无过滤 ( Filter data length(unit:bit), when filter data length is 0, it means no filter.)
        `data` - 过滤的数据(Filtered data)
      Returns:
        true:成功(success) false:失败(failure)

    - #### killTag

          boolean killTag(java.lang.String killPwd)

      销毁指定标签,默认密码(0x00 0x00 0x00 0x00)不能执行销毁
      Kill specific tag, default password(0x00 0x00 0x00 0x00)
      Parameters:
        `killPwd` - 销毁密码(Kill password)
      Returns:
        true:成功(success) false:失败(failure)

    - #### killTag

          boolean killTag(java.lang.String accessPwd,
                          int filterBank,
                          int filterPtr,
                          int filterCnt,
                          java.lang.String filterData)

      销毁指定标签 ,默认密码(0x00 0x00 0x00 0x00)不能执行销毁
      Kill specific tag, default password(0x00 0x00 0x00 0x00)
      Parameters:
        `accessPwd` - 销毁密码(Kill password)
        `filterBank` - 过滤的存储区(Filtered storage area ):`Bank_EPC`、`Bank_TID`、`Bank_USER`
        `filterPtr` - 过滤的起始地址(Filter start address)
        `filterCnt` - 过滤数据长度(单位:bit),当过滤的数据长度为0时，表示无过滤 ( Filter data length(unit:bit), when filter data length is 0, it means no filter.)
        `filterData` - 过滤的数据(Filtered data)
      Returns:
        true:成功(success) false:失败(failure)

    - #### setProtocol

          boolean setProtocol(int protocol)

      设置协议
      Setup protocol
      Parameters:
        `protocol` - 0x00： ISO18000-6C
        0x01 ：GB/T 29768
        0x02 ： GJB 7377.1
        0x03 ： ISO 18000-6B
      Returns:
        true:成功(success) false:失败(failure)

    - #### getProtocol

          int getProtocol()

      获取协议
      Acquire protocol
      Returns:
        0x00 ：ISO18000-6C
        0x01 ： GB/T 29768
        0x02 ： GJB 7377.1

    - #### setFreHop

          boolean setFreHop(float fre)

      设置模块频点
      Setup frequency Hop
      Parameters:
        `fre` - 要设置的频点(frequency need to be set)
      Returns:
        true:成功(success) false:失败(failure)

    - #### setRFLink

          boolean setRFLink(int mode)

      设置链路参数
      Setup RFlink
      Parameters:
        `mode` - 0: DSB_ASK/FM0/40KH;
        1:PR_ASK/Miller4/250KHz;
        2:PR_ASK/Miller4/300KHz;
        3:DSB_ASK/FM0/400KHz
      Returns:
        true:成功(success) false:失败(failure)

    - #### getRFLink

          int getRFLink()

      获取链路参数
      acquire link parameter
      Returns:
        0: DSB_ASK/FM0/40KH;
        1:PR_ASK/Miller4/250KHz;
        2:PR_ASK/Miller4/300KHz;
        3:DSB_ASK/FM0/400KHz

    - #### setFastID

          boolean setFastID(boolean enalbe)

      开关FastID功能
      ON/OFF FastID function
      Parameters:
        `enalbe` - true：开(on)，false：关(off)
      Returns:
        true:成功(success) false:失败(failure)

    - #### setTagFocus

          boolean setTagFocus(boolean enalbe)

      开关TagFocus功能
      ON/OFF TagFocus
      Parameters:
        `enalbe` - true：开(on)，false：关(off)
      Returns:
        true:成功(success) false:失败(failure)

    - #### setEPCMode

          boolean setEPCMode()

      设置循环盘点只获取EPC的数据
      Setup auto scan to acquire EPC only
      Returns:
        true:成功(success) false:失败(failure)

    - #### setEPCAndTIDMode

          boolean setEPCAndTIDMode()

      设置循环盘点同时读取 EPC、TID 模式
      Setup auto scan to acquire EPC, TID mode
      Returns:
        true:成功(success) false:失败(failure)

    - #### setEPCAndTIDUserMode

          boolean setEPCAndTIDUserMode(int user_prt,
                                       int user_len)

      设置循环盘点同时读取 EPC、TID、USER 模式
      Setup auto scan to acquire EPC, TID, User mode
      Parameters:
        `user_prt` - USER区起始地址(Start addressin USER area)
        `user_len` - USER区长度(Data length in USER area)
      Returns:
        true:成功(success) false:失败(failure)

    - #### getEPCAndTIDUserMode

          InventoryModeEntity getEPCAndTIDUserMode()

      获取当前循环盘点的模式(EPC或者EPC+TID或者EPC+TID+USER)
      Acquire current scan mode(EPC or EPC+TID or EPC+TID+USER)
      Returns:
        返回null表示失败；
        return NULL means failure
        下标[0]表示当前模式 0：EPC，1:EPC+TID, 2：EPC+TID+USER ;
        0 means current mode 0：EPC，1:EPC+TID, 2：EPC+TID+USER 如果 当前模式为EPC+TID+User,则 下标 [1]:USRE区起始地址 , 下标 [2]:USRE区长度
        if current mode is EPC+TID+User, index [1]:User area start address,index [2]:User area data length.

    - #### getTemperature

          int getTemperature()

      获取模块温度
      Acquire module Temperature
      Returns:
        模块温度(Temperature)

    - #### uhfBlockPermalock

          boolean uhfBlockPermalock(java.lang.String accessPwd,
                                    int filterBank,
                                    int filterPtr,
                                    int filterCnt,
                                    java.lang.String filterData,
                                    int ReadLock,
                                    int uBank,
                                    int uPtr,
                                    int uRange,
                                    byte[] uMaskbuf)

      数据块操作
      Parameters:
        `accessPwd` - ACCESS PASSWORD (4 bites)
        `filterBank` - 过滤的存储区(Filtered storage area ):`Bank_EPC`、`Bank_TID`、`Bank_USER`
        `filterPtr` - 过滤的起始地址(Filter start address)
        `filterCnt` - 过滤数据长度(单位:bit),当过滤的数据长度为0时，表示无过滤 ( Filter data length(unit:bit), when filter data length is 0, it means no filter.)
        `filterData` - 过滤的数据(Filtered data)
        `ReadLock:` - 0表示读设置 1表示锁设置 (0 menas read config 1 means lock config)
        `uBank:` - 存储区域(Storage area): `Bank_RESERVED`、`Bank_EPC`、`Bank_TID`、`Bank_USER`
        `uPtr:` - 存储区域起始地址 ，默认为0，其中 1个块单元为16个块 (Start address in storage area, default is 0, 1 unit has 16 blocks)
        `uRange:` - 存储区域结束范围，默认为1，其中 1个块单元为16个块 (End of storage, default is 1, 1 unit has 16 blocks)
        `uMaskbuf:` - 设置锁MSAK， 高位在前，每个bit 代表为1个块，默认为2字节 (Setup lock MSAK, high level is at front, every bit has 1 block, default is 2 bytes.)
      Returns:
        true:成功(success) false:失败(failure)

    - #### setGen2

          boolean setGen2(Gen2Entity gen2Entity)

      设置 Gen2参数
      Setup Gen2 parameter
      Returns:
        true:成功(success) false:失败(failure)

    - #### getGen2

          Gen2Entity getGen2()

      获取Gen2参数
      Acquire Gen2 parameter
      获取GEN2参数值(Get GEN2 parameter value)
      Returns:
        GEN2参数值实体对象 (GEN2 parameter value entity object)

    - #### setPwm

          boolean setPwm(int WorkTime,
                         int WaitTime)

      设置占空比，仅适用于R2000模块
      setup duty ration, used for R2000 module
      Parameters:
        `WorkTime` - 工作时间（0~255毫秒）
        working time (0 to 255 ms)
        `WaitTime` - 空闲时间（0~255毫秒）
        free time (0 to 255 ms)
      Returns:
        true:成功(success) false:失败(failure)

    - #### getPwm

          int[] getPwm()

      获取占空比，仅适用于R2000模块
      acquire duty ratio, used for R2000 module only
      Returns:
        返回int数组，[0]工作时间，[1]等待时间;单位为毫秒。失败返回null
        return ini array, [0] working time, [1] waiting time; unit is ms. Failed return null

    - #### setCW

          boolean setCW(int flag)

      设置连续波
      Setup CW
      Parameters:
        `flag` - 1:表示开， 0：表示关
      Returns:
        true:成功(success) false:失败(failure)

    - #### getCW

          int getCW()

      获取连续波设置
      Acquire CW setup
      Returns:
        reutrn 1:表示开， 0：表示关

    - #### uhfJump2Boot

          boolean uhfJump2Boot()

      uhf进入boot模式 ，开始升级之前需要调用此函数
      UHF enter boot mode, need to call this formula before upgrade
      Returns:
        true:成功(success) false:失败(failure)

    - #### uhfJump2Boot

          boolean uhfJump2Boot(int type)

    - #### uhfStartUpdate

          boolean uhfStartUpdate()

      开始升级uhf模块
      Start upgrade UHF module
      Returns:
        true:成功(success) false:失败(failure)

    - #### uhfUpdating

          boolean uhfUpdating(byte[] buff)

      升级uhf模块，发送uhf固件数据
      Upgrade UHF module, send UHF firmware data
      Parameters:
        `buff` - 固件数据(buff firmware data)
      Returns:
        true:成功(success) false:失败(failure)

    - #### uhfStopUpdate

          boolean uhfStopUpdate()

      停止升级uhf模块，uhf模块升级完成后需要调用此函数
      Stop upgrade UHF module, call this formula after module has been upgraded.
      Returns:
        true:成功(success) false:失败(failure)

    - #### setConnectionStatusCallback

          void setConnectionStatusCallback(ConnectionStatusCallback<java.lang.Object> btStatusCallback)

      设置UHF连接状态回调
      Setup UHF continuous stauts call-back
      Parameters:
        `btStatusCallback` - 回调接口(Callback interface)

    - #### getConnectStatus

          ConnectionStatus getConnectStatus()

      获取UHF连接状态
      Acquire UHF connection status
      Returns:
        UHF连接状态(UHF connection status)

    - #### isWorking

          boolean isWorking()

      uhf 是否正在盘点
      Returns:

    - #### setInventoryCallback

          void setInventoryCallback(IUHFInventoryCallback inventoryCallback)