forked from micropython/micropython
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
_bleio HCI: fix advertising and ATT responses on ESP32-C6 AirLift controllers #11432
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
dhalbert
wants to merge
3
commits into
adafruit:main
Choose a base branch
from
dhalbert:bleio-hci-extended-advertising
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+81
−43
Open
Changes from all commits
Commits
Show all changes
3 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why remove this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Claude wrote this and then I rewrote it for clarity:
There are two ways to end a timed extended advertisement.
LE Set Extended Advertising Enablea nonzero duration and the controller reports the timeout expiry with theLE Advertising Set Terminatedevent.This PR uses B, the same one the legacy path already uses via
advertising_timeout_msecs, so both paths share one mechanism. A needs the LE event mask extended to include the terminated event, and needs a handler for subevent0x12. Without those the adapter never learns that advertising stopped andadapter.advertisingstaysTrue.Also in the A version the
uint1610 ms duration tops out at 655 s, less thanMAX_ANONYMOUS_ADV_TIMEOUT_SECS. But moving to A is the natural follow-on whenanonymous=Trueis implemented properly, because that implementation would restart the set with a fresh random address each time the controller reports it terminated.I added comments explaining the zero timeouts.