1
0
mirror of https://github.com/MarlinFirmware/Marlin.git synced 2024-11-27 13:56:24 +00:00

Clean up filament change menu (#17702)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
This commit is contained in:
Giuliano Zaro 2020-04-25 17:56:56 +02:00 committed by GitHub
parent be7e04056f
commit 4d3a2bd22c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -39,28 +39,26 @@
// //
// Change Filament > Change/Unload/Load Filament // Change Filament > Change/Unload/Load Filament
// //
static PauseMode _change_filament_temp_mode; // =PAUSE_MODE_PAUSE_PRINT static PauseMode _change_filament_mode; // = PAUSE_MODE_PAUSE_PRINT
static int8_t _change_filament_temp_extruder; // =0 static int8_t _change_filament_extruder; // = 0
inline PGM_P _change_filament_temp_command() { inline PGM_P _change_filament_command() {
switch (_change_filament_temp_mode) { switch (_change_filament_mode) {
case PAUSE_MODE_LOAD_FILAMENT: case PAUSE_MODE_LOAD_FILAMENT: return PSTR("M701 T%d");
return PSTR("M701 T%d"); case PAUSE_MODE_UNLOAD_FILAMENT: return _change_filament_extruder >= 0
case PAUSE_MODE_UNLOAD_FILAMENT: ? PSTR("M702 T%d") : PSTR("M702 ;%d");
return _change_filament_temp_extruder >= 0 ? PSTR("M702 T%d") : PSTR("M702 ;%d");
case PAUSE_MODE_CHANGE_FILAMENT: case PAUSE_MODE_CHANGE_FILAMENT:
case PAUSE_MODE_PAUSE_PRINT: case PAUSE_MODE_PAUSE_PRINT:
default: default: break;
return PSTR("M600 B0 T%d");
} }
return GET_TEXT(MSG_FILAMENTCHANGE); return PSTR("M600 B0 T%d");
} }
// Initiate Filament Load/Unload/Change at the specified temperature // Initiate Filament Load/Unload/Change at the specified temperature
static void _change_filament_temp(const uint16_t temperature) { static void _change_filament(const uint16_t celsius) {
char cmd[11]; char cmd[11];
sprintf_P(cmd, _change_filament_temp_command(), _change_filament_temp_extruder); sprintf_P(cmd, _change_filament_command(), _change_filament_extruder);
thermalManager.setTargetHotend(temperature, _change_filament_temp_extruder); thermalManager.setTargetHotend(celsius, _change_filament_extruder);
queue.inject(cmd); queue.inject(cmd);
} }
@ -70,25 +68,23 @@ static void _change_filament_temp(const uint16_t temperature) {
inline PGM_P change_filament_header(const PauseMode mode) { inline PGM_P change_filament_header(const PauseMode mode) {
switch (mode) { switch (mode) {
case PAUSE_MODE_LOAD_FILAMENT: case PAUSE_MODE_LOAD_FILAMENT: return GET_TEXT(MSG_FILAMENTLOAD);
return GET_TEXT(MSG_FILAMENTLOAD); case PAUSE_MODE_UNLOAD_FILAMENT: return GET_TEXT(MSG_FILAMENTUNLOAD);
case PAUSE_MODE_UNLOAD_FILAMENT:
return GET_TEXT(MSG_FILAMENTUNLOAD);
default: break; default: break;
} }
return GET_TEXT(MSG_FILAMENTCHANGE); return GET_TEXT(MSG_FILAMENTCHANGE);
} }
void _menu_temp_filament_op(const PauseMode mode, const int8_t extruder) { void _menu_temp_filament_op(const PauseMode mode, const int8_t extruder) {
_change_filament_temp_mode = mode; _change_filament_mode = mode;
_change_filament_temp_extruder = extruder; _change_filament_extruder = extruder;
START_MENU(); START_MENU();
if (LCD_HEIGHT >= 4) STATIC_ITEM_P(change_filament_header(mode), SS_CENTER|SS_INVERT); if (LCD_HEIGHT >= 4) STATIC_ITEM_P(change_filament_header(mode), SS_CENTER|SS_INVERT);
BACK_ITEM(MSG_BACK); BACK_ITEM(MSG_BACK);
ACTION_ITEM(MSG_PREHEAT_1, []{ _change_filament_temp(ui.preheat_hotend_temp[0]); }); ACTION_ITEM(MSG_PREHEAT_1, []{ _change_filament(ui.preheat_hotend_temp[0]); });
ACTION_ITEM(MSG_PREHEAT_2, []{ _change_filament_temp(ui.preheat_hotend_temp[1]); }); ACTION_ITEM(MSG_PREHEAT_2, []{ _change_filament(ui.preheat_hotend_temp[1]); });
EDIT_ITEM_FAST(int3, MSG_PREHEAT_CUSTOM, &thermalManager.temp_hotend[_change_filament_temp_extruder].target, EXTRUDE_MINTEMP, heater_maxtemp[extruder] - 15, []{ EDIT_ITEM_FAST(int3, MSG_PREHEAT_CUSTOM, &thermalManager.temp_hotend[_change_filament_extruder].target, EXTRUDE_MINTEMP, heater_maxtemp[extruder] - 15, []{
_change_filament_temp(thermalManager.temp_hotend[_change_filament_temp_extruder].target); _change_filament(thermalManager.temp_hotend[_change_filament_extruder].target);
}); });
END_MENU(); END_MENU();
} }