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 status_number;
|
||||
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 unsigned long PingTime;
|
||||
extern unsigned long NcTime;
|
||||
@ -364,7 +361,7 @@ extern uint8_t print_percent_done_silent;
|
||||
extern uint32_t print_time_remaining_silent;
|
||||
#define PRINT_TIME_REMAINING_INIT 0xffffffff
|
||||
#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();
|
||||
|
||||
@ -419,7 +416,7 @@ extern void print_mesh_bed_leveling_table();
|
||||
|
||||
//estimated time to end of the print
|
||||
extern uint16_t print_time_remaining();
|
||||
extern uint8_t print_percent_done();
|
||||
extern uint8_t calc_percent_done();
|
||||
|
||||
#ifdef HOST_KEEPALIVE_FEATURE
|
||||
|
||||
|
@ -353,12 +353,13 @@ unsigned int status_number = 0;
|
||||
unsigned long total_filament_used;
|
||||
unsigned int heating_status;
|
||||
unsigned int heating_status_counter;
|
||||
bool custom_message;
|
||||
bool loading_flag = false;
|
||||
unsigned int custom_message_type;
|
||||
unsigned int custom_message_state;
|
||||
|
||||
|
||||
|
||||
char snmm_filaments_used = 0;
|
||||
|
||||
|
||||
bool fan_state[2];
|
||||
int fan_edge_counter[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
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
@ -3149,8 +3158,7 @@ void gcode_M600(bool automatic, float x_position, float y_position, float z_shif
|
||||
enquecommand(cmd);
|
||||
|
||||
lcd_setstatuspgm(_T(WELCOME_MSG));
|
||||
custom_message = false;
|
||||
custom_message_type = 0;
|
||||
custom_message_type = CUSTOM_MSG_TYPE_STATUS;
|
||||
|
||||
}
|
||||
|
||||
@ -3164,8 +3172,7 @@ void gcode_M701()
|
||||
else
|
||||
{
|
||||
enable_z();
|
||||
custom_message = true;
|
||||
custom_message_type = 2;
|
||||
custom_message_type = CUSTOM_MSG_TYPE_F_LOAD;
|
||||
|
||||
#ifdef FILAMENT_SENSOR
|
||||
fsensor_oq_meassure_start(40);
|
||||
@ -3207,8 +3214,7 @@ void gcode_M701()
|
||||
lcd_setstatuspgm(_T(WELCOME_MSG));
|
||||
disable_z();
|
||||
loading_flag = false;
|
||||
custom_message = false;
|
||||
custom_message_type = 0;
|
||||
custom_message_type = CUSTOM_MSG_TYPE_STATUS;
|
||||
|
||||
#ifdef FILAMENT_SENSOR
|
||||
fsensor_oq_meassure_stop();
|
||||
@ -4043,10 +4049,9 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
|
||||
// setTargetHotend(200, 0);
|
||||
setTargetBed(70 + (start_temp - 30));
|
||||
|
||||
custom_message = true;
|
||||
custom_message_type = 4;
|
||||
custom_message_type = CUSTOM_MSG_TYPE_TEMCAL;
|
||||
custom_message_state = 1;
|
||||
custom_message = _T(MSG_TEMP_CALIBRATION);
|
||||
lcd_setstatuspgm(_T(MSG_TEMP_CALIBRATION));
|
||||
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);
|
||||
current_position[X_AXIS] = PINDA_PREHEAT_X;
|
||||
@ -4146,10 +4151,9 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
|
||||
break;
|
||||
}
|
||||
puts_P(_N("PINDA probe calibration start"));
|
||||
custom_message = true;
|
||||
custom_message_type = 4;
|
||||
custom_message_type = CUSTOM_MSG_TYPE_TEMCAL;
|
||||
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[Y_AXIS] = PINDA_PREHEAT_Y;
|
||||
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 = false;
|
||||
custom_message_type = CUSTOM_MSG_TYPE_STATUS;
|
||||
|
||||
eeprom_update_byte((uint8_t*)EEPROM_CALIBRATION_STATUS_PINDA, 1);
|
||||
puts_P(_N("Temperature calibration done."));
|
||||
@ -4350,11 +4353,9 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
|
||||
break;
|
||||
}
|
||||
// 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_state_old = custom_message_state;
|
||||
custom_message = true;
|
||||
custom_message_type = 1;
|
||||
custom_message_type = CUSTOM_MSG_TYPE_MESHBL;
|
||||
custom_message_state = (MESH_MEAS_NUM_X_POINTS * MESH_MEAS_NUM_Y_POINTS) + 10;
|
||||
lcd_update(1);
|
||||
|
||||
@ -4586,7 +4587,6 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
|
||||
KEEPALIVE_STATE(NOT_BUSY);
|
||||
// Restore custom message state
|
||||
lcd_setstatuspgm(_T(WELCOME_MSG));
|
||||
custom_message = custom_message_old;
|
||||
custom_message_type = custom_message_type_old;
|
||||
custom_message_state = custom_message_state_old;
|
||||
mesh_bed_leveling_flag = false;
|
||||
@ -6803,8 +6803,9 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
|
||||
|
||||
if (mmu_enabled)
|
||||
{
|
||||
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(true, true);
|
||||
|
||||
@ -7427,6 +7428,7 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE))
|
||||
handle_status_leds();
|
||||
#endif
|
||||
check_axes_activity();
|
||||
// mmu_loop();
|
||||
}
|
||||
|
||||
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")));
|
||||
return;
|
||||
}
|
||||
bool custom_message_old = custom_message;
|
||||
unsigned int custom_message_type_old = custom_message_type;
|
||||
unsigned int custom_message_state_old = custom_message_state;
|
||||
custom_message = true;
|
||||
custom_message_type = 1;
|
||||
custom_message_type = CUSTOM_MSG_TYPE_MESHBL;
|
||||
custom_message_state = (x_points_num * y_points_num) + 10;
|
||||
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() {
|
||||
|
||||
custom_message = true;
|
||||
custom_message_type = 5;
|
||||
custom_message_type = CUSTOM_MSG_TYPE_TEMPRE;
|
||||
custom_message_state = PINDA_HEAT_T + 1;
|
||||
lcd_update(2);
|
||||
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
|
||||
else lcd_update(1);
|
||||
}
|
||||
custom_message_type = 0;
|
||||
custom_message_type = CUSTOM_MSG_TYPE_STATUS;
|
||||
custom_message_state = 0;
|
||||
custom_message = false;
|
||||
}
|
||||
|
||||
void temp_compensation_apply() {
|
||||
@ -8821,7 +8819,7 @@ uint16_t print_time_remaining() {
|
||||
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
|
||||
uint8_t percent_done = 0;
|
||||
|
@ -538,7 +538,10 @@ int lcd_printf_P(const char* format, ...)
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
void lcd_space(uint8_t n)
|
||||
{
|
||||
while (n--) lcd_putc(' ');
|
||||
}
|
||||
|
||||
|
||||
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_at_P(uint8_t c, uint8_t r, const char* str);
|
||||
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_printFloat(double number, uint8_t digits);
|
||||
|
@ -28,6 +28,9 @@ uint8_t menu_top = 0;
|
||||
|
||||
uint8_t menu_clicked = 0;
|
||||
|
||||
uint8_t menu_entering = 0;
|
||||
uint8_t menu_leaving = 0;
|
||||
|
||||
menu_func_t menu_menu = 0;
|
||||
|
||||
|
||||
@ -76,12 +79,22 @@ void menu_end(void)
|
||||
|
||||
void menu_back(void)
|
||||
{
|
||||
if (menu_depth > 0) {
|
||||
if (menu_depth > 0)
|
||||
{
|
||||
menu_depth--;
|
||||
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)
|
||||
{
|
||||
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)
|
||||
{
|
||||
lcd_beeper_quick_feedback();
|
||||
@ -295,7 +318,7 @@ void _menu_edit_int3(void)
|
||||
if (LCD_CLICKED)
|
||||
{
|
||||
*((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))
|
||||
{
|
||||
menu_submenu(_menu_edit_int3);
|
||||
menu_submenu_no_reset(_menu_edit_int3);
|
||||
_md->editLabel = str;
|
||||
_md->editValue = pval;
|
||||
_md->minEditValue = min_val;
|
||||
|
@ -4,8 +4,9 @@
|
||||
|
||||
#include <inttypes.h>
|
||||
|
||||
#define MENU_DEPTH_MAX 4
|
||||
#define MENU_DATA_SIZE 32
|
||||
#define MENU_DEPTH_MAX 4
|
||||
#define MENU_DATA_SIZE 32
|
||||
#define MENU_DATA_EDIT_SIZE 12
|
||||
|
||||
//Function pointer to menu functions.
|
||||
typedef void (*menu_func_t)(void);
|
||||
@ -25,12 +26,15 @@ extern uint8_t menu_depth;
|
||||
extern uint8_t menu_line;
|
||||
extern uint8_t menu_item;
|
||||
extern uint8_t menu_row;
|
||||
;
|
||||
|
||||
//scroll offset in the current menu
|
||||
extern uint8_t menu_top;
|
||||
|
||||
extern uint8_t menu_clicked;
|
||||
|
||||
extern uint8_t menu_entering;
|
||||
extern uint8_t menu_leaving;
|
||||
|
||||
//function pointer to the currently active 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_no_reset(void);
|
||||
|
||||
extern void menu_back_if_clicked(void);
|
||||
|
||||
extern void menu_back_if_clicked_fb(void);
|
||||
|
||||
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 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_ready = false;
|
||||
|
||||
int8_t mmu_state = 0;
|
||||
|
||||
uint8_t mmu_cmd = 0;
|
||||
|
||||
uint8_t mmu_extruder = 0;
|
||||
|
||||
uint8_t tmp_extruder = 0;
|
||||
@ -38,6 +42,9 @@ int16_t mmu_version = -1;
|
||||
|
||||
int16_t mmu_buildnr = -1;
|
||||
|
||||
uint32_t mmu_last_request = 0;
|
||||
uint32_t mmu_last_response = 0;
|
||||
|
||||
|
||||
//clear rx buffer
|
||||
void mmu_clr_rx_buf(void)
|
||||
@ -49,7 +56,9 @@ void mmu_clr_rx_buf(void)
|
||||
int mmu_puts_P(const char* str)
|
||||
{
|
||||
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
|
||||
@ -60,19 +69,24 @@ int mmu_printf_P(const char* format, ...)
|
||||
mmu_clr_rx_buf(); //clear rx buffer
|
||||
int r = vfprintf_P(uart2io, format, args); //send command
|
||||
va_end(args);
|
||||
mmu_last_request = millis();
|
||||
return r;
|
||||
}
|
||||
|
||||
//check 'ok' response
|
||||
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
|
||||
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
|
||||
@ -138,6 +152,50 @@ void mmu_loop(void)
|
||||
mmu_state = 1;
|
||||
}
|
||||
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;
|
||||
}
|
||||
|
||||
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
|
||||
//function returns true if "ok" was received
|
||||
//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);
|
||||
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];
|
||||
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 (!mmu_print_saved) { //first occurence, we are saving current position, park print head in certain position and disable nozzle heater
|
||||
if (lcd_update_enabled) {
|
||||
@ -306,8 +381,10 @@ void mmu_M600_load_filament(bool automatic)
|
||||
lcd_print(" ");
|
||||
lcd_print(tmp_extruder + 1);
|
||||
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);
|
||||
mmu_extruder = tmp_extruder; //filament change is finished
|
||||
|
@ -17,6 +17,13 @@ extern int16_t mmu_version;
|
||||
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_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 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);
|
||||
|
||||
|
@ -230,15 +230,15 @@ void checkHitEndstops()
|
||||
SERIAL_ECHORPGM(_T(MSG_ENDSTOPS_HIT));
|
||||
if(endstop_x_hit) {
|
||||
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) {
|
||||
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) {
|
||||
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("");
|
||||
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_lcdupdate_func(void);
|
||||
|
||||
// Call with a false parameter to suppress the LCD update from various places like the planner or the temp control.
|
||||
void ultralcd_init();
|
||||
void lcd_setstatus(const char* message);
|
||||
void lcd_setstatuspgm(const char* message);
|
||||
void lcd_setalertstatuspgm(const char* message);
|
||||
void lcd_reset_alert_level();
|
||||
uint8_t get_message_level();
|
||||
void lcd_adjust_z();
|
||||
void lcd_pick_babystep();
|
||||
void lcd_alright();
|
||||
void EEPROM_save_B(int pos, int* value);
|
||||
void EEPROM_read_B(int pos, int* value);
|
||||
void lcd_wait_interact();
|
||||
void lcd_change_filament();
|
||||
void lcd_loading_filament();
|
||||
void lcd_change_success();
|
||||
void lcd_loading_color();
|
||||
void lcd_sdcard_stop();
|
||||
void lcd_sdcard_pause();
|
||||
void lcd_print_stop();
|
||||
void prusa_statistics(int _message, uint8_t _col_nr = 0);
|
||||
void lcd_confirm_print();
|
||||
unsigned char lcd_choose_color();
|
||||
// Call with a false parameter to suppress the LCD update from various places like the planner or the temp control.
|
||||
void ultralcd_init();
|
||||
void lcd_setstatus(const char* message);
|
||||
void lcd_setstatuspgm(const char* message);
|
||||
void lcd_setalertstatuspgm(const char* message);
|
||||
void lcd_reset_alert_level();
|
||||
uint8_t get_message_level();
|
||||
void lcd_adjust_z();
|
||||
void lcd_pick_babystep();
|
||||
void lcd_alright();
|
||||
void EEPROM_save_B(int pos, int* value);
|
||||
void EEPROM_read_B(int pos, int* value);
|
||||
void lcd_wait_interact();
|
||||
void lcd_change_filament();
|
||||
void lcd_loading_filament();
|
||||
void lcd_change_success();
|
||||
void lcd_loading_color();
|
||||
void lcd_sdcard_stop();
|
||||
void lcd_sdcard_pause();
|
||||
void lcd_print_stop();
|
||||
void prusa_statistics(int _message, uint8_t _col_nr = 0);
|
||||
void lcd_confirm_print();
|
||||
unsigned char lcd_choose_color();
|
||||
//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);
|
||||
|
||||
extern void lcd_wait_for_click();
|
||||
extern void lcd_show_fullscreen_message_and_wait_P(const char *msg);
|
||||
// 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_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
|
||||
// the user confirm that it has been done.
|
||||
#ifndef TMC2130
|
||||
extern bool lcd_calibrate_z_end_stop_manual(bool only_z);
|
||||
#endif
|
||||
extern void lcd_wait_for_click();
|
||||
extern void lcd_show_fullscreen_message_and_wait_P(const char *msg);
|
||||
// 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_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
|
||||
// the user confirm that it has been done.
|
||||
|
||||
// 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);
|
||||
#ifndef TMC2130
|
||||
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_ALERTMESSAGEPGM(x) lcd_setalertstatuspgm(PSTR(x))
|
||||
#define LCD_MESSAGERPGM(x) lcd_setstatuspgm((x))
|
||||
#define LCD_ALERTMESSAGERPGM(x) lcd_setalertstatuspgm((x))
|
||||
#define LCD_MESSAGEPGM(x) lcd_setstatuspgm(PSTR(x))
|
||||
#define LCD_ALERTMESSAGEPGM(x) lcd_setalertstatuspgm(PSTR(x))
|
||||
#define LCD_MESSAGERPGM(x) lcd_setstatuspgm((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.
|
||||
#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;
|
||||
|
||||
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 lcd_ignore_click(bool b=true);
|
||||
void lcd_commands();
|
||||
|
||||
|
||||
void change_extr(int extr);
|
||||
@ -132,7 +140,6 @@ void lcd_farm_sdcard_menu_w();
|
||||
|
||||
void lcd_wait_for_heater();
|
||||
void lcd_wait_for_cool_down();
|
||||
void adjust_bed_reset();
|
||||
void lcd_extr_cal_reset();
|
||||
|
||||
void lcd_temp_cal_show_result(bool result);
|
||||
@ -150,8 +157,8 @@ void lcd_temp_calibration_set();
|
||||
void display_loading();
|
||||
|
||||
#if !SDSORT_USES_RAM
|
||||
void lcd_set_degree();
|
||||
void lcd_set_progress();
|
||||
void lcd_set_degree();
|
||||
void lcd_set_progress();
|
||||
#endif
|
||||
|
||||
void lcd_language();
|
||||
|
Loading…
Reference in New Issue
Block a user