com.rscja.deviceapi

## Class RFIDWithUHFA4NetWork

- java.lang.Object
- - com.rscja.deviceapi.RFIDWithUHFA4NetWork

- All Implemented Interfaces:
    IMultipleAntenna, IRFIDWithUHFA4, IRFIDWithUHFA4NetWork, IUHF, IUHFA4, IUHFURAxExtend

      public class RFIDWithUHFA4NetWork
      extends java.lang.Object
      implements IRFIDWithUHFA4NetWork

  操作URA4设备以及UHF模块相关接口。(通过其他android设备控制A4)
  Operate URA4 devices and related interfaces of UHF modules.
  操作步骤：
  Steps:
  第一步：先通过`setIPAndPort(String ip, int port)`设置要连接的IP地址, 再通过 `init(Context context)`连接读写器串口。同时可以设置回调接口 `setConnectionStatusCallback(ConnectionStatusCallback btStateCallback)`监听连接状态。
  Step 1: Connect to the serial port of the reader via`setIPAndPort(String ip, int port)`-> `init(Context context)`. At the same time, you can set the callback interface `setConnectionStatusCallback(ConnectionStatusCallback btStateCallback)` to monitor the connection state.
  第二步： 如果是设置参数，连接成功之后，调用对应的函数设置参数、读写操作。 如果是盘点标签先调用`setInventoryCallback(IUHFInventoryCallback inventoryCallback)`设置标签回调接口，有标签数据就会回调这个接口。 然后在调用`startInventoryTag()`函数开始执行盘点。 注意: 在盘点标签的时候rfid模块只能响应`stopInventory()`函数。
  Step 2: If it is to set parameters, after the connection is successful, call the corresponding function to set parameters, read and write operations. * If the inventory label is to call `setInventoryCallback(IUHFInventoryCallback inventoryCallback)` first to set the label callback interface, this interface will be called back when there is label data. * Then call the `startInventoryTag()` function to start the inventory. * Note: The rfid module can only respond to the `stopInventory()` function when inventorying tags.
  第三步：退出app调用 `free()`断开连接，如果断开之前正在盘点，请先停止盘点，在断开连接。
  Step 3: Exit the app and call `free()` to disconnect. If you are taking inventory before disconnecting, please stop the inventory first and then disconnecting.
  Example Usage:
  public void RFIDWithUHFNetworkA4Test(){
  RFIDWithUHFA4NetWork rfid=new RFIDWithUHFA4NetWork();
  rfid.setIPAndPort(String ip, int port);
  boolean result=rfid.init(Context context);
  if(!result){
  //connect fail
  return;
  }
  //connect success
  rfid.setConnectionStatusCallback(new ConnectionStatusCallback() {
  @Override
  public void getStatus(ConnectionStatus status, Object device) {
  if(status == ConnectionStatus.DISCONNECTED){
  System.out.println("disconnect");
  }
  }
  });
  //configuration parameters
  //rfidUr4.setFrequencyMode(xx)
  //rfidUr4.setPower(AntNameEnum.ANT1,30);
  rfid.setInventoryCallback(new IUHFInventoryCallback() {
  @Override
  public void callback(UHFTAGInfo uhftagInfo) {
  String epc= uhftagInfo.getEPC();
  String rssi= uhftagInfo.getRssi();
  //........
  }
  });
  if(rfid.startInventoryTag()){
  //success
  }else{
  //fail
  }
  rfid.stopInventory();
  //.................
  //disconnect uhf
  rfid.free();
  }

- - ### 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`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `RFIDWithUHFA4NetWork()`

  - ### Method Summary

    All Methods Instance Methods Concrete 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` | `closeWifi()` 关闭wifi
    `boolean` | `disableBeep()` 禁用蜂鸣器，打开蜂鸣器后盘点到标签会响应蜂鸣器。(Turn the buzzer off, and the label will respond to the buzzer after turning on the buzzer.)
    `boolean` | `enableBeep()` 启用蜂鸣器，打开蜂鸣器后盘点到标签会响应蜂鸣器。(Turn the buzzer on, and the label will respond to the buzzer after turning on the buzzer.)
    `boolean` | `eraseData(java.lang.String accessPwd, int bank, int ptr, int cnt)` 擦除数据，被擦除的数据块其内容将被设置成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) 示例代码:比如锁定EPC区和USER区 (Sample code: such as locking EPC area and USER area) List lockBank=new ArrayList<>(); lockBank.add(IUHF.LockBank_EPC); lockBank.add(IUHF.LockBank_USER); int lockMode =IUHF.LockMode_LOCK; String hexLockCode=generateLockCode(lockBank,lockMode);
    `java.lang.String` | `getAndroidDeviceHardwareVersion()` 获取android设备的硬件版本
    `java.util.List<AntennaState>` | `getANT()` 获取天线启用状态(Get the antenna enable status)
    `java.util.List<AntennaPowerEntity>` | `getAntennaPower()` 获取天线功率
    `int` | `getAntennaWorkTime(AntennaEnum antnum)` 获取天线工作时间(Get the working time of the antenna)
    `ConnectionStatus` | `getConnectStatus()` 获取连接状态(Acquire UHF connection status)
    `int` | `getCW()` 获取连续波状态(Get CW status)
    `InventoryModeEntity` | `getEPCAndTIDUserMode()` 获取当前设置的盘点模式 (Get the currently set inventory mode)
    `java.lang.String` | `getEthernetIpConfig()` 获取以太网配置信息
    `int` | `getFrequencyMode()` 获取模块的工作频率(Get the working frequency of the module)
    `Gen2Entity` | `getGen2()` 获取GEN2参数值(Get GEN2 parameter value)
    `int` | `getProtocol()` 获取协议(Get the protocol)
    `int[]` | `getPwm()` 获取占空比 (Get the duty cycle)
    `ReaderIPEntity` | `getReaderCurrentIp()` 获取设备当前的IP地址
    `int` | `getRFLink()` 获取链路参数(Get link parameters)
    `java.lang.String` | `getTcpServiceVersion()` 获取UHF TCP服务版本
    `int` | `getTemperature()` 获取UHF模块温度 (Get UHF module temperature)
    `java.lang.String` | `getVersion()` 读取UHF模块版本号(Read UHF module version)
    `java.lang.String` | `getWifiInfo()` 获取wifi热点信息,json格式数据
    `java.lang.String` | `getWifiIpConfig()` 获取wifi配置信息
    `boolean` | `init(Context context)` 连接读写器(Connect reader)
    `java.util.List<GPIStateEntity>` | `inputStatus()` 获取GPI输入状态
    `UHFTAGInfo` | `inventorySingleTag()` 单次盘点标签(Single Inventory Label)
    `boolean` | `isEnableBeep()` 是否禁用蜂鸣器
    `boolean` | `isWorking()` uhf 是否正在盘点
    `boolean` | `killTag(java.lang.String killPwd)` 销毁指定标签 ,默认密码(0x00 0x00 0x00 0x00)不能执行销毁 Destroy the label, the default password (0x00 0x00 0x00 0x00) cannot be destroyed
    `boolean` | `killTag(java.lang.String killPwd, int filterBank, int filterPtr, int filterCnt, java.lang.String filterData)` 销毁指定标签 ,默认密码(0x00 0x00 0x00 0x00)不能执行销毁 Destroy the specified label, the default password (0x00 0x00 0x00 0x00) cannot be destroyed
    `boolean` | `lockMem(java.lang.String accessPwd, int bank, int ptr, int cnt, java.lang.String filterData, java.lang.String lockCode)` 锁指定标签(Lock specified label) 示例代码:比如锁定EPC区和USER区 (Sample code: such as locking EPC area and USER area) List lockBank=new ArrayList<>(); lockBank.add(IUHF.LockBank_EPC); lockBank.add(IUHF.LockBank_USER); int lockMode =IUHF.LockMode_LOCK; String hexLockCode=generateLockCode(lockBank,lockMode); lockMem(accessPwd,bank,ptr,cnt,filterData,hexLockCode);
    `boolean` | `lockMem(java.lang.String accessPwd, java.lang.String lockCode)` 锁标签(lock label) 示例代码:比如锁定EPC区和USER区 (Sample code: such as locking EPC area and USER area) List lockBank=new ArrayList<>(); lockBank.add(IUHF.LockBank_EPC); lockBank.add(IUHF.LockBank_USER); int lockMode =IUHF.LockMode_LOCK; String hexLockCode=generateLockCode(lockBank,lockMode); lockMem(accessPwd,hexLockCode);
    `boolean` | `openWifi()` 打开wifi
    `boolean` | `output1Off()` gpio 3 off
    `boolean` | `output1On()` gpio 3 on
    `boolean` | `output2Off()` gpio 4 off
    `boolean` | `output2On()` gpio 4 on
    `boolean` | `output3Off()` gpio OptoCoupler3 off
    `boolean` | `output3On()` gpio OptoCoupler3 on
    `boolean` | `output4Off()` gpio OptoCoupler4 off
    `boolean` | `output4On()` gpio OptoCoupler4 on
    `void` | `outputOnAndOff(java.util.List<GPOEntity> list)` 控制全部GPO输出
    `boolean` | `outputWgData0Off()` gpio WgData0 off
    `boolean` | `outputWgData0On()` gpio WgData0 on
    `boolean` | `outputWgData1Off()` gpio WgData1 off
    `boolean` | `outputWgData1On()` gpio WgData1 on
    `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 the data of the specified tag)
    `UHFTAGInfo` | `readTagFromBuffer()` 接收循环盘点的标签数据 Receive label data for cycle count 创建一个子线程调用此方法获取标签数据，此方法非阻塞模式。此方法只负责从数据缓冲区获取标签数据，如果数据缓冲区没有标签数据，将返回NULL。 Create a child thread to call this method to get tag data, this method is non-blocking mode.
    `void` | `readyUpgradeTcpService()` 升级UHF Tcp服务器程序第一步,准备升级TCP服务程序
    `boolean` | `rebootDevice()` 重启设备
    `boolean` | `setANT(java.util.List<AntennaState> antStatus)` 设置天线启用状态(Set the antenna enable state)
    `boolean` | `setAntennaPower(AntennaEnum ant, int power)` 设置天线功率 (Set the antenna power)
    `boolean` | `setAntennaWorkTime(AntennaEnum antnum, int WorkTime)` 设置天线工作时间(Set the working time of the antenna)
    `void` | `setBuzzerOff()` 关闭蜂鸣器鸣叫，此函数与盘点无关
    `void` | `setBuzzerOn(int time)` 设置蜂鸣器鸣叫，此函数与盘点无关，不管是否盘点到标签都会鸣叫
    `void` | `setConnectionStatusCallback(ConnectionStatusCallback<java.lang.Object> btStatusCallback)` 设置监听连接状态(Set the listening connection status)
    `boolean` | `setCW(int flag)` 设置连续波(continuous waves)
    `boolean` | `setEPCAndTIDMode()` 设置盘点模式为EPC+TID，返回标签的EPC+TID数据 (Set the inventory mode to EPC+TID, and return the EPC+TID data of the label)
    `boolean` | `setEPCAndTIDUserMode(int user_prt, int user_len)` 设置盘点模式为EPC+TID+USER，返回标签的EPC+TID+USER数据 (Set the inventory mode to EPC+TID+USER, and return the EPC+TID+USER data of the label)
    `boolean` | `setEPCMode()` 设置盘点模式为EPC，只返回标签的EPC数据 (Set the inventory mode to EPC, and only return the EPC data of the label)
    `boolean` | `setEthernetConfigInfo(ReaderIPEntity ipconfig)` 设置以太网IP地址
    `boolean` | `setEthernetIpDynamicAssign()` 设置以太网获取动态IP
    `boolean` | `setFastID(boolean enalbe)` 开关FastID功能 (Switch FastID function)
    `boolean` | `setFilter(int bank, int ptr, int cnt, java.lang.String data)` 设置循环盘点符合过滤条件的标签，不符合过滤条件的标签将不会上传。注意：必须在循环盘点标签之前设置 Set up a round-robin inventory of tags that meet the filter conditions, and tags that do not meet the filter conditions will not be uploaded.
    `boolean` | `setFreHop(float fre)` 设置模块频点(Setup frequency Hop)
    `boolean` | `setFrequencyMode(int freMode)` 设置模块的工作频率(Set the operating frequency of the module)
    `boolean` | `setGen2(Gen2Entity gen2Entity)` 设置GEN2参数值 (Set GEN2 parameter value)
    `void` | `setGPIStateCallback(IGPIStateCallback uhfGPIOStateCallback)` 设置GPIO状态回调接口
    `void` | `setGPIStateReverse(boolean isReverse)`
    `void` | `setInventoryCallback(IUHFInventoryCallback inventoryCallback)` 设置盘点回调接口，接收循环盘点到的标签数据 Set the inventory callback interface to receive the label data from the cyclic inventory 备注：需要在开始循环盘点`startInventoryTag()`之前调用此方法。 Note: This method needs to be called before starting the loop inventory `startInventoryTag()`.
    `void` | `setIPAndPort(java.lang.String ip, int port)` 设置要连接的IP和端口 (Set the IP address and port to be connected)
    `boolean` | `setProtocol(int protocol)` 设置协议(Set protocol)
    `boolean` | `setPwm(int WorkTime, int WaitTime)` 设置占空比(Set the duty cycle)
    `boolean` | `setRFLink(int mode)` 设置链路参数(Set link parameters)
    `boolean` | `setTagFocus(boolean enalbe)` 开关TagFocus功能(Switch TagFocus function)
    `boolean` | `setTcpServicePort(int port)` 设置UHF TCP服务端口
    `void` | `setUpgradeProgress(IUpgradeProgress iUpgradeProgress)` 设置监听升级进度
    `boolean` | `setUpgradeTcpServiceData(byte[] data)` 升级UHF Tcp服务器程序第二步,设置要升级的APK数据
    `boolean` | `setWifiConfigInfo(WifiConfig wificonfig)` 设置wifi配置信息
    `boolean` | `startInventoryTag()` 开始循环识别标签。 获取标签数据有两种方式，只能二选一，推荐使用方式一。 Begin looping through the identification labels.
    `boolean` | `startUpgradeTcpService()` 升级UHF Tcp服务器程序第三步,发送数据到服务器
    `boolean` | `stopInventory()` 停止循环盘点标签(Stop cycle count labels)
    `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)` 数据块操作(Data block operation)
    `boolean` | `uhfJump2Boot()` uhf固件进入boot模式准备升级,调用此函数后需要延时2秒再调用 `uhfStartUpdate()` (uhf firmware enters boot mode to prepare for upgrade)
    `boolean` | `uhfJump2Boot(int type)`
    `boolean` | `uhfStartUpdate()` 开始升级UHF固件,调用此函数后需要延时2秒再调用 `uhfUpdating(byte[] buff)` (Start to upgrade UHF firmware)
    `boolean` | `uhfStopUpdate()` 停止升级UHF固件(Stop upgrading UHF firmware)
    `boolean` | `uhfUpdating(byte[] buff)` 发送uhf升级包 (Send uhf upgrade package)
    `boolean` | `writeData(java.lang.String accessPwd, int bank, int ptr, int cnt, java.lang.String data)` 将数据写入标签（write data to label）
    `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 to label）
    `boolean` | `writeDataToEpc(java.lang.String accessPwd, int filterBank, int filterPtr, int filterCnt, java.lang.String filterData, java.lang.String writeData)` 写标签到EPC (Write the label to the epc)
    `boolean` | `writeDataToEpc(java.lang.String accessPwd, java.lang.String writeData)` 写标签到EPC (Write the label to the epc)

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

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

- - ### Constructor Detail

    - #### RFIDWithUHFA4NetWork

          public RFIDWithUHFA4NetWork()

  - ### Method Detail

    - #### setIPAndPort

          public void setIPAndPort(java.lang.String ip,
                                   int port)

      设置要连接的IP和端口 (Set the IP address and port to be connected)
      Specified by:
        `setIPAndPort` in interface `IRFIDWithUHFA4NetWork`
      Parameters:
        `ip` - ip
        `port` - port

    - #### init

          public boolean init(Context context)

      连接读写器(Connect reader)
      Specified by:
        `init` in interface `IUHF`
      Parameters:
        `context` - context
      Returns:
        true:success false:fail

    - #### free

          public boolean free()

      断开uhf连接
      Switch OFF UHF module
      Specified by:
        `free` in interface `IUHF`
      Returns:
        true:成功(success) false:失败(failure)

    - #### getVersion

          public java.lang.String getVersion()

      读取UHF模块版本号(Read UHF module version)
      Specified by:
        `getVersion` in interface `IUHF`
      Returns:
        返回模块版本，null为读取失败(returns the module version, null means read failure)

    - #### getFrequencyMode

          public int getFrequencyMode()

      获取模块的工作频率(Get the working frequency of the 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: New Zealand
        0x80 Morocco

    - #### setFrequencyMode

          public boolean setFrequencyMode(int freMode)

      设置模块的工作频率(Set the operating frequency of the 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: New Zealand
        0x80 Morocco
      Returns:
        true:成功(success) false:失败(failure)

    - #### startInventoryTag

          public boolean startInventoryTag()

      开始循环识别标签。 获取标签数据有两种方式，只能二选一，推荐使用方式一。
      Begin looping through the identification labels. There are two ways to obtain label data, only one of the two can be selected. It is recommended to use method one.
      方式一:通过 `setInventoryCallback(IUHFInventoryCallback inventoryCallback)` 这个回调接口获取标签数据，需要在开始盘点之前调用setInventoryCallback方法。
      Method 1: Get the label data through the callback interface `setInventoryCallback(IUHFInventoryCallback inventoryCallback)`, you need to call the setInventoryCallback method before starting the inventory.
      方式二:创建一个子线程，在子线程里面通过调用readTagFromBuffer()方法获取标签数据。详情请参见`readTagFromBuffer()`。
      Method 2: Create a sub-thread, and get the tag data by calling the readTagFromBuffer() method in the sub-thread. See `readTagFromBuffer()` for details.
      备注：开启循环识别标签后模块只能响应`stopInventory()`函数 。
      Note: The module can only respond to the `stopInventory()` function after the loop identification tag is turned on.
      Specified by:
        `startInventoryTag` in interface `IUHF`
      Returns:
        true:成功(success) false:失败(failure)

    - #### readTagFromBuffer

          public UHFTAGInfo readTagFromBuffer()

      接收循环盘点的标签数据
      Receive label data for cycle count
      创建一个子线程调用此方法获取标签数据，此方法非阻塞模式。此方法只负责从数据缓冲区获取标签数据，如果数据缓冲区没有标签数据，将返回NULL。
      Create a child thread to call this method to get tag data, this method is non-blocking mode. This method is only responsible for getting the tag data from the data buffer. If the data buffer has no tag data, it will return NULL.
      备注：推荐使用回调函数的方式接收数据 `setInventoryCallback(IUHFInventoryCallback inventoryCallback)`
      Note: It is recommended to use the callback function to receive data `setInventoryCallback(IUHFInventoryCallback inventoryCallback)`
      Specified by:
        `readTagFromBuffer` in interface `IUHF`
      Returns:
        返回标签数据，当前数据缓冲区没有标签数据则返回null。
        returns the tag data, or null if there is no tag data in the current data buffer.
        实例代码(Example code):
        Thread thread=new Thread(new Runnable() {
        @Override
        public void run() {
        while (isInventory){
        UHFTAGInfo taginfo=readTagFromBuffer();
        if(taginfo==null){
        Thread.sleep(10);
        }
        String epc= taginfo.getEPC();
        String rssi= taginfo.getRssi();
        }
        }
        });

    - #### stopInventory

          public boolean stopInventory()

      停止循环盘点标签(Stop cycle count labels)
      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)

      获取锁定码(Get lock code)
      示例代码:比如锁定EPC区和USER区 (Sample code: such as locking EPC area and USER area) List lockBank=new ArrayList<>(); lockBank.add(IUHF.LockBank_EPC); lockBank.add(IUHF.LockBank_USER); int lockMode =IUHF.LockMode_LOCK; String hexLockCode=generateLockCode(lockBank,lockMode);
      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)

      锁指定标签(Lock specified label) 示例代码:比如锁定EPC区和USER区 (Sample code: such as locking EPC area and USER area) List lockBank=new ArrayList<>(); lockBank.add(IUHF.LockBank_EPC); lockBank.add(IUHF.LockBank_USER); int lockMode =IUHF.LockMode_LOCK; String hexLockCode=generateLockCode(lockBank,lockMode); lockMem(accessPwd,bank,ptr,cnt,filterData,hexLockCode);
      Specified by:
        `lockMem` in interface `IUHF`
      Parameters:
        `accessPwd` - ACCESS PASSWORD (4 bites)
        `bank` - 标签的存储区(Storage areas for) `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 the filtered data length is 0, it means no filtering.)
        `filterData` - 过滤数据(filterData filter data)
        `lockCode` - 锁定码(lockCode lock code)
      Returns:
        true:成功(success) false:失败(failure)

    - #### lockMem

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

      锁标签(lock label) 示例代码:比如锁定EPC区和USER区 (Sample code: such as locking EPC area and USER area) List lockBank=new ArrayList<>(); lockBank.add(IUHF.LockBank_EPC); lockBank.add(IUHF.LockBank_USER); int lockMode =IUHF.LockMode_LOCK; String hexLockCode=generateLockCode(lockBank,lockMode); lockMem(accessPwd,hexLockCode);
      Specified by:
        `lockMem` in interface `IUHF`
      Parameters:
        `accessPwd` - ACCESS PASSWORD (4 bites)
        `lockCode` - 锁定码，可以通过`generateLockCode(ArrayList lockBank,int lockMode)`方法来获取
        lockCode lock code, which can be obtained by `generateLockCode(ArrayList lockBank,int lockMode)` method
      Returns:
        true:成功(success) false:失败(failure)

    - #### inventorySingleTag

          public UHFTAGInfo inventorySingleTag()

      单次盘点标签(Single Inventory Label)
      Specified by:
        `inventorySingleTag` in interface `IUHF`
      Returns:
        返回标签数据，null表示盘点失败(returns the label data, null means the inventory failed)

    - #### readData

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

      读取标签的数据(Read tag data)
      Specified by:
        `readData` in interface `IUHF`
      Parameters:
        `accessPwd` - 访问密码，4个字节 (accessPwd access password, 4 bytes)
        `bank` - 读取的存储区(Banks read by) `IUHF.Bank_RESERVED`、`IUHF.Bank_EPC`、`IUHF.Bank_TID`、`IUHF.Bank_USER`
        `ptr` - 读取的起始地址,单位:字 (The starting address of reading ,unit: word)
        `cnt` - 读取的数据长度,单位:字 (read data length ,unit: word)
      Returns:
        true:成功(success) false:失败(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)

      读取指定标签的数据(Read the data of the specified tag)
      Specified by:
        `readData` in interface `IUHF`
      Parameters:
        `accessPwd` - 访问密码，4个字节 (accessPwd access password, 4 bytes)
        `filterBank` - 过滤的存储区(Filtered banks) `IUHF.Bank_EPC`、`IUHF.Bank_TID`、`IUHF.Bank_USER`
        `filterPtr` - 过滤的起始地址(the starting address of the filter)
        `filterCnt` - 过滤数据长度,单位:bit,当过滤的数据长度为0时，表示无过滤。(filterCnt Filter data length ,unit: bit, when the filtered data length is 0, it means no filtering)
        `filterData` - 过滤数据(filter data)
        `bank` - 读取的存储区(Banks read by) `IUHF.Bank_RESERVED`、`IUHF.Bank_EPC`、`IUHF.Bank_TID`、`IUHF.Bank_USER`
        `ptr` - 读取的起始地址,单位:字 (The starting address of reading ,unit: word)
        `cnt` - 读取的数据长度,单位:字 (read data length ,unit: word)
      Returns:
        true:成功(success) false:失败(failure)

    - #### writeData

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

      将数据写入标签（write data to label）
      Specified by:
        `writeData` in interface `IUHF`
      Parameters:
        `accessPwd` - 访问密码，4个字节（accessPwd access password, 4 bytes）
        `bank` - 写入的存储区(storage area)`IUHF.Bank_RESERVED`、`IUHF.Bank_EPC`、`IUHF.Bank_TID`、`IUHF.Bank_USER`
        `ptr` - 写入的起始地址,单位:字 (start address,unit: word)
        `cnt` - 写入的数据长度,单位:字 (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)

      将数据写入指定标签（write data to label）
      Specified by:
        `writeData` in interface `IUHF`
      Parameters:
        `accessPwd` - 访问密码，4个字节 （accessPwd access password, 4 bytes）
        `filterBank` - 过滤的存储区(Filtered banks) `IUHF.Bank_EPC`、`IUHF.Bank_TID`、`IUHF.Bank_USER`
        `filterPtr` - 过滤的起始地址(the starting address of the filter)
        `filterCnt` - 过滤数据长度,单位:bit,当过滤的数据长度为0时，表示无过滤。(filterCnt Filter data length ,unit: bit, when the filtered data length is 0, it means no filtering)
        `filterData` - 过滤数据(filter data)
        `bank` - 写入的存储区(storage area) `IUHF.Bank_RESERVED`、`IUHF.Bank_EPC`、`IUHF.Bank_TID`、`IUHF.Bank_USER`
        `ptr` - 写入的起始地址,单位:字 (start address,unit: word)
        `cnt` - 写入的数据长度,单位:字 (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)

      写标签到EPC (Write the label to the epc)
      Specified by:
        `writeDataToEpc` in interface `IUHF`
      Parameters:
        `accessPwd` - 访问密码，4个字节 （accessPwd access password, 4 bytes）
        `filterBank` - 过滤的存储区(Filtered banks) `IUHF.Bank_EPC`、`IUHF.Bank_TID`、`IUHF.Bank_USER`
        `filterPtr` - 过滤的起始地址(the starting address of the filter)
        `filterCnt` - 过滤数据长度,单位:bit,当过滤的数据长度为0时，表示无过滤。(filterCnt Filter data length ,unit: bit, when the filtered data length is 0, it means no filtering)
        `filterData` - 过滤数据(filter data)
        `writeData` - 写入的数据,十六进制格式 (data format should be hexvalue)
      Returns:
        true:成功(success) false:失败(failure)

    - #### writeDataToEpc

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

      写标签到EPC (Write the label to the epc)
      Specified by:
        `writeDataToEpc` in interface `IUHF`
      Parameters:
        `accessPwd` - 访问密码，4个字节 （accessPwd access password, 4 bytes）
        `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)

      将数据写入指定标签(支持大数据标签写入)、当需要写入的标签数据比较大可以使用此函数写入(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` - 访问密码，4个字节 （accessPwd access password, 4 bytes）
        `filterBank` - 过滤的存储区(Filtered banks) `IUHF.Bank_EPC`、`IUHF.Bank_TID`、`IUHF.Bank_USER`
        `filterPtr` - 过滤的起始地址(the starting address of the filter)
        `filterCnt` - 过滤数据长度,单位:bit,当过滤的数据长度为0时，表示无过滤。(filterCnt Filter data length ,unit: bit, when the filtered data length is 0, it means no filtering)
        `filterData` - 过滤数据(filter data)
        `bank` - 写入的存储区(storage area) `IUHF.Bank_RESERVED`、`IUHF.Bank_EPC`、`IUHF.Bank_TID`、`IUHF.Bank_USER`
        `ptr` - 写入的起始地址,单位:字 (start address,unit: word)
        `cnt` - 写入的数据长度,单位:字 (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)

      擦除指定标签的数据，被擦除的数据块其内容将被设置成0.(Clean specific tag data, data block after cleaned will be set to 0. )
      Specified by:
        `eraseData` in interface `IUHF`
      Parameters:
        `accessPwd` - 访问密码，4个字节 （accessPwd access password, 4 bytes）
        `filterBank` - 过滤的存储区(Filtered banks) `IUHF.Bank_EPC`、`IUHF.Bank_TID`、`IUHF.Bank_USER`
        `filterPtr` - 过滤的起始地址(the starting address of the filter)
        `filterCnt` - 过滤数据长度,单位:bit,当过滤的数据长度为0时，表示无过滤。(filterCnt Filter data length ,unit: bit, when the filtered data length is 0, it means no filtering)
        `filterData` - 过滤数据(filter data)
        `bank` - 擦除的数据区域(Cleaned data block):`IUHF.Bank_RESERVED`、 `IUHF.Bank_EPC`、`IUHF.Bank_TID`、`IUHF.Bank_USER`
        `ptr` - 擦除的起始地址,单位:字 (erase start address,Unit: word)
        `cnt` - 擦除的数据长度,单位:字 (erased data length,Unit: word)
      Returns:
        true:成功(success) false:失败(failure)

    - #### eraseData

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

      擦除数据，被擦除的数据块其内容将被设置成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` - 擦除的起始地址,单位:字 (erase start address,Unit: word)
        `cnt` - 擦除的数据长度,单位:字 (erased data length,Unit: word)
      Returns:
        true:成功(success) false:失败(failure)

    - #### setFilter

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

      设置循环盘点符合过滤条件的标签，不符合过滤条件的标签将不会上传。注意：必须在循环盘点标签之前设置
      Set up a round-robin inventory of tags that meet the filter conditions, and tags that do not meet the filter conditions will not be uploaded. Note: Must be set before cycle count label
      Specified by:
        `setFilter` in interface `IUHF`
      Parameters:
        `bank` - 过滤的存储区(filtered banks) `IUHF.Bank_EPC`、`IUHF.Bank_TID`、`IUHF.Bank_USER`
        `ptr` - 过滤的起始地址,单位：bit (the starting address of the filter，Unit: bit)
        `cnt` - 过滤数据长度，单位:bit,当过滤的数据长度为0时，表示无过滤 (Filter data length (unit: bit), when the filtered data length is 0, it means no filtering)
        `data` - 过滤的数据，十六进制数据 (filtered data, hexadecimal data)
      Returns:
        true:成功(success) false:失败(failure)

    - #### killTag

          public boolean killTag(java.lang.String killPwd)

      销毁指定标签 ,默认密码(0x00 0x00 0x00 0x00)不能执行销毁
      Destroy the label, the default password (0x00 0x00 0x00 0x00) cannot be destroyed
      Specified by:
        `killTag` in interface `IUHF`
      Parameters:
        `killPwd` - 销毁密码(destroy password)
      Returns:
        true:成功(success) false:失败(failure)

    - #### killTag

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

      销毁指定标签 ,默认密码(0x00 0x00 0x00 0x00)不能执行销毁
      Destroy the specified label, the default password (0x00 0x00 0x00 0x00) cannot be destroyed
      Specified by:
        `killTag` in interface `IUHF`
      Parameters:
        `killPwd` - 销毁密码(destroy password)
        `filterBank` - 过滤的存储区(Filtered banks) `IUHF.Bank_EPC`、`IUHF.Bank_TID`、`IUHF.Bank_USER`
        `filterPtr` - 过滤的起始地址(the starting address of the filter)
        `filterCnt` - 过滤数据长度,单位:bit,当过滤的数据长度为0时，表示无过滤。(Filter data length ,unit: bit, when the filtered data length is 0, it means no filtering)
        `filterData` - 过滤数据(filter data)
      Returns:
        true:成功(success) false:失败(failure)

    - #### setProtocol

          public boolean setProtocol(int protocol)

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

    - #### getProtocol

          public int getProtocol()

      获取协议(Get the protocol)
      Specified by:
        `getProtocol` in interface `IUHF`
      Returns:
        0x00:ISO18000-6C, 0x01:GB/T 29768, 0x02:GJB 7377.1; 返回-1表示获取失败
        0x00:ISO18000-6C, 0x01:GB/T 29768, 0x02:GJB 7377.1; return -1 means the acquisition failed

    - #### setFreHop

          public boolean setFreHop(float fre)

      设置模块频点(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)

      设置链路参数(Set link parameters)
      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()

      获取链路参数(Get link parameters)
      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)

      开关FastID功能 (Switch 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)

      开关TagFocus功能(Switch TagFocus function)
      Specified by:
        `setTagFocus` in interface `IUHF`
      Parameters:
        `enalbe` - true：开(on)，false：关(off)
      Returns:
        true:成功(success) false:失败(failure)

    - #### setEPCMode

          public boolean setEPCMode()

      设置盘点模式为EPC，只返回标签的EPC数据 (Set the inventory mode to EPC, and only return the EPC data of the label)
      Specified by:
        `setEPCMode` in interface `IUHF`
      Returns:
        true:成功(success) false:失败(failure)

    - #### setEPCAndTIDMode

          public boolean setEPCAndTIDMode()

      设置盘点模式为EPC+TID，返回标签的EPC+TID数据 (Set the inventory mode to EPC+TID, and return the EPC+TID data of the label)
      Specified by:
        `setEPCAndTIDMode` in interface `IUHF`
      Returns:
        true:成功(success) false:失败(failure)

    - #### setEPCAndTIDUserMode

          public boolean setEPCAndTIDUserMode(int user_prt,
                                              int user_len)

      设置盘点模式为EPC+TID+USER，返回标签的EPC+TID+USER数据 (Set the inventory mode to EPC+TID+USER, and return the EPC+TID+USER data of the label)
      Specified by:
        `setEPCAndTIDUserMode` in interface `IUHF`
      Parameters:
        `user_prt` - USER区起始地址 (USER area start address)
        `user_len` - USER区长度(USER area length)
      Returns:
        true:成功(success) false:失败(failure)

    - #### getEPCAndTIDUserMode

          public InventoryModeEntity getEPCAndTIDUserMode()

      获取当前设置的盘点模式 (Get the currently set inventory mode)
      Specified by:
        `getEPCAndTIDUserMode` in interface `IUHF`
      Returns:
        返回盘点模式的对象(the object that returns the inventory mode)

    - #### getTemperature

          public int getTemperature()

      获取UHF模块温度 (Get UHF module temperature)
      Specified by:
        `getTemperature` in interface `IUHF`
      Returns:
        返回模块温度。 -1表示返回失败。(Returns the module temperature. -1 means return failure.)

    - #### uhfBlockPermalock

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

      数据块操作(Data block operation)
      Specified by:
        `uhfBlockPermalock` in interface `IUHF`
      Parameters:
        `accessPwd` - 访问密码，4个字节十六进制数据 （accessPwd access password, 4 bytes of hexadecimal data）
        `filterBank` - 过滤的存储区(Filtered banks) `IUHF.Bank_EPC`、`IUHF.Bank_TID`、`IUHF.Bank_USER`
        `filterPtr` - 过滤的起始地址(the starting address of the filter)
        `filterCnt` - 过滤数据长度,单位:bit,当过滤的数据长度为0时，表示无过滤。(Filter data length ,unit: bit, when the filtered data length is 0, it means no filtering)
        `filterData` - 过滤数据(filter data)
        `ReadLock` - 0表示读设置 1表示锁设置（0 means read setting 1 means lock setting）
        `uBank` - 存储区域 (storage area)`IUHF.Bank_RESERVED`、`IUHF.Bank_EPC`、`IUHF.Bank_TID`、`IUHF.Bank_USER`
        `uPtr` - 存储区域起始地址 ，默认为0，其中 1个块单元为16个块 (start address of storage area, the default is 0, of which 1 block unit is 16 blocks)
        `uRange` - 存储区域结束范围，默认为1，其中 1个块单元为16个块 (storage area end range, the default is 1, of which 1 block unit is 16 blocks)
        `uMaskbuf` - 设置锁MSAK， 高位在前，每个bit 代表为1个块，默认为2字节 ( set the lock MSAK, high order first, each bit represents 1 block, the default is 2 bytes)
      Returns:
        true:成功(success) false:失败(failure)

    - #### setGen2

          public boolean setGen2(Gen2Entity gen2Entity)

      设置GEN2参数值 (Set GEN2 parameter value)
      Specified by:
        `setGen2` in interface `IUHF`
      Parameters:
        `gen2Entity` - GEN2参数实体对象(GEN2 parameter entity object)
      Returns:
        true:成功(success) false:失败(failure)

    - #### getGen2

          public Gen2Entity getGen2()

      获取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)

      设置占空比(Set the duty cycle)
      Specified by:
        `setPwm` in interface `IUHF`
      Parameters:
        `WorkTime` - 工作时间(working time)（0~255 ms）
        `WaitTime` - 空闲时间(idle time)（0~255 ms）
      Returns:
        true:成功(success) false:失败(failure)

    - #### getPwm

          public int[] getPwm()

      获取占空比 (Get the duty cycle)
      Specified by:
        `getPwm` in interface `IUHF`
      Returns:
        [0]工作时间，[1]等待时间;单位为毫秒。失败返回null
        [0] Working time, [1] Waiting time; the unit is milliseconds. return null on failure

    - #### setCW

          public boolean setCW(int flag)

      设置连续波(continuous waves)
      Specified by:
        `setCW` in interface `IUHF`
      Parameters:
        `flag` - 1:开(on)， 0:关(off)
      Returns:
        true:成功(success) false:失败(failure)

    - #### getCW

          public int getCW()

      获取连续波状态(Get CW status)
      Specified by:
        `getCW` in interface `IUHF`
      Returns:
        1:打开 0:关闭 ，返回-1表示获取失败
        1: open 0: close , return -1 means the acquisition failed

    - #### uhfJump2Boot

          public boolean uhfJump2Boot()

      uhf固件进入boot模式准备升级,调用此函数后需要延时2秒再调用 `uhfStartUpdate()` (uhf firmware enters boot mode to prepare for 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()

      开始升级UHF固件,调用此函数后需要延时2秒再调用 `uhfUpdating(byte[] buff)` (Start to upgrade UHF firmware)
      Specified by:
        `uhfStartUpdate` in interface `IUHF`
      Returns:
        true:成功(success) false:失败(failure)

    - #### uhfUpdating

          public boolean uhfUpdating(byte[] buff)

      发送uhf升级包 (Send uhf upgrade package)
      Specified by:
        `uhfUpdating` in interface `IUHF`
      Parameters:
        `buff` - uhf固件数据包，每次固定发送64字节数据。(buff uhf firmware data packet, 64 bytes of data are sent each time.)
      Returns:
        true:成功(success) false:失败(failure)

    - #### uhfStopUpdate

          public boolean uhfStopUpdate()

      停止升级UHF固件(Stop upgrading UHF firmware)
      Specified by:
        `uhfStopUpdate` in interface `IUHF`
      Returns:
        true:成功(success) false:失败(failure)

    - #### setConnectionStatusCallback

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

      设置监听连接状态(Set the listening connection status)
      Specified by:
        `setConnectionStatusCallback` in interface `IUHF`
      Parameters:
        `btStatusCallback` - 连接状态接口(Connection status interface)

    - #### getConnectStatus

          public ConnectionStatus getConnectStatus()

      获取连接状态(Acquire UHF connection status)
      Specified by:
        `getConnectStatus` in interface `IUHF`
      Returns:
        连接状态(UHF connection status)

    - #### isWorking

          public boolean isWorking()

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

    - #### output2Off

          public boolean output2Off()

      Description copied from interface: `IRFIDWithUHFA4`
      gpio 4 off
      Specified by:
        `output2Off` in interface `IRFIDWithUHFA4`
      Returns:
        true;success false:fail

    - #### output2On

          public boolean output2On()

      Description copied from interface: `IRFIDWithUHFA4`
      gpio 4 on
      Specified by:
        `output2On` in interface `IRFIDWithUHFA4`
      Returns:
        true;success false:fail

    - #### output1Off

          public boolean output1Off()

      Description copied from interface: `IRFIDWithUHFA4`
      gpio 3 off
      Specified by:
        `output1Off` in interface `IRFIDWithUHFA4`
      Returns:
        true;success false:fail

    - #### output1On

          public boolean output1On()

      Description copied from interface: `IRFIDWithUHFA4`
      gpio 3 on
      Specified by:
        `output1On` in interface `IRFIDWithUHFA4`
      Returns:
        true;success false:fail

    - #### inputStatus

          public java.util.List<GPIStateEntity> inputStatus()

      获取GPI输入状态
      Specified by:
        `inputStatus` in interface `IRFIDWithUHFA4`
      Returns:

    - #### output3On

          public boolean output3On()

      Description copied from interface: `IRFIDWithUHFA4`
      gpio OptoCoupler3 on
      Specified by:
        `output3On` in interface `IRFIDWithUHFA4`
      Returns:
        true;success false:fail OPTOCOUPLER

    - #### output3Off

          public boolean output3Off()

      Description copied from interface: `IRFIDWithUHFA4`
      gpio OptoCoupler3 off
      Specified by:
        `output3Off` in interface `IRFIDWithUHFA4`
      Returns:
        true;success false:fail

    - #### output4On

          public boolean output4On()

      Description copied from interface: `IRFIDWithUHFA4`
      gpio OptoCoupler4 on
      Specified by:
        `output4On` in interface `IRFIDWithUHFA4`
      Returns:
        true;success false:fail

    - #### output4Off

          public boolean output4Off()

      Description copied from interface: `IRFIDWithUHFA4`
      gpio OptoCoupler4 off
      Specified by:
        `output4Off` in interface `IRFIDWithUHFA4`
      Returns:
        true;success false:fail

    - #### outputWgData0On

          public boolean outputWgData0On()

      Description copied from interface: `IRFIDWithUHFA4`
      gpio WgData0 on
      Specified by:
        `outputWgData0On` in interface `IRFIDWithUHFA4`
      Returns:
        true;success false:fail

    - #### outputWgData0Off

          public boolean outputWgData0Off()

      Description copied from interface: `IRFIDWithUHFA4`
      gpio WgData0 off
      Specified by:
        `outputWgData0Off` in interface `IRFIDWithUHFA4`
      Returns:
        true;success false:fail

    - #### outputWgData1On

          public boolean outputWgData1On()

      Description copied from interface: `IRFIDWithUHFA4`
      gpio WgData1 on
      Specified by:
        `outputWgData1On` in interface `IRFIDWithUHFA4`
      Returns:
        true;success false:fail

    - #### outputWgData1Off

          public boolean outputWgData1Off()

      Description copied from interface: `IRFIDWithUHFA4`
      gpio WgData1 off
      Specified by:
        `outputWgData1Off` in interface `IRFIDWithUHFA4`
      Returns:
        true;success false:fail

    - #### setANT

          public boolean setANT(java.util.List<AntennaState> antStatus)

      设置天线启用状态(Set the antenna enable state)
      Specified by:
        `setANT` in interface `IMultipleAntenna`
      Parameters:
        `antStatus` - 天线参数(Antenna parameter)
      Returns:
        true:成功(success) false:失败(failure)

    - #### getANT

          public java.util.List<AntennaState> getANT()

      获取天线启用状态(Get the antenna enable status)
      Specified by:
        `getANT` in interface `IMultipleAntenna`
      Returns:
        返回天线启用状态，null表示获取失败(returns the antenna enable status, null means the acquisition failed)

    - #### setGPIStateReverse

          public void setGPIStateReverse(boolean isReverse)

      Specified by:
        `setGPIStateReverse` in interface `IUHFURAxExtend`

    - #### setAntennaWorkTime

          public boolean setAntennaWorkTime(AntennaEnum antnum,
                                            int WorkTime)

      设置天线工作时间(Set the working time of the antenna)
      Specified by:
        `setAntennaWorkTime` in interface `IMultipleAntenna`
      Parameters:
        `antnum` - 天线号(antenna number)
        `WorkTime` - 天线号(antenna number)
      Returns:
        true:成功(success) false:失败(failure)

    - #### getAntennaWorkTime

          public int getAntennaWorkTime(AntennaEnum antnum)

      获取天线工作时间(Get the working time of the antenna)
      Specified by:
        `getAntennaWorkTime` in interface `IMultipleAntenna`
      Parameters:
        `antnum` - 天线号(antenna number)
      Returns:
        返回天线工作时间，返回-1为失败 (returns the working time of the antenna, and returns -1 for failure)

    - #### setAntennaPower

          public boolean setAntennaPower(AntennaEnum ant,
                                         int power)

      设置天线功率 (Set the antenna power)
      Specified by:
        `setAntennaPower` in interface `IMultipleAntenna`
      Parameters:
        `ant` - 天线号(antenna)
        `power` - 功率(power)
      Returns:
        true:成功(success) false:失败(failure)

    - #### getAntennaPower

          public java.util.List<AntennaPowerEntity> getAntennaPower()

      获取天线功率
      Specified by:
        `getAntennaPower` in interface `IMultipleAntenna`
      Returns:

    - #### getTcpServiceVersion

          public java.lang.String getTcpServiceVersion()

      获取UHF TCP服务版本
      Specified by:
        `getTcpServiceVersion` in interface `IUHFURAxExtend`
      Returns:
        返回UHF TCP服务版本号

    - #### setEthernetConfigInfo

          public boolean setEthernetConfigInfo(ReaderIPEntity ipconfig)

      设置以太网IP地址
      Specified by:
        `setEthernetConfigInfo` in interface `IUHFURAxExtend`
      Parameters:
        `ipconfig` - ip配置信息
      Returns:
        true:成功 false:失败

    - #### setWifiConfigInfo

          public boolean setWifiConfigInfo(WifiConfig wificonfig)

      设置wifi配置信息
      Specified by:
        `setWifiConfigInfo` in interface `IUHFURAxExtend`
      Parameters:
        `wificonfig` - wifi配置信息
      Returns:
        true:成功 false:失败

    - #### setTcpServicePort

          public boolean setTcpServicePort(int port)

      设置UHF TCP服务端口
      Specified by:
        `setTcpServicePort` in interface `IUHFURAxExtend`
      Parameters:
        `port` - TCP服务端口,默认9160
      Returns:
        true:成功 false:失败

    - #### getWifiInfo

          public java.lang.String getWifiInfo()

      获取wifi热点信息,json格式数据
      Specified by:
        `getWifiInfo` in interface `IUHFURAxExtend`
      Returns:
        返回wifi热点，返回null表示获取失败

    - #### openWifi

          public boolean openWifi()

      打开wifi
      Specified by:
        `openWifi` in interface `IUHFURAxExtend`
      Returns:
        true:成功 false:失败

    - #### closeWifi

          public boolean closeWifi()

      关闭wifi
      Specified by:
        `closeWifi` in interface `IUHFURAxExtend`
      Returns:
        true:成功 false:失败

    - #### getAndroidDeviceHardwareVersion

          public java.lang.String getAndroidDeviceHardwareVersion()

      获取android设备的硬件版本
      Specified by:
        `getAndroidDeviceHardwareVersion` in interface `IUHFURAxExtend`
      Returns:
        返回android设备已经版本，返回null表示获取失败

    - #### readyUpgradeTcpService

          public void readyUpgradeTcpService()

      升级UHF Tcp服务器程序第一步,准备升级TCP服务程序
      Specified by:
        `readyUpgradeTcpService` in interface `IUHFURAxExtend`

    - #### setUpgradeTcpServiceData

          public boolean setUpgradeTcpServiceData(byte[] data)

      升级UHF Tcp服务器程序第二步,设置要升级的APK数据
      Specified by:
        `setUpgradeTcpServiceData` in interface `IUHFURAxExtend`
      Parameters:
        `data` - APK数据，数据包推荐使用1024*4字节，不能1024*4字节
      Returns:
        true:成功 false:失败

    - #### startUpgradeTcpService

          public boolean startUpgradeTcpService()

      升级UHF Tcp服务器程序第三步,发送数据到服务器
      Specified by:
        `startUpgradeTcpService` in interface `IUHFURAxExtend`
      Returns:
        true:升级成功 false:升级失败

    - #### setInventoryCallback

          public void setInventoryCallback(IUHFInventoryCallback inventoryCallback)

      设置盘点回调接口，接收循环盘点到的标签数据
      Set the inventory callback interface to receive the label data from the cyclic inventory
      备注：需要在开始循环盘点`startInventoryTag()`之前调用此方法。
      Note: This method needs to be called before starting the loop inventory `startInventoryTag()`.
      Specified by:
        `setInventoryCallback` in interface `IUHF`
      Specified by:
        `setInventoryCallback` in interface `IUHFURAxExtend`
      Parameters:
        `inventoryCallback` - 盘点回调接口(inventory callback interface)

    - #### setUpgradeProgress

          public void setUpgradeProgress(IUpgradeProgress iUpgradeProgress)

      设置监听升级进度
      Specified by:
        `setUpgradeProgress` in interface `IUHFURAxExtend`
      Parameters:
        `iUpgradeProgress` -

    - #### setGPIStateCallback

          public void setGPIStateCallback(IGPIStateCallback uhfGPIOStateCallback)

      设置GPIO状态回调接口
      Specified by:
        `setGPIStateCallback` in interface `IUHFURAxExtend`
      Parameters:
        `uhfGPIOStateCallback` - IUHFGPIOStateCallback

    - #### getEthernetIpConfig

          public java.lang.String getEthernetIpConfig()

      获取以太网配置信息
      Specified by:
        `getEthernetIpConfig` in interface `IUHFURAxExtend`
      Returns:
        返回以太网配置信息

    - #### getWifiIpConfig

          public java.lang.String getWifiIpConfig()

      获取wifi配置信息
      Specified by:
        `getWifiIpConfig` in interface `IUHFURAxExtend`
      Returns:
        返回wifi配置信息

    - #### rebootDevice

          public boolean rebootDevice()

      重启设备
      Specified by:
        `rebootDevice` in interface `IUHFURAxExtend`
      Returns:

    - #### setEthernetIpDynamicAssign

          public boolean setEthernetIpDynamicAssign()

      设置以太网获取动态IP
      Specified by:
        `setEthernetIpDynamicAssign` in interface `IUHFURAxExtend`
      Returns:

    - #### getReaderCurrentIp

          public ReaderIPEntity getReaderCurrentIp()

      获取设备当前的IP地址
      Specified by:
        `getReaderCurrentIp` in interface `IUHFURAxExtend`
      Returns:

    - #### disableBeep

          public boolean disableBeep()

      禁用蜂鸣器，打开蜂鸣器后盘点到标签会响应蜂鸣器。(Turn the buzzer off, and the label will respond to the buzzer after turning on the buzzer.)
      Specified by:
        `disableBeep` in interface `IUHFURAxExtend`
      Returns:
        true:成功(success) false:失败(failure)

    - #### isEnableBeep

          public boolean isEnableBeep()

      是否禁用蜂鸣器
      Specified by:
        `isEnableBeep` in interface `IUHFURAxExtend`
      Returns:
        true:enable false:disable

    - #### enableBeep

          public boolean enableBeep()

      启用蜂鸣器，打开蜂鸣器后盘点到标签会响应蜂鸣器。(Turn the buzzer on, and the label will respond to the buzzer after turning on the buzzer.)
      Specified by:
        `enableBeep` in interface `IUHFURAxExtend`
      Returns:
        true:成功(success) false:失败(failure)

    - #### setBuzzerOff

          public void setBuzzerOff()

      关闭蜂鸣器鸣叫，此函数与盘点无关
      Specified by:
        `setBuzzerOff` in interface `IUHFURAxExtend`

    - #### setBuzzerOn

          public void setBuzzerOn(int time)

      设置蜂鸣器鸣叫，此函数与盘点无关，不管是否盘点到标签都会鸣叫
      Specified by:
        `setBuzzerOn` in interface `IUHFURAxExtend`
      Parameters:
        `time` - 单位毫秒

    - #### outputOnAndOff

          public void outputOnAndOff(java.util.List<GPOEntity> list)

      控制全部GPO输出
      Specified by:
        `outputOnAndOff` in interface `IUHFA4`
      Specified by:
        `outputOnAndOff` in interface `IUHFURAxExtend`
      Parameters:
        `list` - list