Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.22.51.241] |
|
Сообщ.
#1
,
|
|
|
Здравствуйте,
Такая проблема, пишу программу для BLE, вот дошел до поиска устройств, но тут затык. Я получил хэндл устройства на компьютере, теперь пытаюсь найти устройств внешние устройства. HANDLE hLEDevice = GetBLEHandle(AGuid); USHORT serviceBufferCount; HRESULT hr = BluetoothGATTGetServices( hLEDevice, 0, NULL, &serviceBufferCount, BLUETOOTH_GATT_FLAG_NONE); if (HRESULT_FROM_WIN32(ERROR_MORE_DATA) != hr) { printf("BluetoothGATTGetServices - Buffer Size %d", hr); } PBTH_LE_GATT_SERVICE pServiceBuffer = (PBTH_LE_GATT_SERVICE) malloc(sizeof(BTH_LE_GATT_SERVICE) * serviceBufferCount); if (NULL == pServiceBuffer) { printf("pServiceBuffer out of memory\r\n"); } else { RtlZeroMemory(pServiceBuffer, sizeof(BTH_LE_GATT_SERVICE) * serviceBufferCount); } USHORT numServices; hr = BluetoothGATTGetServices( hLEDevice, serviceBufferCount, pServiceBuffer, &numServices, BLUETOOTH_GATT_FLAG_NONE); if (S_OK != hr) { printf("BluetoothGATTGetServices - Buffer Size %d", hr); } USHORT charBufferSize; hr = BluetoothGATTGetCharacteristics( hLEDevice, pServiceBuffer, 0, NULL, &charBufferSize, BLUETOOTH_GATT_FLAG_NONE); функция hr = BluetoothGATTGetServices(), ничего не дает. То есть hr =(HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED)), соответственно на функции BluetoothGATTGetCharacteristics() вылетает exception 0x0f20e128. HANDLE я как вроде бы получил, думаю там все нормально, сам комп BLE видит, а вот код не работает. Подскажите,что сделать? Заметил, что когда использую HRESULT hr = BluetoothGATTGetServices( hLEDevice, 0, NULL, &serviceBufferCount, BLUETOOTH_GATT_FLAG_NONE); serviceBufferCount становится равен 0. То есть не видит внешних устройств получается... Хотя комп через сервисы виндосовские видит Заранее спасибо! |