com.rscja.deviceapi

## Class RFIDWithUHFBLE

- java.lang.Object
- - com.rscja.deviceapi.BluetoothReader
  - - com.rscja.deviceapi.RFIDWithUHFBLE

- All Implemented Interfaces:
    IBluetoothReader, IHandheldRFID, IReader, ISingleAntenna, IUHF, IUhfBle, IUhfReader

      public class RFIDWithUHFBLE
      extends BluetoothReader
      implements IUhfBle

  UHF模块低功耗蓝牙操作类
  UHF module operation type

  注意：
  Attention:
  1、使用前请确认您的机器已安装此模块。
  1. Make sure this module is installed before using your device.
  2、要正常使用模块需要在\libs\armeabi\, \libs\arm64-v8a\目录放置libDeviceAPI.so文件
  2. Put libDeviceAPI.so file in directory \libs\armeabi\ , \libs\arm64-v8a\ then module can be used normally.
  3、在操作设备前需要调用 `init(Context)` 打开设备，使用完后调用 `BluetoothReader.free()` 关闭设备
  3. call `init(Context)` to switch on the device before operating the device, call `BluetoothReader.free()` to switch off device after using.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class com.rscja.deviceapi.BluetoothReader

      `BluetoothReader.OnDataChangeListener`

  - ### Field Summary

    - ### Fields inherited from interface com.rscja.deviceapi.interfaces.IUHF

      `Bank_EPC, Bank_RESERVED, Bank_TID, Bank_USER, LockBank_ACCESS, LockBank_EPC, LockBank_KILL, LockBank_TID, LockBank_USER, LockMode_LOCK, LockMode_OPEN, LockMode_PLOCK, LockMode_POPEN, UPDATE_UHF`

    - ### Fields inherited from interface com.rscja.deviceapi.interfaces.IBluetoothReader

      `VERSION_BT_FIRMWARE, VERSION_BT_HARDWARE, VERSION_BT_SOFTWARE`

    - ### Fields inherited from interface com.rscja.deviceapi.interfaces.IReader

      `UPDATE_STM32`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods Deprecated 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.
    `void` | `connect(java.lang.String address)` 连接蓝牙(Connect Bluetooth)
    `void` | `connect(java.lang.String address, ConnectionStatusCallback<java.lang.Object> btStatusCallback)` 连接蓝牙(Connect Bluetooth)
    `boolean` | `deleteAllTagToFlash()` 删除R2、R6缓存的标签 Delete tag in buffer of R2 and R6
    `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.
    `java.lang.String` | `generateLockCode(java.util.ArrayList<java.lang.Integer> lockBank, int lockMode)` 获取锁定码 Get lock code
    `int` | `getAllTagTotalFromFlash()` 获取R2、R6 缓存的标签数量 Acquire tag amounts in buffer of R2 and R6.
    `int` | `getCW()` 获取连续波设置 Acquire CW setup
    `InventoryModeEntity` | `getEPCAndTIDUserMode()` 设置R6工作模式
    `int` | `getFrequencyMode()` 读取模块的工作模式 Read work mode of module
    `Gen2Entity` | `getGen2()` 获取Gen2参数 Acquire Gen2 parameter 获取GEN2参数值(Get GEN2 parameter value)
    `static RFIDWithUHFBLE` | `getInstance()`
    `int` | `getNewTagTotalFromFlash()`
    `int` | `getPower()` 读取模块的功率 Read module output power
    `int` | `getProtocol()` 获取协议 Acquire protocol
    `int[]` | `getPwm()` 获取占空比，仅适用于R2000模块 acquire duty ratio, used for R2000 module only
    `int` | `getReaderAwaitSleepTime()` 获取读写器等待休眠的时间
    `int` | `getRFLink()` 获取链路参数 acquire link parameter
    `java.util.List<UHFTAGInfo>` | `getTagDataFromFlash()` 获取R2、R6缓存的标签信息 Acquire tag information in buffer of R2 and R6
    `int` | `getTemperature()` 获取模块温度 Acquire module Temperature
    `java.lang.String` | `getVersion()` 读取UHF模块版本号 Read UHF module version
    `boolean` | `init(Context context)` 初始化蓝牙相关的服务(Intialize Bluetooth services)
    `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 `IUHF.startInventoryTag()`启动识别标签之后，在子线程循环调用此函数不断获取缓冲区的标签信息，每次返回一张标签数据 `IUHF.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. 在调用`IUHF.stopInventory()`之后，应当退出子线程。 After call `IUHF.stopInventory()`, exit sub threads.
    `java.util.List<UHFTAGInfo>` | `readTagFromBufferList_EpcTidUser()` Deprecated.
    `java.util.List<UHFTAGInfo>` | `readTagFromBufferList()` 获取缓冲区的标签数据 Acquire tag data in buffer `startInventoryTag()`启动识别标签之后，在子线程循环调用此函数不断获取缓冲区的标签信息，此函数只返回EPC数据 `startInventoryTag()` after enable identify tag, acquire tag information in buffer by this function in sub thread, this fucntion will return EPC data only 在调用`stopInventory()`之后，应当退出子线程。 after call `stopInventory()`, exit sub tread. 备注： 读写器主板版 2.20-2.29 此函数支持输出Rssi,不需要调用readTagFromBufferList_EpcTidUser
    `void` | `setConnectionStatusCallback(ConnectionStatusCallback<java.lang.Object> btStatusCallback)` 设置蓝牙连接状态的回调(Setup Bluetooth connection status 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)` 过滤循环盘点的标签，在`IUHF.startInventoryTag()`循环盘点标签之前，可以设置要过滤的数据。 Filter tag in auto scan mode, before scanning tags `IUHF.startInventoryTag()`, setup data that needs to be filtered. 设置过滤条件之后，盘点标签时将符合过滤条件的标签上传到缓存区`IUHF.readTagFromBuffer()`。 After setup, upload filtered tags to buffer `IUHF.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` | `setPower(int power)` 设置模块的功率 Setup output power
    `boolean` | `setProtocol(int protocol)` 设置协议 Setup protocol
    `boolean` | `setPwm(int WorkTime, int WaitTime)` 设置占空比，仅适用于R2000模块 setup duty ration, used for R2000 module
    `boolean` | `setReaderAwaitSleepTime(int time)` 设置读写器等待休眠的时间。在读写器断开连接的状态下，即将进入休眠的时间。
    `boolean` | `setRFLink(int mode)` 设置链路参数 Setup RFlink
    `boolean` | `setTagFocus(boolean enalbe)` 开关TagFocus功能 ON/OFF TagFocus
    `boolean` | `startInventoryTag()` 启动识别Tag循环，只是开启识别Tag循环，之后将识别到的标签号上传到缓冲区， `IUHF.readTagFromBuffer()` Enable Tag auto reading and upload tag number to buffer, `IUHF.readTagFromBuffer()` 用于从缓冲区读取一个标签号数据，开启循环识别之后，模块只能响应`IUHF.stopInventory()`函数 。 Read tag data from buffer, after switch on auto reading, module will give feedback to `IUHF.stopInventory()` only.
    `boolean` | `startLocation(Context context, java.lang.String label, int bank, int ptr, IUHFLocationCallback locationCallback)` 开始定位 Start location
    `boolean` | `stopInventory()` 停止循环识别，在调用此函数之后应当退出循环获取缓冲区的标签信息的子线程 Stop auto reading, after call this function to exit sub threads of tag data of buffer.
    `boolean` | `stopLocation()` 停止定位 Stop location
    `boolean` | `uhfBlockPermalock(java.lang.String accessPwd, int FilterBank, int FilterStartaddr, int FilterLen, 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` | `uhfJump2BootSTM32()` 升级STM32主板需要调用此函数进入boot模式 Upgrade STM32 mainboard that need to call this function to enter boot mode.
    `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

    - ### Methods inherited from class com.rscja.deviceapi.BluetoothReader

      `blinkOfLed, closeLed, disconnect, free, getBattery, getBleHardwareVersion, getBluetoothVersion, getConnectStatus, getSTM32Version, openLed, scanBarcode, scanBarcodeToBytes, sendData, setBeep, setKeyEventCallback, setOnDataChangeListener, setRemoteBluetoothName, startScanBTDevices, stopScanBTDevices, triggerBeep`

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface com.rscja.deviceapi.interfaces.IUHF

      `free, getConnectStatus`

    - ### Methods inherited from interface com.rscja.deviceapi.interfaces.IBluetoothReader

      `disconnect, free, getBleHardwareVersion, getBluetoothVersion, getConnectStatus, sendData, setOnDataChangeListener, setRemoteBluetoothName, startScanBTDevices, stopScanBTDevices`

    - ### Methods inherited from interface com.rscja.deviceapi.interfaces.IReader

      `blinkOfLed, closeLed, getBattery, getSTM32Version, openLed, scanBarcode, scanBarcodeToBytes, setBeep, setKeyEventCallback, triggerBeep`

- - ### Method Detail

    - #### getInstance

          public static RFIDWithUHFBLE getInstance()

    - #### getVersion

          public java.lang.String getVersion()

      Description copied from interface: `IUHF`
      读取UHF模块版本号
      Read UHF module version
      Specified by:
        `getVersion` in interface `IUHF`
      Returns:
        返回模块类型，null为读取失败(Resture module type, null means read failure.)

    - #### getPower

          public int getPower()

      Description copied from interface: `ISingleAntenna`
      读取模块的功率
      Read module output power
      Specified by:
        `getPower` in interface `ISingleAntenna`
      Returns:
        返回功率，返回-1为失败(Return output power, return -1 means failure.)

    - #### setPower

          public boolean setPower(int power)

      Description copied from interface: `ISingleAntenna`
      设置模块的功率
      Setup output power
      Specified by:
        `setPower` in interface `ISingleAntenna`
      Parameters:
        `power` - 功率值(Power values)
      Returns:
        true:成功(success) false:失败(failure)

    - #### getFrequencyMode

          public int getFrequencyMode()

      Description copied from interface: `IUHF`
      读取模块的工作模式
      Read work mode of module
      Specified by:
        `getFrequencyMode` in interface `IUHF`
      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

          public boolean setFrequencyMode(int freMode)

      Description copied from interface: `IUHF`
      设置模块的工作模式
      Setup work mode of module
      Specified by:
        `setFrequencyMode` in interface `IUHF`
      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

          public boolean startInventoryTag()

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

    - #### readTagFromBuffer

          public UHFTAGInfo readTagFromBuffer()

      Description copied from interface: `IUHF`
      获取缓冲区的标签数据
      Get tag data from buffer
      `IUHF.startInventoryTag()`启动识别标签之后，在子线程循环调用此函数不断获取缓冲区的标签信息，每次返回一张标签数据
      `IUHF.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.
      在调用`IUHF.stopInventory()`之后，应当退出子线程。
      After call `IUHF.stopInventory()`, exit sub threads.
      Specified by:
        `readTagFromBuffer` in interface `IUHF`
      Returns:
        标签数据(Tag data)

    - #### readTagFromBufferList

          public java.util.List<UHFTAGInfo> readTagFromBufferList()

      获取缓冲区的标签数据
      Acquire tag data in buffer
      `startInventoryTag()`启动识别标签之后，在子线程循环调用此函数不断获取缓冲区的标签信息，此函数只返回EPC数据
      `startInventoryTag()` after enable identify tag, acquire tag information in buffer by this function in sub thread, this fucntion will return EPC data only
      在调用`stopInventory()`之后，应当退出子线程。
      after call `stopInventory()`, exit sub tread.
      备注： 读写器主板版 2.20-2.29 此函数支持输出Rssi,不需要调用readTagFromBufferList_EpcTidUser
      Specified by:
        `readTagFromBufferList` in interface `IUhfReader`
      Returns:
        标签数据(tag data)

    - #### readTagFromBufferList_EpcTidUser

          @Deprecated
          public java.util.List<UHFTAGInfo> readTagFromBufferList_EpcTidUser()

      Deprecated.
      获取缓冲区的标签数据
      Acquire tag data in buffer
      `startInventoryTag()`启动识别标签之后，在子线程循环调用此函数不断获取缓冲区的标签信息，此函数支持同时获取EPC、TID、User区域的数据
      `startInventoryTag()` enable identify tag, acquire tag information in buffer by this function in sub thread, this function supports acquiring data of EPC, TID and USER.
      备注：1.此函数需要配合特定的支持EPC+TID+USER 模式的读写器主板使用
      2.读写器主板版本大于2.06 直接调用`readTagFromBufferList()`函数 comment: this function needs to cooperate with STM32 mainboard which supports specific EPC+TID+USER mode.
      在调用`stopInventory()`之后，应当退出子线程。
      after call `stopInventory()`, need to exit sub thread.
      Specified by:
        `readTagFromBufferList_EpcTidUser` in interface `IUhfBle`
      Returns:
        获取uhf标签信息列表 acquire UHF tag information list

    - #### stopInventory

          public boolean stopInventory()

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

    - #### generateLockCode

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

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

    - #### lockMem

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

      Description copied from interface: `IUHF`
      锁定指定标签
      Lock specific tag
      Specified by:
        `lockMem` in interface `IUHF`
      Parameters:
        `accessPwd` - ACCESS PASSWORD (4 bites)
        `bank` - 标签的存储区(memory area):
        `IUHF.Bank_RESERVED`、`IUHF.Bank_EPC`、`IUHF.Bank_TID`、`IUHF.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

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

      Description copied from interface: `IUHF`
      锁定标签
      Lock tag
      Specified by:
        `lockMem` in interface `IUHF`
      Parameters:
        `accessPwd` - ACCESS PASSWORD (4 bites)
        `lockCode` - 锁定码 (Lock Code)
      Returns:
        true:成功(success) false:失败(failure)

    - #### inventorySingleTag

          public UHFTAGInfo inventorySingleTag()

      Description copied from interface: `IUHF`
      单步识别标签
      Identify tag in single mode
      Specified by:
        `inventorySingleTag` in interface `IUHF`
      Returns:
        返回标签信息(return tag infor)

    - #### readData

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

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

    - #### readData

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

      Description copied from interface: `IUHF`
      读取指定标签数据
      Read specific tag data
      Specified by:
        `readData` in interface `IUHF`
      Parameters:
        `accessPwd` - ACCESS PASSWORD (4 bites)
        `filterBank` - 过滤的存储区(Filtered storage area ): `IUHF.Bank_EPC`、`IUHF.Bank_TID`、`IUHF.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) `IUHF.Bank_RESERVED`、`IUHF.Bank_EPC`、`IUHF.Bank_TID`、`IUHF.Bank_USER`
        `ptr` - 读取的起始地址(单位:字) (read start address(unit: word))
        `cnt` - 读取的数据长度(单位:字) (read data length(unit: word))
      Returns:
        返回获取的数据, null表示读取失败 (return acquired data, null means read failure)

    - #### writeData

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

      Description copied from interface: `IUHF`
      向标签写入数据
      Write data in tag
      Specified by:
        `writeData` in interface `IUHF`
      Parameters:
        `accessPwd` - ACCESS PASSWORD (4 bites)
        `bank` - 标签的存储区(Storage area):`IUHF.Bank_RESERVED`、`IUHF.Bank_EPC`、`IUHF.Bank_TID`、`IUHF.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

          public 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)

      Description copied from interface: `IUHF`
      将数据写入指定标签
      Write data
      Specified by:
        `writeData` in interface `IUHF`
      Parameters:
        `accessPwd` - ACCESS PASSWORD (4 bites)
        `filterBank` - 过滤的存储区(Filtered storage area ): `IUHF.Bank_EPC`、`IUHF.Bank_TID`、`IUHF.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): `IUHF.Bank_RESERVED`、`IUHF.Bank_EPC`、`IUHF.Bank_TID`、`IUHF.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

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

      Description copied from interface: `IUHF`
      将数据写入到EPC,而且自动适配盘点的EPC长度
      Write data to epc
      Specified by:
        `writeDataToEpc` in interface `IUHF`
      Parameters:
        `accessPwd` - ACCESS PASSWORD (4 bites)
        `filterBank` - 过滤的存储区(Filtered storage area ): `IUHF.Bank_EPC`、`IUHF.Bank_TID`、`IUHF.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

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

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

    - #### blockWriteData

          public 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)

      Description copied from interface: `IUHF`
      向标签写入数据(支持大数据标签写入)、当需要写入的标签数据比较大可以使用此函数写入
      Write data into tag(support big-sized data writing), user could use this function when big-sized data need to be written.
      Specified by:
        `blockWriteData` in interface `IUHF`
      Parameters:
        `accessPwd` - ACCESS PASSWORD (4 bites)
        `filterBank` - 过滤的存储区(Filtered storage area ): `IUHF.Bank_EPC`、`IUHF.Bank_TID`、`IUHF.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): `IUHF.Bank_RESERVED`、`IUHF.Bank_EPC`、`IUHF.Bank_TID`、`IUHF.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

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

      Description copied from interface: `IUHF`
      擦除指定标签的数据，被擦除的数据块其内容将被设置成0.
      Clean specific tag data, data block after cleaned will be set to 0.
      Specified by:
        `eraseData` in interface `IUHF`
      Parameters:
        `accessPwd` - ACCESS PASSWORD (4 bites)
        `filterBank` - 过滤的存储区(Filtered storage area ):`IUHF.Bank_EPC`、`IUHF.Bank_TID`、`IUHF.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):`IUHF.Bank_RESERVED`、 `IUHF.Bank_EPC`、`IUHF.Bank_TID`、`IUHF.Bank_USER`
        `ptr` - 擦除的起始地址(单位:字) (Cleaned start address(Unit: word))
        `cnt` - 擦除的数据长度(单位:字) (Cleaned data length(Unit: word))
      Returns:
        true:成功(success) false:失败(failure)

    - #### eraseData

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

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

    - #### setFilter

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

      Description copied from interface: `IUHF`
      过滤循环盘点的标签，在`IUHF.startInventoryTag()`循环盘点标签之前，可以设置要过滤的数据。
      Filter tag in auto scan mode, before scanning tags `IUHF.startInventoryTag()`, setup data that needs to be filtered.
      设置过滤条件之后，盘点标签时将符合过滤条件的标签上传到缓存区`IUHF.readTagFromBuffer()`。
      After setup, upload filtered tags to buffer `IUHF.readTagFromBuffer()`.
      Specified by:
        `setFilter` in interface `IUHF`
      Parameters:
        `bank` - 过滤的存储区(Filtered storage area ): `IUHF.Bank_EPC`、`IUHF.Bank_TID`、`IUHF.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

          public boolean killTag(java.lang.String killPwd)

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

    - #### killTag

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

      Description copied from interface: `IUHF`
      销毁指定标签 ,默认密码(0x00 0x00 0x00 0x00)不能执行销毁
      Kill specific tag, default password(0x00 0x00 0x00 0x00)
      Specified by:
        `killTag` in interface `IUHF`
      Parameters:
        `accessPwd` - 销毁密码(Kill password)
        `filterBank` - 过滤的存储区(Filtered storage area ):`IUHF.Bank_EPC`、`IUHF.Bank_TID`、`IUHF.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

          public boolean setProtocol(int protocol)

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

    - #### getProtocol

          public int getProtocol()

      Description copied from interface: `IUHF`
      获取协议
      Acquire protocol
      Specified by:
        `getProtocol` in interface `IUHF`
      Returns:
        0x00 ：ISO18000-6C
        0x01 ： GB/T 29768
        0x02 ： GJB 7377.1

    - #### setFreHop

          public boolean setFreHop(float fre)

      Description copied from interface: `IUHF`
      设置模块频点
      Setup frequency Hop
      Specified by:
        `setFreHop` in interface `IUHF`
      Parameters:
        `fre` - 要设置的频点(frequency need to be set)
      Returns:
        true:成功(success) false:失败(failure)

    - #### setRFLink

          public boolean setRFLink(int mode)

      Description copied from interface: `IUHF`
      设置链路参数
      Setup RFlink
      Specified by:
        `setRFLink` in interface `IUHF`
      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

          public int getRFLink()

      Description copied from interface: `IUHF`
      获取链路参数
      acquire link parameter
      Specified by:
        `getRFLink` in interface `IUHF`
      Returns:
        0: DSB_ASK/FM0/40KH;
        1:PR_ASK/Miller4/250KHz;
        2:PR_ASK/Miller4/300KHz;
        3:DSB_ASK/FM0/400KHz

    - #### setFastID

          public boolean setFastID(boolean enalbe)

      Description copied from interface: `IUHF`
      开关FastID功能
      ON/OFF FastID function
      Specified by:
        `setFastID` in interface `IUHF`
      Parameters:
        `enalbe` - true：开(on)，false：关(off)
      Returns:
        true:成功(success) false:失败(failure)

    - #### setTagFocus

          public boolean setTagFocus(boolean enalbe)

      Description copied from interface: `IUHF`
      开关TagFocus功能
      ON/OFF TagFocus
      Specified by:
        `setTagFocus` in interface `IUHF`
      Parameters:
        `enalbe` - true：开(on)，false：关(off)
      Returns:
        true:成功(success) false:失败(failure)

    - #### setEPCMode

          public boolean setEPCMode()

      Description copied from interface: `IUHF`
      设置循环盘点只获取EPC的数据
      Setup auto scan to acquire EPC only
      Specified by:
        `setEPCMode` in interface `IUHF`
      Returns:
        true:成功(success) false:失败(failure)

    - #### setEPCAndTIDMode

          public boolean setEPCAndTIDMode()

      Description copied from interface: `IUHF`
      设置循环盘点同时读取 EPC、TID 模式
      Setup auto scan to acquire EPC, TID mode
      Specified by:
        `setEPCAndTIDMode` in interface `IUHF`
      Returns:
        true:成功(success) false:失败(failure)

    - #### setEPCAndTIDUserMode

          public boolean setEPCAndTIDUserMode(int user_prt,
                                              int user_len)

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

    - #### getTemperature

          public int getTemperature()

      Description copied from interface: `IUHF`
      获取模块温度
      Acquire module Temperature
      Specified by:
        `getTemperature` in interface `IUHF`
      Returns:
        模块温度(Temperature)

    - #### uhfBlockPermalock

          public boolean uhfBlockPermalock(java.lang.String accessPwd,
                                           int FilterBank,
                                           int FilterStartaddr,
                                           int FilterLen,
                                           java.lang.String FilterData,
                                           int ReadLock,
                                           int uBank,
                                           int uPtr,
                                           int uRange,
                                           byte[] uMaskbuf)

      Description copied from interface: `IUHF`
      数据块操作
      Specified by:
        `uhfBlockPermalock` in interface `IUHF`
      Parameters:
        `accessPwd` - ACCESS PASSWORD (4 bites)
        `FilterBank` - 过滤的存储区(Filtered storage area ):`IUHF.Bank_EPC`、`IUHF.Bank_TID`、`IUHF.Bank_USER`
        `FilterStartaddr` - 过滤的起始地址(Filter start address)
        `FilterLen` - 过滤数据长度(单位: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)

    - #### setGen2

          public boolean setGen2(Gen2Entity gen2Entity)

      Description copied from interface: `IUHF`
      设置 Gen2参数
      Setup Gen2 parameter
      Specified by:
        `setGen2` in interface `IUHF`
      Returns:
        true:成功(success) false:失败(failure)

    - #### getGen2

          public Gen2Entity getGen2()

      Description copied from interface: `IUHF`
      获取Gen2参数
      Acquire Gen2 parameter
      获取GEN2参数值(Get GEN2 parameter value)
      Specified by:
        `getGen2` in interface `IUHF`
      Returns:
        GEN2参数值实体对象 (GEN2 parameter value entity object)

    - #### setPwm

          public boolean setPwm(int WorkTime,
                                int WaitTime)

      Description copied from interface: `IUHF`
      设置占空比，仅适用于R2000模块
      setup duty ration, used for R2000 module
      Specified by:
        `setPwm` in interface `IUHF`
      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

          public int[] getPwm()

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

    - #### setCW

          public boolean setCW(int flag)

      Description copied from interface: `IUHF`
      设置连续波
      Setup CW
      Specified by:
        `setCW` in interface `IUHF`
      Parameters:
        `flag` - 1:表示开， 0：表示关
      Returns:
        true:成功(success) false:失败(failure)

    - #### getCW

          public int getCW()

      Description copied from interface: `IUHF`
      获取连续波设置
      Acquire CW setup
      Specified by:
        `getCW` in interface `IUHF`
      Returns:
        reutrn 1:表示开， 0：表示关

    - #### uhfJump2BootSTM32

          public boolean uhfJump2BootSTM32()

      升级STM32主板需要调用此函数进入boot模式
      Upgrade STM32 mainboard that need to call this function to enter boot mode.
      Specified by:
        `uhfJump2BootSTM32` in interface `IUhfBle`
      Returns:
        true:成功(success) false:失败(failure)

    - #### uhfJump2Boot

          public boolean uhfJump2Boot()

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

    - #### uhfJump2Boot

          public boolean uhfJump2Boot(int type)

      Specified by:
        `uhfJump2Boot` in interface `IUHF`

    - #### uhfStartUpdate

          public boolean uhfStartUpdate()

      Description copied from interface: `IUHF`
      开始升级uhf模块
      Start upgrade UHF module
      Specified by:
        `uhfStartUpdate` in interface `IUHF`
      Returns:
        true:成功(success) false:失败(failure)

    - #### uhfUpdating

          public boolean uhfUpdating(byte[] buff)

      Description copied from interface: `IUHF`
      升级uhf模块，发送uhf固件数据
      Upgrade UHF module, send UHF firmware data
      Specified by:
        `uhfUpdating` in interface `IUHF`
      Parameters:
        `buff` - 固件数据(buff firmware data)
      Returns:
        true:成功(success) false:失败(failure)

    - #### uhfStopUpdate

          public boolean uhfStopUpdate()

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

    - #### setConnectionStatusCallback

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

      Description copied from interface: `IBluetoothReader`
      设置蓝牙连接状态的回调(Setup Bluetooth connection status call back)
      Specified by:
        `setConnectionStatusCallback` in interface `IBluetoothReader`
      Specified by:
        `setConnectionStatusCallback` in interface `IUHF`
      Overrides:
        `setConnectionStatusCallback` in class `BluetoothReader`
      Parameters:
        `btStatusCallback` - 蓝牙连接状态回调接口(Bluetooth connection status call back)

    - #### getEPCAndTIDUserMode

          public InventoryModeEntity getEPCAndTIDUserMode()

      设置R6工作模式
      Specified by:
        `getEPCAndTIDUserMode` in interface `IUHF`
      Parameters:
        `:实时模式(real-time` - mode)， 1:脱机模式(offline mode)
      Returns:
        true:成功(success) false:失败(failure)

    - #### getAllTagTotalFromFlash

          public int getAllTagTotalFromFlash()

      Description copied from interface: `IUhfReader`
      获取R2、R6 缓存的标签数量
      Acquire tag amounts in buffer of R2 and R6.
      Specified by:
        `getAllTagTotalFromFlash` in interface `IUhfReader`
      Returns:
        返回缓存标签的数量(return tag amounts in buffer.)

    - #### getNewTagTotalFromFlash

          public int getNewTagTotalFromFlash()

      Specified by:
        `getNewTagTotalFromFlash` in interface `IUhfReader`

    - #### deleteAllTagToFlash

          public boolean deleteAllTagToFlash()

      Description copied from interface: `IUhfReader`
      删除R2、R6缓存的标签
      Delete tag in buffer of R2 and R6
      Specified by:
        `deleteAllTagToFlash` in interface `IUhfReader`
      Returns:
        true:成功(success) false:失败(failure)

    - #### getTagDataFromFlash

          public java.util.List<UHFTAGInfo> getTagDataFromFlash()

      Description copied from interface: `IUhfReader`
      获取R2、R6缓存的标签信息
      Acquire tag information in buffer of R2 and R6
      Specified by:
        `getTagDataFromFlash` in interface `IUhfReader`
      Returns:
        返回缓存的标签列表(Return tag list of buffer)

    - #### setReaderAwaitSleepTime

          public boolean setReaderAwaitSleepTime(int time)

      Description copied from interface: `IUhfReader`
      设置读写器等待休眠的时间。在读写器断开连接的状态下，即将进入休眠的时间。
      Specified by:
        `setReaderAwaitSleepTime` in interface `IUhfReader`
      Parameters:
        `time` - (1-254)等待休眠时间单位:分钟，默认5分钟
      Returns:
        true:成功 false:失败

    - #### getReaderAwaitSleepTime

          public int getReaderAwaitSleepTime()

      Description copied from interface: `IUhfReader`
      获取读写器等待休眠的时间
      Specified by:
        `getReaderAwaitSleepTime` in interface `IUhfReader`
      Returns:
        返回等待休眠的时间, 返回-1表示获取失败

    - #### connect

          public void connect(java.lang.String address,
                              ConnectionStatusCallback<java.lang.Object> btStatusCallback)

      Description copied from interface: `IBluetoothReader`
      连接蓝牙(Connect Bluetooth)
      Specified by:
        `connect` in interface `IBluetoothReader`
      Overrides:
        `connect` in class `BluetoothReader`
      Parameters:
        `address` - 蓝牙地址(Bluetooth address )
        `btStatusCallback` - 蓝牙连接状态回调接口(Bluetooth connection status call back)

    - #### connect

          public void connect(java.lang.String address)

      Description copied from interface: `IBluetoothReader`
      连接蓝牙(Connect Bluetooth)
      Specified by:
        `connect` in interface `IBluetoothReader`
      Overrides:
        `connect` in class `BluetoothReader`
      Parameters:
        `address` - 蓝牙地址(Bluetooth address)

    - #### init

          public boolean init(Context context)

      Description copied from interface: `IBluetoothReader`
      初始化蓝牙相关的服务(Intialize Bluetooth services)
      Specified by:
        `init` in interface `IBluetoothReader`
      Specified by:
        `init` in interface `IUHF`
      Overrides:
        `init` in class `BluetoothReader`
      Parameters:
        `context` - context
      Returns:
        true:成功(success) false:失败(failure)

    - #### isWorking

          public boolean isWorking()

      Description copied from interface: `IUHF`
      uhf 是否正在盘点
      Specified by:
        `isWorking` in interface `IUHF`
      Returns:

    - #### startLocation

          public boolean startLocation(Context context,
                                       java.lang.String label,
                                       int bank,
                                       int ptr,
                                       IUHFLocationCallback locationCallback)

      开始定位
      Start location
      Specified by:
        `startLocation` in interface `IHandheldRFID`
      Parameters:
        `context` - context
        `label` - 要定位的标签(locate to the label)
        `bank` - 标签的存储区(Storage area):`IUHF.Bank_RESERVED`、`IUHF.Bank_EPC`、`IUHF.Bank_TID`、`IUHF.Bank_USER`
        `ptr` - 起始地址的偏移量(start address)
      Returns:
        true:成功(success) false:失败(failure)

    - #### setInventoryCallback

          public void setInventoryCallback(IUHFInventoryCallback inventoryCallback)

      Specified by:
        `setInventoryCallback` in interface `IUHF`

    - #### stopLocation

          public boolean stopLocation()

      停止定位 Stop location
      Specified by:
        `stopLocation` in interface `IHandheldRFID`
      Returns: