From 065623d4237a51be6853204f80b9a7107e266a4b Mon Sep 17 00:00:00 2001 From: Empire Phoenix Date: Mon, 10 Aug 2026 11:53:24 +0200 Subject: [PATCH] Add `apply_fertilizer` parameter to `do_secure_pump` to prevent fertilizer applying on corrosion protection --- Software/MainBoard/rust/src/main.rs | 9 +++++---- Software/MainBoard/rust/src/webserver/post_json.rs | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Software/MainBoard/rust/src/main.rs b/Software/MainBoard/rust/src/main.rs index 7ddd927..a695115 100644 --- a/Software/MainBoard/rust/src/main.rs +++ b/Software/MainBoard/rust/src/main.rs @@ -462,7 +462,7 @@ async fn safe_main(spawner: Spawner) -> FatResult<()> { ) .await; - let result = do_secure_pump(&mut board, plant_id, plant_config, dry_run).await; + let result = do_secure_pump(&mut board, plant_id, plant_config, dry_run, true).await; match result { Ok(state) => { overcurrent_results[plant_id] = state.overcurrent_ma; @@ -547,7 +547,7 @@ async fn safe_main(spawner: Spawner) -> FatResult<()> { "corrosion_prot", "", ); - let _ = do_secure_pump(&mut board, plant_id, &plant_config, dry_run).await; + let _ = do_secure_pump(&mut board, plant_id, &plant_config, dry_run, false).await; let _ = board.board_hal.pump(plant_id, false).await; } board @@ -705,6 +705,7 @@ pub async fn do_secure_pump( plant_id: usize, plant_config: &PlantConfig, dry_run: bool, + apply_fertilizer: bool, ) -> FatResult { const STARTUP_IGNORE_MS: u32 = 500; const STARTUP_ABORT_CURRENT_MA: u16 = 1500; @@ -719,8 +720,8 @@ pub async fn do_secure_pump( let mut overcurrent_ma: Option = None; if !dry_run { - // Run fertilizer pump first if configured and not in cooldown - if plant_config.fertilizer_s > 0 { + // Run fertilizer pump first if configured, requested, and not in cooldown + if apply_fertilizer && plant_config.fertilizer_s > 0 { let current_time = board.board_hal.get_time().await; let last_fertilizer = board.board_hal.get_esp().last_fertilizer_time(plant_id); // Convert last_fertilizer from milliseconds to seconds for correct subtraction diff --git a/Software/MainBoard/rust/src/webserver/post_json.rs b/Software/MainBoard/rust/src/webserver/post_json.rs index fd30f29..9c3f840 100644 --- a/Software/MainBoard/rust/src/webserver/post_json.rs +++ b/Software/MainBoard/rust/src/webserver/post_json.rs @@ -83,7 +83,7 @@ where let mut board = BOARD_ACCESS.get().await.lock().await; let config = &board.board_hal.get_config().plants[pump_test.pump].clone(); - let pump_result = do_secure_pump(&mut board, pump_test.pump, config, false).await; + let pump_result = do_secure_pump(&mut board, pump_test.pump, config, false, false).await; //ensure it is disabled before unwrapping board.board_hal.pump(pump_test.pump, false).await?;