2013-04-02 3 views
1

사실 USB 직렬 변환기 인 슬레이브에 연결하기 위해 Android USB 호스트 프로그램을 얻으려고합니다. 슬레이브 디바이스는 현재 사용 가능한 데이터가 없을 때 NAK를 리턴하도록 설정되며, onAnimationUpdate 리스너의 일부로 IN 엔드 포인트에서 queue() 및 requestWait()를 사용하여 IN 데이터가 있는지를 폴링합니다. . 그러나 시스템이 requestWait()에서 멈추고 있습니다. 아마도 대기열에있는 요청에 대한 확실한 응답을 얻을 때까지 기다릴 것입니다.
NAK는 노예가 요청에 응답했으며 null 결과 또는 유사한 결과가 전달되었다고 생각했습니다. 그러나 이에 대한 상세한 문서는 찾을 수 없습니다. 누구든지 조언을 위해 올바른 방향으로 나를 가리킬 수 있습니까?USB 요청은 슬레이브 장치에서 NAK에 어떻게 반응합니까?

답변

1

나는이 문제를 해결했으나 매우 만족스럽지 않습니다. 안드로이드 requestWait() 함수는 IN에 대한 NAK 응답을 "no data is available"을 나타내는 것으로 인식하지 못하는 것으로 보입니다 (올바른 결과가 나올 때부터 null을 반환 할 것이라고 생각했을 것입니다). 그러나 단순히 앉아서 사용 가능한 데이터가있을 때까지 대기합니다 (시스템 잠금). 내 장치에서 ASCII NAK가있는 1 바이트 응답으로 구성된 "NULL"메시지를 단일 바이트로 반환하여이 문제를 "해결"했습니다. 이것은 메시지 코딩에 ASCII를 사용하기 때문에 작동합니다.

관련 문제