2010-07-08 51 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