2015-10-17 175 views
1

掛我已經從蘋果的例子中使用的代碼:ReadPipe在Mac OS X 10.11

// Send data through out pipe 
ret = (*usbInterface)->WritePipe(usbInterface, bulkOutRef, (void *)kTestMessage, 4); 
if (ret != kIOReturnSuccess) 
{ 
    NSLog(@"Write failed (error: %x)\n", ret); 
} 
// Read data through in pipe 
numBytes = 64; 
inp = malloc(numBytes); 
ret = (*usbInterface)->ReadPipe(usbInterface, bulkInRef, inp, &numBytes); 

管道引用與GetPipeProperties檢查(與USB探針測試臺一倍選中)。 我也嘗試了異步版本,結果相同:寫入工作(似乎),讀取掛起。 我也試過一些調試usbtrace:發射一次後退出,現在總是返回The trace facility is currently in use。 USB器件是Microchip USB入門工具包II。 有什麼想法? 謝謝,

米歇爾

+0

可能不是問題,但是你的'bulkInRef'是什麼? – Dorad

+0

這是一個Uint 8,對輸入管道的引用。在我的情況下,值爲2. –

+0

也許檢查它是否是一個輸入管道: (* usbInterface) - > GetPipeProperties(usbInterface,1,&directionOut,&number,&transferType,&maxPacketSize,&interval); (* usbInterface) - > GetPipeProperties(usbInterface,2,&direction2,&number,&transferType,&maxPacketSize,&interval); if(directionOut!= direction2){ } – Dorad

回答

0

問題是,我不得不發送一個請求到所述OUT管使用WritePipe該設備,然後讀取在IN管使用ReadPipe的響應。我沒有得到它,這是我的錯。