fix progress display
This commit is contained in:
		| @@ -144,7 +144,7 @@ pub trait BoardInteraction<'a> { | ||||
|     async fn get_mptt_current(&mut self) -> Result<Current, FatError>; | ||||
|  | ||||
|     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)] | ||||
|   | ||||
| @@ -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())) | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user