2010-07-08 72 views
3

我正在更新一些舊的舊代碼(目前工作正常,但正在使用OpenTransport,所以這個...沒有),它與USB掃描儀進行連接。我想我明白IOUSBDeviceInterfaceIOUSBInterfaceInterface應該如何工作,但我似乎無法獲取有關管道的信息。在Mac上對USB設備進行編程

我有一個方法需要:(IOUSBInterfaceInterface **)intf它有兩個管道。我相信它設置正確,但我不知道如何測試。裏面,我這樣做:

for (i=1; i <= numPipes; i++) 
{ 
    err = (*intf)->GetPipeProperties(intf, i, &direction, &number, &transferType, &maxPacketSize, &interval); 
} 

但它返回kIOReturnNotOpen。我正確地檢測到掃描儀(當掃描儀關閉時,它甚至沒有到達這個階段),我認爲其他程序都沒有試圖訪問掃描儀。

是否有一些明智的方法來確定發生了什麼問題? (即,其他程序認爲它有管道打開,或者其他什麼?)

該代碼技術上在Objective-C,但正如你可以看到,上面的代碼是相當香草C,因此標籤。

回答

1

你在interace上調用了USBInterfaceOpen了嗎?

如果您還沒有這樣做,只需查看USBNotification示例代碼即可。

+0

D'oh。是的。這是問題所在。謝謝! – 2010-07-09 13:36:01