Added a new timeout for polling when a target temperature is set
This commit is contained in:
parent
540cf4f4d9
commit
558465fdcd
5 changed files with 28 additions and 1 deletions
|
|
@ -83,6 +83,7 @@ def getSettings():
|
|||
"timeoutDetection": s.getFloat(["serial", "timeout", "detection"]),
|
||||
"timeoutCommunication": s.getFloat(["serial", "timeout", "communication"]),
|
||||
"timeoutTemperature": s.getFloat(["serial", "timeout", "temperature"]),
|
||||
"timeoutTemperatureTargetSet": s.getFloat(["serial", "timeout", "temperatureTargetSet"]),
|
||||
"timeoutSdStatus": s.getFloat(["serial", "timeout", "sdStatus"]),
|
||||
"log": s.getBoolean(["serial", "log"]),
|
||||
"additionalPorts": s.get(["serial", "additionalPorts"]),
|
||||
|
|
@ -234,6 +235,7 @@ def _saveSettings(data):
|
|||
if "timeoutDetection" in data["serial"].keys(): s.setFloat(["serial", "timeout", "detection"], data["serial"]["timeoutDetection"])
|
||||
if "timeoutCommunication" in data["serial"].keys(): s.setFloat(["serial", "timeout", "communication"], data["serial"]["timeoutCommunication"])
|
||||
if "timeoutTemperature" in data["serial"].keys(): s.setFloat(["serial", "timeout", "temperature"], data["serial"]["timeoutTemperature"])
|
||||
if "timeoutTemperatureTargetSet" in data["serial"].keys(): s.setFloat(["serial", "timeout", "temperatureTargetSet"], data["serial"]["timeoutTemperatureTargetSet"])
|
||||
if "timeoutSdStatus" in data["serial"].keys(): s.setFloat(["serial", "timeout", "sdStatus"], data["serial"]["timeoutSdStatus"])
|
||||
if "additionalPorts" in data["serial"] and isinstance(data["serial"]["additionalPorts"], (list, tuple)): s.set(["serial", "additionalPorts"], data["serial"]["additionalPorts"])
|
||||
if "additionalBaudrates" in data["serial"] and isinstance(data["serial"]["additionalBaudrates"], (list, tuple)): s.set(["serial", "additionalBaudrates"], data["serial"]["additionalBaudrates"])
|
||||
|
|
|
|||
|
|
@ -80,6 +80,7 @@ default_settings = {
|
|||
"connection": 10,
|
||||
"communication": 30,
|
||||
"temperature": 5,
|
||||
"temperatureTargetSet": 1,
|
||||
"sdStatus": 1
|
||||
},
|
||||
"additionalPorts": [],
|
||||
|
|
|
|||
|
|
@ -132,6 +132,7 @@ $(function() {
|
|||
self.serial_timeoutDetection = ko.observable(undefined);
|
||||
self.serial_timeoutCommunication = ko.observable(undefined);
|
||||
self.serial_timeoutTemperature = ko.observable(undefined);
|
||||
self.serial_timeoutTemperatureTargetSet = ko.observable(undefined);
|
||||
self.serial_timeoutSdStatus = ko.observable(undefined);
|
||||
self.serial_log = ko.observable(undefined);
|
||||
self.serial_additionalPorts = ko.observable(undefined);
|
||||
|
|
|
|||
|
|
@ -27,6 +27,15 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group" title="{{ _('Interval in which to poll for the temperature information from the printer when a target temperature is set') }}">
|
||||
<label class="control-label" for="settings-serialTimeoutTemperatureTargetSet">{{ _('Temperature interval when target set') }}</label>
|
||||
<div class="controls">
|
||||
<div class="input-append">
|
||||
<input type="number" step="any" min="1" class="input-mini text-right" data-bind="value: serial_timeoutTemperatureTargetSet" id="settings-serialTimeoutTemperatureTargetSet">
|
||||
<span class="add-on">s</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group" title="{{ _('Interval in which to poll for the SD printing status information from the printer while printing') }}">
|
||||
<label class="control-label" for="settings-serialTimeoutSdStatus">{{ _('SD status interval') }}</label>
|
||||
<div class="controls">
|
||||
|
|
|
|||
|
|
@ -222,6 +222,7 @@ class MachineCom(object):
|
|||
self._baudrateDetectRetry = 0
|
||||
self._temp = {}
|
||||
self._bedTemp = None
|
||||
self._temperatureTargetSetThreshold = 25
|
||||
self._tempOffsets = dict()
|
||||
self._commandQueue = queue.Queue()
|
||||
self._currentZ = None
|
||||
|
|
@ -1253,7 +1254,7 @@ class MachineCom(object):
|
|||
|
||||
def _onConnected(self):
|
||||
self._serial.timeout = settings().getFloat(["serial", "timeout", "communication"])
|
||||
self._temperature_timer = RepeatedTimer(lambda: get_interval("temperature", default_value=4.0), self._poll_temperature, run_first=True)
|
||||
self._temperature_timer = RepeatedTimer(self._getTemperatureTimerInterval, self._poll_temperature, run_first=True)
|
||||
self._temperature_timer.start()
|
||||
|
||||
self._changeState(self.STATE_OPERATIONAL)
|
||||
|
|
@ -1269,6 +1270,19 @@ class MachineCom(object):
|
|||
eventManager().fire(Events.CONNECTED, payload)
|
||||
self.sendGcodeScript("afterPrinterConnected", replacements=dict(event=payload))
|
||||
|
||||
def _getTemperatureTimerInterval(self):
|
||||
if self.isBusy():
|
||||
return get_interval("temperature", default_value=4.0)
|
||||
|
||||
for temp in [self._temp[k][1] for k in self._temp.keys()]:
|
||||
if temp > self._temperatureTargetSetThreshold:
|
||||
return get_interval("temperatureTargetSet", default_value=1.0)
|
||||
|
||||
if self._bedTemp and len(self._bedTemp) > 0 and self._bedTemp[1] > self._temperatureTargetSetThreshold:
|
||||
return get_interval("temperatureTargetSet", default_value=1.0)
|
||||
|
||||
return get_interval("temperature", default_value=4.0)
|
||||
|
||||
def _sendFromQueue(self):
|
||||
if not self._commandQueue.empty() and not self.isStreaming():
|
||||
entry = self._commandQueue.get()
|
||||
|
|
|
|||
Loading…
Reference in a new issue