|
@@ -39,28 +39,26 @@
|
39
|
39
|
//
|
40
|
40
|
// Change Filament > Change/Unload/Load Filament
|
41
|
41
|
//
|
42
|
|
-static PauseMode _change_filament_temp_mode; // =PAUSE_MODE_PAUSE_PRINT
|
43
|
|
-static int8_t _change_filament_temp_extruder; // =0
|
|
42
|
+static PauseMode _change_filament_mode; // = PAUSE_MODE_PAUSE_PRINT
|
|
43
|
+static int8_t _change_filament_extruder; // = 0
|
44
|
44
|
|
45
|
|
-inline PGM_P _change_filament_temp_command() {
|
46
|
|
- switch (_change_filament_temp_mode) {
|
47
|
|
- case PAUSE_MODE_LOAD_FILAMENT:
|
48
|
|
- return PSTR("M701 T%d");
|
49
|
|
- case PAUSE_MODE_UNLOAD_FILAMENT:
|
50
|
|
- return _change_filament_temp_extruder >= 0 ? PSTR("M702 T%d") : PSTR("M702 ;%d");
|
|
45
|
+inline PGM_P _change_filament_command() {
|
|
46
|
+ switch (_change_filament_mode) {
|
|
47
|
+ case PAUSE_MODE_LOAD_FILAMENT: return PSTR("M701 T%d");
|
|
48
|
+ case PAUSE_MODE_UNLOAD_FILAMENT: return _change_filament_extruder >= 0
|
|
49
|
+ ? PSTR("M702 T%d") : PSTR("M702 ;%d");
|
51
|
50
|
case PAUSE_MODE_CHANGE_FILAMENT:
|
52
|
51
|
case PAUSE_MODE_PAUSE_PRINT:
|
53
|
|
- default:
|
54
|
|
- return PSTR("M600 B0 T%d");
|
|
52
|
+ default: break;
|
55
|
53
|
}
|
56
|
|
- return GET_TEXT(MSG_FILAMENTCHANGE);
|
|
54
|
+ return PSTR("M600 B0 T%d");
|
57
|
55
|
}
|
58
|
56
|
|
59
|
57
|
// Initiate Filament Load/Unload/Change at the specified temperature
|
60
|
|
-static void _change_filament_temp(const uint16_t temperature) {
|
|
58
|
+static void _change_filament(const uint16_t celsius) {
|
61
|
59
|
char cmd[11];
|
62
|
|
- sprintf_P(cmd, _change_filament_temp_command(), _change_filament_temp_extruder);
|
63
|
|
- thermalManager.setTargetHotend(temperature, _change_filament_temp_extruder);
|
|
60
|
+ sprintf_P(cmd, _change_filament_command(), _change_filament_extruder);
|
|
61
|
+ thermalManager.setTargetHotend(celsius, _change_filament_extruder);
|
64
|
62
|
queue.inject(cmd);
|
65
|
63
|
}
|
66
|
64
|
|
|
@@ -70,25 +68,23 @@ static void _change_filament_temp(const uint16_t temperature) {
|
70
|
68
|
|
71
|
69
|
inline PGM_P change_filament_header(const PauseMode mode) {
|
72
|
70
|
switch (mode) {
|
73
|
|
- case PAUSE_MODE_LOAD_FILAMENT:
|
74
|
|
- return GET_TEXT(MSG_FILAMENTLOAD);
|
75
|
|
- case PAUSE_MODE_UNLOAD_FILAMENT:
|
76
|
|
- return GET_TEXT(MSG_FILAMENTUNLOAD);
|
|
71
|
+ case PAUSE_MODE_LOAD_FILAMENT: return GET_TEXT(MSG_FILAMENTLOAD);
|
|
72
|
+ case PAUSE_MODE_UNLOAD_FILAMENT: return GET_TEXT(MSG_FILAMENTUNLOAD);
|
77
|
73
|
default: break;
|
78
|
74
|
}
|
79
|
75
|
return GET_TEXT(MSG_FILAMENTCHANGE);
|
80
|
76
|
}
|
81
|
77
|
|
82
|
78
|
void _menu_temp_filament_op(const PauseMode mode, const int8_t extruder) {
|
83
|
|
- _change_filament_temp_mode = mode;
|
84
|
|
- _change_filament_temp_extruder = extruder;
|
|
79
|
+ _change_filament_mode = mode;
|
|
80
|
+ _change_filament_extruder = extruder;
|
85
|
81
|
START_MENU();
|
86
|
82
|
if (LCD_HEIGHT >= 4) STATIC_ITEM_P(change_filament_header(mode), SS_CENTER|SS_INVERT);
|
87
|
83
|
BACK_ITEM(MSG_BACK);
|
88
|
|
- ACTION_ITEM(MSG_PREHEAT_1, []{ _change_filament_temp(ui.preheat_hotend_temp[0]); });
|
89
|
|
- ACTION_ITEM(MSG_PREHEAT_2, []{ _change_filament_temp(ui.preheat_hotend_temp[1]); });
|
90
|
|
- EDIT_ITEM_FAST(int3, MSG_PREHEAT_CUSTOM, &thermalManager.temp_hotend[_change_filament_temp_extruder].target, EXTRUDE_MINTEMP, heater_maxtemp[extruder] - 15, []{
|
91
|
|
- _change_filament_temp(thermalManager.temp_hotend[_change_filament_temp_extruder].target);
|
|
84
|
+ ACTION_ITEM(MSG_PREHEAT_1, []{ _change_filament(ui.preheat_hotend_temp[0]); });
|
|
85
|
+ ACTION_ITEM(MSG_PREHEAT_2, []{ _change_filament(ui.preheat_hotend_temp[1]); });
|
|
86
|
+ EDIT_ITEM_FAST(int3, MSG_PREHEAT_CUSTOM, &thermalManager.temp_hotend[_change_filament_extruder].target, EXTRUDE_MINTEMP, heater_maxtemp[extruder] - 15, []{
|
|
87
|
+ _change_filament(thermalManager.temp_hotend[_change_filament_extruder].target);
|
92
|
88
|
});
|
93
|
89
|
END_MENU();
|
94
|
90
|
}
|