|
@ -59,7 +59,7 @@ char lcd_status_message[3 * (LCD_WIDTH) + 1] = WELCOME_MSG; // worst case is kan |
|
|
#endif |
|
|
#endif |
|
|
|
|
|
|
|
|
// The main status screen
|
|
|
// The main status screen
|
|
|
static void lcd_status_screen(); |
|
|
void lcd_status_screen(); |
|
|
|
|
|
|
|
|
millis_t next_lcd_update_ms; |
|
|
millis_t next_lcd_update_ms; |
|
|
|
|
|
|
|
@ -114,53 +114,53 @@ uint8_t lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW; // Set when the LCD needs to |
|
|
extern bool case_light_on; |
|
|
extern bool case_light_on; |
|
|
#endif |
|
|
#endif |
|
|
const float manual_feedrate_mm_m[] = MANUAL_FEEDRATE; |
|
|
const float manual_feedrate_mm_m[] = MANUAL_FEEDRATE; |
|
|
static void lcd_main_menu(); |
|
|
void lcd_main_menu(); |
|
|
static void lcd_tune_menu(); |
|
|
void lcd_tune_menu(); |
|
|
static void lcd_prepare_menu(); |
|
|
void lcd_prepare_menu(); |
|
|
static void lcd_move_menu(); |
|
|
void lcd_move_menu(); |
|
|
static void lcd_control_menu(); |
|
|
void lcd_control_menu(); |
|
|
static void lcd_control_temperature_menu(); |
|
|
void lcd_control_temperature_menu(); |
|
|
static void lcd_control_temperature_preheat_pla_settings_menu(); |
|
|
void lcd_control_temperature_preheat_pla_settings_menu(); |
|
|
static void lcd_control_temperature_preheat_abs_settings_menu(); |
|
|
void lcd_control_temperature_preheat_abs_settings_menu(); |
|
|
static void lcd_control_motion_menu(); |
|
|
void lcd_control_motion_menu(); |
|
|
static void lcd_control_volumetric_menu(); |
|
|
void lcd_control_volumetric_menu(); |
|
|
|
|
|
|
|
|
#if ENABLED(DAC_STEPPER_CURRENT) |
|
|
#if ENABLED(DAC_STEPPER_CURRENT) |
|
|
static void dac_driver_commit(); |
|
|
void dac_driver_commit(); |
|
|
static void dac_driver_getValues(); |
|
|
void dac_driver_getValues(); |
|
|
static void lcd_dac_menu(); |
|
|
void lcd_dac_menu(); |
|
|
static void lcd_dac_write_eeprom(); |
|
|
void lcd_dac_write_eeprom(); |
|
|
#endif |
|
|
#endif |
|
|
|
|
|
|
|
|
#if ENABLED(LCD_INFO_MENU) |
|
|
#if ENABLED(LCD_INFO_MENU) |
|
|
#if ENABLED(PRINTCOUNTER) |
|
|
#if ENABLED(PRINTCOUNTER) |
|
|
static void lcd_info_stats_menu(); |
|
|
void lcd_info_stats_menu(); |
|
|
#endif |
|
|
#endif |
|
|
static void lcd_info_thermistors_menu(); |
|
|
void lcd_info_thermistors_menu(); |
|
|
static void lcd_info_board_menu(); |
|
|
void lcd_info_board_menu(); |
|
|
static void lcd_info_menu(); |
|
|
void lcd_info_menu(); |
|
|
#endif // LCD_INFO_MENU
|
|
|
#endif // LCD_INFO_MENU
|
|
|
|
|
|
|
|
|
#if ENABLED(FILAMENT_CHANGE_FEATURE) |
|
|
#if ENABLED(FILAMENT_CHANGE_FEATURE) |
|
|
static void lcd_filament_change_option_menu(); |
|
|
void lcd_filament_change_option_menu(); |
|
|
static void lcd_filament_change_init_message(); |
|
|
void lcd_filament_change_init_message(); |
|
|
static void lcd_filament_change_unload_message(); |
|
|
void lcd_filament_change_unload_message(); |
|
|
static void lcd_filament_change_insert_message(); |
|
|
void lcd_filament_change_insert_message(); |
|
|
static void lcd_filament_change_load_message(); |
|
|
void lcd_filament_change_load_message(); |
|
|
static void lcd_filament_change_extrude_message(); |
|
|
void lcd_filament_change_extrude_message(); |
|
|
static void lcd_filament_change_resume_message(); |
|
|
void lcd_filament_change_resume_message(); |
|
|
#endif |
|
|
#endif |
|
|
|
|
|
|
|
|
#if HAS_LCD_CONTRAST |
|
|
#if HAS_LCD_CONTRAST |
|
|
static void lcd_set_contrast(); |
|
|
void lcd_set_contrast(); |
|
|
#endif |
|
|
#endif |
|
|
|
|
|
|
|
|
#if ENABLED(FWRETRACT) |
|
|
#if ENABLED(FWRETRACT) |
|
|
static void lcd_control_retract_menu(); |
|
|
void lcd_control_retract_menu(); |
|
|
#endif |
|
|
#endif |
|
|
|
|
|
|
|
|
#if ENABLED(DELTA_CALIBRATION_MENU) |
|
|
#if ENABLED(DELTA_CALIBRATION_MENU) |
|
|
static void lcd_delta_calibrate_menu(); |
|
|
void lcd_delta_calibrate_menu(); |
|
|
#endif |
|
|
#endif |
|
|
|
|
|
|
|
|
#if ENABLED(MANUAL_BED_LEVELING) |
|
|
#if ENABLED(MANUAL_BED_LEVELING) |
|
@ -172,35 +172,35 @@ uint8_t lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW; // Set when the LCD needs to |
|
|
|
|
|
|
|
|
// Different types of actions that can be used in menu items.
|
|
|
// Different types of actions that can be used in menu items.
|
|
|
#define menu_action_back(dummy) _menu_action_back() |
|
|
#define menu_action_back(dummy) _menu_action_back() |
|
|
static void _menu_action_back(); |
|
|
void _menu_action_back(); |
|
|
static void menu_action_submenu(screenFunc_t data); |
|
|
void menu_action_submenu(screenFunc_t data); |
|
|
static void menu_action_gcode(const char* pgcode); |
|
|
void menu_action_gcode(const char* pgcode); |
|
|
static void menu_action_function(screenFunc_t data); |
|
|
void menu_action_function(screenFunc_t data); |
|
|
static void menu_action_setting_edit_bool(const char* pstr, bool* ptr); |
|
|
void menu_action_setting_edit_bool(const char* pstr, bool* ptr); |
|
|
static void menu_action_setting_edit_int3(const char* pstr, int* ptr, int minValue, int maxValue); |
|
|
void menu_action_setting_edit_int3(const char* pstr, int* ptr, int minValue, int maxValue); |
|
|
static void menu_action_setting_edit_float3(const char* pstr, float* ptr, float minValue, float maxValue); |
|
|
void menu_action_setting_edit_float3(const char* pstr, float* ptr, float minValue, float maxValue); |
|
|
static void menu_action_setting_edit_float32(const char* pstr, float* ptr, float minValue, float maxValue); |
|
|
void menu_action_setting_edit_float32(const char* pstr, float* ptr, float minValue, float maxValue); |
|
|
static void menu_action_setting_edit_float43(const char* pstr, float* ptr, float minValue, float maxValue); |
|
|
void menu_action_setting_edit_float43(const char* pstr, float* ptr, float minValue, float maxValue); |
|
|
static void menu_action_setting_edit_float5(const char* pstr, float* ptr, float minValue, float maxValue); |
|
|
void menu_action_setting_edit_float5(const char* pstr, float* ptr, float minValue, float maxValue); |
|
|
static void menu_action_setting_edit_float51(const char* pstr, float* ptr, float minValue, float maxValue); |
|
|
void menu_action_setting_edit_float51(const char* pstr, float* ptr, float minValue, float maxValue); |
|
|
static void menu_action_setting_edit_float52(const char* pstr, float* ptr, float minValue, float maxValue); |
|
|
void menu_action_setting_edit_float52(const char* pstr, float* ptr, float minValue, float maxValue); |
|
|
static void menu_action_setting_edit_float62(const char* pstr, float* ptr, float minValue, float maxValue); |
|
|
void menu_action_setting_edit_float62(const char* pstr, float* ptr, float minValue, float maxValue); |
|
|
static void menu_action_setting_edit_long5(const char* pstr, unsigned long* ptr, unsigned long minValue, unsigned long maxValue); |
|
|
void menu_action_setting_edit_long5(const char* pstr, unsigned long* ptr, unsigned long minValue, unsigned long maxValue); |
|
|
static void menu_action_setting_edit_callback_bool(const char* pstr, bool* ptr, screenFunc_t callbackFunc); |
|
|
void menu_action_setting_edit_callback_bool(const char* pstr, bool* ptr, screenFunc_t callbackFunc); |
|
|
static void menu_action_setting_edit_callback_int3(const char* pstr, int* ptr, int minValue, int maxValue, screenFunc_t callbackFunc); |
|
|
void menu_action_setting_edit_callback_int3(const char* pstr, int* ptr, int minValue, int maxValue, screenFunc_t callbackFunc); |
|
|
static void menu_action_setting_edit_callback_float3(const char* pstr, float* ptr, float minValue, float maxValue, screenFunc_t callbackFunc); |
|
|
void menu_action_setting_edit_callback_float3(const char* pstr, float* ptr, float minValue, float maxValue, screenFunc_t callbackFunc); |
|
|
static void menu_action_setting_edit_callback_float32(const char* pstr, float* ptr, float minValue, float maxValue, screenFunc_t callbackFunc); |
|
|
void menu_action_setting_edit_callback_float32(const char* pstr, float* ptr, float minValue, float maxValue, screenFunc_t callbackFunc); |
|
|
static void menu_action_setting_edit_callback_float43(const char* pstr, float* ptr, float minValue, float maxValue, screenFunc_t callbackFunc); |
|
|
void menu_action_setting_edit_callback_float43(const char* pstr, float* ptr, float minValue, float maxValue, screenFunc_t callbackFunc); |
|
|
static void menu_action_setting_edit_callback_float5(const char* pstr, float* ptr, float minValue, float maxValue, screenFunc_t callbackFunc); |
|
|
void menu_action_setting_edit_callback_float5(const char* pstr, float* ptr, float minValue, float maxValue, screenFunc_t callbackFunc); |
|
|
static void menu_action_setting_edit_callback_float51(const char* pstr, float* ptr, float minValue, float maxValue, screenFunc_t callbackFunc); |
|
|
void menu_action_setting_edit_callback_float51(const char* pstr, float* ptr, float minValue, float maxValue, screenFunc_t callbackFunc); |
|
|
static void menu_action_setting_edit_callback_float52(const char* pstr, float* ptr, float minValue, float maxValue, screenFunc_t callbackFunc); |
|
|
void menu_action_setting_edit_callback_float52(const char* pstr, float* ptr, float minValue, float maxValue, screenFunc_t callbackFunc); |
|
|
static void menu_action_setting_edit_callback_float62(const char* pstr, float* ptr, float minValue, float maxValue, screenFunc_t callbackFunc); |
|
|
void menu_action_setting_edit_callback_float62(const char* pstr, float* ptr, float minValue, float maxValue, screenFunc_t callbackFunc); |
|
|
static void menu_action_setting_edit_callback_long5(const char* pstr, unsigned long* ptr, unsigned long minValue, unsigned long maxValue, screenFunc_t callbackFunc); |
|
|
void menu_action_setting_edit_callback_long5(const char* pstr, unsigned long* ptr, unsigned long minValue, unsigned long maxValue, screenFunc_t callbackFunc); |
|
|
|
|
|
|
|
|
#if ENABLED(SDSUPPORT) |
|
|
#if ENABLED(SDSUPPORT) |
|
|
static void lcd_sdcard_menu(); |
|
|
void lcd_sdcard_menu(); |
|
|
static void menu_action_sdfile(const char* filename, char* longFilename); |
|
|
void menu_action_sdfile(const char* filename, char* longFilename); |
|
|
static void menu_action_sddirectory(const char* filename, char* longFilename); |
|
|
void menu_action_sddirectory(const char* filename, char* longFilename); |
|
|
#endif |
|
|
#endif |
|
|
|
|
|
|
|
|
/* Helper macros for menus */ |
|
|
/* Helper macros for menus */ |
|
@ -394,7 +394,7 @@ uint8_t lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW; // Set when the LCD needs to |
|
|
/**
|
|
|
/**
|
|
|
* General function to go directly to a screen |
|
|
* General function to go directly to a screen |
|
|
*/ |
|
|
*/ |
|
|
static void lcd_goto_screen(screenFunc_t screen, const uint32_t encoder = 0) { |
|
|
void lcd_goto_screen(screenFunc_t screen, const uint32_t encoder = 0) { |
|
|
if (currentScreen != screen) { |
|
|
if (currentScreen != screen) { |
|
|
currentScreen = screen; |
|
|
currentScreen = screen; |
|
|
encoderPosition = encoder; |
|
|
encoderPosition = encoder; |
|
@ -411,7 +411,7 @@ uint8_t lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW; // Set when the LCD needs to |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
static void lcd_return_to_status() { lcd_goto_screen(lcd_status_screen); } |
|
|
void lcd_return_to_status() { lcd_goto_screen(lcd_status_screen); } |
|
|
|
|
|
|
|
|
inline void lcd_save_previous_menu() { |
|
|
inline void lcd_save_previous_menu() { |
|
|
if (screen_history_depth < COUNT(screen_history)) { |
|
|
if (screen_history_depth < COUNT(screen_history)) { |
|
@ -421,7 +421,7 @@ uint8_t lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW; // Set when the LCD needs to |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
static void lcd_goto_previous_menu() { |
|
|
void lcd_goto_previous_menu() { |
|
|
if (screen_history_depth > 0) { |
|
|
if (screen_history_depth > 0) { |
|
|
--screen_history_depth; |
|
|
--screen_history_depth; |
|
|
lcd_goto_screen( |
|
|
lcd_goto_screen( |
|
@ -442,7 +442,7 @@ uint8_t lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW; // Set when the LCD needs to |
|
|
* This is very display-dependent, so the lcd implementation draws this. |
|
|
* This is very display-dependent, so the lcd implementation draws this. |
|
|
*/ |
|
|
*/ |
|
|
|
|
|
|
|
|
static void lcd_status_screen() { |
|
|
void lcd_status_screen() { |
|
|
|
|
|
|
|
|
#if ENABLED(ULTIPANEL) |
|
|
#if ENABLED(ULTIPANEL) |
|
|
ENCODER_DIRECTION_NORMAL(); |
|
|
ENCODER_DIRECTION_NORMAL(); |
|
@ -552,17 +552,17 @@ void kill_screen(const char* lcd_msg) { |
|
|
|
|
|
|
|
|
#if ENABLED(SDSUPPORT) |
|
|
#if ENABLED(SDSUPPORT) |
|
|
|
|
|
|
|
|
static void lcd_sdcard_pause() { |
|
|
void lcd_sdcard_pause() { |
|
|
card.pauseSDPrint(); |
|
|
card.pauseSDPrint(); |
|
|
print_job_timer.pause(); |
|
|
print_job_timer.pause(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
static void lcd_sdcard_resume() { |
|
|
void lcd_sdcard_resume() { |
|
|
card.startFileprint(); |
|
|
card.startFileprint(); |
|
|
print_job_timer.start(); |
|
|
print_job_timer.start(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
static void lcd_sdcard_stop() { |
|
|
void lcd_sdcard_stop() { |
|
|
card.stopSDPrint(); |
|
|
card.stopSDPrint(); |
|
|
clear_command_queue(); |
|
|
clear_command_queue(); |
|
|
quickstop_stepper(); |
|
|
quickstop_stepper(); |
|
@ -582,7 +582,7 @@ void kill_screen(const char* lcd_msg) { |
|
|
* |
|
|
* |
|
|
*/ |
|
|
*/ |
|
|
|
|
|
|
|
|
static void lcd_main_menu() { |
|
|
void lcd_main_menu() { |
|
|
START_MENU(); |
|
|
START_MENU(); |
|
|
MENU_BACK(MSG_WATCH); |
|
|
MENU_BACK(MSG_WATCH); |
|
|
|
|
|
|
|
@ -662,7 +662,7 @@ void kill_screen(const char* lcd_msg) { |
|
|
|
|
|
|
|
|
long babysteps_done = 0; |
|
|
long babysteps_done = 0; |
|
|
|
|
|
|
|
|
static void _lcd_babystep(const AxisEnum axis, const char* msg) { |
|
|
void _lcd_babystep(const AxisEnum axis, const char* msg) { |
|
|
if (lcd_clicked) { defer_return_to_status = false; return lcd_goto_previous_menu(); } |
|
|
if (lcd_clicked) { defer_return_to_status = false; return lcd_goto_previous_menu(); } |
|
|
ENCODER_DIRECTION_NORMAL(); |
|
|
ENCODER_DIRECTION_NORMAL(); |
|
|
if (encoderPosition) { |
|
|
if (encoderPosition) { |
|
@ -679,13 +679,13 @@ void kill_screen(const char* lcd_msg) { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
#if ENABLED(BABYSTEP_XY) |
|
|
#if ENABLED(BABYSTEP_XY) |
|
|
static void _lcd_babystep_x() { _lcd_babystep(X_AXIS, PSTR(MSG_BABYSTEPPING_X)); } |
|
|
void _lcd_babystep_x() { _lcd_babystep(X_AXIS, PSTR(MSG_BABYSTEPPING_X)); } |
|
|
static void _lcd_babystep_y() { _lcd_babystep(Y_AXIS, PSTR(MSG_BABYSTEPPING_Y)); } |
|
|
void _lcd_babystep_y() { _lcd_babystep(Y_AXIS, PSTR(MSG_BABYSTEPPING_Y)); } |
|
|
static void lcd_babystep_x() { lcd_goto_screen(_lcd_babystep_x); babysteps_done = 0; defer_return_to_status = true; } |
|
|
void lcd_babystep_x() { lcd_goto_screen(_lcd_babystep_x); babysteps_done = 0; defer_return_to_status = true; } |
|
|
static void lcd_babystep_y() { lcd_goto_screen(_lcd_babystep_y); babysteps_done = 0; defer_return_to_status = true; } |
|
|
void lcd_babystep_y() { lcd_goto_screen(_lcd_babystep_y); babysteps_done = 0; defer_return_to_status = true; } |
|
|
#endif |
|
|
#endif |
|
|
static void _lcd_babystep_z() { _lcd_babystep(Z_AXIS, PSTR(MSG_BABYSTEPPING_Z)); } |
|
|
void _lcd_babystep_z() { _lcd_babystep(Z_AXIS, PSTR(MSG_BABYSTEPPING_Z)); } |
|
|
static void lcd_babystep_z() { lcd_goto_screen(_lcd_babystep_z); babysteps_done = 0; defer_return_to_status = true; } |
|
|
void lcd_babystep_z() { lcd_goto_screen(_lcd_babystep_z); babysteps_done = 0; defer_return_to_status = true; } |
|
|
|
|
|
|
|
|
#endif //BABYSTEPPING
|
|
|
#endif //BABYSTEPPING
|
|
|
|
|
|
|
|
@ -731,7 +731,7 @@ void kill_screen(const char* lcd_msg) { |
|
|
#endif |
|
|
#endif |
|
|
|
|
|
|
|
|
#if ENABLED(FILAMENT_CHANGE_FEATURE) |
|
|
#if ENABLED(FILAMENT_CHANGE_FEATURE) |
|
|
static void lcd_enqueue_filament_change() { |
|
|
void lcd_enqueue_filament_change() { |
|
|
lcd_filament_change_show_message(FILAMENT_CHANGE_MESSAGE_INIT); |
|
|
lcd_filament_change_show_message(FILAMENT_CHANGE_MESSAGE_INIT); |
|
|
enqueue_and_echo_commands_P(PSTR("M600")); |
|
|
enqueue_and_echo_commands_P(PSTR("M600")); |
|
|
} |
|
|
} |
|
@ -742,7 +742,7 @@ void kill_screen(const char* lcd_msg) { |
|
|
* "Tune" submenu |
|
|
* "Tune" submenu |
|
|
* |
|
|
* |
|
|
*/ |
|
|
*/ |
|
|
static void lcd_tune_menu() { |
|
|
void lcd_tune_menu() { |
|
|
START_MENU(); |
|
|
START_MENU(); |
|
|
|
|
|
|
|
|
//
|
|
|
//
|
|
@ -864,13 +864,13 @@ void kill_screen(const char* lcd_msg) { |
|
|
* |
|
|
* |
|
|
*/ |
|
|
*/ |
|
|
#if ENABLED(DAC_STEPPER_CURRENT) |
|
|
#if ENABLED(DAC_STEPPER_CURRENT) |
|
|
static void dac_driver_getValues() { LOOP_XYZE(i) driverPercent[i] = dac_current_get_percent((AxisEnum)i); } |
|
|
void dac_driver_getValues() { LOOP_XYZE(i) driverPercent[i] = dac_current_get_percent((AxisEnum)i); } |
|
|
|
|
|
|
|
|
static void dac_driver_commit() { dac_current_set_percents(driverPercent); } |
|
|
void dac_driver_commit() { dac_current_set_percents(driverPercent); } |
|
|
|
|
|
|
|
|
static void dac_driver_eeprom_write() { dac_commit_eeprom(); } |
|
|
void dac_driver_eeprom_write() { dac_commit_eeprom(); } |
|
|
|
|
|
|
|
|
static void lcd_dac_menu() { |
|
|
void lcd_dac_menu() { |
|
|
dac_driver_getValues(); |
|
|
dac_driver_getValues(); |
|
|
START_MENU(); |
|
|
START_MENU(); |
|
|
MENU_BACK(MSG_CONTROL); |
|
|
MENU_BACK(MSG_CONTROL); |
|
@ -958,7 +958,7 @@ void kill_screen(const char* lcd_msg) { |
|
|
|
|
|
|
|
|
#if TEMP_SENSOR_0 != 0 && (TEMP_SENSOR_1 != 0 || TEMP_SENSOR_2 != 0 || TEMP_SENSOR_3 != 0 || TEMP_SENSOR_BED != 0) |
|
|
#if TEMP_SENSOR_0 != 0 && (TEMP_SENSOR_1 != 0 || TEMP_SENSOR_2 != 0 || TEMP_SENSOR_3 != 0 || TEMP_SENSOR_BED != 0) |
|
|
|
|
|
|
|
|
static void lcd_preheat_pla_menu() { |
|
|
void lcd_preheat_pla_menu() { |
|
|
START_MENU(); |
|
|
START_MENU(); |
|
|
MENU_BACK(MSG_PREPARE); |
|
|
MENU_BACK(MSG_PREPARE); |
|
|
#if HOTENDS == 1 |
|
|
#if HOTENDS == 1 |
|
@ -980,7 +980,7 @@ void kill_screen(const char* lcd_msg) { |
|
|
END_MENU(); |
|
|
END_MENU(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
static void lcd_preheat_abs_menu() { |
|
|
void lcd_preheat_abs_menu() { |
|
|
START_MENU(); |
|
|
START_MENU(); |
|
|
MENU_BACK(MSG_PREPARE); |
|
|
MENU_BACK(MSG_PREPARE); |
|
|
#if HOTENDS == 1 |
|
|
#if HOTENDS == 1 |
|
@ -1014,7 +1014,7 @@ void kill_screen(const char* lcd_msg) { |
|
|
|
|
|
|
|
|
#if ENABLED(SDSUPPORT) && ENABLED(MENU_ADDAUTOSTART) |
|
|
#if ENABLED(SDSUPPORT) && ENABLED(MENU_ADDAUTOSTART) |
|
|
|
|
|
|
|
|
static void lcd_autostart_sd() { |
|
|
void lcd_autostart_sd() { |
|
|
card.autostart_index = 0; |
|
|
card.autostart_index = 0; |
|
|
card.setroot(); |
|
|
card.setroot(); |
|
|
card.checkautostart(true); |
|
|
card.checkautostart(true); |
|
@ -1049,9 +1049,9 @@ void kill_screen(const char* lcd_msg) { |
|
|
stepper.synchronize(); |
|
|
stepper.synchronize(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
static void _lcd_level_goto_next_point(); |
|
|
void _lcd_level_goto_next_point(); |
|
|
|
|
|
|
|
|
static void _lcd_level_bed_done() { |
|
|
void _lcd_level_bed_done() { |
|
|
if (lcdDrawUpdate) lcd_implementation_drawedit(PSTR(MSG_LEVEL_BED_DONE)); |
|
|
if (lcdDrawUpdate) lcd_implementation_drawedit(PSTR(MSG_LEVEL_BED_DONE)); |
|
|
lcdDrawUpdate = |
|
|
lcdDrawUpdate = |
|
|
#if ENABLED(DOGLCD) |
|
|
#if ENABLED(DOGLCD) |
|
@ -1065,7 +1065,7 @@ void kill_screen(const char* lcd_msg) { |
|
|
/**
|
|
|
/**
|
|
|
* Step 7: Get the Z coordinate, then goto next point or exit |
|
|
* Step 7: Get the Z coordinate, then goto next point or exit |
|
|
*/ |
|
|
*/ |
|
|
static void _lcd_level_bed_get_z() { |
|
|
void _lcd_level_bed_get_z() { |
|
|
ENCODER_DIRECTION_NORMAL(); |
|
|
ENCODER_DIRECTION_NORMAL(); |
|
|
|
|
|
|
|
|
// Encoder wheel adjusts the Z position
|
|
|
// Encoder wheel adjusts the Z position
|
|
@ -1127,7 +1127,7 @@ void kill_screen(const char* lcd_msg) { |
|
|
/**
|
|
|
/**
|
|
|
* Step 6: Display "Next point: 1 / 9" while waiting for move to finish |
|
|
* Step 6: Display "Next point: 1 / 9" while waiting for move to finish |
|
|
*/ |
|
|
*/ |
|
|
static void _lcd_level_bed_moving() { |
|
|
void _lcd_level_bed_moving() { |
|
|
if (lcdDrawUpdate) { |
|
|
if (lcdDrawUpdate) { |
|
|
char msg[10]; |
|
|
char msg[10]; |
|
|
sprintf_P(msg, PSTR("%i / %u"), (int)(_lcd_level_bed_position + 1), (MESH_NUM_X_POINTS) * (MESH_NUM_Y_POINTS)); |
|
|
sprintf_P(msg, PSTR("%i / %u"), (int)(_lcd_level_bed_position + 1), (MESH_NUM_X_POINTS) * (MESH_NUM_Y_POINTS)); |
|
@ -1146,7 +1146,7 @@ void kill_screen(const char* lcd_msg) { |
|
|
/**
|
|
|
/**
|
|
|
* Step 5: Initiate a move to the next point |
|
|
* Step 5: Initiate a move to the next point |
|
|
*/ |
|
|
*/ |
|
|
static void _lcd_level_goto_next_point() { |
|
|
void _lcd_level_goto_next_point() { |
|
|
// Set the menu to display ahead of blocking call
|
|
|
// Set the menu to display ahead of blocking call
|
|
|
lcd_goto_screen(_lcd_level_bed_moving); |
|
|
lcd_goto_screen(_lcd_level_bed_moving); |
|
|
|
|
|
|
|
@ -1163,7 +1163,7 @@ void kill_screen(const char* lcd_msg) { |
|
|
* Step 4: Display "Click to Begin", wait for click |
|
|
* Step 4: Display "Click to Begin", wait for click |
|
|
* Move to the first probe position |
|
|
* Move to the first probe position |
|
|
*/ |
|
|
*/ |
|
|
static void _lcd_level_bed_homing_done() { |
|
|
void _lcd_level_bed_homing_done() { |
|
|
if (lcdDrawUpdate) lcd_implementation_drawedit(PSTR(MSG_LEVEL_BED_WAITING)); |
|
|
if (lcdDrawUpdate) lcd_implementation_drawedit(PSTR(MSG_LEVEL_BED_WAITING)); |
|
|
if (lcd_clicked) { |
|
|
if (lcd_clicked) { |
|
|
_lcd_level_bed_position = 0; |
|
|
_lcd_level_bed_position = 0; |
|
@ -1180,7 +1180,7 @@ void kill_screen(const char* lcd_msg) { |
|
|
/**
|
|
|
/**
|
|
|
* Step 3: Display "Homing XYZ" - Wait for homing to finish |
|
|
* Step 3: Display "Homing XYZ" - Wait for homing to finish |
|
|
*/ |
|
|
*/ |
|
|
static void _lcd_level_bed_homing() { |
|
|
void _lcd_level_bed_homing() { |
|
|
if (lcdDrawUpdate) lcd_implementation_drawedit(PSTR(MSG_LEVEL_BED_HOMING), NULL); |
|
|
if (lcdDrawUpdate) lcd_implementation_drawedit(PSTR(MSG_LEVEL_BED_HOMING), NULL); |
|
|
lcdDrawUpdate = |
|
|
lcdDrawUpdate = |
|
|
#if ENABLED(DOGLCD) |
|
|
#if ENABLED(DOGLCD) |
|
@ -1196,7 +1196,7 @@ void kill_screen(const char* lcd_msg) { |
|
|
/**
|
|
|
/**
|
|
|
* Step 2: Continue Bed Leveling... |
|
|
* Step 2: Continue Bed Leveling... |
|
|
*/ |
|
|
*/ |
|
|
static void _lcd_level_bed_continue() { |
|
|
void _lcd_level_bed_continue() { |
|
|
defer_return_to_status = true; |
|
|
defer_return_to_status = true; |
|
|
axis_homed[X_AXIS] = axis_homed[Y_AXIS] = axis_homed[Z_AXIS] = false; |
|
|
axis_homed[X_AXIS] = axis_homed[Y_AXIS] = axis_homed[Z_AXIS] = false; |
|
|
mbl.reset(); |
|
|
mbl.reset(); |
|
@ -1207,7 +1207,7 @@ void kill_screen(const char* lcd_msg) { |
|
|
/**
|
|
|
/**
|
|
|
* Step 1: MBL entry-point: "Cancel" or "Level Bed" |
|
|
* Step 1: MBL entry-point: "Cancel" or "Level Bed" |
|
|
*/ |
|
|
*/ |
|
|
static void lcd_level_bed() { |
|
|
void lcd_level_bed() { |
|
|
START_MENU(); |
|
|
START_MENU(); |
|
|
MENU_BACK(MSG_LEVEL_BED_CANCEL); |
|
|
MENU_BACK(MSG_LEVEL_BED_CANCEL); |
|
|
MENU_ITEM(submenu, MSG_LEVEL_BED, _lcd_level_bed_continue); |
|
|
MENU_ITEM(submenu, MSG_LEVEL_BED, _lcd_level_bed_continue); |
|
@ -1222,7 +1222,7 @@ void kill_screen(const char* lcd_msg) { |
|
|
* |
|
|
* |
|
|
*/ |
|
|
*/ |
|
|
|
|
|
|
|
|
static void lcd_prepare_menu() { |
|
|
void lcd_prepare_menu() { |
|
|
START_MENU(); |
|
|
START_MENU(); |
|
|
|
|
|
|
|
|
//
|
|
|
//
|
|
@ -1317,7 +1317,7 @@ void kill_screen(const char* lcd_msg) { |
|
|
|
|
|
|
|
|
#if ENABLED(DELTA_CALIBRATION_MENU) |
|
|
#if ENABLED(DELTA_CALIBRATION_MENU) |
|
|
|
|
|
|
|
|
static void _goto_tower_pos(const float &a) { |
|
|
void _goto_tower_pos(const float &a) { |
|
|
do_blocking_move_to( |
|
|
do_blocking_move_to( |
|
|
a < 0 ? X_HOME_POS : sin(a) * -(DELTA_PRINTABLE_RADIUS), |
|
|
a < 0 ? X_HOME_POS : sin(a) * -(DELTA_PRINTABLE_RADIUS), |
|
|
a < 0 ? Y_HOME_POS : cos(a) * (DELTA_PRINTABLE_RADIUS), |
|
|
a < 0 ? Y_HOME_POS : cos(a) * (DELTA_PRINTABLE_RADIUS), |
|
@ -1325,12 +1325,12 @@ void kill_screen(const char* lcd_msg) { |
|
|
); |
|
|
); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
static void _goto_tower_x() { _goto_tower_pos(RADIANS(120)); } |
|
|
void _goto_tower_x() { _goto_tower_pos(RADIANS(120)); } |
|
|
static void _goto_tower_y() { _goto_tower_pos(RADIANS(240)); } |
|
|
void _goto_tower_y() { _goto_tower_pos(RADIANS(240)); } |
|
|
static void _goto_tower_z() { _goto_tower_pos(0); } |
|
|
void _goto_tower_z() { _goto_tower_pos(0); } |
|
|
static void _goto_center() { _goto_tower_pos(-1); } |
|
|
void _goto_center() { _goto_tower_pos(-1); } |
|
|
|
|
|
|
|
|
static void lcd_delta_calibrate_menu() { |
|
|
void lcd_delta_calibrate_menu() { |
|
|
START_MENU(); |
|
|
START_MENU(); |
|
|
MENU_BACK(MSG_MAIN); |
|
|
MENU_BACK(MSG_MAIN); |
|
|
MENU_ITEM(gcode, MSG_AUTO_HOME, PSTR("G28")); |
|
|
MENU_ITEM(gcode, MSG_AUTO_HOME, PSTR("G28")); |
|
@ -1378,7 +1378,7 @@ void kill_screen(const char* lcd_msg) { |
|
|
* |
|
|
* |
|
|
*/ |
|
|
*/ |
|
|
|
|
|
|
|
|
static void _lcd_move_xyz(const char* name, AxisEnum axis) { |
|
|
void _lcd_move_xyz(const char* name, AxisEnum axis) { |
|
|
if (lcd_clicked) { return lcd_goto_previous_menu(); } |
|
|
if (lcd_clicked) { return lcd_goto_previous_menu(); } |
|
|
ENCODER_DIRECTION_NORMAL(); |
|
|
ENCODER_DIRECTION_NORMAL(); |
|
|
if (encoderPosition) { |
|
|
if (encoderPosition) { |
|
@ -1411,10 +1411,10 @@ void kill_screen(const char* lcd_msg) { |
|
|
} |
|
|
} |
|
|
if (lcdDrawUpdate) lcd_implementation_drawedit(name, ftostr41sign(current_position[axis])); |
|
|
if (lcdDrawUpdate) lcd_implementation_drawedit(name, ftostr41sign(current_position[axis])); |
|
|
} |
|
|
} |
|
|
static void lcd_move_x() { _lcd_move_xyz(PSTR(MSG_MOVE_X), X_AXIS); } |
|
|
void lcd_move_x() { _lcd_move_xyz(PSTR(MSG_MOVE_X), X_AXIS); } |
|
|
static void lcd_move_y() { _lcd_move_xyz(PSTR(MSG_MOVE_Y), Y_AXIS); } |
|
|
void lcd_move_y() { _lcd_move_xyz(PSTR(MSG_MOVE_Y), Y_AXIS); } |
|
|
static void lcd_move_z() { _lcd_move_xyz(PSTR(MSG_MOVE_Z), Z_AXIS); } |
|
|
void lcd_move_z() { _lcd_move_xyz(PSTR(MSG_MOVE_Z), Z_AXIS); } |
|
|
static void _lcd_move_e( |
|
|
void _lcd_move_e( |
|
|
#if E_MANUAL > 1 |
|
|
#if E_MANUAL > 1 |
|
|
int8_t eindex=-1 |
|
|
int8_t eindex=-1 |
|
|
#endif |
|
|
#endif |
|
@ -1451,14 +1451,14 @@ void kill_screen(const char* lcd_msg) { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
static void lcd_move_e() { _lcd_move_e(); } |
|
|
void lcd_move_e() { _lcd_move_e(); } |
|
|
#if E_MANUAL > 1 |
|
|
#if E_MANUAL > 1 |
|
|
static void lcd_move_e0() { _lcd_move_e(0); } |
|
|
void lcd_move_e0() { _lcd_move_e(0); } |
|
|
static void lcd_move_e1() { _lcd_move_e(1); } |
|
|
void lcd_move_e1() { _lcd_move_e(1); } |
|
|
#if E_MANUAL > 2 |
|
|
#if E_MANUAL > 2 |
|
|
static void lcd_move_e2() { _lcd_move_e(2); } |
|
|
void lcd_move_e2() { _lcd_move_e(2); } |
|
|
#if E_MANUAL > 3 |
|
|
#if E_MANUAL > 3 |
|
|
static void lcd_move_e3() { _lcd_move_e(3); } |
|
|
void lcd_move_e3() { _lcd_move_e(3); } |
|
|
#endif |
|
|
#endif |
|
|
#endif |
|
|
#endif |
|
|
#endif |
|
|
#endif |
|
@ -1475,7 +1475,7 @@ void kill_screen(const char* lcd_msg) { |
|
|
#define _MOVE_XYZ_ALLOWED true |
|
|
#define _MOVE_XYZ_ALLOWED true |
|
|
#endif |
|
|
#endif |
|
|
|
|
|
|
|
|
static void _lcd_move_menu_axis() { |
|
|
void _lcd_move_menu_axis() { |
|
|
START_MENU(); |
|
|
START_MENU(); |
|
|
MENU_BACK(MSG_MOVE_AXIS); |
|
|
MENU_BACK(MSG_MOVE_AXIS); |
|
|
|
|
|
|
|
@ -1509,15 +1509,15 @@ void kill_screen(const char* lcd_msg) { |
|
|
END_MENU(); |
|
|
END_MENU(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
static void lcd_move_menu_10mm() { |
|
|
void lcd_move_menu_10mm() { |
|
|
move_menu_scale = 10.0; |
|
|
move_menu_scale = 10.0; |
|
|
_lcd_move_menu_axis(); |
|
|
_lcd_move_menu_axis(); |
|
|
} |
|
|
} |
|
|
static void lcd_move_menu_1mm() { |
|
|
void lcd_move_menu_1mm() { |
|
|
move_menu_scale = 1.0; |
|
|
move_menu_scale = 1.0; |
|
|
_lcd_move_menu_axis(); |
|
|
_lcd_move_menu_axis(); |
|
|
} |
|
|
} |
|
|
static void lcd_move_menu_01mm() { |
|
|
void lcd_move_menu_01mm() { |
|
|
move_menu_scale = 0.1; |
|
|
move_menu_scale = 0.1; |
|
|
_lcd_move_menu_axis(); |
|
|
_lcd_move_menu_axis(); |
|
|
} |
|
|
} |
|
@ -1528,7 +1528,7 @@ void kill_screen(const char* lcd_msg) { |
|
|
* |
|
|
* |
|
|
*/ |
|
|
*/ |
|
|
|
|
|
|
|
|
static void lcd_move_menu() { |
|
|
void lcd_move_menu() { |
|
|
START_MENU(); |
|
|
START_MENU(); |
|
|
MENU_BACK(MSG_PREPARE); |
|
|
MENU_BACK(MSG_PREPARE); |
|
|
|
|
|
|
|
@ -1547,7 +1547,7 @@ void kill_screen(const char* lcd_msg) { |
|
|
* |
|
|
* |
|
|
*/ |
|
|
*/ |
|
|
|
|
|
|
|
|
static void lcd_control_menu() { |
|
|
void lcd_control_menu() { |
|
|
START_MENU(); |
|
|
START_MENU(); |
|
|
MENU_BACK(MSG_MAIN); |
|
|
MENU_BACK(MSG_MAIN); |
|
|
MENU_ITEM(submenu, MSG_TEMPERATURE, lcd_control_temperature_menu); |
|
|
MENU_ITEM(submenu, MSG_TEMPERATURE, lcd_control_temperature_menu); |
|
@ -1590,7 +1590,7 @@ void kill_screen(const char* lcd_msg) { |
|
|
int autotune_temp_bed = 70; |
|
|
int autotune_temp_bed = 70; |
|
|
#endif |
|
|
#endif |
|
|
|
|
|
|
|
|
static void _lcd_autotune(int e) { |
|
|
void _lcd_autotune(int e) { |
|
|
char cmd[30]; |
|
|
char cmd[30]; |
|
|
sprintf_P(cmd, PSTR("M303 U1 E%i S%i"), e, |
|
|
sprintf_P(cmd, PSTR("M303 U1 E%i S%i"), e, |
|
|
#if HAS_PID_FOR_BOTH |
|
|
#if HAS_PID_FOR_BOTH |
|
@ -1656,7 +1656,7 @@ void kill_screen(const char* lcd_msg) { |
|
|
* "Control" > "Temperature" submenu |
|
|
* "Control" > "Temperature" submenu |
|
|
* |
|
|
* |
|
|
*/ |
|
|
*/ |
|
|
static void lcd_control_temperature_menu() { |
|
|
void lcd_control_temperature_menu() { |
|
|
START_MENU(); |
|
|
START_MENU(); |
|
|
|
|
|
|
|
|
//
|
|
|
//
|
|
@ -1787,7 +1787,7 @@ void kill_screen(const char* lcd_msg) { |
|
|
END_MENU(); |
|
|
END_MENU(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
static void _lcd_control_temperature_preheat_settings_menu(uint8_t material) { |
|
|
void _lcd_control_temperature_preheat_settings_menu(uint8_t material) { |
|
|
START_MENU(); |
|
|
START_MENU(); |
|
|
MENU_BACK(MSG_TEMPERATURE); |
|
|
MENU_BACK(MSG_TEMPERATURE); |
|
|
MENU_ITEM_EDIT(int3, MSG_FAN_SPEED, &lcd_preheat_fan_speed[material], 0, 255); |
|
|
MENU_ITEM_EDIT(int3, MSG_FAN_SPEED, &lcd_preheat_fan_speed[material], 0, 255); |
|
@ -1808,24 +1808,24 @@ void kill_screen(const char* lcd_msg) { |
|
|
* "Temperature" > "Preheat PLA conf" submenu |
|
|
* "Temperature" > "Preheat PLA conf" submenu |
|
|
* |
|
|
* |
|
|
*/ |
|
|
*/ |
|
|
static void lcd_control_temperature_preheat_pla_settings_menu() { _lcd_control_temperature_preheat_settings_menu(0); } |
|
|
void lcd_control_temperature_preheat_pla_settings_menu() { _lcd_control_temperature_preheat_settings_menu(0); } |
|
|
|
|
|
|
|
|
/**
|
|
|
/**
|
|
|
* |
|
|
* |
|
|
* "Temperature" > "Preheat ABS conf" submenu |
|
|
* "Temperature" > "Preheat ABS conf" submenu |
|
|
* |
|
|
* |
|
|
*/ |
|
|
*/ |
|
|
static void lcd_control_temperature_preheat_abs_settings_menu() { _lcd_control_temperature_preheat_settings_menu(1); } |
|
|
void lcd_control_temperature_preheat_abs_settings_menu() { _lcd_control_temperature_preheat_settings_menu(1); } |
|
|
|
|
|
|
|
|
static void _reset_acceleration_rates() { planner.reset_acceleration_rates(); } |
|
|
void _reset_acceleration_rates() { planner.reset_acceleration_rates(); } |
|
|
static void _planner_refresh_positioning() { planner.refresh_positioning(); } |
|
|
void _planner_refresh_positioning() { planner.refresh_positioning(); } |
|
|
|
|
|
|
|
|
/**
|
|
|
/**
|
|
|
* |
|
|
* |
|
|
* "Control" > "Motion" submenu |
|
|
* "Control" > "Motion" submenu |
|
|
* |
|
|
* |
|
|
*/ |
|
|
*/ |
|
|
static void lcd_control_motion_menu() { |
|
|
void lcd_control_motion_menu() { |
|
|
START_MENU(); |
|
|
START_MENU(); |
|
|
MENU_BACK(MSG_CONTROL); |
|
|
MENU_BACK(MSG_CONTROL); |
|
|
#if HAS_BED_PROBE |
|
|
#if HAS_BED_PROBE |
|
@ -1871,7 +1871,7 @@ void kill_screen(const char* lcd_msg) { |
|
|
* "Control" > "Filament" submenu |
|
|
* "Control" > "Filament" submenu |
|
|
* |
|
|
* |
|
|
*/ |
|
|
*/ |
|
|
static void lcd_control_volumetric_menu() { |
|
|
void lcd_control_volumetric_menu() { |
|
|
START_MENU(); |
|
|
START_MENU(); |
|
|
MENU_BACK(MSG_CONTROL); |
|
|
MENU_BACK(MSG_CONTROL); |
|
|
|
|
|
|
|
@ -1901,7 +1901,7 @@ void kill_screen(const char* lcd_msg) { |
|
|
* |
|
|
* |
|
|
*/ |
|
|
*/ |
|
|
#if HAS_LCD_CONTRAST |
|
|
#if HAS_LCD_CONTRAST |
|
|
static void lcd_set_contrast() { |
|
|
void lcd_set_contrast() { |
|
|
if (lcd_clicked) { return lcd_goto_previous_menu(); } |
|
|
if (lcd_clicked) { return lcd_goto_previous_menu(); } |
|
|
ENCODER_DIRECTION_NORMAL(); |
|
|
ENCODER_DIRECTION_NORMAL(); |
|
|
if (encoderPosition) { |
|
|
if (encoderPosition) { |
|
@ -1928,7 +1928,7 @@ void kill_screen(const char* lcd_msg) { |
|
|
*/ |
|
|
*/ |
|
|
#if ENABLED(FWRETRACT) |
|
|
#if ENABLED(FWRETRACT) |
|
|
|
|
|
|
|
|
static void lcd_control_retract_menu() { |
|
|
void lcd_control_retract_menu() { |
|
|
START_MENU(); |
|
|
START_MENU(); |
|
|
MENU_BACK(MSG_CONTROL); |
|
|
MENU_BACK(MSG_CONTROL); |
|
|
MENU_ITEM_EDIT(bool, MSG_AUTORETRACT, &autoretract_enabled); |
|
|
MENU_ITEM_EDIT(bool, MSG_AUTORETRACT, &autoretract_enabled); |
|
@ -1951,13 +1951,13 @@ void kill_screen(const char* lcd_msg) { |
|
|
#if ENABLED(SDSUPPORT) |
|
|
#if ENABLED(SDSUPPORT) |
|
|
|
|
|
|
|
|
#if !PIN_EXISTS(SD_DETECT) |
|
|
#if !PIN_EXISTS(SD_DETECT) |
|
|
static void lcd_sd_refresh() { |
|
|
void lcd_sd_refresh() { |
|
|
card.initsd(); |
|
|
card.initsd(); |
|
|
encoderTopLine = 0; |
|
|
encoderTopLine = 0; |
|
|
} |
|
|
} |
|
|
#endif |
|
|
#endif |
|
|
|
|
|
|
|
|
static void lcd_sd_updir() { |
|
|
void lcd_sd_updir() { |
|
|
card.updir(); |
|
|
card.updir(); |
|
|
encoderTopLine = 0; |
|
|
encoderTopLine = 0; |
|
|
} |
|
|
} |
|
@ -2014,7 +2014,7 @@ void kill_screen(const char* lcd_msg) { |
|
|
* About Printer > Statistics submenu |
|
|
* About Printer > Statistics submenu |
|
|
* |
|
|
* |
|
|
*/ |
|
|
*/ |
|
|
static void lcd_info_stats_menu() { |
|
|
void lcd_info_stats_menu() { |
|
|
if (lcd_clicked) { return lcd_goto_previous_menu(); } |
|
|
if (lcd_clicked) { return lcd_goto_previous_menu(); } |
|
|
|
|
|
|
|
|
char buffer[21]; |
|
|
char buffer[21]; |
|
@ -2048,7 +2048,7 @@ void kill_screen(const char* lcd_msg) { |
|
|
* About Printer > Thermistors |
|
|
* About Printer > Thermistors |
|
|
* |
|
|
* |
|
|
*/ |
|
|
*/ |
|
|
static void lcd_info_thermistors_menu() { |
|
|
void lcd_info_thermistors_menu() { |
|
|
if (lcd_clicked) { return lcd_goto_previous_menu(); } |
|
|
if (lcd_clicked) { return lcd_goto_previous_menu(); } |
|
|
START_SCREEN(); |
|
|
START_SCREEN(); |
|
|
#define THERMISTOR_ID TEMP_SENSOR_0 |
|
|
#define THERMISTOR_ID TEMP_SENSOR_0 |
|
@ -2100,7 +2100,7 @@ void kill_screen(const char* lcd_msg) { |
|
|
* About Printer > Board Info |
|
|
* About Printer > Board Info |
|
|
* |
|
|
* |
|
|
*/ |
|
|
*/ |
|
|
static void lcd_info_board_menu() { |
|
|
void lcd_info_board_menu() { |
|
|
if (lcd_clicked) { return lcd_goto_previous_menu(); } |
|
|
if (lcd_clicked) { return lcd_goto_previous_menu(); } |
|
|
START_SCREEN(); |
|
|
START_SCREEN(); |
|
|
STATIC_ITEM(BOARD_NAME, true, true); // MyPrinterController
|
|
|
STATIC_ITEM(BOARD_NAME, true, true); // MyPrinterController
|
|
@ -2121,7 +2121,7 @@ void kill_screen(const char* lcd_msg) { |
|
|
* About Printer > Printer Info |
|
|
* About Printer > Printer Info |
|
|
* |
|
|
* |
|
|
*/ |
|
|
*/ |
|
|
static void lcd_info_printer_menu() { |
|
|
void lcd_info_printer_menu() { |
|
|
if (lcd_clicked) { return lcd_goto_previous_menu(); } |
|
|
if (lcd_clicked) { return lcd_goto_previous_menu(); } |
|
|
START_SCREEN(); |
|
|
START_SCREEN(); |
|
|
STATIC_ITEM(MSG_MARLIN, true, true); // Marlin
|
|
|
STATIC_ITEM(MSG_MARLIN, true, true); // Marlin
|
|
@ -2138,7 +2138,7 @@ void kill_screen(const char* lcd_msg) { |
|
|
* "About Printer" submenu |
|
|
* "About Printer" submenu |
|
|
* |
|
|
* |
|
|
*/ |
|
|
*/ |
|
|
static void lcd_info_menu() { |
|
|
void lcd_info_menu() { |
|
|
START_MENU(); |
|
|
START_MENU(); |
|
|
MENU_BACK(MSG_MAIN); |
|
|
MENU_BACK(MSG_MAIN); |
|
|
MENU_ITEM(submenu, MSG_INFO_PRINTER_MENU, lcd_info_printer_menu); // Printer Info >
|
|
|
MENU_ITEM(submenu, MSG_INFO_PRINTER_MENU, lcd_info_printer_menu); // Printer Info >
|
|
@ -2153,16 +2153,16 @@ void kill_screen(const char* lcd_msg) { |
|
|
|
|
|
|
|
|
#if ENABLED(FILAMENT_CHANGE_FEATURE) |
|
|
#if ENABLED(FILAMENT_CHANGE_FEATURE) |
|
|
|
|
|
|
|
|
static void lcd_filament_change_resume_print() { |
|
|
void lcd_filament_change_resume_print() { |
|
|
filament_change_menu_response = FILAMENT_CHANGE_RESPONSE_RESUME_PRINT; |
|
|
filament_change_menu_response = FILAMENT_CHANGE_RESPONSE_RESUME_PRINT; |
|
|
lcd_goto_screen(lcd_status_screen); |
|
|
lcd_goto_screen(lcd_status_screen); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
static void lcd_filament_change_extrude_more() { |
|
|
void lcd_filament_change_extrude_more() { |
|
|
filament_change_menu_response = FILAMENT_CHANGE_RESPONSE_EXTRUDE_MORE; |
|
|
filament_change_menu_response = FILAMENT_CHANGE_RESPONSE_EXTRUDE_MORE; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
static void lcd_filament_change_option_menu() { |
|
|
void lcd_filament_change_option_menu() { |
|
|
START_MENU(); |
|
|
START_MENU(); |
|
|
#if LCD_HEIGHT > 2 |
|
|
#if LCD_HEIGHT > 2 |
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_OPTION_HEADER, true, false); |
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_OPTION_HEADER, true, false); |
|
@ -2172,7 +2172,7 @@ void kill_screen(const char* lcd_msg) { |
|
|
END_MENU(); |
|
|
END_MENU(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
static void lcd_filament_change_init_message() { |
|
|
void lcd_filament_change_init_message() { |
|
|
START_SCREEN(); |
|
|
START_SCREEN(); |
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_HEADER, true, true); |
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_HEADER, true, true); |
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_INIT_1); |
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_INIT_1); |
|
@ -2185,7 +2185,7 @@ void kill_screen(const char* lcd_msg) { |
|
|
END_SCREEN(); |
|
|
END_SCREEN(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
static void lcd_filament_change_unload_message() { |
|
|
void lcd_filament_change_unload_message() { |
|
|
START_SCREEN(); |
|
|
START_SCREEN(); |
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_HEADER, true, true); |
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_HEADER, true, true); |
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_UNLOAD_1); |
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_UNLOAD_1); |
|
@ -2198,7 +2198,7 @@ void kill_screen(const char* lcd_msg) { |
|
|
END_SCREEN(); |
|
|
END_SCREEN(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
static void lcd_filament_change_insert_message() { |
|
|
void lcd_filament_change_insert_message() { |
|
|
START_SCREEN(); |
|
|
START_SCREEN(); |
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_HEADER, true, true); |
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_HEADER, true, true); |
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_INSERT_1); |
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_INSERT_1); |
|
@ -2211,7 +2211,7 @@ void kill_screen(const char* lcd_msg) { |
|
|
END_SCREEN(); |
|
|
END_SCREEN(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
static void lcd_filament_change_load_message() { |
|
|
void lcd_filament_change_load_message() { |
|
|
START_SCREEN(); |
|
|
START_SCREEN(); |
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_HEADER, true, true); |
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_HEADER, true, true); |
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_LOAD_1); |
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_LOAD_1); |
|
@ -2224,7 +2224,7 @@ void kill_screen(const char* lcd_msg) { |
|
|
END_SCREEN(); |
|
|
END_SCREEN(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
static void lcd_filament_change_extrude_message() { |
|
|
void lcd_filament_change_extrude_message() { |
|
|
START_SCREEN(); |
|
|
START_SCREEN(); |
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_HEADER, true, true); |
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_HEADER, true, true); |
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_EXTRUDE_1); |
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_EXTRUDE_1); |
|
@ -2237,7 +2237,7 @@ void kill_screen(const char* lcd_msg) { |
|
|
END_SCREEN(); |
|
|
END_SCREEN(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
static void lcd_filament_change_resume_message() { |
|
|
void lcd_filament_change_resume_message() { |
|
|
START_SCREEN(); |
|
|
START_SCREEN(); |
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_HEADER, true, true); |
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_HEADER, true, true); |
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_RESUME_1); |
|
|
STATIC_ITEM(MSG_FILAMENT_CHANGE_RESUME_1); |
|
@ -2294,9 +2294,9 @@ void kill_screen(const char* lcd_msg) { |
|
|
* bool _menu_edit_int3(); |
|
|
* bool _menu_edit_int3(); |
|
|
* void menu_edit_int3(); // edit int (interactively)
|
|
|
* void menu_edit_int3(); // edit int (interactively)
|
|
|
* void menu_edit_callback_int3(); // edit int (interactively) with callback on completion
|
|
|
* void menu_edit_callback_int3(); // edit int (interactively) with callback on completion
|
|
|
* static void _menu_action_setting_edit_int3(const char* pstr, int* ptr, int minValue, int maxValue); |
|
|
* void _menu_action_setting_edit_int3(const char* pstr, int* ptr, int minValue, int maxValue); |
|
|
* static void menu_action_setting_edit_int3(const char* pstr, int* ptr, int minValue, int maxValue); |
|
|
* void menu_action_setting_edit_int3(const char* pstr, int* ptr, int minValue, int maxValue); |
|
|
* static void menu_action_setting_edit_callback_int3(const char* pstr, int* ptr, int minValue, int maxValue, screenFunc_t callback); // edit int with callback
|
|
|
* void menu_action_setting_edit_callback_int3(const char* pstr, int* ptr, int minValue, int maxValue, screenFunc_t callback); // edit int with callback
|
|
|
* |
|
|
* |
|
|
* You can then use one of the menu macros to present the edit interface: |
|
|
* You can then use one of the menu macros to present the edit interface: |
|
|
* MENU_ITEM_EDIT(int3, MSG_SPEED, &feedrate_percentage, 10, 999) |
|
|
* MENU_ITEM_EDIT(int3, MSG_SPEED, &feedrate_percentage, 10, 999) |
|
@ -2324,7 +2324,7 @@ void kill_screen(const char* lcd_msg) { |
|
|
} \ |
|
|
} \ |
|
|
void menu_edit_ ## _name () { _menu_edit_ ## _name(); } \ |
|
|
void menu_edit_ ## _name () { _menu_edit_ ## _name(); } \ |
|
|
void menu_edit_callback_ ## _name () { if (_menu_edit_ ## _name ()) (*callbackFunc)(); } \ |
|
|
void menu_edit_callback_ ## _name () { if (_menu_edit_ ## _name ()) (*callbackFunc)(); } \ |
|
|
static void _menu_action_setting_edit_ ## _name (const char* pstr, _type* ptr, _type minValue, _type maxValue) { \ |
|
|
void _menu_action_setting_edit_ ## _name (const char* pstr, _type* ptr, _type minValue, _type maxValue) { \ |
|
|
lcd_save_previous_menu(); \ |
|
|
lcd_save_previous_menu(); \ |
|
|
\ |
|
|
\ |
|
|
lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW; \ |
|
|
lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW; \ |
|
@ -2335,11 +2335,11 @@ void kill_screen(const char* lcd_msg) { |
|
|
maxEditValue = maxValue * scale - minEditValue; \ |
|
|
maxEditValue = maxValue * scale - minEditValue; \ |
|
|
encoderPosition = (*ptr) * scale - minEditValue; \ |
|
|
encoderPosition = (*ptr) * scale - minEditValue; \ |
|
|
} \ |
|
|
} \ |
|
|
static void menu_action_setting_edit_ ## _name (const char* pstr, _type* ptr, _type minValue, _type maxValue) { \ |
|
|
void menu_action_setting_edit_ ## _name (const char* pstr, _type* ptr, _type minValue, _type maxValue) { \ |
|
|
_menu_action_setting_edit_ ## _name(pstr, ptr, minValue, maxValue); \ |
|
|
_menu_action_setting_edit_ ## _name(pstr, ptr, minValue, maxValue); \ |
|
|
currentScreen = menu_edit_ ## _name; \ |
|
|
currentScreen = menu_edit_ ## _name; \ |
|
|
}\ |
|
|
}\ |
|
|
static void menu_action_setting_edit_callback_ ## _name (const char* pstr, _type* ptr, _type minValue, _type maxValue, screenFunc_t callback) { \ |
|
|
void menu_action_setting_edit_callback_ ## _name (const char* pstr, _type* ptr, _type minValue, _type maxValue, screenFunc_t callback) { \ |
|
|
_menu_action_setting_edit_ ## _name(pstr, ptr, minValue, maxValue); \ |
|
|
_menu_action_setting_edit_ ## _name(pstr, ptr, minValue, maxValue); \ |
|
|
currentScreen = menu_edit_callback_ ## _name; \ |
|
|
currentScreen = menu_edit_callback_ ## _name; \ |
|
|
callbackFunc = callback; \ |
|
|
callbackFunc = callback; \ |
|
@ -2361,7 +2361,7 @@ void kill_screen(const char* lcd_msg) { |
|
|
* |
|
|
* |
|
|
*/ |
|
|
*/ |
|
|
#if ENABLED(REPRAPWORLD_KEYPAD) |
|
|
#if ENABLED(REPRAPWORLD_KEYPAD) |
|
|
static void _reprapworld_keypad_move(AxisEnum axis, int dir) { |
|
|
void _reprapworld_keypad_move(AxisEnum axis, int dir) { |
|
|
move_menu_scale = REPRAPWORLD_KEYPAD_MOVE_STEP; |
|
|
move_menu_scale = REPRAPWORLD_KEYPAD_MOVE_STEP; |
|
|
encoderPosition = dir; |
|
|
encoderPosition = dir; |
|
|
switch (axis) { |
|
|
switch (axis) { |
|
@ -2371,14 +2371,14 @@ void kill_screen(const char* lcd_msg) { |
|
|
default: break; |
|
|
default: break; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
static void reprapworld_keypad_move_z_up() { _reprapworld_keypad_move(Z_AXIS, 1); } |
|
|
void reprapworld_keypad_move_z_up() { _reprapworld_keypad_move(Z_AXIS, 1); } |
|
|
static void reprapworld_keypad_move_z_down() { _reprapworld_keypad_move(Z_AXIS, -1); } |
|
|
void reprapworld_keypad_move_z_down() { _reprapworld_keypad_move(Z_AXIS, -1); } |
|
|
static void reprapworld_keypad_move_x_left() { _reprapworld_keypad_move(X_AXIS, -1); } |
|
|
void reprapworld_keypad_move_x_left() { _reprapworld_keypad_move(X_AXIS, -1); } |
|
|
static void reprapworld_keypad_move_x_right() { _reprapworld_keypad_move(X_AXIS, 1); } |
|
|
void reprapworld_keypad_move_x_right() { _reprapworld_keypad_move(X_AXIS, 1); } |
|
|
static void reprapworld_keypad_move_y_up() { _reprapworld_keypad_move(Y_AXIS, -1); } |
|
|
void reprapworld_keypad_move_y_up() { _reprapworld_keypad_move(Y_AXIS, -1); } |
|
|
static void reprapworld_keypad_move_y_down() { _reprapworld_keypad_move(Y_AXIS, 1); } |
|
|
void reprapworld_keypad_move_y_down() { _reprapworld_keypad_move(Y_AXIS, 1); } |
|
|
static void reprapworld_keypad_move_home() { enqueue_and_echo_commands_P(PSTR("G28")); } // move all axes home and wait
|
|
|
void reprapworld_keypad_move_home() { enqueue_and_echo_commands_P(PSTR("G28")); } // move all axes home and wait
|
|
|
static void reprapworld_keypad_move_menu() { lcd_goto_screen(lcd_move_menu); } |
|
|
void reprapworld_keypad_move_menu() { lcd_goto_screen(lcd_move_menu); } |
|
|
#endif // REPRAPWORLD_KEYPAD
|
|
|
#endif // REPRAPWORLD_KEYPAD
|
|
|
|
|
|
|
|
|
/**
|
|
|
/**
|
|
@ -2415,20 +2415,20 @@ void kill_screen(const char* lcd_msg) { |
|
|
* Menu actions |
|
|
* Menu actions |
|
|
* |
|
|
* |
|
|
*/ |
|
|
*/ |
|
|
static void _menu_action_back() { lcd_goto_previous_menu(); } |
|
|
void _menu_action_back() { lcd_goto_previous_menu(); } |
|
|
static void menu_action_submenu(screenFunc_t func) { lcd_save_previous_menu(); lcd_goto_screen(func); } |
|
|
void menu_action_submenu(screenFunc_t func) { lcd_save_previous_menu(); lcd_goto_screen(func); } |
|
|
static void menu_action_gcode(const char* pgcode) { enqueue_and_echo_commands_P(pgcode); } |
|
|
void menu_action_gcode(const char* pgcode) { enqueue_and_echo_commands_P(pgcode); } |
|
|
static void menu_action_function(screenFunc_t func) { (*func)(); } |
|
|
void menu_action_function(screenFunc_t func) { (*func)(); } |
|
|
|
|
|
|
|
|
#if ENABLED(SDSUPPORT) |
|
|
#if ENABLED(SDSUPPORT) |
|
|
|
|
|
|
|
|
static void menu_action_sdfile(const char* filename, char* longFilename) { |
|
|
void menu_action_sdfile(const char* filename, char* longFilename) { |
|
|
UNUSED(longFilename); |
|
|
UNUSED(longFilename); |
|
|
card.openAndPrintFile(filename); |
|
|
card.openAndPrintFile(filename); |
|
|
lcd_return_to_status(); |
|
|
lcd_return_to_status(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
static void menu_action_sddirectory(const char* filename, char* longFilename) { |
|
|
void menu_action_sddirectory(const char* filename, char* longFilename) { |
|
|
UNUSED(longFilename); |
|
|
UNUSED(longFilename); |
|
|
card.chdir(filename); |
|
|
card.chdir(filename); |
|
|
encoderPosition = 0; |
|
|
encoderPosition = 0; |
|
@ -2436,8 +2436,8 @@ void kill_screen(const char* lcd_msg) { |
|
|
|
|
|
|
|
|
#endif //SDSUPPORT
|
|
|
#endif //SDSUPPORT
|
|
|
|
|
|
|
|
|
static void menu_action_setting_edit_bool(const char* pstr, bool* ptr) {UNUSED(pstr); *ptr = !(*ptr); } |
|
|
void menu_action_setting_edit_bool(const char* pstr, bool* ptr) {UNUSED(pstr); *ptr = !(*ptr); } |
|
|
static void menu_action_setting_edit_callback_bool(const char* pstr, bool* ptr, screenFunc_t callback) { |
|
|
void menu_action_setting_edit_callback_bool(const char* pstr, bool* ptr, screenFunc_t callback) { |
|
|
menu_action_setting_edit_bool(pstr, ptr); |
|
|
menu_action_setting_edit_bool(pstr, ptr); |
|
|
(*callback)(); |
|
|
(*callback)(); |
|
|
} |
|
|
} |
|
|