1

事実上 USB シリアル コンバーターであるスレーブに接続する Android USB ホスト プログラムを取得しようとしています。スレーブ デバイスは現在、利用可能なデータがない場合に NAK を返すように設定されています。onAnimationUpdate リスナーの一部として IN エンドポイントで queue() と requestWait() を使用して、IN データがあるかどうかを確認するためにスレーブをポーリングしています。 . ただし、システムは requestWait() でスタックしています。おそらく、キューに入れられたリクエストへの最終的な応答を取得するまで待機しています。
NAK は、スレーブが要求に反応し、null の結果または同様の結果が返されたことを示すものと見なされると考えていました。ただし、これに関する詳細なドキュメントは見つかりません。誰かがアドバイスのために正しい方向に私を向けることができますか?

4

1 に答える 1

1

この問題はある程度解決しましたが、満足のいくものではありませんでした。Android の requestWait() 関数は、IN への NAK 応答を「利用可能なデータがない」ことを示すものとして認識しないようです (正しい結果が得られるので、null を返すと思っていたでしょう)。利用可能なデータが得られるまで-システムをロックします。1 バイトとして ASCII NAK を含む 1 バイトの応答で構成される「NULL」メッセージをデバイスから返すことで、これを「解決」しました。メッセージコーディングにASCIIを使用しているため、これは機能します。

于 2013-04-06T20:11:37.927 に答える