static void lcd_menu_change_material_remove_wait_user() { LED_GLOW(); lcd_question_screen(NULL, lcd_menu_change_material_remove_wait_user_ready, PSTR("READY"), lcd_menu_main, cancelMaterialInsert, PSTR("CANCEL")); lcd_lib_draw_string_centerP(20, PSTR("Remove material")); lcd_lib_update_screen(); }
static void lcd_menu_print_printing() { lcd_question_screen(lcd_menu_print_tune, NULL, PSTR("TUNE"), lcd_menu_print_abort, NULL, PSTR("ABORT")); uint8_t progress = card.getFilePos() / ((card.getFileSize() + 123) / 124); char buffer[16]; char* c; switch(printing_state) { default: lcd_lib_draw_string_centerP(20, PSTR("Printing:")); lcd_lib_draw_string_center(30, card.longFilename); break; case PRINT_STATE_HEATING: lcd_lib_draw_string_centerP(20, PSTR("Heating")); c = int_to_string(current_temperature[0], buffer, PSTR("C")); *c++ = '/'; c = int_to_string(target_temperature[0], c, PSTR("C")); lcd_lib_draw_string_center(30, buffer); break; case PRINT_STATE_HEATING_BED: lcd_lib_draw_string_centerP(20, PSTR("Heating buildplate")); c = int_to_string(current_temperature_bed, buffer, PSTR("C")); *c++ = '/'; c = int_to_string(target_temperature_bed, c, PSTR("C")); lcd_lib_draw_string_center(30, buffer); break; } float printTimeMs = (millis() - starttime); float printTimeSec = printTimeMs / 1000L; float totalTimeMs = float(printTimeMs) * float(card.getFileSize()) / float(card.getFilePos()); static float totalTimeSmoothSec; totalTimeSmoothSec = (totalTimeSmoothSec * 999L + totalTimeMs / 1000L) / 1000L; if (isinf(totalTimeSmoothSec)) totalTimeSmoothSec = totalTimeMs; if (LCD_DETAIL_CACHE_TIME() == 0 && printTimeSec < 60) { totalTimeSmoothSec = totalTimeMs / 1000; lcd_lib_draw_stringP(5, 10, PSTR("Time left unknown")); }else{ unsigned long totalTimeSec; if (printTimeSec < LCD_DETAIL_CACHE_TIME() / 2) { float f = float(printTimeSec) / float(LCD_DETAIL_CACHE_TIME() / 2); totalTimeSec = float(totalTimeSmoothSec) * f + float(LCD_DETAIL_CACHE_TIME()) * (1 - f); }else{ totalTimeSec = totalTimeSmoothSec; } unsigned long timeLeftSec = totalTimeSec - printTimeSec; int_to_time_string(timeLeftSec, buffer); lcd_lib_draw_stringP(5, 10, PSTR("Time left")); lcd_lib_draw_string(65, 10, buffer); } lcd_progressbar(progress); lcd_lib_update_screen(); }
static void lcd_menu_change_material_remove_wait_user() { LED_GLOW(); setTargetHotend(material[active_extruder].temperature, active_extruder); lcd_question_screen(NULL, lcd_menu_change_material_remove_wait_user_ready, PSTR("READY"), post_change_material_menu, cancelMaterialInsert, PSTR("CANCEL")); lcd_lib_draw_string_centerP(20, PSTR("Remove material")); lcd_lib_update_screen(); }
static void lcd_menu_print_abort() { LED_GLOW(); lcd_question_screen(lcd_menu_print_ready, abortPrint, PSTR("YES"), previousMenu, NULL, PSTR("NO")); lcd_lib_draw_string_centerP(20, PSTR("Abort the print?")); lcd_lib_update_screen(); }
//Started bed leveling from the calibration menu void lcd_menu_first_run_start_bed_leveling() { lcd_question_screen(lcd_menu_first_run_bed_level_center_adjust, homeAndParkHeadForCenterAdjustment2, PSTR("POKRACOVAT"), lcd_menu_main, NULL, PSTR("ZRUSIT")); lcd_lib_draw_string_centerP(10, PSTR("Tento pruvodce vas")); lcd_lib_draw_string_centerP(20, PSTR("povedek krok za")); lcd_lib_draw_string_centerP(30, PSTR("krokem pri kalibraci")); lcd_lib_draw_string_centerP(40, PSTR("tiskove podlozky.")); lcd_lib_update_screen(); }
//Started bed leveling from the calibration menu void lcd_menu_first_run_start_bed_leveling() { lcd_question_screen(lcd_menu_first_run_bed_level_center_adjust, homeAndParkHeadForCenterAdjustment2, PSTR("CONTINUE"), lcd_menu_main, NULL, PSTR("CANCEL")); lcd_lib_draw_string_centerP(10, PSTR("I will guide you")); lcd_lib_draw_string_centerP(20, PSTR("through the process")); lcd_lib_draw_string_centerP(30, PSTR("of adjusting your")); lcd_lib_draw_string_centerP(40, PSTR("buildplate.")); lcd_lib_update_screen(); }
static void lcd_menu_print_heatup() { lcd_question_screen(lcd_menu_print_tune, NULL, PSTR("TUNE"), lcd_menu_print_abort, NULL, PSTR("ABORT")); if (current_temperature_bed > target_temperature_bed - 10) { for(uint8_t e=0; e<EXTRUDERS; e++) { if (LCD_DETAIL_CACHE_MATERIAL(e) < 1 || target_temperature[e] > 0) continue; target_temperature[e] = material[e].temperature; } if (current_temperature_bed >= target_temperature_bed - TEMP_WINDOW * 2 && !is_command_queued()) { bool ready = true; for(uint8_t e=0; e<EXTRUDERS; e++) if (current_temperature[e] < target_temperature[e] - TEMP_WINDOW) ready = false; if (ready) { doStartPrint(); currentMenu = lcd_menu_print_printing; } } } uint8_t progress = 125; for(uint8_t e=0; e<EXTRUDERS; e++) { if (LCD_DETAIL_CACHE_MATERIAL(e) < 1 || target_temperature[e] < 1) continue; if (current_temperature[e] > 20) progress = min(progress, (current_temperature[e] - 20) * 125 / (target_temperature[e] - 20 - TEMP_WINDOW)); else progress = 0; } if (current_temperature_bed > 20) progress = min(progress, (current_temperature_bed - 20) * 125 / (target_temperature_bed - 20 - TEMP_WINDOW)); else progress = 0; if (progress < minProgress) progress = minProgress; else minProgress = progress; lcd_lib_draw_string_centerP(10, PSTR("Heating up...")); lcd_lib_draw_string_centerP(20, PSTR("Preparing to print:")); lcd_lib_draw_string_center(30, card.longFilename); lcd_progressbar(progress); lcd_lib_update_screen(); }
static void lcd_menu_first_run_material_select_confirm_abs() { LED_GLOW(); lcd_question_screen(lcd_menu_first_run_material_select_2, NULL, PSTR("YES"), lcd_menu_first_run_material_select_pla_abs, NULL, PSTR("NO")); DRAW_PROGRESS_NR(18); lcd_lib_draw_string_centerP(20, PSTR("You have chosen")); lcd_lib_draw_string_centerP(30, PSTR("ABS as material,")); lcd_lib_draw_string_centerP(40, PSTR("is this right?")); lcd_lib_update_screen(); }
static void lcd_menu_first_run_material_select_confirm_material() { LED_GLOW(); lcd_question_screen(lcd_menu_first_run_material_select_2, NULL, PSTR("YES"), lcd_menu_first_run_material_select_material, NULL, PSTR("NO")); DRAW_PROGRESS_NR(14); lcd_lib_draw_string_centerP(20, PSTR("You have chosen")); lcd_lib_draw_string_center(30, card.longFilename); lcd_lib_draw_string_centerP(40, PSTR("is this right?")); lcd_lib_update_screen(); }
static void lcd_menu_print_classic_warning() { lcd_question_screen(lcd_menu_print_printing, doStartPrint, PSTR("CONTINUE"), lcd_menu_print_select, NULL, PSTR("CANCEL")); lcd_lib_draw_string_centerP(10, PSTR("This file will")); lcd_lib_draw_string_centerP(20, PSTR("override machine")); lcd_lib_draw_string_centerP(30, PSTR("setting with setting")); lcd_lib_draw_string_centerP(40, PSTR("from the slicer.")); lcd_lib_update_screen(); }
static void lcd_menu_change_material_insert() { LED_GLOW(); lcd_question_screen(lcd_menu_change_material_select_material, materialInsertReady, PSTR("READY"), lcd_menu_main, cancelMaterialInsert, PSTR("CANCEL")); lcd_lib_draw_string_centerP(20, PSTR("Wait till material")); lcd_lib_draw_string_centerP(30, PSTR("comes out the nozzle")); if (movesplanned() < 2) { current_position[E_AXIS] += 0.5; plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], FILAMENT_INSERT_EXTRUDE_SPEED, active_extruder); } lcd_lib_update_screen(); }
static void lcd_menu_change_material_insert() { LED_GLOW(); lcd_question_screen(post_change_material_menu, materialInsertReady, PSTR("READY"), post_change_material_menu, cancelMaterialInsert, PSTR("CANCEL")); lcd_lib_draw_string_centerP(20, PSTR("Wait till material")); lcd_lib_draw_string_centerP(30, PSTR("comes out the nozzle")); if (movesplanned() < 2) { plan_set_e_position(0); plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], 0.5 / volume_to_filament_length[active_extruder], FILAMENT_INSERT_EXTRUDE_SPEED, active_extruder); } lcd_lib_update_screen(); }
static void lcd_menu_change_material_insert_wait_user() { LED_GLOW(); if (printing_state == PRINT_STATE_NORMAL && movesplanned() < 2) { current_position[E_AXIS] += 0.5; plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], FILAMENT_INSERT_SPEED, active_extruder); } lcd_question_screen(NULL, lcd_menu_change_material_insert_wait_user_ready, PSTR("READY"), lcd_menu_main, cancelMaterialInsert, PSTR("CANCEL")); lcd_lib_draw_string_centerP(10, PSTR("Insert new material")); lcd_lib_draw_string_centerP(20, PSTR("from the backside of")); lcd_lib_draw_string_centerP(30, PSTR("your machine,")); lcd_lib_draw_string_centerP(40, PSTR("above the arrow.")); lcd_lib_update_screen(); }