Я работал над разработкой приложения для Android, которое будет выступать в качестве ведущего разработчика платы разработки Digispark на базе Arduino. Одной из проблем с доской является то, что у нее нет специального USB-контроллера, вместо этого он использует программную реализацию низкоскоростной шины USB.
При этом, когда я подключаю Digispark к моему Droid Bionic , я могу видеть устройство, использующее как перечисление в моем собственном приложении, так и с помощью приложения USB-контроллера. Кажется, это половина битвы.
То, что я застрял прямо сейчас, это следующее. Когда я подключаю Digispark и пытаюсь запустить мое приложение, перечисление возвращается с несколькими устройствами, соответствующими одному VID и PID . Я не понимаю, как это возможно, но вот пример моего кода и результата, который я получаю:
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.");
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 или ошибкой благодаря моим слабым навыкам работы с программным обеспечением?