3

http://www.ftdichip.com/Android.htmの公式ドライバーを使用しています

03-20 13:37:52.359: WARN/FTDI(4453): 読み取り開始

03-20 13:37:52.359: WARN/FTDI(4453): 6 バイトが利用可能

03-20 13:37:57.960:WARN/FTDI(4453): 0 バイトの読み取り

03-20 13:37:57.960: 警告/FTDI(4453): 読み取りが完了しました

このソース コードは簡単です。

public int read(byte[] buffer, int timeout) throws IOException {
    Log.w(TAG, "read starting");
    try {            
        Log.w(TAG, device.getQueueStatus() + " bytes available");
        int read = device.read(buffer);
        Log.w(TAG, read + " bytes read");
        return read;
    } finally {
        Log.w(TAG, "read finished");
    }
}

彼らのサポート部門は、一週間たっても返事をくれませんでした。私は Android 4.0.4 を使用しており、Arduino Duemilanove ftdi ベースのボードを使用しています。

4

1 に答える 1

3

はい、やった..

着信データを読み取るには、これに従う必要があります。

  1. 開いた後に restartInTask() を呼び出す
  2. 読み取る前に利用可能な入力バイトを取得する
  3. 利用可能なバイト数 > 0 の場合のみ読み取り

作業コードスニペット:

public int read(byte[] buffer, int timeout) throws IOException {
        params.setReadTimeout(timeout);
        Log.w(TAG, "read starting");
        try {
            int available = device.getQueueStatus();
            Log.w(TAG, available + " bytes available");

            if (available <= 0)
                return 0;

            int read = device.read(buffer, available, timeout);
            Log.w(TAG, read + " bytes read");
            return read;
        } finally {
            Log.w(TAG, "read finished");
        }
    }
于 2013-03-23T14:37:46.280 に答える