com.unitech.lib.reader

## Class BaseReader

- java.lang.Object
- - com.unitech.lib.reader.BaseReader

- All Implemented Interfaces:
    com.unitech.lib.device.IReader, com.unitech.lib.transport.event.IConnectStateEventListener
  Direct Known Subclasses:
    HT730Reader, RG768Reader, RP902Reader

      public abstract class BaseReader
      extends java.lang.Object
      implements com.unitech.lib.device.IReader, com.unitech.lib.transport.event.IConnectStateEventListener

  The BaseReader class is a class that controls device in connection with unitech's equipment, receives data from device, and delivers it to the application program. The BaseReader class is an abstract class that must be implemented by inheriting from BaseReader.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected ActionState` | `_actionState`
    `protected com.unitech.lib.reader.device.BaseDevice` | `_baseDevice`
    `protected BaseTransport` | `_baseTransport`
    `protected BaseUHF` | `_baseUHF`
    `protected int` | `_checkInterval`
    `protected int` | `_failCount`
    `protected java.lang.String` | `_fwVersion`
    `protected boolean` | `_isDisconnecting`
    `protected ResultCode` | `_lastError`
    `protected java.lang.String` | `_serialNo`
    `protected static int` | `DEFAULT_BATTERY_CHECK_INTERVAL`
    `protected long` | `mLastTime`
    `protected static int` | `RETRY_COUNT`
    `protected java.lang.String` | `TAG`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `BaseReader(BaseTransport baseTransport)` Creates an instance of BaseReader.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addListener(IReaderEventListener listener)` Adds a Listener to receive events on an instance of the BaseReader class.
    `void` | `checkError()` Use only within the SDK.
    `void` | `clearListener()` Removes all listeners registered on an instance of the BaseReader class.
    `boolean` | `connect()` An instance of the BaseReader class tries to connect to the configured address
    `void` | `destroy()` Destroys an instance of the BaseReader class and cleans up resources.
    `void` | `disconnect()` Causes an instance of the BaseReader class to disconnect from the connected device.
    `abstract ResultCode` | `factoryReset()` Reset the device to factory default.
    `ActionState` | `getAction()` Returns the current behavior of the device associated with an instance of the BaseReader class.
    `java.lang.String` | `getAddress()` Returns the address of the device associated with an instance of the BaseReader class.
    `abstract int` | `getAutoOffTime()` Returns the time which the instrument automatically turns off.
    `abstract int[]` | `getAutoOffTimeList()` Returns the equipment supports auto off time list, the unit is minutes
    `abstract int` | `getBatteryState()` Returns the battery state of the equipment.
    `abstract BeeperState` | `getBeeper()` Returns the beeper operation status of the equipment.
    `int` | `getCheckInterval()` Returns the time period for checking the battery status of the device associated with an instance of the BaseReader class.
    `ConnectType` | `getConnectType()` Returns the instance of BaseReader associated with device.
    `abstract DataFormat` | `getDataFormat()` Returns the data format setting of the equipment.
    `abstract DataInfo` | `getDataInfo()` Returns the data info setting of the equipment.
    `abstract DataRange` | `getDataRange()` Returns the data range setting of the equipment.
    `abstract DataTerminator` | `getDataTerminator()` Returns the data terminator setting of the equipment.
    `java.lang.String` | `getDeviceName()` Returns the name of the Device associated with an instance of the BaseReader class.
    `DeviceType` | `getDeviceType()` Returns the type of Device to which the instance is connected.
    `abstract FindDevice` | `getFindDevice()` Returns the find device status of the equipment.
    `ResultCode` | `getLastError()` Returns the result code for the last action.
    `abstract OperatingMode` | `getOperatingMode()` Returns the operating mode status of the equipment.
    `abstract PowerDutyLimitationMap` | `getPowerAndDutyLimitationMapInfo()` Returns the Power Duty Limitation Map setting of the equipment.
    `com.unitech.lib.protocol.IProtocol` | `getProtocol()` Use only within the SDK.
    `abstract ReadMode` | `getReadMode()` Returns the read mode status of the equipment.
    `BaseUHF` | `getRfidUhf()` If the BaseReader instance supports the RFID UHF module, it returns an interface object that can control the RFID UHF module.
    `abstract ScreenOffTime` | `getScreenOffTime()` Returns the time which the instrument automatically screen off.
    `java.lang.String` | `getSerialNo()` Returns the serial number of the device.
    `abstract SKUType` | `getSKU()` Returns the SKU type of the equipment.
    `ConnectState` | `getState()` Returns the connection status of the device with the instance of the BaseReader class.
    `abstract double` | `getTemperature()` Returns the temperature of the equipment.
    `abstract java.util.Date` | `getTime()` Returns the system time of the device.
    `BaseTransport` | `getTransport()` Returns an instance of the BaseTransport class that connects an instance of the BaseReader class to the Device.
    `java.lang.String` | `getVersion()` Returns the firmware version of the device associated with the instance of the BaseReader class.
    `abstract VibratorState` | `getVibrator()` Returns the vibrator operation status of the equipment.
    `abstract boolean` | `initReader()` Initializes an BaseReader instance after the BaseReader instance is associated with the device.
    `void` | `listen()` Allows the BaseReader class to wait for connection until the connection is made from the device.
    `protected void` | `onReaderActionChanged(ResultCode code, ActionState action, java.lang.Object params)`
    `protected void` | `onReaderBatteryState(int batteryState, java.lang.Object params)`
    `protected void` | `onReaderKeyChanged(KeyType type, KeyState state, java.lang.Object params)`
    `protected void` | `onReaderNotificationState(NotificationState state, java.lang.Object params)`
    `protected void` | `onReaderStateChanged(ConnectState state, java.lang.Object params)`
    `protected void` | `onReaderTemperatureState(double temperature, java.lang.Object params)`
    `abstract void` | `onStateChanged(ConnectState state, java.lang.Object params)` Called when the connection state of the BaseTransport instance and the device changes.
    `void` | `removeListener(IReaderEventListener listener)` Removes the Listener that is listening for events on an instance of the BaseReader class.
    `void` | `resetError()` Use only within the SDK.
    `void` | `setAction(ActionState state)` Sets the operational state of the device associated with the instance.
    `void` | `setAddress(java.lang.String address)` Sets the address of the device to which the instance of BaseReader is connected.
    `abstract void` | `setAutoOffTime(int time)` Sets the time which the equipment automatically turns off.
    `abstract void` | `setBeeper(BeeperState state)` Sets the beeper operation status of the equipment.
    `void` | `setCheckInterval(int interval)` Sets the time period for checking the battery status of the device associated with the BaseReader class instance.
    `abstract void` | `setDataFormat(DataFormat dataFormat)` Sets the data format setting of the equipment.
    `abstract void` | `setDataInfo(DataInfo dataInfo)` Sets the data info setting of the equipment.
    `abstract void` | `setDataRange(DataRange dataRange)` Sets the data range setting of the equipment.
    `abstract void` | `setDataTerminator(DataTerminator dataTerminator)` Sets the data terminator setting of the equipment.
    `void` | `setDeviceName(java.lang.String name)` Sets the name of the device to which the instance of BaseReader is connected.
    `void` | `setDeviceType(DeviceType type)` Sets the type of device to which instance of BaseReader will be connected.
    `abstract void` | `setDisplayOutput(DisplayOutput displayOut)` Sets the display output setting of the equipment.
    `abstract void` | `setDisplayTags(DisplayTags displayTags)` Sets the display tags setting of the equipment output.
    `abstract void` | `setFindDevice(FindDevice mode)` Sets the find device status of the equipment.
    `void` | `setLastError(ResultCode code)` Use only within the SDK.
    `abstract void` | `setOperatingMode(OperatingMode mode)` Sets the operating mode status of the equipment.
    `abstract void` | `setReadMode(ReadMode mode)` Sets the read mode status of the equipment.
    `abstract void` | `setScreenOffTime(ScreenOffTime time)` Sets the time which the equipment automatically screen off.
    `abstract void` | `setSoftWareScan(boolean softwareScan)` Sets the software scan setting of the equipment.
    `abstract void` | `setTime(java.util.Date time)` Sets the system time of the instrument.
    `abstract void` | `setVibrator(VibratorState state)` Sets the vibrator operation status of the equipment.
    `java.lang.String` | `toString()`

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

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### DEFAULT_BATTERY_CHECK_INTERVAL

          protected static final int DEFAULT_BATTERY_CHECK_INTERVAL

      See Also:
        Constant Field Values

    - #### RETRY_COUNT

          protected static final int RETRY_COUNT

      See Also:
        Constant Field Values

    - #### TAG

          protected java.lang.String TAG

    - #### _baseTransport

          protected BaseTransport _baseTransport

    - #### _baseDevice

          protected com.unitech.lib.reader.device.BaseDevice _baseDevice

    - #### _baseUHF

          protected BaseUHF _baseUHF

    - #### _actionState

          protected volatile ActionState _actionState

    - #### _serialNo

          protected java.lang.String _serialNo

    - #### _fwVersion

          protected java.lang.String _fwVersion

    - #### _lastError

          protected ResultCode _lastError

    - #### _checkInterval

          protected int _checkInterval

    - #### _failCount

          protected int _failCount

    - #### _isDisconnecting

          protected boolean _isDisconnecting

    - #### mLastTime

          protected long mLastTime

  - ### Constructor Detail

    - #### BaseReader

          public BaseReader(BaseTransport baseTransport)

      Creates an instance of BaseReader.
      Parameters:
        `baseTransport` - An instance of an inherited class of the BaseTransport class that defines how an instance is associated with a Device.

  - ### Method Detail

    - #### connect

          public boolean connect()

      An instance of the BaseReader class tries to connect to the configured address
      Returns:
        Returns true if the connection attempt is successful, false on failure.

    - #### listen

          public void listen()

      Allows the BaseReader class to wait for connection until the connection is made from the device.

    - #### disconnect

          public void disconnect()

      Causes an instance of the BaseReader class to disconnect from the connected device.

    - #### getDeviceType

          public DeviceType getDeviceType()

      Returns the type of Device to which the instance is connected.
      Specified by:
        `getDeviceType` in interface `com.unitech.lib.device.IReader`
      Returns:
        The DeviceType enumeration indicating the type of device.

    - #### setDeviceType

          public void setDeviceType(DeviceType type)

      Sets the type of device to which instance of BaseReader will be connected.
      Specified by:
        `setDeviceType` in interface `com.unitech.lib.device.IReader`
      Parameters:
        `type` - The DeviceType enumeration indicating the type of device.

    - #### getDeviceName

          public java.lang.String getDeviceName()

      Returns the name of the Device associated with an instance of the BaseReader class.
      Specified by:
        `getDeviceName` in interface `com.unitech.lib.device.IReader`
      Returns:
        A string representing the name of the Device.

    - #### setDeviceName

          public void setDeviceName(java.lang.String name)

      Sets the name of the device to which the instance of BaseReader is connected.
      Specified by:
        `setDeviceName` in interface `com.unitech.lib.device.IReader`
      Parameters:
        `name` - A string representing the name of the Device.

    - #### addListener

          public void addListener(IReaderEventListener listener)

      Adds a Listener to receive events on an instance of the BaseReader class. Events are only notified to the last added Listener.
      Parameters:
        `listener` - An instance of IReaderEventListener to receive events fired by instances of the BaseReader class.

    - #### removeListener

          public void removeListener(IReaderEventListener listener)

      Removes the Listener that is listening for events on an instance of the BaseReader class. If the Listener being deleted is the last event, the Listener that was added before the last is notified of the event.
      Parameters:
        `listener` - An instance of IReaderEventListener that is receiving events fired by instances of the BaseReader class.

    - #### clearListener

          public void clearListener()

      Removes all listeners registered on an instance of the BaseReader class.

    - #### getSerialNo

          public java.lang.String getSerialNo()

      Returns the serial number of the device.
      Specified by:
        `getSerialNo` in interface `com.unitech.lib.device.IReader`
      Returns:
        A string representing the serial number of the device.

    - #### getTransport

          public BaseTransport getTransport()

      Returns an instance of the BaseTransport class that connects an instance of the BaseReader class to the Device.
      Returns:
        An instance of the BaseTransport class that defines a connection with a Device.

    - #### getAddress

          public java.lang.String getAddress()

      Returns the address of the device associated with an instance of the BaseReader class.
      Specified by:
        `getAddress` in interface `com.unitech.lib.device.IReader`
      Returns:
        A string representing the address of the Device.

    - #### setAddress

          public void setAddress(java.lang.String address)

      Sets the address of the device to which the instance of BaseReader is connected.
      Specified by:
        `setAddress` in interface `com.unitech.lib.device.IReader`
      Parameters:
        `address` - A string representing the address of the Device.

    - #### getConnectType

          public ConnectType getConnectType()

      Returns the instance of BaseReader associated with device.
      Returns:
        A ConnectType enumeration that indicates how the device is connected.

    - #### getState

          public ConnectState getState()

      Returns the connection status of the device with the instance of the BaseReader class.
      Returns:
        A ConnectState enumeration indicating the connection status of the BaseReader.

    - #### getRfidUhf

          public BaseUHF getRfidUhf()

      If the BaseReader instance supports the RFID UHF module, it returns an interface object that can control the RFID UHF module.
      Returns:
        Returns an instance of BaseUHF.

    - #### destroy

          public void destroy()

      Destroys an instance of the BaseReader class and cleans up resources.

    - #### getLastError

          public ResultCode getLastError()

      Returns the result code for the last action.
      Specified by:
        `getLastError` in interface `com.unitech.lib.device.IReader`
      Returns:
        The ResultCode enumeration indicating the result of the operation.

    - #### getVersion

          public java.lang.String getVersion()

      Returns the firmware version of the device associated with the instance of the BaseReader class.
      Specified by:
        `getVersion` in interface `com.unitech.lib.device.IReader`
      Returns:
        A string representing the firmware version.

    - #### getAction

          public ActionState getAction()

      Returns the current behavior of the device associated with an instance of the BaseReader class.
      Specified by:
        `getAction` in interface `com.unitech.lib.device.IReader`
      Returns:
        An ActionState enumeration that indicates the operational state of the device.

    - #### setAction

          public void setAction(ActionState state)

      Sets the operational state of the device associated with the instance. The setAction Method is a method used inside the SDK and should not be used by the user.
      Specified by:
        `setAction` in interface `com.unitech.lib.device.IReader`
      Parameters:
        `state` - ActionState enumeration indicating the state of the action.

    - #### getCheckInterval

          public int getCheckInterval()

      Returns the time period for checking the battery status of the device associated with an instance of the BaseReader class.
      Returns:
        An integer representing the device's battery check cycle time. The unit is ms

    - #### setCheckInterval

          public void setCheckInterval(int interval)

      Sets the time period for checking the battery status of the device associated with the BaseReader class instance.
      Parameters:
        `interval` - Integer type indicating the battery check cycle time of the equipment. The unit is ms.

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`

    - #### onReaderStateChanged

          protected void onReaderStateChanged(ConnectState state,
                                              java.lang.Object params)

    - #### onReaderActionChanged

          protected void onReaderActionChanged(ResultCode code,
                                               ActionState action,
                                               java.lang.Object params)

    - #### onReaderBatteryState

          protected void onReaderBatteryState(int batteryState,
                                              java.lang.Object params)

    - #### onReaderKeyChanged

          protected void onReaderKeyChanged(KeyType type,
                                            KeyState state,
                                            java.lang.Object params)

    - #### onReaderNotificationState

          protected void onReaderNotificationState(NotificationState state,
                                                   java.lang.Object params)

    - #### onReaderTemperatureState

          protected void onReaderTemperatureState(double temperature,
                                                  java.lang.Object params)

    - #### initReader

          public abstract boolean initReader()

      Initializes an BaseReader instance after the BaseReader instance is associated with the device.
      Returns:
        Returns true if successful, false against failure

    - #### getBeeper

          public abstract BeeperState getBeeper()
                                         throws ReaderException

      Returns the beeper operation status of the equipment.
      Returns:
        To specify the status of the equipment's beeper BeeperState enumeration.
      Throws:
        `ReaderException` - An ReaderException exception is thrown if a failure occurs while setting data on the instrument or returning data.

    - #### setBeeper

          public abstract void setBeeper(BeeperState state)
                                  throws ReaderException

      Sets the beeper operation status of the equipment.
      Parameters:
        `state` - To specify the status of the beeper BeeperState enumeration.
      Throws:
        `ReaderException` - An ReaderException exception is thrown if a failure occurs while setting data on the instrument or returning data.

    - #### getVibrator

          public abstract VibratorState getVibrator()
                                             throws ReaderException

      Returns the vibrator operation status of the equipment.
      Returns:
        To specify the status of the equipment's vibrator VibratorState enumeration.
      Throws:
        `ReaderException` - An ReaderException exception is thrown if a failure occurs while setting data on the instrument or returning data.

    - #### setVibrator

          public abstract void setVibrator(VibratorState state)
                                    throws ReaderException

      Sets the vibrator operation status of the equipment.
      Parameters:
        `state` - To specify the status of the vibrator VibratorState enumeration.
      Throws:
        `ReaderException` - An ReaderException exception is thrown if a failure occurs while setting data on the instrument or returning data.

    - #### getBatteryState

          public abstract int getBatteryState()
                                       throws ReaderException

      Returns the battery state of the equipment.
      Returns:
        To specify the status of the equipment's battery.
      Throws:
        `ReaderException` - An ReaderException exception is thrown if a failure occurs while setting data on the instrument or returning data.

    - #### getTime

          public abstract java.util.Date getTime()
                                          throws ReaderException

      Returns the system time of the device.
      Returns:
        An instance of Date representing the current date and time on the device.
      Throws:
        `ReaderException` - An ReaderException exception is thrown if a failure occurs while setting data on the instrument or returning data.

    - #### setTime

          public abstract void setTime(java.util.Date time)
                                throws ReaderException

      Sets the system time of the instrument.
      Parameters:
        `time` - An instance of Date representing the current date and time on the device.
      Throws:
        `ReaderException` - An ReaderException exception is thrown if a failure occurs while setting data on the instrument or returning data.

    - #### onStateChanged

          public abstract void onStateChanged(ConnectState state,
                                              java.lang.Object params)

      Called when the connection state of the BaseTransport instance and the device changes.
      Specified by:
        `onStateChanged` in interface `com.unitech.lib.transport.event.IConnectStateEventListener`
      Parameters:
        `state` - A ConnectState enumeration that indicates the device and its connection status.
        `params` - This parameter is used to transmit additional information that is generated

    - #### getAutoOffTimeList

          public abstract int[] getAutoOffTimeList()

      Returns the equipment supports auto off time list, the unit is minutes
      Returns:
        This is an integer list that indicates the time that the device supported auto off time.

    - #### getAutoOffTime

          public abstract int getAutoOffTime()
                                      throws ReaderException

      Returns the time which the instrument automatically turns off.
      Returns:
        This is an integer that indicates the time that the device is turned off automatically.
      Throws:
        `ReaderException` - An ReaderException exception is thrown if a failure occurs while setting data on the instrument or returning data.

    - #### setAutoOffTime

          public abstract void setAutoOffTime(int time)
                                       throws ReaderException

      Sets the time which the equipment automatically turns off.
      Parameters:
        `time` - An integer that indicates how long the device will automatically turn itself off. The time unit is specified in minutes. If you set the time to 0, the instrument will not turn off automatically.
      Throws:
        `ReaderException` - An ReaderException exception is thrown if a failure occurs while setting data on the instrument or returning data.

    - #### factoryReset

          public abstract ResultCode factoryReset()
                                           throws ReaderException

      Reset the device to factory default.
      Returns:
        The ResultCode enumeration indicating the result of the method's operation.
      Throws:
        `ReaderException` - An ReaderException exception is thrown if a failure occurs while setting data on the instrument or returning data.

    - #### getSKU

          public abstract SKUType getSKU()
                                  throws ReaderException

      Returns the SKU type of the equipment.
      Returns:
        An SKUType enumeration that indicates the SKU type of the device.
      Throws:
        `ReaderException` - An ReaderException exception is thrown if a failure occurs while setting data on the instrument or returning data.

    - #### getTemperature

          public abstract double getTemperature()
                                         throws ReaderException

      Returns the temperature of the equipment.
      Returns:
        The temperature of the device and the range is ~128 to 127.
      Throws:
        `ReaderException` - An ReaderException exception is thrown if a failure occurs while setting data on the instrument or returning data.

    - #### getReadMode

          public abstract ReadMode getReadMode()
                                        throws ReaderException

      Returns the read mode status of the equipment.
      Returns:
        To specify the status of the equipment's read mode ReadMode enumeration.
      Throws:
        `ReaderException` - An ReaderException exception is thrown if a failure occurs while setting data on the instrument or returning data.

    - #### setReadMode

          public abstract void setReadMode(ReadMode mode)
                                    throws ReaderException

      Sets the read mode status of the equipment.
      Parameters:
        `mode` - To specify the status of the read mode ReadMode enumeration.
      Throws:
        `ReaderException`

    - #### getFindDevice

          public abstract FindDevice getFindDevice()
                                            throws ReaderException

      Returns the find device status of the equipment.
      Returns:
        To specify the status of the equipment's find device mode FindDevice class.
      Throws:
        `ReaderException` - An ReaderException exception is thrown if a failure occurs while setting data on the instrument or returning data.

    - #### setFindDevice

          public abstract void setFindDevice(FindDevice mode)
                                      throws ReaderException

      Sets the find device status of the equipment.
      Parameters:
        `mode` - To specify the status of the find device FindDevice class.
      Throws:
        `ReaderException` - An ReaderException exception is thrown if a failure occurs while setting data on the instrument or returning data.

    - #### getOperatingMode

          public abstract OperatingMode getOperatingMode()
                                                  throws ReaderException

      Returns the operating mode status of the equipment.
      Returns:
        To specify the status of the equipment's operating mode OperatingMode enumeration.
      Throws:
        `ReaderException` - An ReaderException exception is thrown if a failure occurs while setting data on the instrument or returning data.

    - #### setOperatingMode

          public abstract void setOperatingMode(OperatingMode mode)
                                         throws ReaderException

      Sets the operating mode status of the equipment.
      Parameters:
        `mode` - To specify the status of the operating mode OperatingMode enumeration.
      Throws:
        `ReaderException` - An ReaderException exception is thrown if a failure occurs while setting data on the instrument or returning data.

    - #### getDataFormat

          public abstract DataFormat getDataFormat()
                                            throws ReaderException

      Returns the data format setting of the equipment.
      Returns:
        To specify the setting of the equipment's data format DataFormat enumeration.
      Throws:
        `ReaderException` - An ReaderException exception is thrown if a failure occurs while setting data on the instrument or returning data.

    - #### setDataFormat

          public abstract void setDataFormat(DataFormat dataFormat)
                                      throws ReaderException

      Sets the data format setting of the equipment.
      Parameters:
        `dataFormat` - To specify the setting of the data format DataFormat enumeration.
      Throws:
        `ReaderException` - An ReaderException exception is thrown if a failure occurs while setting data on the instrument or returning data.

    - #### getDataInfo

          public abstract DataInfo getDataInfo()
                                        throws ReaderException

      Returns the data info setting of the equipment.
      Returns:
        To specify the setting of the equipment's data info DataInfo enumeration.
      Throws:
        `ReaderException` - An ReaderException exception is thrown if a failure occurs while setting data on the instrument or returning data.

    - #### setDataInfo

          public abstract void setDataInfo(DataInfo dataInfo)
                                    throws ReaderException

      Sets the data info setting of the equipment.
      Parameters:
        `dataInfo` - To specify the setting of the data info DataInfo enumeration.
      Throws:
        `ReaderException` - An ReaderException exception is thrown if a failure occurs while setting data on the instrument or returning data.

    - #### getDataRange

          public abstract DataRange getDataRange()
                                          throws ReaderException

      Returns the data range setting of the equipment.
      Returns:
        To specify the setting of the equipment's data range DataRange enumeration.
      Throws:
        `ReaderException` - An ReaderException exception is thrown if a failure occurs while setting data on the instrument or returning data.

    - #### setDataRange

          public abstract void setDataRange(DataRange dataRange)
                                     throws ReaderException

      Sets the data range setting of the equipment.
      Parameters:
        `dataRange` - To specify the setting of the data range DataRange enumeration.
      Throws:
        `ReaderException` - An ReaderException exception is thrown if a failure occurs while setting data on the instrument or returning data.

    - #### getDataTerminator

          public abstract DataTerminator getDataTerminator()
                                                    throws ReaderException

      Returns the data terminator setting of the equipment.
      Returns:
        To specify the setting of the equipment's data terminator DataTerminator enumeration.
      Throws:
        `ReaderException` - An ReaderException exception is thrown if a failure occurs while setting data on the instrument or returning data.

    - #### setDataTerminator

          public abstract void setDataTerminator(DataTerminator dataTerminator)
                                          throws ReaderException

      Sets the data terminator setting of the equipment.
      Parameters:
        `dataTerminator` - To specify the setting of the data terminator DataTerminator enumeration.
      Throws:
        `ReaderException` - An ReaderException exception is thrown if a failure occurs while setting data on the instrument or returning data.

    - #### getPowerAndDutyLimitationMapInfo

          public abstract PowerDutyLimitationMap getPowerAndDutyLimitationMapInfo()

      Returns the Power Duty Limitation Map setting of the equipment.
      Returns:
        To specify the setting of the equipment's Power Duty Limitation Map.

    - #### setSoftWareScan

          public abstract void setSoftWareScan(boolean softwareScan)

      Sets the software scan setting of the equipment.
      Parameters:
        `softwareScan` - To specify the setting of the software scan SoftWareScan enumeration.

    - #### setDisplayTags

          public abstract void setDisplayTags(DisplayTags displayTags)

      Sets the display tags setting of the equipment output.
      Parameters:
        `displayTags` - To specify the setting of the display tags DisplayTags enumeration.

    - #### setDisplayOutput

          public abstract void setDisplayOutput(DisplayOutput displayOut)
                                         throws ReaderException

      Sets the display output setting of the equipment.
      Parameters:
        `displayOut` - To specify the setting of the display output DisplayOutput enumeration.
      Throws:
        `ReaderException` - An ReaderException exception is thrown if a failure occurs while setting data on the instrument or returning data.

    - #### getScreenOffTime

          public abstract ScreenOffTime getScreenOffTime()
                                                  throws ReaderException

      Returns the time which the instrument automatically screen off.
      Returns:
        This is an integer that indicates the time that the device is screen off automatically.
      Throws:
        `ReaderException` - An ReaderException exception is thrown if a failure occurs while setting data on the instrument or returning data.

    - #### setScreenOffTime

          public abstract void setScreenOffTime(ScreenOffTime time)
                                         throws ReaderException

      Sets the time which the equipment automatically screen off.
      Parameters:
        `time` - It indicates how long the device will automatically screen off. The time is specified in minutes and seconds. If you set the minutes to 0 and seconds to 0, the instrument will not screen off automatically.
      Throws:
        `ReaderException` - An ReaderException exception is thrown if a failure occurs while setting data on the instrument or returning data.

    - #### resetError

          public void resetError()

      Use only within the SDK.
      Specified by:
        `resetError` in interface `com.unitech.lib.device.IReader`

    - #### setLastError

          public void setLastError(ResultCode code)

      Use only within the SDK.
      Specified by:
        `setLastError` in interface `com.unitech.lib.device.IReader`
      Parameters:
        `code` -

    - #### getProtocol

          public com.unitech.lib.protocol.IProtocol getProtocol()

      Use only within the SDK.
      Specified by:
        `getProtocol` in interface `com.unitech.lib.device.IReader`
      Returns:

    - #### checkError

          public void checkError()

      Use only within the SDK.
      Specified by:
        `checkError` in interface `com.unitech.lib.device.IReader`