Почему существует несколько сообщений DBT_DEVICEREMOVECOMPLETE для устройства BLE HID? - PullRequest
0 голосов
/ 18 июня 2019

При поиске сообщения WM_DEVICECHANGE для устройства BLE HID через WndProc сообщения о прибытии и удалении иногда появляются 1-4 раза без какого-либо фактического удаления или выключения устройства.По прибытии я устанавливаю связь, и после удаления я заканчиваю связь.Тем не менее, я хотел посмотреть, может ли все еще происходить связь, если я проигнорировал последующие сообщения об удалении и продолжил чтение с устройства через ReadFile.

То, что я обнаружил, это то, что я получил бы ошибку чтения, если бы поступило другое сообщение об удалении. В основном, это происходит, когда он проходит последовательность прибытия и удаления до тех пор, пока устройство не будет настроено правильно, а затем на финальномсообщение о прибытии, устройство устанавливает связь.В этот момент связь не будет прервана и она сможет правильно читать данные.

У меня нет проблем с такими сообщениями через USB HID.Я не уверен, что это проблема более низкого уровня с устройством, которое я использую, которая может быть исправлена.Если устройство может повторно подключиться с первой попытки, это сэкономит время по сравнению с ожиданием 2-4 прибытия / удаления.

Если это обычное явление для устройств BLE HID, я приму любой ответ, объясняющий, почему несколькопроисходят поступления и удаления.

Другая информация состоит в том, что это также происходит в приложении C #, которое использует оболочку .NET для кода C ++.В SimpleHIDWrite https://github.com/Robmaister/SimplerHidWrite приложение также получает приход и удаление устройства несколько раз для устройства BLE.Единственная разница между системой обработки событий моего приложения и SimpleHIDWrite заключается в том, что я использую собственный код.Так что проблема может быть не связана с кодом и больше об устройстве.

...