From 1bcae500fbc82805733b622aadafa6dbe117afcb Mon Sep 17 00:00:00 2001 From: Niel Nielsen Date: Thu, 3 Sep 2026 15:43:39 +0200 Subject: [PATCH] Update cmdhw.c Signed-off-by: Niel Nielsen --- client/src/cmdhw.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/client/src/cmdhw.c b/client/src/cmdhw.c index 62c6db1d5..6ae5be0d3 100644 --- a/client/src/cmdhw.c +++ b/client/src/cmdhw.c @@ -2294,6 +2294,16 @@ static int CmdPM5QCTest(const char *Cmd) { return PM3_SUCCESS; } +void printprogress(long sent, long total, int style) { + int percent = (int)((double)sent / total * 100); + + // Use \r at the start to move the cursor back to the beginning of the line + printf("\rProgress: [%d%%]", percent); + + // Force stdout to print immediately without waiting for a newline + fflush(stdout); +} + // One full OTA attempt: BEGIN -> WRITE... -> END. The BWM OTA has no resume // (DEV.md 8.4): a dropped chunk can't be re-sent, so any failure here means the // caller must restart the whole thing. @@ -2338,7 +2348,7 @@ static int bwm_ota_once(const uint8_t *fw, size_t fwlen, uint32_t write_delay_ms return PM3_EFAILED; } sent += n; - print_progress(sent, fwlen, STYLE_MIXED); + printprogress(sent, fwlen, STYLE_MIXED); // Pace the stream. The client->AT32 hop (USB/BLE) is far faster than the // AT32->ESP UART, so back-to-back writes can outrun the UART and drop a