From eff513e700d054b53ddd932813be950ea0e1f80a Mon Sep 17 00:00:00 2001 From: Rodrigo Alfonso Date: Sun, 28 Jan 2024 09:27:22 -0300 Subject: [PATCH] Using SendData, which is more stable than SendDataWait --- lib/LinkWirelessMultiboot.hpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/lib/LinkWirelessMultiboot.hpp b/lib/LinkWirelessMultiboot.hpp index df4184d..b763bf5 100644 --- a/lib/LinkWirelessMultiboot.hpp +++ b/lib/LinkWirelessMultiboot.hpp @@ -214,8 +214,6 @@ class LinkWirelessMultiboot { u32 phase = 0; while (transferredBytes < romSize) { retry: - link->wait(228); - serverHeader.isACK = 0; serverHeader.targetSlots = 0b0001; // TODO: Implement serverHeader.payloadSize = 84; // 87 - 3 (serversdkheader) @@ -231,8 +229,18 @@ class LinkWirelessMultiboot { (rom[transferredBytes + i + 2] << 16) | (rom[transferredBytes + i + 3] << 24)); // TODO: CHECK BOUNDS } - if (!sendAndExpectData(data, 87, response)) + if (!link->sendData(data, 87)) { + logger("SendData failed!"); return FAILURE; + } + LinkRawWireless::ReceiveDataResponse response; + if (!link->receiveData(response)) { + logger("ReceiveData failed!"); + return FAILURE; + } + if (response.data.size() == 0) + goto retry; + clientHeader = parseClientHeader(response.data[0]); if (clientHeader.isACK && clientHeader.n == n && clientHeader.phase == phase) {