Add original M600 MMU handling
seems to be almost unrelated to MMU function at all, so returning it almost intact.
This commit is contained in:
parent
87d9f9aba7
commit
22287fec5d
|
|
@ -3472,6 +3472,64 @@ static T gcode_M600_filament_change_z_shift()
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void mmu_M600_wait_and_beep() {
|
||||||
|
// Beep and wait for user to remove old filament and prepare new filament for load
|
||||||
|
KEEPALIVE_STATE(PAUSED_FOR_USER);
|
||||||
|
|
||||||
|
int counterBeep = 0;
|
||||||
|
lcd_display_message_fullscreen_P(_i("Remove old filament and press the knob to start loading new filament.")); ////MSG_REMOVE_OLD_FILAMENT c=20 r=5
|
||||||
|
bool bFirst = true;
|
||||||
|
|
||||||
|
while (!lcd_clicked()) {
|
||||||
|
manage_heater();
|
||||||
|
manage_inactivity(true);
|
||||||
|
|
||||||
|
#if BEEPER > 0
|
||||||
|
if (counterBeep == 500) {
|
||||||
|
counterBeep = 0;
|
||||||
|
}
|
||||||
|
SET_OUTPUT(BEEPER);
|
||||||
|
if (counterBeep == 0) {
|
||||||
|
if ((eSoundMode == e_SOUND_MODE_BLIND) || (eSoundMode == e_SOUND_MODE_LOUD) || ((eSoundMode == e_SOUND_MODE_ONCE) && bFirst)) {
|
||||||
|
bFirst = false;
|
||||||
|
WRITE(BEEPER, HIGH);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (counterBeep == 20) {
|
||||||
|
WRITE(BEEPER, LOW);
|
||||||
|
}
|
||||||
|
|
||||||
|
counterBeep++;
|
||||||
|
#endif // BEEPER > 0
|
||||||
|
|
||||||
|
delay_keep_alive(4);
|
||||||
|
}
|
||||||
|
WRITE(BEEPER, LOW);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// @brief load filament for mmu v2
|
||||||
|
/// @par nozzle_temp nozzle temperature to load filament
|
||||||
|
void mmu_M600_load_filament(bool automatic, float nozzle_temp) {
|
||||||
|
uint8_t tmp_extruder = MMU2::mmu2.get_current_tool();
|
||||||
|
if (automatic) {
|
||||||
|
tmp_extruder = ad_getAlternative(tmp_extruder);
|
||||||
|
}
|
||||||
|
lcd_update_enable(false);
|
||||||
|
lcd_clear();
|
||||||
|
lcd_puts_at_P(0, 1, _T(MSG_LOADING_FILAMENT));
|
||||||
|
lcd_print(' ');
|
||||||
|
lcd_print(tmp_extruder + 1);
|
||||||
|
|
||||||
|
// printf_P(PSTR("T code: %d \n"), tmp_extruder);
|
||||||
|
// mmu_printf_P(PSTR("T%d\n"), tmp_extruder);
|
||||||
|
setTargetHotend(nozzle_temp, active_extruder);
|
||||||
|
|
||||||
|
MMU2::mmu2.load_filament_to_nozzle(tmp_extruder);
|
||||||
|
|
||||||
|
load_filament_final_feed(); // @@TODO verify
|
||||||
|
st_synchronize();
|
||||||
|
}
|
||||||
|
|
||||||
static void gcode_M600(bool automatic, float x_position, float y_position, float z_shift, float e_shift, float /*e_shift_late*/) {
|
static void gcode_M600(bool automatic, float x_position, float y_position, float z_shift, float e_shift, float /*e_shift_late*/) {
|
||||||
st_synchronize();
|
st_synchronize();
|
||||||
float lastpos[4];
|
float lastpos[4];
|
||||||
|
|
@ -3546,17 +3604,15 @@ static void gcode_M600(bool automatic, float x_position, float y_position, float
|
||||||
// if M600 was invoked by filament senzor (FINDA) eject filament so user can easily remove it
|
// if M600 was invoked by filament senzor (FINDA) eject filament so user can easily remove it
|
||||||
MMU2::mmu2.eject_filament(MMU2::mmu2.get_current_tool(), false);
|
MMU2::mmu2.eject_filament(MMU2::mmu2.get_current_tool(), false);
|
||||||
}
|
}
|
||||||
//@@TODO mmu_M600_wait_and_beep();
|
mmu_M600_wait_and_beep();
|
||||||
if (saved_printing) {
|
if (saved_printing) {
|
||||||
|
|
||||||
lcd_clear();
|
lcd_clear();
|
||||||
lcd_puts_at_P(0, 2, _T(MSG_PLEASE_WAIT));
|
lcd_puts_at_P(0, 2, _T(MSG_PLEASE_WAIT));
|
||||||
|
|
||||||
//@@TODO mmu_command(MmuCmd::R0);
|
//@@TODO mmu_command(MmuCmd::R0);
|
||||||
// manage_response(false, false);
|
// manage_response(false, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//@@TODO mmu_M600_load_filament(automatic, HotendTempBckp);
|
mmu_M600_load_filament(automatic, HotendTempBckp);
|
||||||
} else
|
} else
|
||||||
M600_load_filament();
|
M600_load_filament();
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue