Ignore failed descriptor reads on Windows#362
Ignore failed descriptor reads on Windows#362qdot merged 3 commits intodeviceplug:devfrom DavidZemon:feat/add-windows-resiliency
Conversation
This brings the Windows implementation in line with Linux Fixes #361
|
I tossed a release commit into the branch on the off chance you'd be willing to get this released today, but would be happy to drop/edit that commit if you're not ready to release yet. |
|
I've just added another commit in the middle of the branch that adds better low-level handling of the characteristics. After testing my first fix, I found that it was still failing on some devices because |
Discovery of a peripheral's services should not error out merely because one of the characteristics encountered an "AccessDenied" or similar error
|
Release commit has been amended with today's date. |
|
Ok, I gotta say, submitting the CHANGELOG update and updating it's date in the PR daily is a surprisingly good way to make sure I don't forget about this PR. :P |
|
Is the release to crates.io automatic? Just wondering when I should I update my project that is using |
Nevermind - I see this was merged into |
|
Nope, releases are done by hand still, but it's published now. |
Thanks! Already have my PR up to use the new version and it's one of the last things for getting the app deployed to prod, so thank you! |
On macOS, `peripheral:didDiscoverDescriptorsForCharacteristic:error:` only sent the `DiscoveredCharacteristicDescriptors` event when error was nil. If CoreBluetooth reported an error for any characteristic's descriptors (e.g. "The specified UUID is not allowed for this operation"), the event was never emitted and `discover_services()` would hang indefinitely. This moves the event send outside the error check so it always fires — with an empty descriptor map on error — allowing service discovery to complete. A warning is now logged when descriptor discovery fails. This matches the Windows behaviour where `BLEDevice::get_characteristic_descriptors` uses `unwrap_or` to return an empty list on error (PR deviceplug#362). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Mika Tammi <mikatammi@gmail.com>
This brings the Windows implementation in line with Linux
Fixes #361