Как подключиться к устройству libusb с помощью символической ссылки? ⇐ C++
Как подключиться к устройству libusb с помощью символической ссылки?
У меня есть устройство потокового видео, к которому я обращаюсь с помощью Microsoft Media Foundation. Он имеет дополнительную функциональность при использовании объемных данных. Я хочу подключиться к нему с помощью libusb. Моя проблема в том, что мне нужно подключиться точно к тому же устройству, что и при использовании IMFMediaSource. Подключая два одинаковых устройства, я не могу найти способ их разделить. VID и PID одинаковы. Единственное, что у меня есть от MF, это символическая ссылка: \\?\usb#vid_----&pid_----&mi_00#8&20ba1d94&0&0000#{e5323777-f976-4f5b-9b55-b94699c46e44}\global (удалены vid и pid). С помощью libusb, используя дескриптор устройства, я могу прочитать Serial: $Rev:0001_CID:0009011D01502130_SN:76543210$. На подключенных устройствах они разные, но проблема в том, что я не могу найти способ проверить или соединить эти две строки, чтобы убедиться, что это одно и то же устройство. Код, в котором я получаю символическую ссылку:
IMFAttributes* pAttributes = NULL; IMFActivate** ppDevices = NULL; HRESULT hr = EnumerateVideoDevices(pAttributes, ppDevices,availDeviceCount); AvailDevice = новое устройство [availDeviceCount]; // инициализируем пустой возвращаемый массив // заполняем возвращаемый массив устройствами for (int я = 0; я GetAllocatedString(MF_DEVSOURCE_ATTRIBUTE_FRIENDLY_NAME, &deviceFriendlyName, &len); Устройство newDevice {i, ToNarrow(deviceFriendlyName), NULL, 0}; // TODO: проверить, что переход с unicode на String ничего не портит (см. ToNarrow, misc.h) // сохраняем для уведомлений об изменении устройства ppDevices->GetAllocatedString(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_SYMBOLIC_LINK, &newDevice.g_pwszSymbolicLink, &newDevice.g_cchSymbolicLink); AvailDevice = новоеУстройство; } Вот как я получаю последовательный порт с помощью libusb:
String серийный = LibUsb.getStringDescriptor(handle, descriptor.iSerialNumber());
У меня есть устройство потокового видео, к которому я обращаюсь с помощью Microsoft Media Foundation. Он имеет дополнительную функциональность при использовании объемных данных. Я хочу подключиться к нему с помощью libusb. Моя проблема в том, что мне нужно подключиться точно к тому же устройству, что и при использовании IMFMediaSource. Подключая два одинаковых устройства, я не могу найти способ их разделить. VID и PID одинаковы. Единственное, что у меня есть от MF, это символическая ссылка: \\?\usb#vid_----&pid_----&mi_00#8&20ba1d94&0&0000#{e5323777-f976-4f5b-9b55-b94699c46e44}\global (удалены vid и pid). С помощью libusb, используя дескриптор устройства, я могу прочитать Serial: $Rev:0001_CID:0009011D01502130_SN:76543210$. На подключенных устройствах они разные, но проблема в том, что я не могу найти способ проверить или соединить эти две строки, чтобы убедиться, что это одно и то же устройство. Код, в котором я получаю символическую ссылку:
IMFAttributes* pAttributes = NULL; IMFActivate** ppDevices = NULL; HRESULT hr = EnumerateVideoDevices(pAttributes, ppDevices,availDeviceCount); AvailDevice = новое устройство [availDeviceCount]; // инициализируем пустой возвращаемый массив // заполняем возвращаемый массив устройствами for (int я = 0; я GetAllocatedString(MF_DEVSOURCE_ATTRIBUTE_FRIENDLY_NAME, &deviceFriendlyName, &len); Устройство newDevice {i, ToNarrow(deviceFriendlyName), NULL, 0}; // TODO: проверить, что переход с unicode на String ничего не портит (см. ToNarrow, misc.h) // сохраняем для уведомлений об изменении устройства ppDevices->GetAllocatedString(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_SYMBOLIC_LINK, &newDevice.g_pwszSymbolicLink, &newDevice.g_cchSymbolicLink); AvailDevice = новоеУстройство; } Вот как я получаю последовательный порт с помощью libusb:
String серийный = LibUsb.getStringDescriptor(handle, descriptor.iSerialNumber());
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Ошибка символической ссылки после обновления одного из наших артефактов.
Anonymous » » в форуме JAVA - 0 Ответы
- 45 Просмотры
-
Последнее сообщение Anonymous
-