no holding back, send all the chunks and send them quick

This commit is contained in:
Laura Klünder 2023-11-26 16:23:15 +01:00
parent ade1807abb
commit 868851461f

View file

@ -379,7 +379,7 @@ class MeshConsumer(AsyncWebsocketConsumer):
async with self.ota_chunks_available_condition:
num_chunks = (update.build.binary.size-1)//OTA_CHUNK_SIZE+1
print('queueing chunks for update', update.id, 'num_chunks=%d' % num_chunks, "chunks:", chunks)
chunks = set(range(num_chunks*0+2)) if chunks is None else {chunk for chunk in chunks if chunk < num_chunks}
chunks = set(range(num_chunks)) if chunks is None else {chunk for chunk in chunks if chunk < num_chunks}
self.ota_chunks.setdefault(update.id, set()).update(chunks)
self.ota_chunks_available_condition.notify_all()
@ -404,7 +404,6 @@ class MeshConsumer(AsyncWebsocketConsumer):
continue
# send the message
print("sending", update_id, "chunk", chunk)
with self.ota_states[recipients[0]].recipient.update.build.binary.open('rb') as f:
f.seek(chunk * OTA_CHUNK_SIZE)
data = f.read(OTA_CHUNK_SIZE)
@ -417,7 +416,7 @@ class MeshConsumer(AsyncWebsocketConsumer):
))
# wait a bit until we send more
await asyncio.sleep(1)
await asyncio.sleep(0.1) # 100ms
async with self.ota_chunks_available_condition:
if not self.ota_chunks: