在Mac上编程USB设备

3

我正在更新一些旧的代码(目前可以工作,但是使用OpenTransport,所以...不行),它与USB扫描仪交互。我认为我理解了IOUSBDeviceInterfaceIOUSBInterfaceInterface应该如何工作,但是我似乎无法获取有关管道的信息。

我有一个方法,它接受:(IOUSBInterfaceInterface **)intf,其中有两个管道。我相信它已经正确设置了,但我不确定如何测试。在内部,我执行以下操作:

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

但是它返回 kIOReturnNotOpen。我已经正确检测到了扫描仪(当扫描仪关闭时,它甚至无法到达此阶段),而且我不认为有任何其他程序正在尝试访问该扫描仪。

有没有一些明智的方法来确定出现了什么问题?(例如,哪个其他程序认为它已经打开了管道等?)

这段代码技术上是用Objective-C编写的,但正如您所看到的,上面的代码非常基本,因此使用了这些标签。

1个回答

1

你已经在接口上调用了USBInterfaceOpen吗?

如果你还没有这样做,可以看一下USBNotification示例代码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接