4

私は、Arduino ベースのDigispark開発ボードのホストとして機能する Android アプリケーションの開発に取り組んでいます。このボードの問題点の 1 つは、専用の USB コントローラーがなく、代わりに低速 USB バスのソフトウェア実装を使用していることです。

そうは言っても、Digispark をDroid Bionicに接続すると、独自のアプリケーションでの列挙と、USB ホスト コントローラー アプリケーションの使用の両方を使用して、デバイスを確認できます。これで勝負は半分になりそうです。

私が今立ち往生しているのは、これが次のことです。Digispark を接続してアプリケーションを実行しようとすると、同じVIDPIDに一致する複数のデバイスの列挙が返されます。それがどのように可能かはわかりませんが、これが私のコードと私が得た出力の例です:

コード

UsbDevice anyDevice;
while(deviceIterator.hasNext()){
    anyDevice = deviceIterator.next();
    if(anyDevice.getVendorId() == 5824 && anyDevice.getProductId() == 1503){
        device = anyDevice;
        Log.d(TAG, "vid and pid " + anyDevice.getVendorId() + " " + anyDevice.getProductId());
        Log.d(TAG, "? " + anyDevice.getDeviceName());
        Log.d(TAG, "? " + anyDevice.getDeviceId());
        Log.d(TAG, "? " + anyDevice.getInterface(0).getEndpoint(0));
        Log.d(TAG, "DIGI FOUND");
    }
}
Log.i(TAG," No more devices connected.");

Eclipse ログ出力

03-28 19:32:40.773: D/USBTest(6228): vid and pid 5824 1503
03-28 19:32:40.773: D/USBTest(6228): ? /dev/bus/usb/003/003
03-28 19:32:40.773: D/USBTest(6228): ? 3003
03-28 19:32:40.773: D/USBTest(6228): ? UsbEndpoint[mAddress=129,mAttributes=3,mMaxPacketSize=8,mInterval=10]
03-28 19:32:40.773: D/USBTest(6228): DIGI FOUND
03-28 19:32:40.773: D/USBTest(6228): vid and pid 5824 1503
03-28 19:32:40.773: D/USBTest(6228): ? /dev/bus/usb/003/005
03-28 19:32:40.773: D/USBTest(6228): ? 3005
03-28 19:32:40.773: D/USBTest(6228): ? UsbEndpoint[mAddress=129,mAttributes=3,mMaxPacketSize=8,mInterval=10]
03-28 19:32:40.773: D/USBTest(6228): DIGI FOUND
03-28 19:32:40.773: D/USBTest(6228): vid and pid 5824 1503
03-28 19:32:40.773: D/USBTest(6228): ? /dev/bus/usb/003/015
03-28 19:32:40.773: D/USBTest(6228): ? 3015
03-28 19:32:40.773: D/USBTest(6228): ? UsbEndpoint[mAddress=129,mAttributes=3,mMaxPacketSize=8,mInterval=10]
03-28 19:32:40.773: D/USBTest(6228): DIGI FOUND
03-28 19:32:40.773: I/USBTest(6228):  No more devices connected.

これは、Digispark と Android の組み合わせのソフトウェアの問題ですか、それとも私のソフトウェア スキルの低さによるエラーですか?

4

0 に答える 0