From 74fad4f8f66e1787c4ff5692a5e9bcad9823dd44 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Thu, 21 Apr 2022 15:48:06 +0200 Subject: [PATCH] Implement fsensor raii event suppression --- Firmware/mmu2_fsensor.cpp | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/Firmware/mmu2_fsensor.cpp b/Firmware/mmu2_fsensor.cpp index 1e03814f5..3d1bc8fb4 100644 --- a/Firmware/mmu2_fsensor.cpp +++ b/Firmware/mmu2_fsensor.cpp @@ -7,8 +7,21 @@ FilamentState WhereIsFilament(){ return fsensor.getFilamentPresent() ? FilamentState::IN_NOZZLE : FilamentState::NOT_PRESENT; } -// on AVR this does nothing -BlockRunoutRAII::BlockRunoutRAII() { } -BlockRunoutRAII::~BlockRunoutRAII() { } + +BlockRunoutRAII::BlockRunoutRAII() { +#ifdef FILAMENT_SENSOR + fsensor.setRunoutEnabled(false); //suppress filament runouts while loading filament. + fsensor.setAutoLoadEnabled(false); //suppress filament autoloads while loading filament. +#if (FILAMENT_SENSOR_TYPE == FSENSOR_PAT9125) + fsensor.setJamDetectionEnabled(false); //suppress filament jam detection while loading filament. +#endif //(FILAMENT_SENSOR_TYPE == FSENSOR_PAT9125) +#endif +} + +BlockRunoutRAII::~BlockRunoutRAII() { +#ifdef FILAMENT_SENSOR + fsensor.settings_init(); // restore filament runout state. +#endif +} } // namespace MMU2