From b594a028704a3651a65558e31b32ae3b78811574 Mon Sep 17 00:00:00 2001 From: Empire Phoenix Date: Tue, 23 Sep 2025 00:43:19 +0200 Subject: [PATCH] fix progress display --- rust/src/hal/mod.rs | 11 ++++++++++- rust/src/webserver/mod.rs | 35 +++++++++++++++++++++++++++++++++-- 2 files changed, 43 insertions(+), 3 deletions(-) diff --git a/rust/src/hal/mod.rs b/rust/src/hal/mod.rs index 15358e7..c1adc5c 100644 --- a/rust/src/hal/mod.rs +++ b/rust/src/hal/mod.rs @@ -144,7 +144,7 @@ pub trait BoardInteraction<'a> { async fn get_mptt_current(&mut self) -> Result; async fn progress(&mut self, counter: u32) { - let current = counter / (PLANT_COUNT as u32); + let current = counter % PLANT_COUNT as u32; for led in 0..PLANT_COUNT { if let Err(err) = self.fault(led, current == led as u32).await { warn!("Fault on plant {}: {:?}", led, err); @@ -153,6 +153,15 @@ pub trait BoardInteraction<'a> { let even = counter % 2 == 0; let _ = self.general_fault(even.into()).await; } + + async fn clear_progress(&mut self) { + for led in 0..PLANT_COUNT { + if let Err(err) = self.fault(led, false).await { + warn!("Fault on plant {}: {:?}", led, err); + } + } + let _ = self.general_fault(false).await; + } } #[allow(dead_code)] diff --git a/rust/src/webserver/mod.rs b/rust/src/webserver/mod.rs index 3014e03..d6c4487 100644 --- a/rust/src/webserver/mod.rs +++ b/rust/src/webserver/mod.rs @@ -295,6 +295,14 @@ impl Handler for HttpHandler { } chunk = chunk + 1; } + BOARD_ACCESS + .get() + .await + .lock() + .await + .board_hal + .clear_progress() + .await; Some(200) } Method::Post => { @@ -328,7 +336,14 @@ impl Handler for HttpHandler { offset = offset + to_write; chunk = chunk + 1; } - + BOARD_ACCESS + .get() + .await + .lock() + .await + .board_hal + .clear_progress() + .await; Some(200) } _ => None, @@ -460,6 +475,14 @@ where if is_last { let actual_crc = checksum.finalize(); if actual_crc != expected_crc { + BOARD_ACCESS + .get() + .await + .lock() + .await + .board_hal + .clear_progress() + .await; conn.initiate_response( 409, Some( @@ -503,7 +526,14 @@ where } chunk += 1; } - + BOARD_ACCESS + .get() + .await + .lock() + .await + .board_hal + .clear_progress() + .await; Ok(()) } @@ -545,6 +575,7 @@ where .get_rtc_module() .backup_config_finalize(checksum.finalize(), offset) .await?; + board.board_hal.clear_progress().await; Ok(Some("saved".to_owned())) }