From 59e1ac0396292caa6e403e4e9361294e9154bdd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gu=C3=B0ni=20M=C3=A1r=20Gilbert?= Date: Sun, 12 Mar 2023 09:45:09 +0000 Subject: [PATCH] PFW-1504 implement stepper_get_machine_position_E_mm() This function should be used when reading the current machine position while a move is ongoing No change in memory --- Firmware/mmu2.cpp | 6 +++--- Firmware/mmu2_marlin.h | 1 + Firmware/mmu2_marlin1.cpp | 4 ++++ 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/Firmware/mmu2.cpp b/Firmware/mmu2.cpp index b3a9096ec..1d4e69eb4 100644 --- a/Firmware/mmu2.cpp +++ b/Firmware/mmu2.cpp @@ -245,7 +245,7 @@ bool MMU2::VerifyFilamentEnteredPTFE() { const float delta_mm = MMU2_CHECK_FILAMENT_PRESENCE_EXTRUSION_LENGTH - logic.ExtraLoadDistance(); const float length_step_mm = 2 * (delta_mm) / (LCD_WIDTH + 1); - float last_position = planner_get_machine_position_E_mm(); + float last_position = stepper_get_machine_position_E_mm(); TryLoadUnloadProgressbarInit(); @@ -273,8 +273,8 @@ bool MMU2::VerifyFilamentEnteredPTFE() { fsensorStateLCD |= (WhereIsFilament() == FilamentState::NOT_PRESENT); fsensorState |= fsensorStateLCD; // No need to do the above comparison twice, just bitwise OR - if ((fabs(planner_get_machine_position_E_mm() - last_position)) > length_step_mm) { - last_position = planner_get_machine_position_E_mm(); // Reset + if ((fabs(stepper_get_machine_position_E_mm() - last_position)) > length_step_mm) { + last_position = stepper_get_machine_position_E_mm(); // Reset TryLoadUnloadProgressbar(fsensorStateLCD); fsensorStateLCD = 0; // Clear temporary bit } diff --git a/Firmware/mmu2_marlin.h b/Firmware/mmu2_marlin.h index 89ab2753f..9d35c4c0c 100644 --- a/Firmware/mmu2_marlin.h +++ b/Firmware/mmu2_marlin.h @@ -29,6 +29,7 @@ float MoveRaiseZ(float delta); void planner_synchronize(); bool planner_any_moves(); float planner_get_machine_position_E_mm(); +float stepper_get_machine_position_E_mm(); float planner_get_current_position_E(); void planner_set_current_position_E(float e); void planner_line_to_current_position(float feedRate_mm_s); diff --git a/Firmware/mmu2_marlin1.cpp b/Firmware/mmu2_marlin1.cpp index 87853d516..07f3c01b5 100644 --- a/Firmware/mmu2_marlin1.cpp +++ b/Firmware/mmu2_marlin1.cpp @@ -27,6 +27,10 @@ bool planner_any_moves() { } float planner_get_machine_position_E_mm(){ + return current_position[E_AXIS]; +} + +float stepper_get_machine_position_E_mm(){ return st_get_position_mm(E_AXIS); }