핸드폰과 usb캠카메라를 OTG를 이용하여 핸드폰으로 출력시킬려고 하는데요
우선적으로 리눅스 PC에서 USB통신을 이용하여 영상을 출력해본상태에서 안드로이드에서 우선적으로 영상이 들어오는지 확인하는 작업을 하려고 하고 있습니다.
전체 적인 안드로이드 소스구조는
onCreate 에서 초기화 및 디바이스퍼미션얻고 시작버튼을 클릭시 스레드를 돌려서 데이터를 얻고 있는데요 데이터를 얻을때 bulktranfer시 -1값이 리턴되고 있습니다.
----------시작버튼----
public void mtfReadFromDevice() {
int r;
r = connection.bulkTransfer(endpoint_IN, buffer, buffer.length, 0);
if (r < 0)
{
//-1값 리턴중
}
//check
if(nCheckData[0] == (buffer[0] & 0xFF) )
{
Message msg = mMainHandler.obtainMessage();
msg.what = SEND_MESSAGE_BULK;
msg.arg1 = Integer.valueOf(nGetbulkCount++);
mMainHandler.sendMessage(msg);
}
}
bulktranfer 를 이용해서 얻어와야 하는 데이터는 320*240*2 byte 사이즈인데 첫 프레임만 한번 들어오고 계속 -1값이
리턴되어서 값이 안들어오고 있습니다
제가 확인해본 사항으로는 endpoint 쪽은 확인을 한 상태이고
리눅스 PC에서는 USB2.0으로 안드로이드에서는 OTG를 연결하여 통신속도가 더 나지 않는 상태일거라고 짐작을 하는데요
안드로이드에서 시작을 눌렀을경우 제대로된 프레임이 계속 들어오게 하려면 어떤방법을 이나 확인이 더 필요한것인지 궁금합니다.
데이터를 읽어들이는 순서는 리눅스PC에서 USB통신했던 구조 그대로 사용하여 문제가 없을거라 생각이 되는데
OTG에서 통신을 제대로 할수 있는것인가에 대해서 의문이 가네요..