小编sca*_*rer的帖子

在应用程序级别从USB设备以Xcode获取序列号

我刚开始进行硬件编程,一直在尝试从USB设备获取序列号。我正在应用程序级别而不是内核级别实现所有功能。

我已经有一个字典可以匹配USB设备,因此我知道我有正确的设备。我不确定的是要返回的数据,如何解释它以及我是否正确处理了该问题。

因此,这里有一些我一直在尝试使用的代码,用于从设备获取序列号。

IOReturn retSerialIndex;
UInt8 snsi;
retSerialIndex = (*usbDevice)->USBGetSerialNumberStringIndex(usbDevice, &snsi);
if (retSerialIndex != kIOReturnSuccess)
{
    printf("Could not get serial number string index (error: %x)\n", retSerialIndex);
}
printf("Serial string index is %x\n", retSerialIndex);
IOReturn retSerial;
IOUSBConfigurationDescriptorPtr *desc;
if (retSerialIndex)
{
    retSerial = (*usbDevice)->GetConfigurationDescriptorPtr(usbDevice,
                                                            retSerialIndex,
                                                            desc);
    if (retSerial != kIOReturnSuccess)
    {
        printf("Could not get serial number using string index (error: %x)\n", retSerial);
    }
}
printf("Serial number is %x\n", retSerial);
char serialString;
serialString = getUSBStringDescriptor(usbDevice, retSerial);
printf("Serial string is %c\n", serialString);
Run Code Online (Sandbox Code Playgroud)

这是我的getUSBStringDescriptor实现: …

macos usb xcode

2
推荐指数
1
解决办法
748
查看次数

标签 统计

macos ×1

usb ×1

xcode ×1