Options to disable position logging on cancel/pause
Provided as a workaround for people who don't want the associated minimal delay in cancelling/pausing. See #1946
This commit is contained in:
parent
6f5707a0fc
commit
a50db4b08e
6 changed files with 37 additions and 2 deletions
|
|
@ -87,6 +87,9 @@ There are a few additional template variables available for the following specif
|
||||||
|
|
||||||
* ``pause_position``: Position reported by the printer via ``M114`` immediately before the print was paused. See
|
* ``pause_position``: Position reported by the printer via ``M114`` immediately before the print was paused. See
|
||||||
``last_position`` above for the structure to expect here.
|
``last_position`` above for the structure to expect here.
|
||||||
|
|
||||||
|
**Please note:** This will not be available if you disable
|
||||||
|
"Log position on pause" under Settings > Serial > Advanced options!
|
||||||
* ``pause_temperature``: Last known temperature values when the print was paused. See ``last_temperature`` above
|
* ``pause_temperature``: Last known temperature values when the print was paused. See ``last_temperature`` above
|
||||||
for the structure to expect here.
|
for the structure to expect here.
|
||||||
|
|
||||||
|
|
@ -94,6 +97,9 @@ There are a few additional template variables available for the following specif
|
||||||
|
|
||||||
* ``cancel_position``: Position reported by the printer via ``M114`` immediately before the print was cancelled.
|
* ``cancel_position``: Position reported by the printer via ``M114`` immediately before the print was cancelled.
|
||||||
See ``last_position`` above for the structure to expect here.
|
See ``last_position`` above for the structure to expect here.
|
||||||
|
|
||||||
|
**Please note:** This will not be available if you disable
|
||||||
|
"Log position on cancel" under Settings > Serial > Advanced options!
|
||||||
* ``cancel_temperature``: Last known temperature values when the print was cancelled. See ``last_temperature`` above
|
* ``cancel_temperature``: Last known temperature values when the print was cancelled. See ``last_temperature`` above
|
||||||
for the structure to expect here.
|
for the structure to expect here.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -154,6 +154,8 @@ def getSettings():
|
||||||
"ignoreErrorsFromFirmware": s.getBoolean(["serial", "ignoreErrorsFromFirmware"]),
|
"ignoreErrorsFromFirmware": s.getBoolean(["serial", "ignoreErrorsFromFirmware"]),
|
||||||
"disconnectOnErrors": s.getBoolean(["serial", "disconnectOnErrors"]),
|
"disconnectOnErrors": s.getBoolean(["serial", "disconnectOnErrors"]),
|
||||||
"triggerOkForM29": s.getBoolean(["serial", "triggerOkForM29"]),
|
"triggerOkForM29": s.getBoolean(["serial", "triggerOkForM29"]),
|
||||||
|
"logPositionOnPause": s.getBoolean(["serial", "logPositionOnPause"]),
|
||||||
|
"logPositionOnCancel": s.getBoolean(["serial", "logPositionOnCancel"]),
|
||||||
"supportResendsWithoutOk": s.getBoolean(["serial", "supportResendsWithoutOk"]),
|
"supportResendsWithoutOk": s.getBoolean(["serial", "supportResendsWithoutOk"]),
|
||||||
"maxTimeoutsIdle": s.getInt(["serial", "maxCommunicationTimeouts", "idle"]),
|
"maxTimeoutsIdle": s.getInt(["serial", "maxCommunicationTimeouts", "idle"]),
|
||||||
"maxTimeoutsPrinting": s.getInt(["serial", "maxCommunicationTimeouts", "printing"]),
|
"maxTimeoutsPrinting": s.getInt(["serial", "maxCommunicationTimeouts", "printing"]),
|
||||||
|
|
@ -365,6 +367,8 @@ def _saveSettings(data):
|
||||||
if "disconnectOnErrors" in data["serial"]: s.setBoolean(["serial", "disconnectOnErrors"], data["serial"]["disconnectOnErrors"])
|
if "disconnectOnErrors" in data["serial"]: s.setBoolean(["serial", "disconnectOnErrors"], data["serial"]["disconnectOnErrors"])
|
||||||
if "triggerOkForM29" in data["serial"]: s.setBoolean(["serial", "triggerOkForM29"], data["serial"]["triggerOkForM29"])
|
if "triggerOkForM29" in data["serial"]: s.setBoolean(["serial", "triggerOkForM29"], data["serial"]["triggerOkForM29"])
|
||||||
if "supportResendsWithoutOk" in data["serial"]: s.setBoolean(["serial", "supportResendsWithoutOk"], data["serial"]["supportResendsWithoutOk"])
|
if "supportResendsWithoutOk" in data["serial"]: s.setBoolean(["serial", "supportResendsWithoutOk"], data["serial"]["supportResendsWithoutOk"])
|
||||||
|
if "logPositionOnPause" in data["serial"]: s.setBoolean(["serial", "logPositionOnPause"], data["serial"]["logPositionOnPause"])
|
||||||
|
if "logPositionOnCancel" in data["serial"]: s.setBoolean(["serial", "logPositionOnCancel"], data["serial"]["logPositionOnCancel"])
|
||||||
if "maxTimeoutsIdle" in data["serial"]: s.setInt(["serial", "maxCommunicationTimeouts", "idle"], data["serial"]["maxTimeoutsIdle"])
|
if "maxTimeoutsIdle" in data["serial"]: s.setInt(["serial", "maxCommunicationTimeouts", "idle"], data["serial"]["maxTimeoutsIdle"])
|
||||||
if "maxTimeoutsPrinting" in data["serial"]: s.setInt(["serial", "maxCommunicationTimeouts", "printing"], data["serial"]["maxTimeoutsPrinting"])
|
if "maxTimeoutsPrinting" in data["serial"]: s.setInt(["serial", "maxCommunicationTimeouts", "printing"], data["serial"]["maxTimeoutsPrinting"])
|
||||||
if "maxTimeoutsLong" in data["serial"]: s.setInt(["serial", "maxCommunicationTimeouts", "long"], data["serial"]["maxTimeoutsLong"])
|
if "maxTimeoutsLong" in data["serial"]: s.setInt(["serial", "maxCommunicationTimeouts", "long"], data["serial"]["maxTimeoutsLong"])
|
||||||
|
|
|
||||||
|
|
@ -112,6 +112,8 @@ default_settings = {
|
||||||
"ignoreErrorsFromFirmware": False,
|
"ignoreErrorsFromFirmware": False,
|
||||||
"logResends": True,
|
"logResends": True,
|
||||||
"supportResendsWithoutOk": False,
|
"supportResendsWithoutOk": False,
|
||||||
|
"logPositionOnPause": True,
|
||||||
|
"logPositionOnCancel": True,
|
||||||
|
|
||||||
# command specific flags
|
# command specific flags
|
||||||
"triggerOkForM29": True
|
"triggerOkForM29": True
|
||||||
|
|
|
||||||
|
|
@ -173,6 +173,8 @@ $(function() {
|
||||||
self.serial_disconnectOnErrors = ko.observable(undefined);
|
self.serial_disconnectOnErrors = ko.observable(undefined);
|
||||||
self.serial_triggerOkForM29 = ko.observable(undefined);
|
self.serial_triggerOkForM29 = ko.observable(undefined);
|
||||||
self.serial_supportResendsWithoutOk = ko.observable(undefined);
|
self.serial_supportResendsWithoutOk = ko.observable(undefined);
|
||||||
|
self.serial_logPositionOnPause = ko.observable(undefined);
|
||||||
|
self.serial_logPositionOnCancel = ko.observable(undefined);
|
||||||
self.serial_maxTimeoutsIdle = ko.observable(undefined);
|
self.serial_maxTimeoutsIdle = ko.observable(undefined);
|
||||||
self.serial_maxTimeoutsPrinting = ko.observable(undefined);
|
self.serial_maxTimeoutsPrinting = ko.observable(undefined);
|
||||||
self.serial_maxTimeoutsLong = ko.observable(undefined);
|
self.serial_maxTimeoutsLong = ko.observable(undefined);
|
||||||
|
|
|
||||||
|
|
@ -151,6 +151,18 @@
|
||||||
<input type="checkbox" data-bind="checked: serial_supportResendsWithoutOk" id="settings-supportResendsWithoutOk"> {{ _('Simulate an additional <code>ok</code> for resend requests') }}
|
<input type="checkbox" data-bind="checked: serial_supportResendsWithoutOk" id="settings-supportResendsWithoutOk"> {{ _('Simulate an additional <code>ok</code> for resend requests') }}
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="controls">
|
||||||
|
<label class="checkbox">
|
||||||
|
<input type="checkbox" data-bind="checked: serial_logPositionOnPause" id="settings-logPositionOnPause"> {{ _('Log position on pause') }} <span class="label label-important">{{ _('Warning') }}</span>
|
||||||
|
<span class="help-block">{{ _('If you disabled this, the <code>pause_position</code> placeholders in your pause/resume GCODE scripts will stay unpopulated! However, pausing speed might improve slightly.') }}</span>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="controls">
|
||||||
|
<label class="checkbox">
|
||||||
|
<input type="checkbox" data-bind="checked: serial_logPositionOnCancel" id="settings-logPositionOnCancel"> {{ _('Log position on cancel') }} <span class="label label-important">{{ _('Warning') }}</span>
|
||||||
|
<span class="help-block">{{ _('If you disabled this, the <code>cancel_position</code> placeholders in your cancel GCODE script and the corresponding data in the print recovery data will stay unpopulated! However, cancelling speed might improve slightly.') }}</span>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
<div class="control-group" title="{{ _('Maximum consecutive communication timeouts while idle. More than this and the printer will be considered to be gone. Set to 0 to disable.') }}">
|
<div class="control-group" title="{{ _('Maximum consecutive communication timeouts while idle. More than this and the printer will be considered to be gone. Set to 0 to disable.') }}">
|
||||||
<label class="control-label" for="settings-serialMaxTimeoutsIdle">{{ _('Max. consecutive timeouts while idle') }}</label>
|
<label class="control-label" for="settings-serialMaxTimeoutsIdle">{{ _('Max. consecutive timeouts while idle') }}</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
|
|
|
||||||
|
|
@ -461,6 +461,9 @@ class MachineCom(object):
|
||||||
self._record_pause_data = False
|
self._record_pause_data = False
|
||||||
self._record_cancel_data = False
|
self._record_cancel_data = False
|
||||||
|
|
||||||
|
self._log_position_on_pause = settings().getBoolean(["serial", "logPositionOnPause"])
|
||||||
|
self._log_position_on_cancel = settings().getBoolean(["serial", "logPositionOnCancel"])
|
||||||
|
|
||||||
# print job
|
# print job
|
||||||
self._currentFile = None
|
self._currentFile = None
|
||||||
|
|
||||||
|
|
@ -944,7 +947,10 @@ class MachineCom(object):
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
self.sendCommand("M400", on_sent=_on_M400_sent)
|
if self._log_position_on_cancel:
|
||||||
|
self.sendCommand("M400", on_sent=_on_M400_sent)
|
||||||
|
else:
|
||||||
|
self._cancel_preparation_done()
|
||||||
|
|
||||||
def _pause_preparation_done(self):
|
def _pause_preparation_done(self):
|
||||||
self._callback.on_comm_print_job_paused()
|
self._callback.on_comm_print_job_paused()
|
||||||
|
|
@ -991,7 +997,10 @@ class MachineCom(object):
|
||||||
self._record_pause_data = True
|
self._record_pause_data = True
|
||||||
self.sendCommand("M114")
|
self.sendCommand("M114")
|
||||||
|
|
||||||
self.sendCommand("M400", on_sent=_on_M400_sent)
|
if self._log_position_on_pause:
|
||||||
|
self.sendCommand("M400", on_sent=_on_M400_sent)
|
||||||
|
else:
|
||||||
|
self._pause_preparation_done()
|
||||||
|
|
||||||
def getSdFiles(self):
|
def getSdFiles(self):
|
||||||
return self._sdFiles
|
return self._sdFiles
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue