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