tw.com.prolific.pl2303ghidsdk

## Class HidToGpio

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

- Direct Known Subclasses:
    HidToI2c, HidToSpi, HidToUart

      public class HidToGpio
      extends java.lang.Object

  PL23B3, PL23C3, PL23D3 HID to GPIO 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
    `HidToGpio()` 新增一個 HidToGPIO 物件
    `HidToGpio(android.content.Context context, java.lang.String strAppName)` 新增一個 HidToGPIO 物件

  - ### 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, PL23C3, 或 PL23D3 裝置
    `int` | `enumDevices(int nDeviceVid, int nDevicePid)` 根據傳入之VID及PID 列舉相關PL23B3, PL23C3,或 PL23D3 裝置
    `java.lang.String` | `getDeviceName(int nDeviceIndex)` 取得裝置名稱
    `int` | `getGpio(GpioSetting.GpioPin gpioPin, GpioObject gpioObject)` PL23B3, PL23C3,或 PL23D3 擁有許多可控制之GPIO Pin, 在input模式底下可透過此function得到不同腳位之數值
    `java.lang.String` | `getSdkVersion()` 取得SDK版本號
    `java.lang.String` | `getSerialNumber(int nDeviceIndex)` 取得裝置之序號
    `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` | `setGpio(GpioSetting.GpioPin gpioPin, GpioSetting.GpioPin gpioPin, GpioObject gpioObject)` PL23B3, PL23C3,或 PL23D3 擁有許多可控制之GPIO Pin, 在output模式底下可透過此function控制不同腳位之數值
    `int` | `setGpioDir(GpioSetting.GpioPin gpioPin, GpioSetting.GpioPin gpioPin, GpioSetting.GpioDir gpioDir)` PL23B3, PL23C3,或 PL23D3 擁有許多可控制之GPIO Pin, 在input模式底下可透過此function得到不同腳位之方向

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

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

- - ### Constructor Detail

    - #### HidToGpio

          public HidToGpio()

      新增一個HidToGPIO物件.

    - #### HidToGpio

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

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

  - ### Method Detail

    - #### setGpioDir

          public int setGpioDir(int nDeviceIndex,
                                GpioSetting.GpioPin gpioPin,
                                GpioSetting.GpioDir gpioDir)

      PL23B3, PL23C3,或 PL23D3 擁有許多可控制之GPIO Pin, 透過此function控制不同腳位之資料流方向
      Parameters:
        `nDeviceIndex` - 裝置之索引值
        `gpioPin` - Gpio腳位
        `gpioDir` - 欲設定之方向
      Returns:
        0表成功, 非0表失敗。

    - #### setGpio

          public int setGpio(int nDeviceIndex,
                             GpioSetting.GpioPin gpioPin,
                             GpioObject gpioObject)

      PL23B3, PL23C3,或 PL23D3 擁有許多可控制之GPIO Pin, 在output模式底下可透過此function控制不同腳位之數值
      Parameters:
        `nDeviceIndex` - 裝置之索引值
        `gpioPin` - Gpio腳位
        `gpioObject` - 欲設定之數值
      Returns:
        0表成功, 非0表失敗。

    - #### getGpio

          public int getGpio(int nDeviceIndex,
                            GpioSetting.GpioPin gpioPin,
                            GpioObject gpioObject)

      PL23B3, PL23C3,或 PL23D3 擁有許多可控制之GPIO Pin, 在input模式底下可透過此function得到不同腳位之數值
      Parameters:
        `nDeviceIndex` - 裝置之索引值
        `gpioPin` - Gpio腳位
        `gpioObject` - 欲設定之數值
      Returns:
        0表成功, 非0表失敗。

    - #### enumDevices

          public int enumDevices(int nDeviceVid)

      列舉PL23B3, PL23C3,或 PL23D3 裝置
      Parameters:
        `nDeviceVid` - 欲列舉裝置之VID
      Returns:
        列舉之裝置數量

    - #### enumDevices

          public int enumDevices(int nDeviceVid,
                                 int nDevicePid)

      根據傳入之VID及PID 列舉PL23B3, PL23C3,或 PL23D3 裝置
      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` - 裝置之序號
      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:
        0表成功, 非0表失敗。

    - #### askPermissionByUsbDevice

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

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

    - #### closeDevice

          public int closeDevice()

      關閉 PL23B3, PL23C3或 PL23D3 裝置.
      Returns:
        0表成功, 非0表失敗。.

    - #### closeDeviceByDeviceIndex

          public int closeDeviceByDeviceIndex(int nDeviceIndex)

    - #### getSdkVersion

          public java.lang.String getSdkVersion()

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

    - #### setCommandTimeOut

          public void setCommandTimeOut(int nMillSecond)

      設定comman逾時之數值
      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` - 裝置之索引值/dd>
      Returns:
        裝置之物件, null表找不到裝置