First of all, thanks for incredible effort put in this project and creating this community. Started exploring the code and conversations here. Important improvements and features on the way, will try to catch up and contribute.
While porting SW update code (in Android) to swift 5 for a dummy iOS client (not an iOS developer at all), noticed that update progress on app side and device side is different. App sends all chunks in a while loop and continue running following lines. It seems it finished on the device side (heltec wifi lora 32 v2) as well, but that is not the case. In serial monitor, it continues processing chunks (MTU: 512, firmware size: ~1MB). Is this how it works at the moment or sth not working as expected on the iOS client?
If this is how it works at the moment:
Guessing that it’s because of not waiting for ack of each chunk ( write with response ) and keep sending next one. If next chunk is sent after receiving notify event, this would keep progress on both side in sync which requires PROPERTY_NOTIFY BLE characteristic for CRC32 in device code.
So, update progress on both side is supposed to be almost equal all the time. If it is true, can above be a way to improve or what would be the recommended ways?
Referring to these lines in SoftwareUpdateService.kt#L298-L331