При поиске сообщения 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 заключается в том, что я использую собственный код.Так что проблема может быть не связана с кодом и больше об устройстве.