Emit Disable Power Loss Recovery (#11616)
* Emit Disable Power Loss Recovery Now only works if it's enabled but the goal it's to force disable it. With this change it will always emit the command for BBL or Marlin 2. Co-Authored-By: Michael Rook <54159303+michaelr0@users.noreply.github.com> * Refactor power loss recovery G-code comments * Return empty power loss recovery when no compatible printer * Update power loss recovery comments Update label and tooltip for power loss recovery * Add enum for power loss recovery mode Refactored power loss recovery configuration to use a new PowerLossRecoveryMode enum instead of a boolean. Updated GCodeWriter and related logic to handle the new enum, allowing for 'printer_configuration', 'enable', and 'disable' options. Updated config handling, legacy value conversion, and default values accordingly. * Update PrintConfig.cpp --------- Co-authored-by: Michael Rook <54159303+michaelr0@users.noreply.github.com> Co-authored-by: SoftFever <softfeverever@gmail.com>
This commit is contained in:
@@ -3084,10 +3084,11 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato
|
||||
m_sorted_layer_filaments.emplace_back(lt.extruders);
|
||||
}
|
||||
|
||||
// Orca: finish tracking power lost recovery
|
||||
// Orca: disable power loss recovery if it was enabled earlier
|
||||
{
|
||||
if (m_second_layer_things_done && print.config().enable_power_loss_recovery.value == true) {
|
||||
file.write(m_writer.enable_power_loss_recovery(false));
|
||||
const auto plr_mode = print.config().enable_power_loss_recovery.value;
|
||||
if (m_second_layer_things_done && plr_mode == PowerLossRecoveryMode::Enable) {
|
||||
file.write(m_writer.enable_power_loss_recovery(PowerLossRecoveryMode::Disable));
|
||||
}
|
||||
}
|
||||
++ finished_objects;
|
||||
@@ -3165,9 +3166,9 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato
|
||||
m_sorted_layer_filaments.emplace_back(lt.extruders);
|
||||
}
|
||||
|
||||
// Orca: finish tracking power lost recovery
|
||||
if (m_second_layer_things_done && print.config().enable_power_loss_recovery.value == true) {
|
||||
file.write(m_writer.enable_power_loss_recovery(false));
|
||||
// Orca: disable power loss recovery
|
||||
if (m_second_layer_things_done && print.config().enable_power_loss_recovery.value == PowerLossRecoveryMode::Enable) {
|
||||
file.write(m_writer.enable_power_loss_recovery(PowerLossRecoveryMode::Disable));
|
||||
}
|
||||
if (m_wipe_tower)
|
||||
// Purge the extruder, pull out the active filament.
|
||||
@@ -4381,10 +4382,9 @@ LayerResult GCode::process_layer(
|
||||
}
|
||||
|
||||
if (!first_layer && !m_second_layer_things_done) {
|
||||
// Orca: start tracking power lost recovery
|
||||
if (print.config().enable_power_loss_recovery.value == true) {
|
||||
gcode += m_writer.enable_power_loss_recovery(true);
|
||||
}
|
||||
// Orca: set power loss recovery
|
||||
const auto plr_mode = print.config().enable_power_loss_recovery.value;
|
||||
gcode += m_writer.enable_power_loss_recovery(plr_mode);
|
||||
|
||||
if (print.is_BBL_printer()) {
|
||||
// BBS: open first layer inspection at second layer
|
||||
|
||||
Reference in New Issue
Block a user