tw.com.prolific.pl25x3Lib

## Class PL25x3Lib

- java.lang.Object
- - tw.com.prolific.pl25x3Lib.PL25x3Lib

-     public class PL25x3Lib
      extends java.lang.Object

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `PL25x3Lib.DataBits`
    `static class` | `PL25x3Lib.FlowControl`
    `static class` | `PL25x3Lib.Parity`
    `static class` | `PL25x3Lib.StopBits`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `BAUD12000000`
    `static int` | `BAUD24000000`
    `static int` | `BAUD2457600`
    `static int` | `BAUD3000000`
    `static int` | `BAUD6000000`
    `static int` | `PL25x3_CTS_ON`
    `static int` | `PL25x3_DCD_ON`
    `static int` | `PL25x3_DSR_ON`
    `static int` | `PL25x3_RI_ON`
    `java.lang.String` | `PLUART_DETACHED`
    `java.lang.String` | `PLUART_MESSAGE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PL25x3Lib(UsbManager manager, Context context, java.lang.String sAppName)` 新增一個 PL25x3 物件
    `PL25x3Lib(UsbManager manager, Context context, java.lang.String sAppName, boolean bWithQueue)` 新增一個 PL25x3 物件

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static java.lang.String` | `convertIntToHex(int i)`
    `int` | `PL2303G_GPIO_B_CNT_ENABLE(int index, boolean Enable)` PL25x3 有 8 個可控的「輸入輸出」控制訊號引腳，可以用來初始化 GPIO_B
    `void` | `PL25x3_Close()` 關閉 PL25x3 裝置
    `void` | `PL25x3_CloseDeviceByIndex(int index)` 依照 index 關閉 PL25x3 裝置
    `int` | `PL25x3_Enumerate()` 列舉 PL25x3 裝置
    `int` | `PL25x3_GetBcdByIndex(int index)`
    `int[]` | `PL25x3_GetCommModemStatus(int index)` 獲取調變解調器控制暫存器值
    `boolean` | `PL25x3_GetCommTimeouts(int TimeoutConstant)` 獲取指定通訊設備上所有讀寫操作的 time-out 參數
    `java.lang.String` | `PL25x3_GetDevicePathByIndex(int index)` 取得路徑
    `int` | `PL25x3_GetProlificUSBDeviceCount()` 取得裝置數量
    `java.lang.String` | `PL25x3_GetSdkVersion()`
    `java.lang.String` | `PL25x3_GetSerialByIndex(int index)` 取得裝置序號
    `java.lang.String` | `PL25x3_GetSerialNumber(int index)`
    `int` | `PL25x3_GPIO_ENABLE(int Port_Index, int GPIO_Index, int GPIOmode)` 初始化 GPIO
    `int[]` | `PL25x3_GPIO_Read(int Port_Index, int GPIO_Index)` 當方向為 input 時，可以用來取得這些腳位的狀態
    `int` | `PL25x3_GPIO_Write(int Port_Index, int GPIO_Index, int GPIO_Val)` 當方向為 output 時，可以用來控制這些腳位的狀態
    `boolean` | `PL25x3_IsDeviceConnectedByIndex(int index)` 取得裝置連線狀態
    `boolean` | `PL25x3_IsSupportChip(int index)` 偵測 PL25x3 只支援 PL2543 / PL2303EA / RL2303RA
    `boolean` | `PL25x3_OpenDevByBaudRate(int index, int nBaudRate)` 使用 BaudRate 開啟裝置
    `boolean` | `PL25x3_OpenDevByDefualtSetting(int index)` 使用初始值開啟裝置
    `boolean` | `PL25x3_OpenDevByUARTSetting(int index, int nBaudRate, PL25x3Lib.DataBits dataBits, PL25x3Lib.StopBits stopBits, PL25x3Lib.Parity parity, PL25x3Lib.FlowControl flowControl)` 使用代入值開啟裝置
    `int` | `PL25x3_Read(int index, byte[] buf)` 讀取 Uart 資料
    `void` | `PL25x3_ReSetStatus()` 重設狀態
    `boolean` | `PL25x3_SetCommTimeouts(int TimeoutConstant)` 設定 time-out 參數 適用於指定通訊設備上的所有讀寫操作
    `int` | `PL25x3_SetDTR(int index, boolean state)` 切換 PL25x3 DTR on 或 off
    `int` | `PL25x3_SetRTS(int index, boolean state)` 切換 PL25x3 RTS on 或 off
    `int` | `PL25x3_SetupCOMPort(int index, int nBaudRate, PL25x3Lib.DataBits dataBits, PL25x3Lib.StopBits stopBits, PL25x3Lib.Parity parity, PL25x3Lib.FlowControl flowControl)` 設定 Uart 設定值
    `boolean` | `PL25x3_USBFeatureSupported()` 偵測此 Android 作業系統是否支援 USB 主機 API 功能
    `int` | `PL25x3_Write(int index, byte[] buf)` 寫入 UART 資料

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

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

- - ### Field Detail

    - #### BAUD2457600

          public static final int BAUD2457600

      See Also:
        Constant Field Values

    - #### BAUD3000000

          public static final int BAUD3000000

      See Also:
        Constant Field Values

    - #### BAUD6000000

          public static final int BAUD6000000

      See Also:
        Constant Field Values

    - #### BAUD12000000

          public static final int BAUD12000000

      See Also:
        Constant Field Values

    - #### BAUD24000000

          public static final int BAUD24000000

      See Also:
        Constant Field Values

    - #### PL25x3_DCD_ON

          public static final int PL25x3_DCD_ON

      See Also:
        Constant Field Values

    - #### PL25x3_DSR_ON

          public static final int PL25x3_DSR_ON

      See Also:
        Constant Field Values

    - #### PL25x3_RI_ON

          public static final int PL25x3_RI_ON

      See Also:
        Constant Field Values

    - #### PL25x3_CTS_ON

          public static final int PL25x3_CTS_ON

      See Also:
        Constant Field Values

    - #### PLUART_MESSAGE

          public java.lang.String PLUART_MESSAGE

    - #### PLUART_DETACHED

          public java.lang.String PLUART_DETACHED

  - ### Constructor Detail

    - #### PL25x3Lib

          public PL25x3Lib(UsbManager manager,
                           Context context,
                           java.lang.String sAppName)

      新增一個 PL25x3 物件
      Parameters:
        `manager` - [in] Initialize a PL25x3 driver.
        `context` - [in] Initialize a PL25x3 driver.
        `sAppName` - [in] , ACTION_USB_PERMISSION string, for example: "tw.com.prolific.pl2303hxdgpio.USB_PERMISSION" "com.prolific.pl2303hxdsimpletest.USB_PERMISSION" "XXX.AAA.CCC.USB_PERMISSION"

    - #### PL25x3Lib

          public PL25x3Lib(UsbManager manager,
                           Context context,
                           java.lang.String sAppName,
                           boolean bWithQueue)

      新增一個 PL25x3 物件
      Parameters:
        `manager` - [in] Initialize a PL25x3 driver.
        `context` - [in] Initialize a PL25x3 driver.
        `sAppName` - [in] ACTION_USB_PERMISSION string, for example: "tw.com.prolific.pl2303hxdgpio.USB_PERMISSION" "com.prolific.pl2303hxdsimpletest.USB_PERMISSION" "XXX.AAA.CCC.USB_PERMISSION"
        `bWithQueue` - , Specifies the software 4K Queue buffer is enable or disable

  - ### Method Detail

    - #### convertIntToHex

          public static final java.lang.String convertIntToHex(int i)

    - #### PL25x3_Close

          public void PL25x3_Close()

      關閉 PL25x3 裝置

    - #### PL25x3_USBFeatureSupported

          public boolean PL25x3_USBFeatureSupported()

      偵測此 Android 作業系統是否支援 USB 主機 API 功能
      Returns:
        0 : 代表有支援, 其他值則沒有

    - #### PL25x3_ReSetStatus

          public void PL25x3_ReSetStatus()

      重設狀態

    - #### PL25x3_Enumerate

          public int PL25x3_Enumerate()

      列舉 PL25x3 裝置
      Returns:
        列舉裝置數量

    - #### PL25x3_GetBcdByIndex

          public int PL25x3_GetBcdByIndex(int index)

    - #### PL25x3_IsDeviceConnectedByIndex

          public boolean PL25x3_IsDeviceConnectedByIndex(int index)

      取得裝置連線狀態
      Parameters:
        `index` - 裝置之索引值
      Returns:
        true : 已連線, false : 未連線

    - #### PL25x3_GetDevicePathByIndex

          public java.lang.String PL25x3_GetDevicePathByIndex(int index)

      取得路徑
      Parameters:
        `index` - 裝置之索引值
      Returns:
        裝置路徑

    - #### PL25x3_GetSerialByIndex

          public java.lang.String PL25x3_GetSerialByIndex(int index)

      取得裝置序號
      Parameters:
        `index` - 裝置之索引值
      Returns:
        裝置序號

    - #### PL25x3_GetProlificUSBDeviceCount

          public int PL25x3_GetProlificUSBDeviceCount()

      取得裝置數量
      Returns:
        裝置數量

    - #### PL25x3_Write

          public int PL25x3_Write(int index,
                                  byte[] buf)

      寫入 UART 資料
      Parameters:
        `index` - 裝置之索引值
        `buf` - 寫入的資料
      Returns:
        寫入的資料長度

    - #### PL25x3_Read

          public int PL25x3_Read(int index,
                                 byte[] buf)

      讀取 Uart 資料
      Parameters:
        `index` - 裝置之索引值
        `buf` - 讀取資料緩衝區
      Returns:
        讀到的資料長度

    - #### PL25x3_OpenDevByDefualtSetting

          public boolean PL25x3_OpenDevByDefualtSetting(int index)

      使用初始值開啟裝置
      Parameters:
        `index` - 裝置之索引值
      Returns:
        true 代表已成功打開裝置

    - #### PL25x3_OpenDevByBaudRate

          public boolean PL25x3_OpenDevByBaudRate(int index,
                                                  int nBaudRate)

      使用 BaudRate 開啟裝置
      Parameters:
        `index` - 裝置之索引值
        `nBaudRate` - BaudRate
      Returns:
        true 代表已成功打開裝置

    - #### PL25x3_OpenDevByUARTSetting

          public boolean PL25x3_OpenDevByUARTSetting(int index,
                                                     int nBaudRate,
                                                     PL25x3Lib.DataBits dataBits,
                                                     PL25x3Lib.StopBits stopBits,
                                                     PL25x3Lib.Parity parity,
                                                     PL25x3Lib.FlowControl flowControl)

      使用代入值開啟裝置
      Parameters:
        `index` - 裝置之索引值
        `nBaudRate` - BaudRate
        `dataBits` - DataBits
        `stopBits` - StopBits
        `parity` - Parity
        `flowControl` - FlowControl
      Returns:
        true 代表已成功打開裝置

    - #### PL25x3_CloseDeviceByIndex

          public void PL25x3_CloseDeviceByIndex(int index)

      依照 index 關閉 PL25x3 裝置
      Parameters:
        `index` - 裝置之索引值

    - #### PL25x3_SetupCOMPort

          public int PL25x3_SetupCOMPort(int index,
                                         int nBaudRate,
                                         PL25x3Lib.DataBits dataBits,
                                         PL25x3Lib.StopBits stopBits,
                                         PL25x3Lib.Parity parity,
                                         PL25x3Lib.FlowControl flowControl)
                                  throws java.io.IOException

      設定 Uart 設定值
      Parameters:
        `index` - 裝置之索引值
        `nBaudRate` - BaudRate
        `dataBits` - DataBits
        `stopBits` - StopBits
        `parity` - Parity
        `flowControl` - FlowControl
      Throws:
        `java.io.IOException` - 設定不支援或連線關閉

    - #### PL25x3_IsSupportChip

          public boolean PL25x3_IsSupportChip(int index)

      偵測 PL25x3 只支援 PL2543 / PL2303EA / RL2303RA
      Parameters:
        `index` - 裝置之索引值
      Returns:
        true : 代表 PL2303 支援

    - #### PL25x3_SetCommTimeouts

          public boolean PL25x3_SetCommTimeouts(int TimeoutConstant)

      設定 time-out 參數 適用於指定通訊設備上的所有讀寫操作
      Parameters:
        `TimeoutConstant` - 逾時數值
      Returns:
        true : 成功, false : 失敗

    - #### PL25x3_GetCommTimeouts

          public boolean PL25x3_GetCommTimeouts(int TimeoutConstant)

      獲取指定通訊設備上所有讀寫操作的 time-out 參數
      Parameters:
        `TimeoutConstant` - 逾時數值
      Returns:
        true : 成功, false : 失敗

    - #### PL25x3_GetSerialNumber

          public java.lang.String PL25x3_GetSerialNumber(int index)

    - #### PL25x3_SetDTR

          public int PL25x3_SetDTR(int index,
                                   boolean state)

      切換 PL25x3 DTR on 或 off
      Parameters:
        `state` - true: SET DTR, false: CLEAR DTR

    - #### PL25x3_SetRTS

          public int PL25x3_SetRTS(int index,
                                   boolean state)

      切換 PL25x3 RTS on 或 off
      Parameters:
        `state` - true: SET RTS, false: CLEAR RTS

    - #### PL2303G_GPIO_B_CNT_ENABLE

          public int PL2303G_GPIO_B_CNT_ENABLE(int index,
                                               boolean Enable)

      PL25x3 有 8 個可控的「輸入輸出」控制訊號引腳，可以用來初始化 GPIO_B
      Parameters:
        `index` - [in] 裝置之索引值
        `Enable` - [in] True : Output mode, false : input mode.
      Returns:
        0 : 成功, 其餘都為失敗

    - #### PL25x3_GetCommModemStatus

          public int[] PL25x3_GetCommModemStatus(int index)

      獲取調變解調器控制暫存器值
      Returns:
        int[] [0]: 0 : 成功, 其餘都為失敗 [1]: Return data for ModemStatus (DCD, RI, DSR, DCTS)

    - #### PL25x3_GPIO_ENABLE

          public int PL25x3_GPIO_ENABLE(int Port_Index,
                                        int GPIO_Index,
                                        int GPIOmode)

      初始化 GPIO
      Parameters:
        `Port_Index` - [in] Port number
        `GPIO_Index` - [in] GPIO number
        `GPIOmode` - mode [in] The range is 0 ~ 2, 2: Output mode, 1: input mode, 0: default mode.
      Returns:
        0 : 成功, 其餘都為失敗

    - #### PL25x3_GPIO_Write

          public int PL25x3_GPIO_Write(int Port_Index,
                                       int GPIO_Index,
                                       int GPIO_Val)

      當方向為 output 時，可以用來控制這些腳位的狀態
      Parameters:
        `Port_Index` - [in] Port number
        `GPIO_Index` - [in] GPIO number
        `GPIO_Val` - [in] “1” is High level, 0 is low level , the range is 0 ~ 1
      Returns:
        0 : 成功, 其餘都為失敗

    - #### PL25x3_GPIO_Read

          public int[] PL25x3_GPIO_Read(int Port_Index,
                                        int GPIO_Index)

      當方向為 input 時，可以用來取得這些腳位的狀態
      Parameters:
        `Port_Index` - [in] Port number
        `GPIO_Index` - [in] GPIO number
      Returns:
        int[] [0]: 大於等於0為成功. 小於則失敗. [1]: GPIO value.“1” is High level, 0 is low level.

    - #### PL25x3_GetSdkVersion

          public java.lang.String PL25x3_GetSdkVersion()