Как подключить устройства BLE с помощью API сокетов Windows7?В принципе работает но у меня проблемы - PullRequest
0 голосов
/ 01 мая 2019

Я работаю над приложением C ++, которое взаимодействует с моим пользовательским оборудованием (на основе nRF52840) через BLE. Приложение должно работать на Windows, и было бы хорошо поддерживать Windows 7.

Несмотря на то, что официальная поддержка BLE для Win7 отсутствует, BLE, похоже, работает в некоторой степени. Мой iPhone, мышь BLE работают правильно. Однако я не могу подключиться ни к каким устройствам BLE из моего кода.

Попробовал этот пример:

https://github.com/Microsoft/Windows-classic-samples/blob/master/Samples/Win7Samples/netds/winsock/bluetooth/bthcxn.cpp

Приложение успешно обнаруживает все близлежащие устройства BLE. Он пытается подключиться к выбранному устройству, но connect () всегда возвращается с ошибкой, а WSAGetLastError () возвращает 10035 (WSAEWOULDBLOCK). Повторные вызовы connect () возвращаются с этой же ошибкой все время. Кажется, что соединение установлено на стороне устройства, но не на стороне Windows. Все последующие вызовы send () приводят к 10057 (WSAENOTCONN). Спаривание устройства или нет, похоже, не имеет никакого эффекта.

Поведение такое же в Windows 10 тоже. Соединение с другими устройствами (пробовали с iPhone и с другим ноутбуком) не удалось таким же образом.

Как мне заставить это работать? Кому-нибудь удалось реализовать BLE-коммуникацию с использованием сокетов?

...