tw.com.prolific.pl2303gmultilib

## Class PL2303GMultiLib

- java.lang.Object
- - tw.com.prolific.pl2303gmultilib.PL2303GMultiLib

-     public class PL2303GMultiLib
      extends java.lang.Object

- - ### Nested Class Summary

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

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `BAUD0`
    `static int` | `BAUD115200`
    `static int` | `BAUD1200`
    `static int` | `BAUD1228800`
    `static int` | `BAUD14400`
    `static int` | `BAUD150`
    `static int` | `BAUD1800`
    `static int` | `BAUD19200`
    `static int` | `BAUD230400`
    `static int` | `BAUD2400`
    `static int` | `BAUD2457600`
    `static int` | `BAUD300`
    `static int` | `BAUD3000000`
    `static int` | `BAUD38400`
    `static int` | `BAUD460800`
    `static int` | `BAUD4800`
    `static int` | `BAUD57600`
    `static int` | `BAUD600`
    `static int` | `BAUD6000000`
    `static int` | `BAUD614400`
    `static int` | `BAUD75`
    `static int` | `BAUD921600`
    `static int` | `BAUD9600`
    `static int` | `PL2303G_CTS_ON`
    `static int` | `PL2303G_DCD_ON`
    `static int` | `PL2303G_DSR_ON`
    `static int` | `PL2303G_RI_ON`
    `java.lang.String` | `PLUART_DETACHED`
    `java.lang.String` | `PLUART_MESSAGE`
    `java.util.Hashtable<java.lang.String,java.lang.String>` | `Prolific_DevicePath_2_COMNumber`
    `java.util.Hashtable<java.lang.String,UsbDevice>` | `ProlificUSBCurrentDeviceList`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PL2303GMultiLib(UsbManager manager, Context context, java.lang.String sAppName)` Initialize a PL2303G driver, the software 4K Queue buffer is enable.
    `PL2303GMultiLib(UsbManager manager, Context context, java.lang.String sAppName, boolean bWithQueue)` Initialize a PL2303G driver.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `EnableFixed_COMPort_Mode()` Enable Fixed COM port Mode.
    `void` | `PL2303CloseDeviceByIndex(int index)` Close an PL-UART USB Device by index.
    `boolean` | `PL2303Device_GetCommTimeouts(int TimeoutConstant)` The PL2303Device_GetCommTimeouts function retrieves the time-out parameters for all read and write operations on a specified communications device.
    `java.lang.String` | `PL2303Device_GetSerialNumber(int index)`
    `boolean` | `PL2303Device_SetCommTimeouts(int TimeoutConstant)` The PL2303Device_SetCommTimeouts function sets the time-out parameters, for all read and write operations on a specified communications device.
    `int` | `PL2303Enumerate()` Found a PL2303G device number , the default VID_PID is 067B_2303.
    `int` | `PL2303G_Enable_GPIO_A(int index, int GPIO_Num, boolean Enable)` PL2303G has 8 software controllable, General-purpose input and output control signal pins, You can use this API to control the direction of these pins GPIO_A.
    `int` | `PL2303G_Enable_GPIO_B(int index, int GPIO_Num, boolean Enable)` PL2303G has 8 software controllable, General-purpose input and output control signal pins, You can use this API to control the direction of these pins GPIO_B.
    `int[]` | `PL2303G_Get_GPIO_Value_A(int index, int GPIO_Num)` PL2303G has 8 software controllable, General-purpose input and output control signal pins, You can use this API to get the status of these GPIO_A pins when the direction is in input mode.
    `int[]` | `PL2303G_Get_GPIO_Value_B(int index, int GPIO_Num)` PL2303G has 8 software controllable, General-purpose input and output control signal pins, You can use this API to get the status of these GPIO_B pins when the direction is in input mode.
    `int` | `PL2303G_GPIO_A_CNT_ENABLE(int index, int GPIO_Num, boolean Enable)` PL2303G has 8 software controllable, General-purpose input and output control signal pins, You can use this API to Init GPIO_A.
    `int` | `PL2303G_GPIO_B_CNT_ENABLE(int index, int GPIO_Num, boolean Enable)` PL2303G has 8 software controllable, General-purpose input and output control signal pins, You can use this API to Init GPIO_B.
    `void` | `PL2303G_ReSetStatus()` ReSet Port Status.
    `int` | `PL2303G_Set_GPIO_Value_A(int index, int GPIO_Num, int val)` PL2303G has 8 software controllable, General-purpose input and output control signal pins, You can use this API to control the status of these pins of GPIO_A when the direction is output mode.
    `int` | `PL2303G_Set_GPIO_Value_B(int index, int GPIO_Num, int val)` PL2303G has 8 software controllable, General-purpose input and output control signal pins, You can use this API to control the status of these pins of GPIO_B when the direction is output mode.
    `int` | `PL2303G_SetDTR(int index, boolean state)` Switch PL2303G DTR on or off.
    `int` | `PL2303G_SetRTS(int index, boolean state)` Switch PL2303G RTS on or off.
    `java.lang.String` | `PL2303getCOMNumber(int index)` Get the PL2303G COM port Number : COM1, COM2, COM3...
    `java.lang.String` | `PL2303getDevicePathByIndex(int index)` Get the Device Path.
    `int` | `PL2303getProlificUSBDeviceCount()` Returns the active device number of PL2303.
    `java.lang.String` | `PL2303getSerialByIndex(int index)` Returns the serial number for the device.
    `boolean` | `PL2303IsDeviceConnectedByIndex(int index)` Get the connection status of this PL2303G, ie, whether there is an active connection with PL2303G device.
    `int` | `PL2303LibGetVersion(byte[] byVersion)` Get Lib version.
    `boolean` | `PL2303OpenDevByBaudRate(int index, PL2303GMultiLib.BaudRate R)` Open an PL-UART USB Device by baudrate.
    `boolean` | `PL2303OpenDevByDefualtSetting(int index)` Open an PL-UART USB Device by default UART setting.
    `boolean` | `PL2303OpenDevByUARTSetting(int index, PL2303GMultiLib.BaudRate R, PL2303GMultiLib.DataBits D, PL2303GMultiLib.StopBits S, PL2303GMultiLib.Parity P, PL2303GMultiLib.FlowControl F)` Open an PL-UART USB Device by UART setting.
    `int` | `PL2303Read(int index, byte[] buf)` Read Binary Data from PL2303G chip.
    `void` | `PL2303Release()` Close an PL2303G USB Device.
    `int` | `PL2303SetupCOMPort(int index, PL2303GMultiLib.BaudRate R, PL2303GMultiLib.DataBits D, PL2303GMultiLib.StopBits S, PL2303GMultiLib.Parity P, PL2303GMultiLib.FlowControl F)` Setup basic communication parameters on PL2303G chip.
    `boolean` | `PL2303USBFeatureSupported()` Detecting whether this Android OS supports USB host API feature.
    `int` | `PL2303Write(int index, byte[] buf)` Writes n bytes Data to PL-UART chipset.

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

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

- - ### Field Detail

    - #### BAUD0

          public static final int BAUD0

      See Also:
        Constant Field Values

    - #### BAUD75

          public static final int BAUD75

      See Also:
        Constant Field Values

    - #### BAUD150

          public static final int BAUD150

      See Also:
        Constant Field Values

    - #### BAUD300

          public static final int BAUD300

      See Also:
        Constant Field Values

    - #### BAUD600

          public static final int BAUD600

      See Also:
        Constant Field Values

    - #### BAUD1200

          public static final int BAUD1200

      See Also:
        Constant Field Values

    - #### BAUD1800

          public static final int BAUD1800

      See Also:
        Constant Field Values

    - #### BAUD2400

          public static final int BAUD2400

      See Also:
        Constant Field Values

    - #### BAUD4800

          public static final int BAUD4800

      See Also:
        Constant Field Values

    - #### BAUD9600

          public static final int BAUD9600

      See Also:
        Constant Field Values

    - #### BAUD14400

          public static final int BAUD14400

      See Also:
        Constant Field Values

    - #### BAUD19200

          public static final int BAUD19200

      See Also:
        Constant Field Values

    - #### BAUD38400

          public static final int BAUD38400

      See Also:
        Constant Field Values

    - #### BAUD57600

          public static final int BAUD57600

      See Also:
        Constant Field Values

    - #### BAUD115200

          public static final int BAUD115200

      See Also:
        Constant Field Values

    - #### BAUD230400

          public static final int BAUD230400

      See Also:
        Constant Field Values

    - #### BAUD460800

          public static final int BAUD460800

      See Also:
        Constant Field Values

    - #### BAUD614400

          public static final int BAUD614400

      See Also:
        Constant Field Values

    - #### BAUD921600

          public static final int BAUD921600

      See Also:
        Constant Field Values

    - #### BAUD1228800

          public static final int BAUD1228800

      See Also:
        Constant Field Values

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

    - #### PL2303G_DCD_ON

          public static final int PL2303G_DCD_ON

      See Also:
        Constant Field Values

    - #### PL2303G_DSR_ON

          public static final int PL2303G_DSR_ON

      See Also:
        Constant Field Values

    - #### PL2303G_RI_ON

          public static final int PL2303G_RI_ON

      See Also:
        Constant Field Values

    - #### PL2303G_CTS_ON

          public static final int PL2303G_CTS_ON

      See Also:
        Constant Field Values

    - #### PLUART_MESSAGE

          public java.lang.String PLUART_MESSAGE

    - #### PLUART_DETACHED

          public java.lang.String PLUART_DETACHED

    - #### ProlificUSBCurrentDeviceList

          public java.util.Hashtable<java.lang.String,UsbDevice> ProlificUSBCurrentDeviceList

    - #### Prolific_DevicePath_2_COMNumber

          public java.util.Hashtable<java.lang.String,java.lang.String> Prolific_DevicePath_2_COMNumber

  - ### Constructor Detail

    - #### PL2303GMultiLib

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

      Initialize a PL2303G driver, the software 4K Queue buffer is enable.
      Parameters:
        `manager` - [in] Initialize a PL2303G driver.
        `context` - [in] Initialize a PL2303G driver.
        `sAppName` - [in] ACTION_USB_PERMISSION string, for example:
        "tw.com.prolific.PL2303Ggpio.USB_PERMISSION"
        "com.prolific.PL2303Gsimpletest.USB_PERMISSION"
        "XXX.AAA.CCC.USB_PERMISSION"

    - #### PL2303GMultiLib

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

      Initialize a PL2303G driver.
      Parameters:
        `manager` - [in] Initialize a PL2303G driver.
        `context` - [in] Initialize a PL2303G driver.
        `sAppName` - [in] ACTION_USB_PERMISSION string, for example:
        "tw.com.prolific.pl2303Ggpio.USB_PERMISSION"
        "com.prolific.pl2303Gsimpletest.USB_PERMISSION"
        "XXX.AAA.CCC.USB_PERMISSION"
        `bWithQueue` - Specifies the software 4K Queue buffer is enable or disable.

  - ### Method Detail

    - #### PL2303Release

          public void PL2303Release()

      Close an PL2303G USB Device.

    - #### PL2303USBFeatureSupported

          public boolean PL2303USBFeatureSupported()

      Detecting whether this Android OS supports USB host API feature.
      Returns:
        Zero indicates the devices supports the USB HOST API feature, else false.

    - #### PL2303LibGetVersion

          public int PL2303LibGetVersion(byte[] byVersion)

      Get Lib version.
      Parameters:
        `byVersion` - [out] Lib version, e.g., 2.0.0.0.
      Returns:
        Zero indicates success. Nonzero indicates failure.

    - #### PL2303G_ReSetStatus

          public void PL2303G_ReSetStatus()

      ReSet Port Status.

    - #### PL2303Enumerate

          public int PL2303Enumerate()

      Found a PL2303G device number , the default VID_PID is 067B_2303.
      Returns:
        0 indicates: no more devices found, 1 indicates: 1 devices found.

    - #### PL2303IsDeviceConnectedByIndex

          public boolean PL2303IsDeviceConnectedByIndex(int index)

      Get the connection status of this PL2303G, ie, whether there is an active connection with PL2303G device.
      Parameters:
        `index` - usb-device index.
      Returns:
        true if connected, false if not connected.

    - #### PL2303getDevicePathByIndex

          public java.lang.String PL2303getDevicePathByIndex(int index)

      Get the Device Path.
      Parameters:
        `index` - usb-device index.
      Returns:
        String: Device Path.

    - #### PL2303getCOMNumber

          public java.lang.String PL2303getCOMNumber(int index)

      Get the PL2303G COM port Number : COM1, COM2, COM3...
      Parameters:
        `index` - usb-device index, the number is between 0 and 7.
      Returns:
        String: COM port Number: COM1, COM2, COM3...COM6, COOM7.

    - #### EnableFixed_COMPort_Mode

          public boolean EnableFixed_COMPort_Mode()

      Enable Fixed COM port Mode.

    - #### PL2303getSerialByIndex

          public java.lang.String PL2303getSerialByIndex(int index)

      Returns the serial number for the device.
      This will return null if the device has not been opened.
      Parameters:
        `index` - [in] usb-device index.
      Returns:
        String Device Path.

    - #### PL2303getProlificUSBDeviceCount

          public int PL2303getProlificUSBDeviceCount()

      Returns the active device number of PL2303.
      Returns:
        int is active device number.

    - #### PL2303Write

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

      Writes n bytes Data to PL-UART chipset.
      Parameters:
        `index` - [in] usb-device index.
        `buf` - [in] write buffer.
      Returns:
        written length.

    - #### PL2303Read

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

      Read Binary Data from PL2303G chip.
      Parameters:
        `index` - [in] usb-device index.
        `buf` - [in] read buffer.
      Returns:
        buffer length.

    - #### PL2303OpenDevByDefualtSetting

          public boolean PL2303OpenDevByDefualtSetting(int index)

      Open an PL-UART USB Device by default UART setting.
      Parameters:
        `index` - [in] usb-device index.
      Returns:
        true if the PL2303G USB Device was successfully opened, else false.

    - #### PL2303OpenDevByBaudRate

          public boolean PL2303OpenDevByBaudRate(int index,
                                                 PL2303GMultiLib.BaudRate R)

      Open an PL-UART USB Device by baudrate.
      Parameters:
        `index` - [in] usb-device index.
        `R` - [in] UART baud rate , the baud rate range of PL2303G are 75~12M bps.
      Returns:
        true if the PL2303G USB Device was successfully opened, else false.

    - #### PL2303OpenDevByUARTSetting

          public boolean PL2303OpenDevByUARTSetting(int index,
                                                    PL2303GMultiLib.BaudRate R,
                                                    PL2303GMultiLib.DataBits D,
                                                    PL2303GMultiLib.StopBits S,
                                                    PL2303GMultiLib.Parity P,
                                                    PL2303GMultiLib.FlowControl F)

      Open an PL-UART USB Device by UART setting.
      Parameters:
        `index` - [in] usb-device index.
        `R` - [in] UART baud rate , the baud rate range of PL2303G are 75~12M bps.
        `D` - [in] UART Data bit, PL2303G supports 5, 6, 7 or 8 data bits.
        `S` - [in] UART Stop bit, PL2303G supports 1, 1.5 or 2 data bits.
        `P` - [in] UART Parity bit, PL2303G supports Odd, Even, Mark, Space, or None parity mode.
        `F` - [in] UART Flow Control mode, PL2303G supports None, software or hardware Flow Control mode.
      Returns:
        true if the PL2303G USB Device was successfully opened, else false.

    - #### PL2303CloseDeviceByIndex

          public void PL2303CloseDeviceByIndex(int index)

      Close an PL-UART USB Device by index.
      Parameters:
        `index` - [in] usb-device index.

    - #### PL2303SetupCOMPort

          public int PL2303SetupCOMPort(int index,
                                        PL2303GMultiLib.BaudRate R,
                                        PL2303GMultiLib.DataBits D,
                                        PL2303GMultiLib.StopBits S,
                                        PL2303GMultiLib.Parity P,
                                        PL2303GMultiLib.FlowControl F)
                                 throws java.io.IOException

      Setup basic communication parameters on PL2303G chip.
      Parameters:
        `index` - [in] usb-device index.
        `R` - [in] UART baud rate , the baud rate range of PL2303G are 75~12M bps.
        `D` - [in] UART Data bit, PL2303G supports 5, 6, 7 or 8 data bits.
        `S` - [in] UART Stop bit, PL2303G supports 1, 1.5 or 2 data bits.
        `P` - [in] UART Parity bit, PL2303G supports Odd, Even, Mark, Space, or None parity mode.
        `F` - [in] UART Flow Control mode, PL2303G supports None, software or hardware Flow Control mode.
      Throws:
        `java.io.IOException` - if settings not supported or connection is closed.

    - #### PL2303Device_SetCommTimeouts

          public boolean PL2303Device_SetCommTimeouts(int TimeoutConstant)

      The PL2303Device_SetCommTimeouts function sets the time-out parameters,
      for all read and write operations on a specified communications device.
      Parameters:
        `TimeoutConstant` - is timeout Constant of read and write.
      Returns:
        If the function succeeds, the return value is true, If the function fails, the return value is false.

    - #### PL2303Device_GetCommTimeouts

          public boolean PL2303Device_GetCommTimeouts(int TimeoutConstant)

      The PL2303Device_GetCommTimeouts function retrieves the time-out parameters for all read and write operations on a specified communications device.
      Parameters:
        `TimeoutConstant:` - Timeout Constant of read and write.
      Returns:
        If the function succeeds, the return value is true. If the function fails, the return value is false.

    - #### PL2303Device_GetSerialNumber

          public java.lang.String PL2303Device_GetSerialNumber(int index)

    - #### PL2303G_SetDTR

          public int PL2303G_SetDTR(int index,
                                    boolean state)

      Switch PL2303G DTR on or off.
      Parameters:
        `state` - true: SET DTR, false: CLEAR DTR.

    - #### PL2303G_SetRTS

          public int PL2303G_SetRTS(int index,
                                    boolean state)

      Switch PL2303G RTS on or off.
      Parameters:
        `state` - true: SET RTS, false: CLEAR RTS.

    - #### PL2303G_GPIO_A_CNT_ENABLE

          public int PL2303G_GPIO_A_CNT_ENABLE(int index,
                                               int GPIO_Num,
                                               boolean Enable)

      PL2303G has 8 software controllable, General-purpose input and output control signal pins,
      You can use this API to Init GPIO_A.
      Parameters:
        `index` - [in] usb-device index.
        `GPIO_Num` - [in] The GPIO number, the range is 0 ~ 7.
        `Enable` - [in] True is Output mode, false is input mode.
      Returns:
        Zero indicates success. Nonzero indicates failure.

    - #### PL2303G_GPIO_B_CNT_ENABLE

          public int PL2303G_GPIO_B_CNT_ENABLE(int index,
                                               int GPIO_Num,
                                               boolean Enable)

      PL2303G has 8 software controllable, General-purpose input and output control signal pins,
      You can use this API to Init GPIO_B.
      Parameters:
        `index` - [in] usb-device index.
        `GPIO_Num` - [in] The GPIO number, the range is 0 ~ 7.
        `Enable` - [in] True is Output mode, false is input mode.
      Returns:
        Zero indicates success. Nonzero indicates failure.

    - #### PL2303G_Enable_GPIO_A

          public int PL2303G_Enable_GPIO_A(int index,
                                           int GPIO_Num,
                                           boolean Enable)

      PL2303G has 8 software controllable, General-purpose input and output control signal pins,
      You can use this API to control the direction of these pins GPIO_A.
      Parameters:
        `index` - [in] usb-device index.
        `GPIO_Num` - [in] The GPIO number, the range is 0 ~ 7 .
        `Enable` - [in] True is Output mode, false is input mode.
      Returns:
        Zero indicates success. Nonzero indicates failure.

    - #### PL2303G_Enable_GPIO_B

          public int PL2303G_Enable_GPIO_B(int index,
                                           int GPIO_Num,
                                           boolean Enable)

      PL2303G has 8 software controllable, General-purpose input and output control signal pins,
      You can use this API to control the direction of these pins GPIO_B.
      Parameters:
        `index` - [in] usb-device index.
        `GPIO_Num` - [in] The GPIO number, the range is 0 ~ 7 .
        `Enable` - [in] True is Output mode, false is input mode.
      Returns:
        Zero indicates success. Nonzero indicates failure.

    - #### PL2303G_Set_GPIO_Value_A

          public int PL2303G_Set_GPIO_Value_A(int index,
                                              int GPIO_Num,
                                              int val)

      PL2303G has 8 software controllable, General-purpose input and output control signal pins,
      You can use this API to control the status of these pins of GPIO_A when the direction is output mode.
      Parameters:
        `index` - [in] usb-device index.
        `GPIO_Num` - [in] The GPIO number, the range is 0 ~ 7 .
        `val` - [in] " 1 " is High level, " 0 " is low level.
      Returns:
        Zero indicates success. Nonzero indicates failure.

    - #### PL2303G_Set_GPIO_Value_B

          public int PL2303G_Set_GPIO_Value_B(int index,
                                              int GPIO_Num,
                                              int val)

      PL2303G has 8 software controllable, General-purpose input and output control signal pins,
      You can use this API to control the status of these pins of GPIO_B when the direction is output mode.
      Parameters:
        `index` - [in] usb-device index.
        `GPIO_Num` - [in] The GPIO number, the range is 0 ~ 7 .
        `val` - [in] " 1 " is High level, " 0 " is low level.
      Returns:
        Zero indicates success. Nonzero indicates failure.

    - #### PL2303G_Get_GPIO_Value_A

          public int[] PL2303G_Get_GPIO_Value_A(int index,
                                                int GPIO_Num)

      PL2303G has 8 software controllable, General-purpose input and output control signal pins,
      You can use this API to get the status of these GPIO_A pins when the direction is in input mode.
      Parameters:
        `index` - [in] usb-device index.
        `GPIO_Num` - [in] The GPIO number, the range is 0 ~ 7 .
      Returns:
        int[] - [0]: Zero indicates success. Nonzero indicates failure. [1]: Return data for GPIO value." 1 " is High level, " 0 " is low level.

    - #### PL2303G_Get_GPIO_Value_B

          public int[] PL2303G_Get_GPIO_Value_B(int index,
                                                int GPIO_Num)

      PL2303G has 8 software controllable, General-purpose input and output control signal pins,
      You can use this API to get the status of these GPIO_B pins when the direction is in input mode.
      Parameters:
        `index` - [in] usb-device index.
        `GPIO_Num` - [in] The GPIO number, the range is 0 ~ 7 .
      Returns:
        int[] - [0]: Zero indicates success. Nonzero indicates failure. [1]: Return data for GPIO value." 1 " is High level, " 0 " is low level.