Merge pull request #1045 from XPila/MK3
Menu lcd_adjust_bed fixed + status screen redesign
This commit is contained in:
commit
9fe27c108d
|
|
@ -315,9 +315,6 @@ void save_statistics(unsigned long _total_filament_used, unsigned long _total_pr
|
||||||
extern unsigned int heating_status;
|
extern unsigned int heating_status;
|
||||||
extern unsigned int status_number;
|
extern unsigned int status_number;
|
||||||
extern unsigned int heating_status_counter;
|
extern unsigned int heating_status_counter;
|
||||||
extern bool custom_message;
|
|
||||||
extern unsigned int custom_message_type;
|
|
||||||
extern unsigned int custom_message_state;
|
|
||||||
extern char snmm_filaments_used;
|
extern char snmm_filaments_used;
|
||||||
extern unsigned long PingTime;
|
extern unsigned long PingTime;
|
||||||
extern unsigned long NcTime;
|
extern unsigned long NcTime;
|
||||||
|
|
@ -364,7 +361,7 @@ extern uint8_t print_percent_done_silent;
|
||||||
extern uint32_t print_time_remaining_silent;
|
extern uint32_t print_time_remaining_silent;
|
||||||
#define PRINT_TIME_REMAINING_INIT 0xffffffff
|
#define PRINT_TIME_REMAINING_INIT 0xffffffff
|
||||||
#define PRINT_PERCENT_DONE_INIT 0xff
|
#define PRINT_PERCENT_DONE_INIT 0xff
|
||||||
#define PRINTER_ACTIVE (IS_SD_PRINTING || is_usb_printing || isPrintPaused || (custom_message_type == 4) || saved_printing || (lcd_commands_type == LCD_COMMAND_V2_CAL) || card.paused || mmu_print_saved)
|
#define PRINTER_ACTIVE (IS_SD_PRINTING || is_usb_printing || isPrintPaused || (custom_message_type == CUSTOM_MSG_TYPE_TEMCAL) || saved_printing || (lcd_commands_type == LCD_COMMAND_V2_CAL) || card.paused || mmu_print_saved)
|
||||||
|
|
||||||
extern void calculate_extruder_multipliers();
|
extern void calculate_extruder_multipliers();
|
||||||
|
|
||||||
|
|
@ -419,7 +416,7 @@ extern void print_mesh_bed_leveling_table();
|
||||||
|
|
||||||
//estimated time to end of the print
|
//estimated time to end of the print
|
||||||
extern uint16_t print_time_remaining();
|
extern uint16_t print_time_remaining();
|
||||||
extern uint8_t print_percent_done();
|
extern uint8_t calc_percent_done();
|
||||||
|
|
||||||
#ifdef HOST_KEEPALIVE_FEATURE
|
#ifdef HOST_KEEPALIVE_FEATURE
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -353,12 +353,13 @@ unsigned int status_number = 0;
|
||||||
unsigned long total_filament_used;
|
unsigned long total_filament_used;
|
||||||
unsigned int heating_status;
|
unsigned int heating_status;
|
||||||
unsigned int heating_status_counter;
|
unsigned int heating_status_counter;
|
||||||
bool custom_message;
|
|
||||||
bool loading_flag = false;
|
bool loading_flag = false;
|
||||||
unsigned int custom_message_type;
|
|
||||||
unsigned int custom_message_state;
|
|
||||||
|
|
||||||
char snmm_filaments_used = 0;
|
char snmm_filaments_used = 0;
|
||||||
|
|
||||||
|
|
||||||
bool fan_state[2];
|
bool fan_state[2];
|
||||||
int fan_edge_counter[2];
|
int fan_edge_counter[2];
|
||||||
int fan_speed[2];
|
int fan_speed[2];
|
||||||
|
|
@ -2843,6 +2844,14 @@ void gcode_G28(bool home_x_axis, long home_x_value, bool home_y_axis, long home_
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void adjust_bed_reset()
|
||||||
|
{
|
||||||
|
eeprom_update_byte((unsigned char*)EEPROM_BED_CORRECTION_VALID, 1);
|
||||||
|
eeprom_update_byte((unsigned char*)EEPROM_BED_CORRECTION_LEFT, 0);
|
||||||
|
eeprom_update_byte((unsigned char*)EEPROM_BED_CORRECTION_RIGHT, 0);
|
||||||
|
eeprom_update_byte((unsigned char*)EEPROM_BED_CORRECTION_FRONT, 0);
|
||||||
|
eeprom_update_byte((unsigned char*)EEPROM_BED_CORRECTION_REAR, 0);
|
||||||
|
}
|
||||||
|
|
||||||
bool gcode_M45(bool onlyZ, int8_t verbosity_level)
|
bool gcode_M45(bool onlyZ, int8_t verbosity_level)
|
||||||
{
|
{
|
||||||
|
|
@ -3149,8 +3158,7 @@ void gcode_M600(bool automatic, float x_position, float y_position, float z_shif
|
||||||
enquecommand(cmd);
|
enquecommand(cmd);
|
||||||
|
|
||||||
lcd_setstatuspgm(_T(WELCOME_MSG));
|
lcd_setstatuspgm(_T(WELCOME_MSG));
|
||||||
custom_message = false;
|
custom_message_type = CUSTOM_MSG_TYPE_STATUS;
|
||||||
custom_message_type = 0;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -3164,8 +3172,7 @@ void gcode_M701()
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
enable_z();
|
enable_z();
|
||||||
custom_message = true;
|
custom_message_type = CUSTOM_MSG_TYPE_F_LOAD;
|
||||||
custom_message_type = 2;
|
|
||||||
|
|
||||||
#ifdef FILAMENT_SENSOR
|
#ifdef FILAMENT_SENSOR
|
||||||
fsensor_oq_meassure_start(40);
|
fsensor_oq_meassure_start(40);
|
||||||
|
|
@ -3207,8 +3214,7 @@ void gcode_M701()
|
||||||
lcd_setstatuspgm(_T(WELCOME_MSG));
|
lcd_setstatuspgm(_T(WELCOME_MSG));
|
||||||
disable_z();
|
disable_z();
|
||||||
loading_flag = false;
|
loading_flag = false;
|
||||||
custom_message = false;
|
custom_message_type = CUSTOM_MSG_TYPE_STATUS;
|
||||||
custom_message_type = 0;
|
|
||||||
|
|
||||||
#ifdef FILAMENT_SENSOR
|
#ifdef FILAMENT_SENSOR
|
||||||
fsensor_oq_meassure_stop();
|
fsensor_oq_meassure_stop();
|
||||||
|
|
@ -4043,10 +4049,9 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
|
||||||
// setTargetHotend(200, 0);
|
// setTargetHotend(200, 0);
|
||||||
setTargetBed(70 + (start_temp - 30));
|
setTargetBed(70 + (start_temp - 30));
|
||||||
|
|
||||||
custom_message = true;
|
custom_message_type = CUSTOM_MSG_TYPE_TEMCAL;
|
||||||
custom_message_type = 4;
|
|
||||||
custom_message_state = 1;
|
custom_message_state = 1;
|
||||||
custom_message = _T(MSG_TEMP_CALIBRATION);
|
lcd_setstatuspgm(_T(MSG_TEMP_CALIBRATION));
|
||||||
current_position[Z_AXIS] = MESH_HOME_Z_SEARCH;
|
current_position[Z_AXIS] = MESH_HOME_Z_SEARCH;
|
||||||
plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 3000 / 60, active_extruder);
|
plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 3000 / 60, active_extruder);
|
||||||
current_position[X_AXIS] = PINDA_PREHEAT_X;
|
current_position[X_AXIS] = PINDA_PREHEAT_X;
|
||||||
|
|
@ -4146,10 +4151,9 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
puts_P(_N("PINDA probe calibration start"));
|
puts_P(_N("PINDA probe calibration start"));
|
||||||
custom_message = true;
|
custom_message_type = CUSTOM_MSG_TYPE_TEMCAL;
|
||||||
custom_message_type = 4;
|
|
||||||
custom_message_state = 1;
|
custom_message_state = 1;
|
||||||
custom_message = _T(MSG_TEMP_CALIBRATION);
|
lcd_setstatuspgm(_T(MSG_TEMP_CALIBRATION));
|
||||||
current_position[X_AXIS] = PINDA_PREHEAT_X;
|
current_position[X_AXIS] = PINDA_PREHEAT_X;
|
||||||
current_position[Y_AXIS] = PINDA_PREHEAT_Y;
|
current_position[Y_AXIS] = PINDA_PREHEAT_Y;
|
||||||
current_position[Z_AXIS] = PINDA_PREHEAT_Z;
|
current_position[Z_AXIS] = PINDA_PREHEAT_Z;
|
||||||
|
|
@ -4215,8 +4219,7 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
custom_message_type = 0;
|
custom_message_type = CUSTOM_MSG_TYPE_STATUS;
|
||||||
custom_message = false;
|
|
||||||
|
|
||||||
eeprom_update_byte((uint8_t*)EEPROM_CALIBRATION_STATUS_PINDA, 1);
|
eeprom_update_byte((uint8_t*)EEPROM_CALIBRATION_STATUS_PINDA, 1);
|
||||||
puts_P(_N("Temperature calibration done."));
|
puts_P(_N("Temperature calibration done."));
|
||||||
|
|
@ -4350,11 +4353,9 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
// Save custom message state, set a new custom message state to display: Calibrating point 9.
|
// Save custom message state, set a new custom message state to display: Calibrating point 9.
|
||||||
bool custom_message_old = custom_message;
|
|
||||||
unsigned int custom_message_type_old = custom_message_type;
|
unsigned int custom_message_type_old = custom_message_type;
|
||||||
unsigned int custom_message_state_old = custom_message_state;
|
unsigned int custom_message_state_old = custom_message_state;
|
||||||
custom_message = true;
|
custom_message_type = CUSTOM_MSG_TYPE_MESHBL;
|
||||||
custom_message_type = 1;
|
|
||||||
custom_message_state = (MESH_MEAS_NUM_X_POINTS * MESH_MEAS_NUM_Y_POINTS) + 10;
|
custom_message_state = (MESH_MEAS_NUM_X_POINTS * MESH_MEAS_NUM_Y_POINTS) + 10;
|
||||||
lcd_update(1);
|
lcd_update(1);
|
||||||
|
|
||||||
|
|
@ -4586,7 +4587,6 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
|
||||||
KEEPALIVE_STATE(NOT_BUSY);
|
KEEPALIVE_STATE(NOT_BUSY);
|
||||||
// Restore custom message state
|
// Restore custom message state
|
||||||
lcd_setstatuspgm(_T(WELCOME_MSG));
|
lcd_setstatuspgm(_T(WELCOME_MSG));
|
||||||
custom_message = custom_message_old;
|
|
||||||
custom_message_type = custom_message_type_old;
|
custom_message_type = custom_message_type_old;
|
||||||
custom_message_state = custom_message_state_old;
|
custom_message_state = custom_message_state_old;
|
||||||
mesh_bed_leveling_flag = false;
|
mesh_bed_leveling_flag = false;
|
||||||
|
|
@ -6803,8 +6803,9 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
|
||||||
|
|
||||||
if (mmu_enabled)
|
if (mmu_enabled)
|
||||||
{
|
{
|
||||||
printf_P(PSTR("T code: %d \n"), tmp_extruder);
|
//printf_P(PSTR("T code: %d \n"), tmp_extruder);
|
||||||
mmu_printf_P(PSTR("T%d\n"), tmp_extruder);
|
//mmu_printf_P(PSTR("T%d\n"), tmp_extruder);
|
||||||
|
mmu_command(MMU_CMD_T0 + tmp_extruder);
|
||||||
|
|
||||||
manage_response(true, true);
|
manage_response(true, true);
|
||||||
|
|
||||||
|
|
@ -7427,6 +7428,7 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
|
||||||
handle_status_leds();
|
handle_status_leds();
|
||||||
#endif
|
#endif
|
||||||
check_axes_activity();
|
check_axes_activity();
|
||||||
|
// mmu_loop();
|
||||||
}
|
}
|
||||||
|
|
||||||
void kill(const char *full_screen_message, unsigned char id)
|
void kill(const char *full_screen_message, unsigned char id)
|
||||||
|
|
@ -7796,11 +7798,9 @@ void bed_analysis(float x_dimension, float y_dimension, int x_points_num, int y_
|
||||||
enquecommand_front_P((PSTR("G1 Z5")));
|
enquecommand_front_P((PSTR("G1 Z5")));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
bool custom_message_old = custom_message;
|
|
||||||
unsigned int custom_message_type_old = custom_message_type;
|
unsigned int custom_message_type_old = custom_message_type;
|
||||||
unsigned int custom_message_state_old = custom_message_state;
|
unsigned int custom_message_state_old = custom_message_state;
|
||||||
custom_message = true;
|
custom_message_type = CUSTOM_MSG_TYPE_MESHBL;
|
||||||
custom_message_type = 1;
|
|
||||||
custom_message_state = (x_points_num * y_points_num) + 10;
|
custom_message_state = (x_points_num * y_points_num) + 10;
|
||||||
lcd_update(1);
|
lcd_update(1);
|
||||||
|
|
||||||
|
|
@ -7950,8 +7950,7 @@ void bed_analysis(float x_dimension, float y_dimension, int x_points_num, int y_
|
||||||
|
|
||||||
void temp_compensation_start() {
|
void temp_compensation_start() {
|
||||||
|
|
||||||
custom_message = true;
|
custom_message_type = CUSTOM_MSG_TYPE_TEMPRE;
|
||||||
custom_message_type = 5;
|
|
||||||
custom_message_state = PINDA_HEAT_T + 1;
|
custom_message_state = PINDA_HEAT_T + 1;
|
||||||
lcd_update(2);
|
lcd_update(2);
|
||||||
if (degHotend(active_extruder) > EXTRUDE_MINTEMP) {
|
if (degHotend(active_extruder) > EXTRUDE_MINTEMP) {
|
||||||
|
|
@ -7972,9 +7971,8 @@ void temp_compensation_start() {
|
||||||
if (custom_message_state == 99 || custom_message_state == 9) lcd_update(2); //force whole display redraw if number of digits changed
|
if (custom_message_state == 99 || custom_message_state == 9) lcd_update(2); //force whole display redraw if number of digits changed
|
||||||
else lcd_update(1);
|
else lcd_update(1);
|
||||||
}
|
}
|
||||||
custom_message_type = 0;
|
custom_message_type = CUSTOM_MSG_TYPE_STATUS;
|
||||||
custom_message_state = 0;
|
custom_message_state = 0;
|
||||||
custom_message = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void temp_compensation_apply() {
|
void temp_compensation_apply() {
|
||||||
|
|
@ -8821,7 +8819,7 @@ uint16_t print_time_remaining() {
|
||||||
return print_t;
|
return print_t;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t print_percent_done()
|
uint8_t calc_percent_done()
|
||||||
{
|
{
|
||||||
//in case that we have information from M73 gcode return percentage counted by slicer, else return percentage counted as byte_printed/filesize
|
//in case that we have information from M73 gcode return percentage counted by slicer, else return percentage counted as byte_printed/filesize
|
||||||
uint8_t percent_done = 0;
|
uint8_t percent_done = 0;
|
||||||
|
|
|
||||||
|
|
@ -538,7 +538,10 @@ int lcd_printf_P(const char* format, ...)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void lcd_space(uint8_t n)
|
||||||
|
{
|
||||||
|
while (n--) lcd_putc(' ');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void lcd_print(const char* s)
|
void lcd_print(const char* s)
|
||||||
|
|
|
||||||
|
|
@ -50,6 +50,7 @@ extern int lcd_putc(int c);
|
||||||
extern int lcd_puts_P(const char* str);
|
extern int lcd_puts_P(const char* str);
|
||||||
extern int lcd_puts_at_P(uint8_t c, uint8_t r, const char* str);
|
extern int lcd_puts_at_P(uint8_t c, uint8_t r, const char* str);
|
||||||
extern int lcd_printf_P(const char* format, ...);
|
extern int lcd_printf_P(const char* format, ...);
|
||||||
|
extern void lcd_space(uint8_t n);
|
||||||
|
|
||||||
extern void lcd_printNumber(unsigned long n, uint8_t base);
|
extern void lcd_printNumber(unsigned long n, uint8_t base);
|
||||||
extern void lcd_printFloat(double number, uint8_t digits);
|
extern void lcd_printFloat(double number, uint8_t digits);
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,9 @@ uint8_t menu_top = 0;
|
||||||
|
|
||||||
uint8_t menu_clicked = 0;
|
uint8_t menu_clicked = 0;
|
||||||
|
|
||||||
|
uint8_t menu_entering = 0;
|
||||||
|
uint8_t menu_leaving = 0;
|
||||||
|
|
||||||
menu_func_t menu_menu = 0;
|
menu_func_t menu_menu = 0;
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -76,12 +79,22 @@ void menu_end(void)
|
||||||
|
|
||||||
void menu_back(void)
|
void menu_back(void)
|
||||||
{
|
{
|
||||||
if (menu_depth > 0) {
|
if (menu_depth > 0)
|
||||||
|
{
|
||||||
menu_depth--;
|
menu_depth--;
|
||||||
menu_goto(menu_stack[menu_depth].menu, menu_stack[menu_depth].position, true, true);
|
menu_goto(menu_stack[menu_depth].menu, menu_stack[menu_depth].position, true, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void menu_back_no_reset(void)
|
||||||
|
{
|
||||||
|
if (menu_depth > 0)
|
||||||
|
{
|
||||||
|
menu_depth--;
|
||||||
|
menu_goto(menu_stack[menu_depth].menu, menu_stack[menu_depth].position, true, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void menu_back_if_clicked(void)
|
void menu_back_if_clicked(void)
|
||||||
{
|
{
|
||||||
if (lcd_clicked())
|
if (lcd_clicked())
|
||||||
|
|
@ -107,6 +120,16 @@ void menu_submenu(menu_func_t submenu)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void menu_submenu_no_reset(menu_func_t submenu)
|
||||||
|
{
|
||||||
|
if (menu_depth <= MENU_DEPTH_MAX)
|
||||||
|
{
|
||||||
|
menu_stack[menu_depth].menu = menu_menu;
|
||||||
|
menu_stack[menu_depth++].position = lcd_encoder;
|
||||||
|
menu_goto(submenu, 0, true, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
uint8_t menu_item_ret(void)
|
uint8_t menu_item_ret(void)
|
||||||
{
|
{
|
||||||
lcd_beeper_quick_feedback();
|
lcd_beeper_quick_feedback();
|
||||||
|
|
@ -295,7 +318,7 @@ void _menu_edit_int3(void)
|
||||||
if (LCD_CLICKED)
|
if (LCD_CLICKED)
|
||||||
{
|
{
|
||||||
*((int*)(_md->editValue)) = (int)lcd_encoder;
|
*((int*)(_md->editValue)) = (int)lcd_encoder;
|
||||||
menu_back();
|
menu_back_no_reset();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -311,7 +334,7 @@ uint8_t menu_item_edit_int3(const char* str, int16_t* pval, int16_t min_val, int
|
||||||
}
|
}
|
||||||
if (menu_clicked && (lcd_encoder == menu_item))
|
if (menu_clicked && (lcd_encoder == menu_item))
|
||||||
{
|
{
|
||||||
menu_submenu(_menu_edit_int3);
|
menu_submenu_no_reset(_menu_edit_int3);
|
||||||
_md->editLabel = str;
|
_md->editLabel = str;
|
||||||
_md->editValue = pval;
|
_md->editValue = pval;
|
||||||
_md->minEditValue = min_val;
|
_md->minEditValue = min_val;
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,9 @@
|
||||||
|
|
||||||
#include <inttypes.h>
|
#include <inttypes.h>
|
||||||
|
|
||||||
#define MENU_DEPTH_MAX 4
|
#define MENU_DEPTH_MAX 4
|
||||||
#define MENU_DATA_SIZE 32
|
#define MENU_DATA_SIZE 32
|
||||||
|
#define MENU_DATA_EDIT_SIZE 12
|
||||||
|
|
||||||
//Function pointer to menu functions.
|
//Function pointer to menu functions.
|
||||||
typedef void (*menu_func_t)(void);
|
typedef void (*menu_func_t)(void);
|
||||||
|
|
@ -25,12 +26,15 @@ extern uint8_t menu_depth;
|
||||||
extern uint8_t menu_line;
|
extern uint8_t menu_line;
|
||||||
extern uint8_t menu_item;
|
extern uint8_t menu_item;
|
||||||
extern uint8_t menu_row;
|
extern uint8_t menu_row;
|
||||||
;
|
|
||||||
//scroll offset in the current menu
|
//scroll offset in the current menu
|
||||||
extern uint8_t menu_top;
|
extern uint8_t menu_top;
|
||||||
|
|
||||||
extern uint8_t menu_clicked;
|
extern uint8_t menu_clicked;
|
||||||
|
|
||||||
|
extern uint8_t menu_entering;
|
||||||
|
extern uint8_t menu_leaving;
|
||||||
|
|
||||||
//function pointer to the currently active menu
|
//function pointer to the currently active menu
|
||||||
extern menu_func_t menu_menu;
|
extern menu_func_t menu_menu;
|
||||||
|
|
||||||
|
|
@ -46,12 +50,16 @@ extern void menu_end(void);
|
||||||
|
|
||||||
extern void menu_back(void);
|
extern void menu_back(void);
|
||||||
|
|
||||||
|
extern void menu_back_no_reset(void);
|
||||||
|
|
||||||
extern void menu_back_if_clicked(void);
|
extern void menu_back_if_clicked(void);
|
||||||
|
|
||||||
extern void menu_back_if_clicked_fb(void);
|
extern void menu_back_if_clicked_fb(void);
|
||||||
|
|
||||||
extern void menu_submenu(menu_func_t submenu);
|
extern void menu_submenu(menu_func_t submenu);
|
||||||
|
|
||||||
|
extern void menu_submenu_no_reset(menu_func_t submenu);
|
||||||
|
|
||||||
extern uint8_t menu_item_ret(void);
|
extern uint8_t menu_item_ret(void);
|
||||||
|
|
||||||
//extern int menu_draw_item_printf_P(char type_char, const char* format, ...);
|
//extern int menu_draw_item_printf_P(char type_char, const char* format, ...);
|
||||||
|
|
|
||||||
|
|
@ -26,8 +26,12 @@ extern char choose_extruder_menu();
|
||||||
|
|
||||||
bool mmu_enabled = false;
|
bool mmu_enabled = false;
|
||||||
|
|
||||||
|
bool mmu_ready = false;
|
||||||
|
|
||||||
int8_t mmu_state = 0;
|
int8_t mmu_state = 0;
|
||||||
|
|
||||||
|
uint8_t mmu_cmd = 0;
|
||||||
|
|
||||||
uint8_t mmu_extruder = 0;
|
uint8_t mmu_extruder = 0;
|
||||||
|
|
||||||
uint8_t tmp_extruder = 0;
|
uint8_t tmp_extruder = 0;
|
||||||
|
|
@ -38,6 +42,9 @@ int16_t mmu_version = -1;
|
||||||
|
|
||||||
int16_t mmu_buildnr = -1;
|
int16_t mmu_buildnr = -1;
|
||||||
|
|
||||||
|
uint32_t mmu_last_request = 0;
|
||||||
|
uint32_t mmu_last_response = 0;
|
||||||
|
|
||||||
|
|
||||||
//clear rx buffer
|
//clear rx buffer
|
||||||
void mmu_clr_rx_buf(void)
|
void mmu_clr_rx_buf(void)
|
||||||
|
|
@ -49,7 +56,9 @@ void mmu_clr_rx_buf(void)
|
||||||
int mmu_puts_P(const char* str)
|
int mmu_puts_P(const char* str)
|
||||||
{
|
{
|
||||||
mmu_clr_rx_buf(); //clear rx buffer
|
mmu_clr_rx_buf(); //clear rx buffer
|
||||||
return fputs_P(str, uart2io); //send command
|
int r = fputs_P(str, uart2io); //send command
|
||||||
|
mmu_last_request = millis();
|
||||||
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
//send command - printf
|
//send command - printf
|
||||||
|
|
@ -60,19 +69,24 @@ int mmu_printf_P(const char* format, ...)
|
||||||
mmu_clr_rx_buf(); //clear rx buffer
|
mmu_clr_rx_buf(); //clear rx buffer
|
||||||
int r = vfprintf_P(uart2io, format, args); //send command
|
int r = vfprintf_P(uart2io, format, args); //send command
|
||||||
va_end(args);
|
va_end(args);
|
||||||
|
mmu_last_request = millis();
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
//check 'ok' response
|
//check 'ok' response
|
||||||
int8_t mmu_rx_ok(void)
|
int8_t mmu_rx_ok(void)
|
||||||
{
|
{
|
||||||
return uart2_rx_str_P(PSTR("ok\n"));
|
int8_t res = uart2_rx_str_P(PSTR("ok\n"));
|
||||||
|
if (res == 1) mmu_last_response = millis();
|
||||||
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
//check 'start' response
|
//check 'start' response
|
||||||
int8_t mmu_rx_start(void)
|
int8_t mmu_rx_start(void)
|
||||||
{
|
{
|
||||||
return uart2_rx_str_P(PSTR("start\n"));
|
int8_t res = uart2_rx_str_P(PSTR("start\n"));
|
||||||
|
if (res == 1) mmu_last_response = millis();
|
||||||
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
//initialize mmu2 unit - first part - should be done at begining of startup process
|
//initialize mmu2 unit - first part - should be done at begining of startup process
|
||||||
|
|
@ -138,6 +152,50 @@ void mmu_loop(void)
|
||||||
mmu_state = 1;
|
mmu_state = 1;
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
case 1:
|
||||||
|
if (mmu_cmd) //command request ?
|
||||||
|
{
|
||||||
|
if ((mmu_cmd >= MMU_CMD_T0) && (mmu_cmd <= MMU_CMD_T4))
|
||||||
|
{
|
||||||
|
int extruder = mmu_cmd - MMU_CMD_T0;
|
||||||
|
printf_P(PSTR("MMU <= 'T%d'\n"), extruder);
|
||||||
|
mmu_printf_P(PSTR("T%d\n"), extruder);
|
||||||
|
mmu_state = 3; // wait for response
|
||||||
|
}
|
||||||
|
mmu_cmd = 0;
|
||||||
|
}
|
||||||
|
else if ((mmu_last_response + 1000) < millis()) //request every 1s
|
||||||
|
{
|
||||||
|
puts_P(PSTR("MMU <= 'P0'"));
|
||||||
|
mmu_puts_P(PSTR("P0\n")); //send 'read finda' request
|
||||||
|
mmu_state = 2;
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
case 2: //response to command P0
|
||||||
|
if (mmu_rx_ok() > 0)
|
||||||
|
{
|
||||||
|
fscanf_P(uart2io, PSTR("%hhu"), &mmu_finda); //scan finda from buffer
|
||||||
|
printf_P(PSTR("MMU => '%dok'\n"), mmu_finda);
|
||||||
|
mmu_state = 1;
|
||||||
|
mmu_ready = true;
|
||||||
|
}
|
||||||
|
else if ((mmu_last_request + 30000) < millis())
|
||||||
|
{ //resend request after timeout (30s)
|
||||||
|
mmu_state = 1;
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
case 3: //response to commands T0-T4
|
||||||
|
if (mmu_rx_ok() > 0)
|
||||||
|
{
|
||||||
|
printf_P(PSTR("MMU => 'ok'\n"), mmu_finda);
|
||||||
|
mmu_ready = true;
|
||||||
|
mmu_state = 1;
|
||||||
|
}
|
||||||
|
else if ((mmu_last_request + 30000) < millis())
|
||||||
|
{ //resend request after timeout (30s)
|
||||||
|
mmu_state = 1;
|
||||||
|
}
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -162,9 +220,26 @@ int8_t mmu_set_filament_type(uint8_t extruder, uint8_t filament)
|
||||||
return timeout?1:0;
|
return timeout?1:0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool mmu_get_response(bool timeout)
|
void mmu_command(uint8_t cmd)
|
||||||
{
|
{
|
||||||
printf_P(PSTR("mmu_get_response - begin\n"));
|
mmu_cmd = cmd;
|
||||||
|
mmu_ready = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool mmu_get_response(void)
|
||||||
|
{
|
||||||
|
KEEPALIVE_STATE(IN_PROCESS);
|
||||||
|
while (!mmu_ready)
|
||||||
|
{
|
||||||
|
mmu_loop();
|
||||||
|
if (mmu_state != 3)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
bool ret = mmu_ready;
|
||||||
|
mmu_ready = false;
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
/* printf_P(PSTR("mmu_get_response - begin\n"));
|
||||||
//waits for "ok" from mmu
|
//waits for "ok" from mmu
|
||||||
//function returns true if "ok" was received
|
//function returns true if "ok" was received
|
||||||
//if timeout is set to true function return false if there is no "ok" received before timeout
|
//if timeout is set to true function return false if there is no "ok" received before timeout
|
||||||
|
|
@ -182,7 +257,7 @@ bool mmu_get_response(bool timeout)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
printf_P(PSTR("mmu_get_response - end %d\n"), response?1:0);
|
printf_P(PSTR("mmu_get_response - end %d\n"), response?1:0);
|
||||||
return response;
|
return response;*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -197,7 +272,7 @@ void manage_response(bool move_axes, bool turn_off_nozzle)
|
||||||
float y_position_bckp = current_position[Y_AXIS];
|
float y_position_bckp = current_position[Y_AXIS];
|
||||||
while(!response)
|
while(!response)
|
||||||
{
|
{
|
||||||
response = mmu_get_response(true); //wait for "ok" from mmu
|
response = mmu_get_response(); //wait for "ok" from mmu
|
||||||
if (!response) { //no "ok" was received in reserved time frame, user will fix the issue on mmu unit
|
if (!response) { //no "ok" was received in reserved time frame, user will fix the issue on mmu unit
|
||||||
if (!mmu_print_saved) { //first occurence, we are saving current position, park print head in certain position and disable nozzle heater
|
if (!mmu_print_saved) { //first occurence, we are saving current position, park print head in certain position and disable nozzle heater
|
||||||
if (lcd_update_enabled) {
|
if (lcd_update_enabled) {
|
||||||
|
|
@ -306,8 +381,10 @@ void mmu_M600_load_filament(bool automatic)
|
||||||
lcd_print(" ");
|
lcd_print(" ");
|
||||||
lcd_print(tmp_extruder + 1);
|
lcd_print(tmp_extruder + 1);
|
||||||
snmm_filaments_used |= (1 << tmp_extruder); //for stop print
|
snmm_filaments_used |= (1 << tmp_extruder); //for stop print
|
||||||
printf_P(PSTR("T code: %d \n"), tmp_extruder);
|
|
||||||
mmu_printf_P(PSTR("T%d\n"), tmp_extruder);
|
// printf_P(PSTR("T code: %d \n"), tmp_extruder);
|
||||||
|
// mmu_printf_P(PSTR("T%d\n"), tmp_extruder);
|
||||||
|
mmu_command(MMU_CMD_T0 + tmp_extruder);
|
||||||
|
|
||||||
manage_response(false, true);
|
manage_response(false, true);
|
||||||
mmu_extruder = tmp_extruder; //filament change is finished
|
mmu_extruder = tmp_extruder; //filament change is finished
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,13 @@ extern int16_t mmu_version;
|
||||||
extern int16_t mmu_buildnr;
|
extern int16_t mmu_buildnr;
|
||||||
|
|
||||||
|
|
||||||
|
#define MMU_CMD_NONE 0
|
||||||
|
#define MMU_CMD_T0 0x10
|
||||||
|
#define MMU_CMD_T1 0x11
|
||||||
|
#define MMU_CMD_T2 0x12
|
||||||
|
#define MMU_CMD_T3 0x13
|
||||||
|
#define MMU_CMD_T4 0x14
|
||||||
|
|
||||||
extern int mmu_puts_P(const char* str);
|
extern int mmu_puts_P(const char* str);
|
||||||
|
|
||||||
extern int mmu_printf_P(const char* format, ...);
|
extern int mmu_printf_P(const char* format, ...);
|
||||||
|
|
@ -33,8 +40,9 @@ extern void mmu_reset(void);
|
||||||
|
|
||||||
extern int8_t mmu_set_filament_type(uint8_t extruder, uint8_t filament);
|
extern int8_t mmu_set_filament_type(uint8_t extruder, uint8_t filament);
|
||||||
|
|
||||||
|
extern void mmu_command(uint8_t cmd);
|
||||||
|
|
||||||
extern bool mmu_get_response(bool timeout);
|
extern bool mmu_get_response(void);
|
||||||
|
|
||||||
extern void manage_response(bool move_axes, bool turn_off_nozzle);
|
extern void manage_response(bool move_axes, bool turn_off_nozzle);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -230,15 +230,15 @@ void checkHitEndstops()
|
||||||
SERIAL_ECHORPGM(_T(MSG_ENDSTOPS_HIT));
|
SERIAL_ECHORPGM(_T(MSG_ENDSTOPS_HIT));
|
||||||
if(endstop_x_hit) {
|
if(endstop_x_hit) {
|
||||||
SERIAL_ECHOPAIR(" X:",(float)endstops_trigsteps[X_AXIS]/axis_steps_per_unit[X_AXIS]);
|
SERIAL_ECHOPAIR(" X:",(float)endstops_trigsteps[X_AXIS]/axis_steps_per_unit[X_AXIS]);
|
||||||
LCD_MESSAGERPGM(CAT2(_T(MSG_ENDSTOPS_HIT), PSTR("X")));
|
// LCD_MESSAGERPGM(CAT2(_T(MSG_ENDSTOPS_HIT), PSTR("X")));
|
||||||
}
|
}
|
||||||
if(endstop_y_hit) {
|
if(endstop_y_hit) {
|
||||||
SERIAL_ECHOPAIR(" Y:",(float)endstops_trigsteps[Y_AXIS]/axis_steps_per_unit[Y_AXIS]);
|
SERIAL_ECHOPAIR(" Y:",(float)endstops_trigsteps[Y_AXIS]/axis_steps_per_unit[Y_AXIS]);
|
||||||
LCD_MESSAGERPGM(CAT2(_T(MSG_ENDSTOPS_HIT), PSTR("Y")));
|
// LCD_MESSAGERPGM(CAT2(_T(MSG_ENDSTOPS_HIT), PSTR("Y")));
|
||||||
}
|
}
|
||||||
if(endstop_z_hit) {
|
if(endstop_z_hit) {
|
||||||
SERIAL_ECHOPAIR(" Z:",(float)endstops_trigsteps[Z_AXIS]/axis_steps_per_unit[Z_AXIS]);
|
SERIAL_ECHOPAIR(" Z:",(float)endstops_trigsteps[Z_AXIS]/axis_steps_per_unit[Z_AXIS]);
|
||||||
LCD_MESSAGERPGM(CAT2(_T(MSG_ENDSTOPS_HIT),PSTR("Z")));
|
// LCD_MESSAGERPGM(CAT2(_T(MSG_ENDSTOPS_HIT),PSTR("Z")));
|
||||||
}
|
}
|
||||||
SERIAL_ECHOLN("");
|
SERIAL_ECHOLN("");
|
||||||
endstop_x_hit=false;
|
endstop_x_hit=false;
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -13,100 +13,108 @@ extern void menu_lcd_longpress_func(void);
|
||||||
extern void menu_lcd_charsetup_func(void);
|
extern void menu_lcd_charsetup_func(void);
|
||||||
extern void menu_lcd_lcdupdate_func(void);
|
extern void menu_lcd_lcdupdate_func(void);
|
||||||
|
|
||||||
// Call with a false parameter to suppress the LCD update from various places like the planner or the temp control.
|
// Call with a false parameter to suppress the LCD update from various places like the planner or the temp control.
|
||||||
void ultralcd_init();
|
void ultralcd_init();
|
||||||
void lcd_setstatus(const char* message);
|
void lcd_setstatus(const char* message);
|
||||||
void lcd_setstatuspgm(const char* message);
|
void lcd_setstatuspgm(const char* message);
|
||||||
void lcd_setalertstatuspgm(const char* message);
|
void lcd_setalertstatuspgm(const char* message);
|
||||||
void lcd_reset_alert_level();
|
void lcd_reset_alert_level();
|
||||||
uint8_t get_message_level();
|
uint8_t get_message_level();
|
||||||
void lcd_adjust_z();
|
void lcd_adjust_z();
|
||||||
void lcd_pick_babystep();
|
void lcd_pick_babystep();
|
||||||
void lcd_alright();
|
void lcd_alright();
|
||||||
void EEPROM_save_B(int pos, int* value);
|
void EEPROM_save_B(int pos, int* value);
|
||||||
void EEPROM_read_B(int pos, int* value);
|
void EEPROM_read_B(int pos, int* value);
|
||||||
void lcd_wait_interact();
|
void lcd_wait_interact();
|
||||||
void lcd_change_filament();
|
void lcd_change_filament();
|
||||||
void lcd_loading_filament();
|
void lcd_loading_filament();
|
||||||
void lcd_change_success();
|
void lcd_change_success();
|
||||||
void lcd_loading_color();
|
void lcd_loading_color();
|
||||||
void lcd_sdcard_stop();
|
void lcd_sdcard_stop();
|
||||||
void lcd_sdcard_pause();
|
void lcd_sdcard_pause();
|
||||||
void lcd_print_stop();
|
void lcd_print_stop();
|
||||||
void prusa_statistics(int _message, uint8_t _col_nr = 0);
|
void prusa_statistics(int _message, uint8_t _col_nr = 0);
|
||||||
void lcd_confirm_print();
|
void lcd_confirm_print();
|
||||||
unsigned char lcd_choose_color();
|
unsigned char lcd_choose_color();
|
||||||
//void lcd_mylang();
|
//void lcd_mylang();
|
||||||
|
|
||||||
extern bool lcd_selftest();
|
extern bool lcd_selftest();
|
||||||
|
|
||||||
void lcd_menu_statistics();
|
void lcd_menu_statistics();
|
||||||
|
|
||||||
extern const char* lcd_display_message_fullscreen_P(const char *msg, uint8_t &nlines);
|
extern const char* lcd_display_message_fullscreen_P(const char *msg, uint8_t &nlines);
|
||||||
extern const char* lcd_display_message_fullscreen_P(const char *msg);
|
extern const char* lcd_display_message_fullscreen_P(const char *msg);
|
||||||
|
|
||||||
extern void lcd_wait_for_click();
|
extern void lcd_wait_for_click();
|
||||||
extern void lcd_show_fullscreen_message_and_wait_P(const char *msg);
|
extern void lcd_show_fullscreen_message_and_wait_P(const char *msg);
|
||||||
// 0: no, 1: yes, -1: timeouted
|
// 0: no, 1: yes, -1: timeouted
|
||||||
extern int8_t lcd_show_fullscreen_message_yes_no_and_wait_P(const char *msg, bool allow_timeouting = true, bool default_yes = false);
|
extern int8_t lcd_show_fullscreen_message_yes_no_and_wait_P(const char *msg, bool allow_timeouting = true, bool default_yes = false);
|
||||||
extern int8_t lcd_show_multiscreen_message_yes_no_and_wait_P(const char *msg, bool allow_timeouting = true, bool default_yes = false);
|
extern int8_t lcd_show_multiscreen_message_yes_no_and_wait_P(const char *msg, bool allow_timeouting = true, bool default_yes = false);
|
||||||
// Ask the user to move the Z axis up to the end stoppers and let
|
// Ask the user to move the Z axis up to the end stoppers and let
|
||||||
// the user confirm that it has been done.
|
// the user confirm that it has been done.
|
||||||
#ifndef TMC2130
|
|
||||||
extern bool lcd_calibrate_z_end_stop_manual(bool only_z);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Show the result of the calibration process on the LCD screen.
|
#ifndef TMC2130
|
||||||
extern void lcd_bed_calibration_show_result(uint8_t result, uint8_t point_too_far_mask);
|
extern bool lcd_calibrate_z_end_stop_manual(bool only_z);
|
||||||
|
#endif
|
||||||
|
|
||||||
extern void lcd_diag_show_end_stops();
|
// Show the result of the calibration process on the LCD screen.
|
||||||
|
extern void lcd_bed_calibration_show_result(uint8_t result, uint8_t point_too_far_mask);
|
||||||
|
|
||||||
|
extern void lcd_diag_show_end_stops();
|
||||||
|
|
||||||
|
|
||||||
|
#define LCD_MESSAGEPGM(x) lcd_setstatuspgm(PSTR(x))
|
||||||
#define LCD_MESSAGEPGM(x) lcd_setstatuspgm(PSTR(x))
|
#define LCD_ALERTMESSAGEPGM(x) lcd_setalertstatuspgm(PSTR(x))
|
||||||
#define LCD_ALERTMESSAGEPGM(x) lcd_setalertstatuspgm(PSTR(x))
|
#define LCD_MESSAGERPGM(x) lcd_setstatuspgm((x))
|
||||||
#define LCD_MESSAGERPGM(x) lcd_setstatuspgm((x))
|
#define LCD_ALERTMESSAGERPGM(x) lcd_setalertstatuspgm((x))
|
||||||
#define LCD_ALERTMESSAGERPGM(x) lcd_setalertstatuspgm((x))
|
|
||||||
|
|
||||||
|
|
||||||
|
// To be used in lcd_commands_type.
|
||||||
|
#define LCD_COMMAND_IDLE 0
|
||||||
|
#define LCD_COMMAND_LOAD_FILAMENT 1
|
||||||
|
#define LCD_COMMAND_STOP_PRINT 2
|
||||||
|
#define LCD_COMMAND_FARM_MODE_CONFIRM 4
|
||||||
|
#define LCD_COMMAND_LONG_PAUSE 5
|
||||||
|
#define LCD_COMMAND_LONG_PAUSE_RESUME 6
|
||||||
|
#define LCD_COMMAND_PID_EXTRUDER 7
|
||||||
|
#define LCD_COMMAND_V2_CAL 8
|
||||||
|
|
||||||
|
extern int lcd_commands_type;
|
||||||
|
|
||||||
|
#define CUSTOM_MSG_TYPE_STATUS 0 // status message from lcd_status_message variable
|
||||||
|
#define CUSTOM_MSG_TYPE_MESHBL 1 // Mesh bed leveling in progress
|
||||||
|
#define CUSTOM_MSG_TYPE_F_LOAD 2 // Loading filament in progress
|
||||||
|
#define CUSTOM_MSG_TYPE_PIDCAL 3 // PID tuning in progress
|
||||||
|
#define CUSTOM_MSG_TYPE_TEMCAL 4 // PINDA temp calibration
|
||||||
|
#define CUSTOM_MSG_TYPE_TEMPRE 5 // Temp compensation preheat
|
||||||
|
|
||||||
|
extern unsigned int custom_message_type;
|
||||||
|
extern unsigned int custom_message_state;
|
||||||
|
|
||||||
|
extern uint8_t farm_mode;
|
||||||
|
extern int farm_no;
|
||||||
|
extern int farm_timer;
|
||||||
|
extern int farm_status;
|
||||||
|
|
||||||
|
#ifdef TMC2130
|
||||||
|
#define SILENT_MODE_NORMAL 0
|
||||||
|
#define SILENT_MODE_STEALTH 1
|
||||||
|
#define SILENT_MODE_OFF SILENT_MODE_NORMAL
|
||||||
|
#else
|
||||||
|
#define SILENT_MODE_POWER 0
|
||||||
|
#define SILENT_MODE_SILENT 1
|
||||||
|
#define SILENT_MODE_AUTO 2
|
||||||
|
#define SILENT_MODE_OFF SILENT_MODE_POWER
|
||||||
|
#endif
|
||||||
|
|
||||||
|
extern int8_t SilentModeMenu;
|
||||||
|
|
||||||
|
extern bool cancel_heatup;
|
||||||
|
extern bool isPrintPaused;
|
||||||
|
|
||||||
|
|
||||||
// To be used in lcd_commands_type.
|
void lcd_ignore_click(bool b=true);
|
||||||
#define LCD_COMMAND_IDLE 0
|
void lcd_commands();
|
||||||
#define LCD_COMMAND_LOAD_FILAMENT 1
|
|
||||||
#define LCD_COMMAND_STOP_PRINT 2
|
|
||||||
#define LCD_COMMAND_FARM_MODE_CONFIRM 4
|
|
||||||
#define LCD_COMMAND_LONG_PAUSE 5
|
|
||||||
#define LCD_COMMAND_LONG_PAUSE_RESUME 6
|
|
||||||
#define LCD_COMMAND_PID_EXTRUDER 7
|
|
||||||
#define LCD_COMMAND_V2_CAL 8
|
|
||||||
|
|
||||||
extern int lcd_commands_type;
|
|
||||||
|
|
||||||
extern uint8_t farm_mode;
|
|
||||||
extern int farm_no;
|
|
||||||
extern int farm_timer;
|
|
||||||
extern int farm_status;
|
|
||||||
#ifdef TMC2130
|
|
||||||
#define SILENT_MODE_NORMAL 0
|
|
||||||
#define SILENT_MODE_STEALTH 1
|
|
||||||
#define SILENT_MODE_OFF SILENT_MODE_NORMAL
|
|
||||||
#else
|
|
||||||
#define SILENT_MODE_POWER 0
|
|
||||||
#define SILENT_MODE_SILENT 1
|
|
||||||
#define SILENT_MODE_AUTO 2
|
|
||||||
#define SILENT_MODE_OFF SILENT_MODE_POWER
|
|
||||||
#endif
|
|
||||||
extern int8_t SilentModeMenu;
|
|
||||||
|
|
||||||
|
|
||||||
extern bool cancel_heatup;
|
|
||||||
extern bool isPrintPaused;
|
|
||||||
|
|
||||||
|
|
||||||
void lcd_ignore_click(bool b=true);
|
|
||||||
void lcd_commands();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void change_extr(int extr);
|
void change_extr(int extr);
|
||||||
|
|
@ -132,7 +140,6 @@ void lcd_farm_sdcard_menu_w();
|
||||||
|
|
||||||
void lcd_wait_for_heater();
|
void lcd_wait_for_heater();
|
||||||
void lcd_wait_for_cool_down();
|
void lcd_wait_for_cool_down();
|
||||||
void adjust_bed_reset();
|
|
||||||
void lcd_extr_cal_reset();
|
void lcd_extr_cal_reset();
|
||||||
|
|
||||||
void lcd_temp_cal_show_result(bool result);
|
void lcd_temp_cal_show_result(bool result);
|
||||||
|
|
@ -150,8 +157,8 @@ void lcd_temp_calibration_set();
|
||||||
void display_loading();
|
void display_loading();
|
||||||
|
|
||||||
#if !SDSORT_USES_RAM
|
#if !SDSORT_USES_RAM
|
||||||
void lcd_set_degree();
|
void lcd_set_degree();
|
||||||
void lcd_set_progress();
|
void lcd_set_progress();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void lcd_language();
|
void lcd_language();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue