diff --git a/app/src/main/java/com/geeksville/mesh/service/RadioInterfaceService.kt b/app/src/main/java/com/geeksville/mesh/service/RadioInterfaceService.kt index cc1df0a27..69936af06 100644 --- a/app/src/main/java/com/geeksville/mesh/service/RadioInterfaceService.kt +++ b/app/src/main/java/com/geeksville/mesh/service/RadioInterfaceService.kt @@ -372,17 +372,17 @@ class RadioInterfaceService : Service(), Logging { // hasForcedRefresh = true forceServiceRefresh() } + + // we begin by setting our MTU size as high as it can go + safe!!.asyncRequestMtu(512) { mtuRes -> + mtuRes.getOrThrow() // FIXME - why sometimes is the result Unit!?! + debug("requested MTU result=$mtuRes") - // FIXME - no need to discover services more than once - instead use lazy() to use them in future attempts - safe!!.asyncDiscoverServices { discRes -> - discRes.getOrThrow() // FIXME, instead just try to reconnect? - debug("Discovered services!") - - // we begin by setting our MTU size as high as it can go - safe!!.asyncRequestMtu(512) { mtuRes -> + // FIXME - no need to discover services more than once - instead use lazy() to use them in future attempts + safe!!.asyncDiscoverServices { discRes -> + discRes.getOrThrow() // FIXME, instead just try to reconnect? + debug("Discovered services!") serviceScope.handledLaunch { - debug("requested MTU result=$mtuRes") - mtuRes.getOrThrow() // FIXME - why sometimes is the result Unit!?! delay(500) // android BLE is buggy and needs a 500ms sleep before calling getChracteristic, or you might get back null fromNum = service.getCharacteristic(BTM_FROMNUM_CHARACTER)!! diff --git a/app/src/main/java/com/geeksville/mesh/service/SoftwareUpdateService.kt b/app/src/main/java/com/geeksville/mesh/service/SoftwareUpdateService.kt index 229304edf..339278b15 100644 --- a/app/src/main/java/com/geeksville/mesh/service/SoftwareUpdateService.kt +++ b/app/src/main/java/com/geeksville/mesh/service/SoftwareUpdateService.kt @@ -46,11 +46,11 @@ class SoftwareUpdateService : JobIntentService(), Logging { sync.connect() sync.use { _ -> - sync.discoverServices() // Get our services - // we begin by setting our MTU size as high as it can go sync.requestMtu(512) + sync.discoverServices() // Get our services + val service = sync.gatt!!.services.find { it.uuid == SW_UPDATE_UUID }!! fun doFirmwareUpdate(assetName: String) {