업데이트 2 찾는 방법 : 나는 그것의 IN과 OUT 핀을 단락에 의해 FTDI 칩을 테스트 한안드로이드 USB 호스트 API - USB (다작) 통신을위한 드라이버
합니다. controlTransfer()
은 항상 0을 반환하고 bulkTransfer() - Write
은 전송 된 데이터의 길이를 반환하고 bulkTransfer() - Read
은 전송 된 데이터를 반환합니다.
누구나 알고 있습니까 어떻게 또는 어디서 Prolific 용 드라이버를 찾을 수 있습니까?
UPDATE 1 :
나는 슬릭 USB 2 좀 더 테스트를했고, 나는 내 문제를 발견했다 생각합니다. 나는 통신이 작동하지 않기 때문에 어떤 드라이버가 누락 된 것 같습니다.
내 보드를 Slick USB 2에 연결 한 다음 내 응용 프로그램을 사용하여 연결을 시도하면 "열린 장치 및 클레임 : 거짓, 파일 = 45, 테스트 = null"이 인쇄되었습니다. 나는 다시 시도했고 의사 소통이 시작되었습니다. 예상대로 데이터를 쓰고 읽을 수있었습니다. 또한 케이블을 다시 연결하면 통신이 중단되었습니다.
Slick USB 2는 통신에 필요한 드라이버를 설치하려고합니다.
어디에서 어떻게 드라이버를 찾을 수 있습니까?
내가 맞춤형 보드와 통신하기 위해 Android 기기 (갤럭시 탭 2.0 7 ", 버전 4.0.3)합니다.이를 위해, 나는 시리얼 컨버터 OTG 케이블 + USB를 사용하고 (다작) .
내가 기대 작품으로 슬릭 USB 2 응용 프로그램 및 모든과의 통신을 테스트했습니다.
을 지금, 나는 내가 의도 필터를 추가했습니다. USB 호스트 API를 사용하여 내 자신의 응용 프로그램을 만들려고 할 때 내가 연결하고 내 보드, 잘 인식되고있다. 아래 코드를 사용하고 있습니다 :
UsbDevice usbDevice; // contains device from intent-filter
Context context; // activity object
UsbManager manager = (UsbManager) context.getSystemService(Context.USB_SERVICE);
Toast.makeText(context, "usb device perm: " + manager.hasPermission(usbDevice), Toast.LENGTH_LONG).show();
UsbInterface interfaceUsb = usbDevice.getInterface(0);
UsbDeviceConnection connection = manager.openDevice(usbDevice);
boolean resClaim = connection.claimInterface(interfaceUsb, true);
Toast.makeText(context, "open device and claim: " + resClaim + ", file = " + connection.getFileDescriptor() + ", test = " + connection.getSerial(), Toast.LENGTH_LONG).show();
// Prints "open device and claim: true, file = 45, test = null"
int result = connection.controlTransfer(0x40, 0x03, 0x0034, 0, null, 0, 0); // set baudrate 57600
Toast.makeText(context, "result: " + result, Toast.LENGTH_LONG).show(); // returns -1
int resultWrite = connection.bulkTransfer(endpointUsbWrite, new byte[]{'a'}, 1, 1000);
byte[] bytesRead = new byte[64];
int resultRead = connection.bulkTransfer(endpointUsbRead, bytesRead, bytesRead.length, 1000);
// resultWrite returns 1, resultRead returns -1
controlTransfer()
은 항상 -1을 반환합니다. 난 또한 bulkTransfer() - write
시도하고 보낸 데이터의 길이를 반환하지만 보드 데이터를받지 못합니다. bulkTransfer() - read
는 -1을 반환합니다
내 응용 프로그램에 내 보드를 연결하고 Slick USB 2 응용 프로그램에 연결하려고 시도한 Slick USB 2가 내 보드에 연결할 수있는 테스트를 수행했습니다. 실제로 작동하지 않아야합니다. 나는 장치를 제대로 열 수 없다고 생각한다.
무엇이 여기에 있습니까? 여러 스레드를 확인했지만 문제를 해결할 수 없었습니다. 누군가 제안 할 수 있습니까?
bulktransfer를 시도한 코드를 게시 할 수 있습니까? 더 많은 문맥없이 이것을 추측하기는 어렵습니다. – sarwar
@sarwar 코드를 업데이트했습니다. – user427969
엔드 포인트가 올바르다 고 가정하면이 외에도 많은 것을 추가 할 필요가 없습니다. 필자는 벌크 전송의 정수 값을 읽거나 쓸 때가 없었습니다. 못. 나는 왜 그것을 믿지 않는지 전혀 모른다. 행운을 빕니다. 기기의 문서를 확인하고, Google에서 안드로이드에 대한 작동 코드가있는 사용자가 있는지 다시 살펴보십시오. 그렇지 않으면 맥주를 마시고 내일 다시 시작하십시오. – sarwar