Closed connyhald closed 3 years ago
We've now switched from SwiftPackageManager to CocoaPods so that we could add some logging.
As it turns out we're ending up here: https://github.com/NordicSemiconductor/IOS-Pods-DFU-Library/blob/d4a1da27fbf195b325cea3036235a4939a8f4efa/iOSDFULibrary/Classes/Implementation/GenericDFU/DFUPeripheral.swift#L370
The strange thing is, that all those logger
calls do not log anything for us which is odd, because we do implement the LoggerDelegate
protocol.
Anyways there are different issue and I'll open different tickets if needed.
Doing a firmware update of our peripheral from Android works fine. However on iOS the DFU process is stuck at a very early phase.
We are using Secure Buttonless DFU with our own control characteristic.
We first connect our device, then we hit a "Start DFU" button. On Android the lib now writes to the control characteristic which will reboot the device into the bootloader. On iOS basically nothing happens. We get one single log entry. The device stays connected and that's it.
I think the lib should not try to connect, because the peripheral is already connected. Using the debugger I can see, that things go wrong in
DFUPeripheral.start()
.For some reason
peripheral.state == .connected
while still in our code. But if we enter library code theperipheral
which is received bycentralManager.retrievePeripherals
is not connected but still has the correct name, so it seems to be the correct peripheral.Does anyone here has some insights on that behavior?
DFU Bootloader version
Device information