You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add an opt-in control handle that lets applications pause and resume a non-split BLE transport without canceling and rebuilding its trouble-host runner.
Context
BleTransport::run() owns the controller and constructs the BLE stack internally. Applications that cancel the future to hand radio time to another transport cannot run the same transport again because the controller has already been taken.
Changes
add BleTransportControl::{new,new_paused,pause,resume} and BleTransport::with_control
keep the trouble-host runner alive while the host advertising/connection loop is paused
drop an active advertiser or request and observe disconnection before parking the host loop
continue servicing BLE profile changes while paused so the private profile queue cannot block producers
preserve existing behavior when no control handle is attached
keep the API limited to non-split transports; transition details remain private
Validation
release Clippy with -D warnings across all 19 RMK CI feature sets
488 release nextest cases with vial,_ble,std
focused enabled and initially-paused lifecycle tests
downstream nRF52833 EC and MX tri-mode release checks against this exact commit
downstream protocol tests: 45 passed
downstream transport/profile tests: 13 passed
Evidence boundary
This validates the lifecycle state machine, feature compatibility, and downstream Cortex-M4 builds. It does not claim physical BLE reconnection, external-radio coexistence, or HID-host delivery; those remain hardware acceptance gates.
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
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.
Outcome
Add an opt-in control handle that lets applications pause and resume a non-split BLE transport without canceling and rebuilding its trouble-host runner.
Context
BleTransport::run()owns the controller and constructs the BLE stack internally. Applications that cancel the future to hand radio time to another transport cannot run the same transport again because the controller has already been taken.Changes
BleTransportControl::{new,new_paused,pause,resume}andBleTransport::with_controlValidation
-D warningsacross all 19 RMK CI feature setsvial,_ble,stdEvidence boundary
This validates the lifecycle state machine, feature compatibility, and downstream Cortex-M4 builds. It does not claim physical BLE reconnection, external-radio coexistence, or HID-host delivery; those remain hardware acceptance gates.