2016-07-20 2 views
0

私はsamsung t365(android 4.4.4)で作業しており、1つのUARTとかなり通信しています。しかし、私は1つのアンドロイドデバイスの唯一のポートと通信するために、複数(2つ)のUARTを使用する必要があります。私がUSBハブ(S-LİNKSL-U602 USB 2.0)を使用し、遊び市場からuart termアプリケーションを使用すると、ポートを選択することによって両方のUartを見ることができます。質問は次のとおりです。2つのUart(ft232r)をプログラムで選択

  • は、(複数のUARTを持つ)challangeかもしれない何
  • 、プログラムで選択するCOMポートを使用して作業を行うことが可能です

ありがとうございました。

答えて

0

android-serialport-apiライブラリで試してください。
RS232標準では、COMポートごとに1つのデバイスしか使用できません。

+0

他の例またはAPIがある – boy

+0

https://felhr85.net/2015/01/09/a-dirty-and-quick-example-of-serial-port-communication- in-android/ –

+0

Androidデバイスは同時に複数のuartを通信できますか? – boy

0

FTdriver.javaには、マルチデバイスの接続に役立つbeginメソッドがあります。しかし、デフォルトでは、最初のデバイスに設定されます。あなたがコメント行で見ることができるように。マルチ接続のために変更する必要があります。 参照:https://github.com/ksksue/FTDriver/blob/master/FTDriver/src/jp/ksksue/driver/serial/FTDriver.java

// Open an FTDI USB Device 
     public boolean begin(int baudrate) { 
      for (UsbDevice device : mManager.getDeviceList().values()) { 
       Log.i(TAG, "Devices : " + device.toString()); 

       getPermission(device); 
       if (!mManager.hasPermission(device)) { 
        return false; 
       } 

       // TODO: support any connections(current version find a first 
       // device) 
       if (getUsbInterfaces(device)) { 
        break; 
       } 
      } 

      if (mSelectedDeviceInfo == null) { 
       return false; 
      } 

      if (mDevice == null) { 
       return false; 
      } 

      if (mDevice.getDeviceClass() == UsbConstants.USB_CLASS_COMM) { 
       isCDC = true; 
      } else { 
       isCDC = false; 
      } 

      mFTDIEndpointIN = new UsbEndpoint[mSelectedDeviceInfo.mNumOfChannels]; 
      mFTDIEndpointOUT = new UsbEndpoint[mSelectedDeviceInfo.mNumOfChannels]; 

      if (isCDC) { 
       if (!getCdcEndpoint()) { 
        return false; 
       } 
      } else { 
       if (!setFTDIEndpoints(mInterface, 
         mSelectedDeviceInfo.mNumOfChannels)) { 
        return false; 
       } 
      } 

      if (isCDC) { 
       initCdcAcm(mDeviceConnection, baudrate); 
      } else { 
       initFTDIChip(mDeviceConnection, baudrate); 
      } 

      Log.i(TAG, "Device Serial : " + mDeviceConnection.getSerial()); 

      return true; 
    } 
関連する問題