tw.com.prolific.pl2303ghidsdk

## Class HidToUart

- java.lang.Object
- - tw.com.prolific.pl2303ghidsdk.HidToGpio
  - - tw.com.prolific.pl2303ghidsdk.HidToUart

-     public class HidToUart
      extends HidToGpio

  PL23B3 HID to UART Driver 類別. Licensed under the Apache License, Version 2.0 http://www.apache.org/licenses/LICENSE-2.0 * thanks to ....

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `HidToUart()` 新增一個 HidToUart 物件
    `HidToUart(android.content.Context context, java.lang.String strAppName)` 新增一個 HidToUart 物件

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `askPermissionByDeviceIndex(int nDeviceIndex)` 取得裝置權限
    `int` | `askPermissionByUsbDevice(android.hardware.usb.UsbDevice usbDevice)` 取得裝置權限
    `int` | `closeDevice()` 關閉裝置
    `int` | `closeDeviceByDeviceIndex(int nDeviceIndex)` 關閉裝置
    `void` | `dumpMsg(java.lang.Object objMsg)` 設定紀錄訊息
    `int` | `enumDevices(int nDeviceVid)` 列舉PL23B3 裝置
    `int` | `enumDevices(int nDeviceVid, int nDevicePid)` 根據傳入之Vid與Pid列舉PL23B3 裝置
    `java.lang.String` | `getDeviceName(int nDeviceIndex)` 取得裝置名稱
    `java.lang.String` | `getSdkVersion()` 取得SDK版本號
    `java.lang.String` | `getSerialNumber(int nDeviceIndex)` 取得裝置之序號
    `int` | `getUartConfig(int nDeviceIndex, UartObject uartObject)` 取得Uart設定值
    `android.hardware.usb.UsbDevice` | `getUsbDevice(int nDeviceIndex)` 取得裝置之物件，可根據該物件取得usb相關之訊息
    `boolean` | `hasPermissionByDeviceIndex(int nDeviceIndex)` 確認裝置是否擁有權限
    `boolean` | `hasPermissionByUsbDevice(android.hardware.usb.UsbDevice usbDevice)` 確認裝置是否擁有權限
    `int` | `openDeviceByIndex(int nDeviceIndex)` 開啟裝置
    `int` | `openDeviceBySerialNumber(java.lang.String strSerialNumber)` 開啟裝置
    `void` | `setCommandTimeOut(int nMillSecond)` 設定command逾時之數值
    `int` | `setUartConfig(int nDeviceIndex, UartObject uartObject)` 設定Uart設定值
    `int` | `setXonXoffSymbol(int nDeviceIndex, byte byXon, byte byXoff)` 設定Software Flow Control byte (Xon/Xoff) Symbol
    `int` | `uartRead(int nDeviceIndex, byte[] byBuffer, int nNumberOfBytesToRead, int nTimeOutms)` 讀取Uart 資料
    `int` | `uartReset(int nDeviceIndex)` 重置UART 介面
    `int` | `uartWrite(int nDeviceIndex, byte[] byBuffer, int nNumberOfBytesToWrite, int nTimeOutms)` 寫入UART資料

    - ### Methods inherited from class tw.com.prolific.pl2303ghidsdk.HidToGpio

      `getGpio, setGpio, setGpioDir`

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

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

- - ### Constructor Detail

    - #### HidToUart

          public HidToUart()

      新增一個 HidToUart 物件

    - #### HidToUart

          public HidToUart(android.content.Context context,
                           java.lang.String strAppName)

      新增一個 HidToUart 物件
      Parameters:
        `context` - the context
        `strAppName` - , ACTION_USB_PERMISSION 字串, 例如: "tw.com.prolific.HidToUartTest.USB_PERMISSION"

  - ### Method Detail

    - #### getUartConfig

          public int getUartConfig(int nDeviceIndex,
                                   UartObject uartObject)

      取得Uart設定值
      Parameters:
        `nDeviceIndex` - 裝置之索引值
        `uartObject` - [out] , 儲存UART設定之物件
      Returns:
        0表成功, 非0表失敗。

    - #### setUartConfig

          public int setUartConfig(int nDeviceIndex,
                                   UartObject uartObject)

      設定Uart設定值
      Parameters:
        `nDeviceIndex` - 裝置之索引值
        `uartObject` - [im], 設定Uart設定值
      Returns:
        0表成功, 非0表失敗。

    - #### uartRead

          public int uartRead(int nDeviceIndex,
                              byte[] byBuffer,
                              int nNumberOfBytesToRead,
                              int nTimeOutms)

      讀取Uart 資料
      Parameters:
        `nDeviceIndex` - 裝置之索引值
        `byBuffer` - 讀取資料緩衝區
        `nNumberOfBytesToRead` - 讀取資料的位元數
        `nTimeOutms` - 逾時數值, 單位為毫秒(milliseconds)
      Returns:
        正值表實際讀取資料的位元數，負值表失敗

    - #### uartWrite

          public int uartWrite(int nDeviceIndex,
                               byte[] byBuffer,
                               int nNumberOfBytesToWrite,
                               int nTimeOutms)

      寫入UART資料
      Parameters:
        `nDeviceIndex` - 裝置之索引值
        `byBuffer` - 寫入的資料
        `nNumberOfBytesToWrite` - the number of bytes to write
        `nTimeOutms` - 逾時數值, 單位為毫秒(milliseconds)
      Returns:
        正值表實際寫入資料的位元數，負值表失敗

    - #### setXonXoffSymbol

          public int setXonXoffSymbol(int nDeviceIndex,
                                      byte byXon,
                                      byte byXoff)

      設定Software Flow Control byte (Xon/Xoff) Symbol
      Parameters:
        `nDeviceIndex` - 裝置之索引值
        `byXon` - xon 之設定值
        `byXoff` - xoff 之設定值
      Returns:
        正值表成功，負值表失敗

    - #### uartReset

          public int uartReset(int nDeviceIndex)

      重置UART 介面
      Reset PL23B3 HidToUart Chip configurations.
      Parameters:
        `nDeviceIndex` - 裝置之索引值
      Returns:
        正值表成功，負值表失敗

    - #### enumDevices

          public int enumDevices(int nDeviceVid)

      列舉PL23B3 裝置
      Parameters:
        `nDeviceVid` - 裝置之VID
      Returns:
        列舉裝置之數量

    - #### enumDevices

          public int enumDevices(int nDeviceVid,
                                 int nDevicePid)

      根據傳入之Vid與Pid列舉PL23B3 裝置
      Parameters:
        `nDeviceVid` - 裝置之VID
        `nDevicePid` - 裝置之PID
      Returns:
        列舉裝置之數量

    - #### getDeviceName

          public java.lang.String getDeviceName(int nDeviceIndex)

      取得裝置名稱
      Parameters:
        `nDeviceIndex` - 裝置之索引值
      Returns:
        裝置名稱, 空字串表找不到裝置

    - #### getSerialNumber

          public java.lang.String getSerialNumber(int nDeviceIndex)

      取得裝置之序號, 此功能支援Android版本 5.0(含)以上
      Parameters:
        `nDeviceIndex` - 裝置之索引值
      Returns:
        裝置序號, 空字串表找不到裝置

    - #### openDeviceByIndex

          public int openDeviceByIndex(int nDeviceIndex)

      開啟裝置
      Parameters:
        `nDeviceIndex` - 裝置之索引值
      Returns:
        0表成功, 非0表失敗。

    - #### openDeviceBySerialNumber

          public int openDeviceBySerialNumber(java.lang.String strSerialNumber)

      開啟裝置
      Parameters:
        `strSerialNumber` - the serial 列舉裝置之數量
      Returns:
        0表成功, 非0表失敗。

    - #### hasPermissionByDeviceIndex

          public boolean hasPermissionByDeviceIndex(int nDeviceIndex)

      確認裝置是否擁有權限
      Parameters:
        `nDeviceIndex` - 裝置之索引值
      Returns:
        true 表擁有權限存取裝置, 否則為失敗.

    - #### askPermissionByDeviceIndex

          public int askPermissionByDeviceIndex(int nDeviceIndex)

      取得裝置權限
      Parameters:
        `nDeviceIndex` - 裝置之索引值
      Returns:
        0表成功, 非0表失敗。

    - #### hasPermissionByUsbDevice

          public boolean hasPermissionByUsbDevice(android.hardware.usb.UsbDevice usbDevice)

      確認裝置是否擁有權限
      Parameters:
        `usbDevice` - usbDevice 物件
      Returns:
        true 表擁有權限存取裝置, 否則為失敗.

    - #### askPermissionByUsbDevice

          public int askPermissionByUsbDevice(android.hardware.usb.UsbDevice usbDevice)

      取得裝置權限 the given device.
      Parameters:
        `usbDevice` - usbDevice 物件
      Returns:
        0表成功, 非0表失敗。

    - #### closeDevice

          public int closeDevice()

      關閉裝置
      Returns:
        0表成功, 非0表失敗。

    - #### closeDeviceByDeviceIndex

          public int closeDeviceByDeviceIndex(int nDeviceIndex)

      關閉裝置
      Parameters:
        `nDeviceIndex` - 裝置之索引值
      Returns:
        0表成功, 非0表失敗。

    - #### getSdkVersion

          public java.lang.String getSdkVersion()

      取得SDK版本號
      Returns:
        目前SDK版本號

    - #### setCommandTimeOut

          public void setCommandTimeOut(int nMillSecond)

      設定command逾時之數值/div>
      Parameters:
        `nMillSecond` - 逾時之數值, 單位為毫秒(millisecond)

    - #### dumpMsg

          public void dumpMsg(java.lang.Object objMsg)

      設定紀錄訊息
      Parameters:
        `objMsg` - 訊息內容

    - #### getUsbDevice

          public android.hardware.usb.UsbDevice getUsbDevice(int nDeviceIndex)

      取得裝置之物件，可根據該物件取得usb相關之訊息
      Parameters:
        `nDeviceIndex` - 裝置之索引值
      Returns:
        裝置之物件, null表找不到裝置