Patch MBL feedback and event handling
This commit is contained in:
parent
ef2fbaec98
commit
3fbf67e5ce
@ -342,10 +342,10 @@ inline void lcd_save_previous_menu() {
|
||||
}
|
||||
}
|
||||
|
||||
static void lcd_goto_previous_menu() {
|
||||
static void lcd_goto_previous_menu(bool feedback=false) {
|
||||
if (menu_history_depth > 0) {
|
||||
--menu_history_depth;
|
||||
lcd_goto_menu(menu_history[menu_history_depth].menu_function, true
|
||||
lcd_goto_menu(menu_history[menu_history_depth].menu_function, feedback
|
||||
#if ENABLED(ULTIPANEL)
|
||||
, menu_history[menu_history_depth].encoder_position
|
||||
#endif
|
||||
@ -928,24 +928,23 @@ void lcd_cooldown() {
|
||||
mbl.set_z(ix, iy, current_position[Z_AXIS]);
|
||||
_lcd_level_bed_position++;
|
||||
if (_lcd_level_bed_position == (MESH_NUM_X_POINTS) * (MESH_NUM_Y_POINTS)) {
|
||||
current_position[Z_AXIS] = MESH_HOME_SEARCH_Z;
|
||||
mbl_wait_for_move = true;
|
||||
line_to_current(Z_AXIS);
|
||||
st_synchronize();
|
||||
mbl.active = 1;
|
||||
enqueue_and_echo_commands_P(PSTR("G28"));
|
||||
mbl_wait_for_move = false;
|
||||
lcd_return_to_status();
|
||||
#if ENABLED(NEWPANEL)
|
||||
lcd_quick_feedback();
|
||||
#endif
|
||||
LCD_ALERTMESSAGEPGM(MSG_LEVEL_BED_DONE);
|
||||
#if HAS_BUZZER
|
||||
buzz(200, 659);
|
||||
buzz(200, 698);
|
||||
#endif
|
||||
current_position[Z_AXIS] = MESH_HOME_SEARCH_Z;
|
||||
line_to_current(Z_AXIS);
|
||||
st_synchronize();
|
||||
mbl.active = 1;
|
||||
enqueue_and_echo_commands_P(PSTR("G28"));
|
||||
}
|
||||
else {
|
||||
#if ENABLED(NEWPANEL)
|
||||
lcd_quick_feedback();
|
||||
#endif
|
||||
mbl_wait_for_move = true;
|
||||
current_position[Z_AXIS] = MESH_HOME_SEARCH_Z;
|
||||
line_to_current(Z_AXIS);
|
||||
ix = _lcd_level_bed_position % (MESH_NUM_X_POINTS);
|
||||
@ -954,6 +953,9 @@ void lcd_cooldown() {
|
||||
current_position[X_AXIS] = mbl.get_x(ix);
|
||||
current_position[Y_AXIS] = mbl.get_y(iy);
|
||||
line_to_current(manual_feedrate[X_AXIS] <= manual_feedrate[Y_AXIS] ? X_AXIS : Y_AXIS);
|
||||
st_synchronize();
|
||||
mbl_wait_for_move = false;
|
||||
encoderPosition = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -972,7 +974,7 @@ void lcd_cooldown() {
|
||||
current_position[Y_AXIS] = MESH_MIN_Y;
|
||||
line_to_current(manual_feedrate[X_AXIS] <= manual_feedrate[Y_AXIS] ? X_AXIS : Y_AXIS);
|
||||
_lcd_level_bed_position = 0;
|
||||
lcd_goto_menu(_lcd_level_bed_procedure, true);
|
||||
lcd_goto_menu(_lcd_level_bed_procedure);
|
||||
}
|
||||
}
|
||||
|
||||
@ -994,7 +996,7 @@ void lcd_cooldown() {
|
||||
axis_known_position[X_AXIS] = axis_known_position[Y_AXIS] = axis_known_position[Z_AXIS] = false;
|
||||
mbl.reset();
|
||||
enqueue_and_echo_commands_P(PSTR("G28"));
|
||||
lcd_goto_menu(_lcd_level_bed_homing, true);
|
||||
lcd_goto_menu(_lcd_level_bed_homing);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1759,7 +1761,7 @@ static void lcd_control_volumetric_menu() {
|
||||
lcd_implementation_drawedit(editLabel, _strFunc(((_type)((int32_t)encoderPosition + minEditValue)) / scale)); \
|
||||
if (isClicked) { \
|
||||
*((_type*)editValue) = ((_type)((int32_t)encoderPosition + minEditValue)) / scale; \
|
||||
lcd_goto_previous_menu(); \
|
||||
lcd_goto_previous_menu(true); \
|
||||
} \
|
||||
return isClicked; \
|
||||
} \
|
||||
|
Loading…
Reference in New Issue
Block a user