M600: wait for user before unloading filament

This commit is contained in:
PavelSindler 2017-11-28 18:28:53 +01:00
parent 2cf7f54e5f
commit c0112f05e1
5 changed files with 60 additions and 30 deletions

View file

@ -293,7 +293,7 @@ unsigned long pause_time = 0;
unsigned long start_pause_print = millis();
unsigned long t_fan_rising_edge = millis();
unsigned long load_filament_time;
//unsigned long load_filament_time;
bool mesh_bed_leveling_flag = false;
bool mesh_bed_run_from_menu = false;
@ -5386,6 +5386,50 @@ case 404: //M404 Enter the nominal filament width (3mm, 1.75mm ) N<3.0> or disp
}
plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], FILAMENTCHANGE_XYFEED, active_extruder);
st_synchronize();
KEEPALIVE_STATE(PAUSED_FOR_USER);
uint8_t cnt = 0;
int counterBeep = 0;
lcd_display_message_fullscreen_P(MSG_PRESS_TO_UNLOAD);
while (!lcd_clicked()) {
cnt++;
manage_heater();
manage_inactivity(true);
/*#ifdef SNMM
target[E_AXIS] += 0.002;
plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], 500, active_extruder);
#endif // SNMM*/
if (cnt == 0)
{
#if BEEPER > 0
if (counterBeep == 500) {
counterBeep = 0;
}
SET_OUTPUT(BEEPER);
if (counterBeep == 0) {
WRITE(BEEPER, HIGH);
}
if (counterBeep == 20) {
WRITE(BEEPER, LOW);
}
counterBeep++;
#else
#if !defined(LCD_FEEDBACK_FREQUENCY_HZ) || !defined(LCD_FEEDBACK_FREQUENCY_DURATION_MS)
lcd_buzz(1000 / 6, 100);
#else
lcd_buzz(LCD_FEEDBACK_FREQUENCY_DURATION_MS, LCD_FEEDBACK_FREQUENCY_HZ);
#endif
#endif
}
}
WRITE(BEEPER, LOW);
KEEPALIVE_STATE(IN_HANDLER);
custom_message = true;
lcd_setstatuspgm(MSG_UNLOADING_FILAMENT);
@ -5436,14 +5480,12 @@ case 404: //M404 Enter the nominal filament width (3mm, 1.75mm ) N<3.0> or disp
delay(100);
//Wait for user to insert filament
uint8_t cnt=0;
int counterBeep = 0;
lcd_wait_interact();
load_filament_time = millis();
//load_filament_time = millis();
KEEPALIVE_STATE(PAUSED_FOR_USER);
while(!lcd_clicked()){
cnt++;
manage_heater();
manage_inactivity(true);
@ -5453,31 +5495,8 @@ case 404: //M404 Enter the nominal filament width (3mm, 1.75mm ) N<3.0> or disp
#endif // SNMM*/
if(cnt==0)
{
#if BEEPER > 0
if (counterBeep== 500){
counterBeep = 0;
}
SET_OUTPUT(BEEPER);
if (counterBeep== 0){
WRITE(BEEPER,HIGH);
}
if (counterBeep== 20){
WRITE(BEEPER,LOW);
}
counterBeep++;
#else
#if !defined(LCD_FEEDBACK_FREQUENCY_HZ) || !defined(LCD_FEEDBACK_FREQUENCY_DURATION_MS)
lcd_buzz(1000/6,100);
#else
lcd_buzz(LCD_FEEDBACK_FREQUENCY_DURATION_MS,LCD_FEEDBACK_FREQUENCY_HZ);
#endif
#endif
}
}
WRITE(BEEPER, LOW);
//WRITE(BEEPER, LOW);
KEEPALIVE_STATE(IN_HANDLER);
#ifdef SNMM

View file

@ -1281,6 +1281,13 @@ const char * const MSG_PRESS_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_PRESS_CZ
};
const char MSG_PRESS_TO_UNLOAD_EN[] PROGMEM = "Please press the knob to unload filament";
const char MSG_PRESS_TO_UNLOAD_CZ[] PROGMEM = "Pro vysunuti filamentu stisknete prosim tlacitko";
const char * const MSG_PRESS_TO_UNLOAD_LANG_TABLE[LANG_NUM] PROGMEM = {
MSG_PRESS_TO_UNLOAD_EN,
MSG_PRESS_TO_UNLOAD_CZ
};
const char MSG_PRINTER_DISCONNECTED_EN[] PROGMEM = "Printer disconnected";
const char * const MSG_PRINTER_DISCONNECTED_LANG_TABLE[1] PROGMEM = {
MSG_PRINTER_DISCONNECTED_EN

View file

@ -436,6 +436,8 @@ extern const char* const MSG_PREPARE_FILAMENT_LANG_TABLE[LANG_NUM];
#define MSG_PREPARE_FILAMENT LANG_TABLE_SELECT(MSG_PREPARE_FILAMENT_LANG_TABLE)
extern const char* const MSG_PRESS_LANG_TABLE[LANG_NUM];
#define MSG_PRESS LANG_TABLE_SELECT(MSG_PRESS_LANG_TABLE)
extern const char* const MSG_PRESS_TO_UNLOAD_LANG_TABLE[LANG_NUM];
#define MSG_PRESS_TO_UNLOAD LANG_TABLE_SELECT(MSG_PRESS_TO_UNLOAD_LANG_TABLE)
extern const char* const MSG_PRINTER_DISCONNECTED_LANG_TABLE[1];
#define MSG_PRINTER_DISCONNECTED LANG_TABLE_SELECT_EXPLICIT(MSG_PRINTER_DISCONNECTED_LANG_TABLE, 0)
extern const char* const MSG_PRINT_ABORTED_LANG_TABLE[LANG_NUM];

View file

@ -349,4 +349,5 @@
#define MSG_STEEL_SHEET_CHECK "Je tiskovy plat na heatbed?"
#define MSG_REMOVE_STEEL_SHEET "Odstrante tiskovy plat z heatbed prosim."
#define MSG_PLACE_STEEL_SHEET "Umistete prosim tiskovy plat na heatbed"
#define MSG_RECOVER_PRINT "Detekovan vypadek proudu.Obnovit tisk?"
#define MSG_RECOVER_PRINT "Detekovan vypadek proudu.Obnovit tisk?"
#define MSG_PRESS_TO_UNLOAD "Pro vysunuti filamentu stisknete prosim tlacitko"

View file

@ -366,3 +366,4 @@
#define(length=11, lines=1) MSG_INFO_FILAMENT_YDIFF "Fil. Ydiff:"
#define(length=17, lines=1) MSG_FANS_CHECK_ON "Fans check [on]"
#define(length=17, lines=1) MSG_FANS_CHECK_OFF "Fans check [off]"
#define(length=20, lines=4) MSG_PRESS_TO_UNLOAD "Please press the knob to unload filament"