From b08ae955682831c5c6fc11249aa0080c3b041217 Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Mon, 27 Aug 2018 19:36:54 +0200 Subject: [PATCH] Rename autoDeplete to lcd_autoDeplete and make it global. When filament runs out, call M600 AUTO if lcd_autoDeplete is enabled. Shorten finda polling period to 300 ms. --- Firmware/mmu.cpp | 6 ++++-- Firmware/ultralcd.cpp | 12 ++++++------ Firmware/ultralcd.h | 1 + 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/Firmware/mmu.cpp b/Firmware/mmu.cpp index 73caf79db..37f78db6f 100644 --- a/Firmware/mmu.cpp +++ b/Firmware/mmu.cpp @@ -9,6 +9,7 @@ #include "Configuration_prusa.h" #include "fsensor.h" #include "cardreader.h" +#include "ultralcd.h" extern const char* lcd_display_message_fullscreen_P(const char *msg); @@ -192,7 +193,7 @@ void mmu_loop(void) } mmu_cmd = 0; } - else if ((mmu_last_response + 800) < millis()) //request every 800ms + else if ((mmu_last_response + 300) < millis()) //request every 300ms { puts_P(PSTR("MMU <= 'P0'")); mmu_puts_P(PSTR("P0\n")); //send 'read finda' request @@ -208,7 +209,8 @@ void mmu_loop(void) if (!mmu_finda && CHECK_FINDA && fsensor_enabled) { fsensor_stop_and_save_print(); enquecommand_front_P(PSTR("FSENSOR_RECOVER")); //then recover - enquecommand_front_P(PSTR("M600")); //save print and run M600 command + if (lcd_autoDeplete) enquecommand_front_P(PSTR("M600 AUTO")); //save print and run M600 command + else enquecommand_front_P(PSTR("M600")); //save print and run M600 command } mmu_state = 1; if (mmu_cmd == 0) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 4129a6086..ea85049f3 100644 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -88,7 +88,7 @@ unsigned long display_time; //just timer for showing pid finished message on lcd float pid_temp = DEFAULT_PID_TEMP; static bool forceMenuExpire = false; -static bool autoDeplete; +bool lcd_autoDeplete; static float manual_feedrate[] = MANUAL_FEEDRATE; @@ -4662,8 +4662,8 @@ while (0) static void auto_deplete_switch() { - autoDeplete = !autoDeplete; - eeprom_update_byte((unsigned char *)EEPROM_AUTO_DEPLETE, autoDeplete); + lcd_autoDeplete = !lcd_autoDeplete; + eeprom_update_byte((unsigned char *)EEPROM_AUTO_DEPLETE, lcd_autoDeplete); } static void lcd_settings_menu() { @@ -4681,7 +4681,7 @@ static void lcd_settings_menu() if (mmu_enabled) { - if (autoDeplete) MENU_ITEM_FUNCTION_P(_i("Auto deplete [on]"), auto_deplete_switch); + if (lcd_autoDeplete) MENU_ITEM_FUNCTION_P(_i("Auto deplete [on]"), auto_deplete_switch); else MENU_ITEM_FUNCTION_P(_i("Auto deplete[off]"), auto_deplete_switch); } @@ -7070,8 +7070,8 @@ void ultralcd_init() { { uint8_t autoDepleteRaw = eeprom_read_byte(reinterpret_cast(EEPROM_AUTO_DEPLETE)); - if (0xff == autoDepleteRaw) autoDeplete = false; - else autoDeplete = autoDepleteRaw; + if (0xff == autoDepleteRaw) lcd_autoDeplete = false; + else lcd_autoDeplete = autoDepleteRaw; } lcd_init(); diff --git a/Firmware/ultralcd.h b/Firmware/ultralcd.h index 29a13a9c7..3d334a9ad 100644 --- a/Firmware/ultralcd.h +++ b/Firmware/ultralcd.h @@ -111,6 +111,7 @@ extern int8_t SilentModeMenu; extern bool cancel_heatup; extern bool isPrintPaused; +extern bool lcd_autoDeplete; void lcd_ignore_click(bool b=true);