Mac OS X访问具有相同供应商ID和不同产品ID的设备

时间:2008-12-08 14:56:27

标签: macos usb

我正在编写一个打开USB设备并传输一些数据的应用程序。我正在关注开发人员示例中的UsbSimpleNotificationExample。该示例添加通知并为唯一的供应商ID和产品ID分配回调。但对于我的应用程序,我有多个PID和一个VID。如何添加包含单个Vid和多个PID的字典条目?如果我使用带有2个PID的CFDictionarySetValue,则第二个Pid调用将覆盖第一个字典值。由于这个原因,我无法正确匹配IOServiceAddMatchingNotification回调。我可以尝试的其他选择是什么?

2 个答案:

答案 0 :(得分:1)

为什么不尝试仅添加供应商ID?

然后您的匹配应包含所有产品ID。

答案 1 :(得分:0)

晚了6年......抱歉。

以下是您的工作方式:

CFMutableDictionaryRef  matchingDict = IOServiceMatching ( kIOUSBDeviceClassName );
if ( matchingDict )
{
    UInt32        usbVendor = k_MyVendorID;
    CFNumberRef   refVendorId = CFNumberCreate ( kCFAllocatorDefault, kCFNumberIntType, &usbVendor );
    CFDictionarySetValue ( matchingDict, CFSTR ( kUSBVendorID ), refVendorId );
    CFRelease ( refVendorID );
    CFDictionarySetValue ( matchingDict, CFSTR ( kUSBProductID ), CFSTR ( "*" ) );   // This is a wildcard, so we find any device.
}

注意通配符。