profile

open suspend override fun <T> profile(serviceUuid: Uuid, timeout: Duration = 30.seconds, setup: suspend CoroutineScope.(BleService) -> T): T(source)

Executes setup after the requested BLE profile is available. This is shared by radio, OTA, and DFU flows, so implementations should keep profile-entry setup bounded and avoid transfer-hot-path work here when a caller can reuse an already discovered BleService.