From 7ec45271c2b07c38f84e676b4572a9efa3233669 Mon Sep 17 00:00:00 2001 From: PavelSindler <sindlerpa@gmail.com> Date: Fri, 21 Apr 2017 16:29:04 +0200 Subject: [PATCH] timeout to status, better print time counting when using pause print --- Firmware/Configuration.h | 2 +- Firmware/Marlin.h | 1 + Firmware/Marlin_main.cpp | 7 ++++--- Firmware/ultralcd.cpp | 8 ++++---- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/Firmware/Configuration.h b/Firmware/Configuration.h index 15e85667..a24ec4ca 100644 --- a/Firmware/Configuration.h +++ b/Firmware/Configuration.h @@ -5,7 +5,7 @@ #include "Configuration_prusa.h" // Firmware version -#define FW_version "3.0.11-alpha" +#define FW_version "3.0.10-10" #define FW_PRUSA3D_MAGIC "PRUSA3DFW" #define FW_PRUSA3D_MAGIC_LEN 10 diff --git a/Firmware/Marlin.h b/Firmware/Marlin.h index c0cc98fb..c33ccb39 100644 --- a/Firmware/Marlin.h +++ b/Firmware/Marlin.h @@ -317,6 +317,7 @@ extern float HotendTempBckp; extern int fanSpeedBckp; extern float pause_lastpos[4]; extern unsigned long pause_time; +extern unsigned long start_pause_print; extern bool mesh_bed_leveling_flag; diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 296fc9d8..843ec4cc 100644 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -263,6 +263,7 @@ float HotendTempBckp = 0; int fanSpeedBckp = 0; float pause_lastpos[4]; unsigned long pause_time = 0; +unsigned long start_pause_print = millis(); bool mesh_bed_leveling_flag = false; @@ -6320,7 +6321,7 @@ void temp_compensation_start() { plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 3000 / 60, active_extruder); st_synchronize(); - while (fabs(degBed() - target_temperature_bed) > 3) delay_keep_alive(1000); + while (fabs(degBed() - target_temperature_bed) > 1) delay_keep_alive(1000); for(int i = 0; i < PINDA_HEAT_T; i++) delay_keep_alive(1000); @@ -6428,8 +6429,8 @@ void long_pause() //long pause print saved_feedmultiply = feedmultiply; HotendTempBckp = degTargetHotend(active_extruder); fanSpeedBckp = fanSpeed; - pause_time += (millis() - starttime); - + start_pause_print = millis(); + //save position pause_lastpos[X_AXIS] = current_position[X_AXIS]; diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 07c23c13..cb998b69 100644 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -540,11 +540,12 @@ void lcd_commands() lcdDrawUpdate = 3; lcd_commands_step = 4; } - if (lcd_commands_step == 1 && !blocks_queued()) { //recover feedmultiply, current + if (lcd_commands_step == 1 && !blocks_queued()) { //recover feedmultiply sprintf_P(cmd1, PSTR("M220 S%d"), saved_feedmultiply); enquecommand(cmd1); isPrintPaused = false; + pause_time += (millis() - start_pause_print); //accumulate time when print is paused for correct statistics calculation card.startFileprint(); lcd_commands_step = 0; lcd_commands_type = 0; @@ -580,7 +581,7 @@ void lcd_commands() strcat(cmd1, " Y"); strcat(cmd1, ftostr32(pause_lastpos[Y_AXIS])); enquecommand(cmd1); - + lcd_setstatuspgm(MSG_RESUMING_PRINT); lcd_commands_step = 3; } @@ -2436,7 +2437,6 @@ void lcd_pinda_calibration_menu() START_MENU(); MENU_ITEM(back, MSG_MENU_CALIBRATION, lcd_calibration_menu); MENU_ITEM(submenu, MSG_CALIBRATE_PINDA, lcd_calibrate_pinda); - //MENU_ITEM(back, MSG_SETTINGS, lcd_settings_menu); if (temp_cal_active == false) { MENU_ITEM(function, MSG_TEMP_CALIBRATION_OFF, lcd_temp_calibration_set); } @@ -4651,7 +4651,7 @@ void lcd_update(uint8_t lcdDrawUpdateOverride) lcd_timeoutToStatus = millis() + LCD_TIMEOUT_TO_STATUS; } - /*if (LCD_CLICKED)*/ lcd_timeoutToStatus = millis() + LCD_TIMEOUT_TO_STATUS; + if (LCD_CLICKED) lcd_timeoutToStatus = millis() + LCD_TIMEOUT_TO_STATUS; #endif//ULTIPANEL #ifdef DOGLCD // Changes due to different driver architecture of the DOGM display