|
|
@ -5889,7 +5889,7 @@ inline void gcode_M17() {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static bool pause_print(const float &retract, const float &z_lift, const float &x_pos, const float &y_pos,
|
|
|
|
static bool pause_print(const float &retract, const float &z_lift, const float &x_pos, const float &y_pos,
|
|
|
|
const float &unload_length = 0 , int8_t max_beep_count = 0, bool show_lcd = false
|
|
|
|
const float &unload_length = 0 , const int8_t max_beep_count = 0, const bool show_lcd = false
|
|
|
|
) {
|
|
|
|
) {
|
|
|
|
if (move_away_flag) return false; // already paused
|
|
|
|
if (move_away_flag) return false; // already paused
|
|
|
|
|
|
|
|
|
|
|
@ -5989,7 +5989,7 @@ inline void gcode_M17() {
|
|
|
|
return true;
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static void wait_for_filament_reload(int8_t max_beep_count = 0) {
|
|
|
|
static void wait_for_filament_reload(const int8_t max_beep_count = 0) {
|
|
|
|
bool nozzle_timed_out = false;
|
|
|
|
bool nozzle_timed_out = false;
|
|
|
|
|
|
|
|
|
|
|
|
// Wait for filament insert by user and press button
|
|
|
|
// Wait for filament insert by user and press button
|
|
|
@ -6014,7 +6014,7 @@ inline void gcode_M17() {
|
|
|
|
KEEPALIVE_STATE(IN_HANDLER);
|
|
|
|
KEEPALIVE_STATE(IN_HANDLER);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static void resume_print(const float &load_length = 0, const float &initial_extrude_length = 0, int8_t max_beep_count = 0) {
|
|
|
|
static void resume_print(const float &load_length = 0, const float &initial_extrude_length = 0, const int8_t max_beep_count = 0) {
|
|
|
|
bool nozzle_timed_out = false;
|
|
|
|
bool nozzle_timed_out = false;
|
|
|
|
|
|
|
|
|
|
|
|
if (!move_away_flag) return;
|
|
|
|
if (!move_away_flag) return;
|
|
|
@ -6974,39 +6974,57 @@ inline void gcode_M104() {
|
|
|
|
|
|
|
|
|
|
|
|
#if HAS_TEMP_HOTEND || HAS_TEMP_BED
|
|
|
|
#if HAS_TEMP_HOTEND || HAS_TEMP_BED
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void print_heater_state(const float &c, const float &t,
|
|
|
|
|
|
|
|
#if ENABLED(SHOW_TEMP_ADC_VALUES)
|
|
|
|
|
|
|
|
const float r,
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
const int8_t e=-2
|
|
|
|
|
|
|
|
) {
|
|
|
|
|
|
|
|
SERIAL_PROTOCOLCHAR(' ');
|
|
|
|
|
|
|
|
SERIAL_PROTOCOLCHAR(
|
|
|
|
|
|
|
|
#if HAS_TEMP_BED && HAS_TEMP_HOTEND
|
|
|
|
|
|
|
|
e == -1 ? 'B' : 'T'
|
|
|
|
|
|
|
|
#elif HAS_TEMP_HOTEND
|
|
|
|
|
|
|
|
'T'
|
|
|
|
|
|
|
|
#else
|
|
|
|
|
|
|
|
'B'
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
#if HOTENDS > 1
|
|
|
|
|
|
|
|
if (e >= 0) SERIAL_PROTOCOLCHAR('0' + e);
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
SERIAL_PROTOCOLCHAR(':');
|
|
|
|
|
|
|
|
SERIAL_PROTOCOL(c);
|
|
|
|
|
|
|
|
SERIAL_PROTOCOLPAIR(" /" , t);
|
|
|
|
|
|
|
|
#if ENABLED(SHOW_TEMP_ADC_VALUES)
|
|
|
|
|
|
|
|
SERIAL_PROTOCOLPAIR(" (", r / OVERSAMPLENR);
|
|
|
|
|
|
|
|
SERIAL_PROTOCOLCHAR(')');
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void print_heaterstates() {
|
|
|
|
void print_heaterstates() {
|
|
|
|
#if HAS_TEMP_HOTEND
|
|
|
|
#if HAS_TEMP_HOTEND
|
|
|
|
SERIAL_PROTOCOLPGM(" T:");
|
|
|
|
print_heater_state(thermalManager.degHotend(target_extruder), thermalManager.degTargetHotend(target_extruder)
|
|
|
|
SERIAL_PROTOCOL(thermalManager.degHotend(target_extruder));
|
|
|
|
#if ENABLED(SHOW_TEMP_ADC_VALUES)
|
|
|
|
SERIAL_PROTOCOLPGM(" /");
|
|
|
|
, thermalManager.rawHotendTemp(target_extruder)
|
|
|
|
SERIAL_PROTOCOL(thermalManager.degTargetHotend(target_extruder));
|
|
|
|
#endif
|
|
|
|
#if ENABLED(SHOW_TEMP_ADC_VALUES)
|
|
|
|
);
|
|
|
|
SERIAL_PROTOCOLPAIR(" (", thermalManager.rawHotendTemp(target_extruder) / OVERSAMPLENR);
|
|
|
|
|
|
|
|
SERIAL_PROTOCOLCHAR(')');
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#if HAS_TEMP_BED
|
|
|
|
#if HAS_TEMP_BED
|
|
|
|
SERIAL_PROTOCOLPGM(" B:");
|
|
|
|
print_heater_state(thermalManager.degBed(), thermalManager.degTargetBed(),
|
|
|
|
SERIAL_PROTOCOL(thermalManager.degBed());
|
|
|
|
#if ENABLED(SHOW_TEMP_ADC_VALUES)
|
|
|
|
SERIAL_PROTOCOLPGM(" /");
|
|
|
|
thermalManager.rawBedTemp(),
|
|
|
|
SERIAL_PROTOCOL(thermalManager.degTargetBed());
|
|
|
|
#endif
|
|
|
|
#if ENABLED(SHOW_TEMP_ADC_VALUES)
|
|
|
|
-1 // BED
|
|
|
|
SERIAL_PROTOCOLPAIR(" (", thermalManager.rawBedTemp() / OVERSAMPLENR);
|
|
|
|
);
|
|
|
|
SERIAL_PROTOCOLCHAR(')');
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#if HOTENDS > 1
|
|
|
|
#if HOTENDS > 1
|
|
|
|
HOTEND_LOOP() {
|
|
|
|
HOTEND_LOOP() print_heater_state(thermalManager.degHotend(e), thermalManager.degTargetHotend(e),
|
|
|
|
SERIAL_PROTOCOLPAIR(" T", e);
|
|
|
|
|
|
|
|
SERIAL_PROTOCOLCHAR(':');
|
|
|
|
|
|
|
|
SERIAL_PROTOCOL(thermalManager.degHotend(e));
|
|
|
|
|
|
|
|
SERIAL_PROTOCOLPGM(" /");
|
|
|
|
|
|
|
|
SERIAL_PROTOCOL(thermalManager.degTargetHotend(e));
|
|
|
|
|
|
|
|
#if ENABLED(SHOW_TEMP_ADC_VALUES)
|
|
|
|
#if ENABLED(SHOW_TEMP_ADC_VALUES)
|
|
|
|
SERIAL_PROTOCOLPAIR(" (", thermalManager.rawHotendTemp(e) / OVERSAMPLENR);
|
|
|
|
thermalManager.rawHotendTemp(e),
|
|
|
|
SERIAL_PROTOCOLCHAR(')');
|
|
|
|
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
}
|
|
|
|
e
|
|
|
|
|
|
|
|
);
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
SERIAL_PROTOCOLPGM(" @:");
|
|
|
|
SERIAL_PROTOCOLPGM(" @:");
|
|
|
|
SERIAL_PROTOCOL(thermalManager.getHeaterPower(target_extruder));
|
|
|
|
SERIAL_PROTOCOL(thermalManager.getHeaterPower(target_extruder));
|
|
|
@ -7206,16 +7224,12 @@ inline void gcode_M109() {
|
|
|
|
print_heaterstates();
|
|
|
|
print_heaterstates();
|
|
|
|
#if TEMP_RESIDENCY_TIME > 0
|
|
|
|
#if TEMP_RESIDENCY_TIME > 0
|
|
|
|
SERIAL_PROTOCOLPGM(" W:");
|
|
|
|
SERIAL_PROTOCOLPGM(" W:");
|
|
|
|
if (residency_start_ms) {
|
|
|
|
if (residency_start_ms)
|
|
|
|
long rem = (((TEMP_RESIDENCY_TIME) * 1000UL) - (now - residency_start_ms)) / 1000UL;
|
|
|
|
SERIAL_PROTOCOL(long((((TEMP_RESIDENCY_TIME) * 1000UL) - (now - residency_start_ms)) / 1000UL));
|
|
|
|
SERIAL_PROTOCOLLN(rem);
|
|
|
|
else
|
|
|
|
}
|
|
|
|
SERIAL_PROTOCOLCHAR('?');
|
|
|
|
else {
|
|
|
|
|
|
|
|
SERIAL_PROTOCOLLNPGM("?");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
#else
|
|
|
|
|
|
|
|
SERIAL_EOL();
|
|
|
|
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
SERIAL_EOL();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
idle();
|
|
|
|
idle();
|
|
|
@ -7339,16 +7353,12 @@ inline void gcode_M109() {
|
|
|
|
print_heaterstates();
|
|
|
|
print_heaterstates();
|
|
|
|
#if TEMP_BED_RESIDENCY_TIME > 0
|
|
|
|
#if TEMP_BED_RESIDENCY_TIME > 0
|
|
|
|
SERIAL_PROTOCOLPGM(" W:");
|
|
|
|
SERIAL_PROTOCOLPGM(" W:");
|
|
|
|
if (residency_start_ms) {
|
|
|
|
if (residency_start_ms)
|
|
|
|
long rem = (((TEMP_BED_RESIDENCY_TIME) * 1000UL) - (now - residency_start_ms)) / 1000UL;
|
|
|
|
SERIAL_PROTOCOL(long((((TEMP_BED_RESIDENCY_TIME) * 1000UL) - (now - residency_start_ms)) / 1000UL));
|
|
|
|
SERIAL_PROTOCOLLN(rem);
|
|
|
|
else
|
|
|
|
}
|
|
|
|
SERIAL_PROTOCOLCHAR('?');
|
|
|
|
else {
|
|
|
|
|
|
|
|
SERIAL_PROTOCOLLNPGM("?");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
#else
|
|
|
|
|
|
|
|
SERIAL_EOL();
|
|
|
|
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
SERIAL_EOL();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
idle();
|
|
|
|
idle();
|
|
|
|