Windows: обнаружить одно и то же устройство на Bluetooth API и SetupAPI - PullRequest
0 голосов
/ 02 марта 2019

В настоящее время я создаю программу, которая разделена на две части: одна, где я обнаруживаю близлежащие устройства Bluetooth и подключаю их к ПК, если имя совпадает, и другая, где я ищу устройство с помощью setupapi и получаю дескриптор для HID.comunication.
Моя проблема в том, что я не могу найти ничего, что говорит мне о том, что устройство, которое я только что подключил, такое же, как и в setupapi.
Итак, в первой части у меня есть что-то вроде этого:

BLUETOOTH_DEVICE_INFO btdi;
//--- Code omitted ---
BluetoothGetDeviceInfo(radio_handle, &btdi);
if(std::wstring(btdi.szName) == /*my name*/)
    // Device found! now connect
    BluetoothSetServiceState(radio_handle, &btdi, &HumanInterfaceDeviceServiceClass_UUID, BLUETOOTH_SERVICE_ENABLE);

И код, связанный с setupapi:

SP_DEVICE_INTERFACE_DATA device_data;
device_data.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA);
//--- Code omitted ---
SetupDiEnumDeviceInterfaces(device_infos, NULL, &hid_guid, index, &device_data);

Я думал об использовании адреса bluetooth устройства, но, похоже, нет никакого способа получить его из setupapi.
Итак, подведем итог,есть ли способ получить адрес устройства из setupi?И, если нет, есть ли другой способ убедиться, что это одно и то же устройство?

1 Ответ

0 голосов
/ 02 марта 2019

Здесь Я разместил код, как найти Wiimote, подключенный как HID, используя его MAC.Вы должны переработать этот код, чтобы он мог использовать ваше устройство HID (изменить VID и PID).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...