在Mac上编程USB设备

时间:2010-07-08 15:19:18

标签: c objective-c macos usb

我正在更新一些旧的旧代码(现在可以使用,但是正在使用OpenTransport,所以嗯...没有)与USB扫描器接口。我认为我理解IOUSBDeviceInterfaceIOUSBInterfaceInterface应该如何工作,但我似乎无法获得有关管道的信息。

我有一个方法:(IOUSBInterfaceInterface **)intf有两个管道。我相信它设置正确,但我不确定如何测试。在里面,我做:

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

但它会返回kIOReturnNotOpen。我正确检测到扫描仪(当扫描仪关闭时,它甚至没有进入这个阶段)我不认为有任何其他程序试图访问扫描仪。

是否有一些合理的方法可以确定出现了什么问题? (即,其他程序认为它有管道打开,或者其他什么?)

代码在技术上是在Objective-C中,但正如您所看到的,上面的代码非常香草C,因此标签。

1 个答案:

答案 0 :(得分:1)

你有没有在interace上调用USBInterfaceOpen?

如果您尚未这样做,请查看USBNotification示例代码。