Подключение устройства FTDI к Android как VCP - PullRequest
0 голосов
/ 13 ноября 2018

Я пытаюсь подключить FTDI FT2232H к приложению Android с помощью библиотеки классов Java, предоставляемой FTDI, для которой не требуется root-доступ.

Есть ли способ использовать VCP через этот пакет, а не маршрут старого драйвера в старом стиле? Или, если нет, есть ли способ эмулировать через него интерфейс VCP (или это вообще возможно, чтобы развернуть мое собственное решение?) Я считаю, что в официальных документах немного не хватает, так как они поощряют использование Java-библиотеки поверх родной, но не объясняйте, обеспечивает ли он полную четность функций.

1 Ответ

0 голосов
/ 11 января 2019

Да, вы можете использовать VCP через D2XX драйвер. Взгляните на Руководство пользователя Java D2xx для Android API (также на C / C ++ Разработка приложений программного обеспечения Руководство для программистов D2XX и Руководство для программистов FTD2XX Версия 2.01 документы), Официальный пример Android D2XX Исходный код особенно на FT2232HTestFragment.java класс от него:

public void SendMessage(View view) {
    // Do something in response to button
    FT_Device ftDev;
    if( uart_configured_0 == false ) {
          Toast.makeText(DeviceFT2232HTestContext, "UART Port 0 not configured yet...", Toast.LENGTH_SHORT).show();
          return;
      }
      ftDev = ft_device_0;

      if(ftDev.isOpen() == false) {
          Log.e(">>@@","SendMessage: ftDev not open!!!!!!  index: 0");
      } else {
          Log.e(">>@@","SendMessage: ftDev open, index: 0");

/*            Log.e(">>@@","port 0 isn:" + ftDev.deviceInfoNode.iSerialNumber
                  + " bcd:" + ftDev.deviceInfoNode.bcdDevice
                  + " id:" + ftDev.deviceInfoNode.id
                  + " loc:" + ftDev.deviceInfoNode.location
                  + " sn:" + ftDev.deviceInfoNode.serialNumber);
*/        
    }

  ftDev.setLatencyTimer((byte) 16);

  // ftDev.Purge(true, true);

  String writeData = writeText_0.getText().toString();
  byte[] OutData = writeData.getBytes();
  int iLen = ftDev.write(OutData, writeData.length());
  Log.e(">>@@", "Port 0 write Len:" + iLen + " s:" + writeData);
  Toast.makeText(DeviceFT2232HTestContext,
          "Port 0 write Len:" + iLen + " s:" + writeData,
          Toast.LENGTH_SHORT).show();
}

и примеры, подобные , ( Keisuke SUZUKI ).

...