Better resilience against senseless polling intervals
This commit is contained in:
parent
8722cdadcd
commit
6600d246b7
2 changed files with 10 additions and 6 deletions
|
|
@ -22,7 +22,7 @@
|
||||||
<label class="control-label" for="settings-serialTimeoutTemperature">{{ _('Temperature interval') }}</label>
|
<label class="control-label" for="settings-serialTimeoutTemperature">{{ _('Temperature interval') }}</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<div class="input-append">
|
<div class="input-append">
|
||||||
<input type="number" step="any" min="0" class="input-mini text-right" data-bind="value: serial_timeoutTemperature" id="settings-serialTimeoutTemperature">
|
<input type="number" step="any" min="1" class="input-mini text-right" data-bind="value: serial_timeoutTemperature" id="settings-serialTimeoutTemperature">
|
||||||
<span class="add-on">s</span>
|
<span class="add-on">s</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -529,7 +529,7 @@ class MachineCom(object):
|
||||||
|
|
||||||
self.sendCommand("M24")
|
self.sendCommand("M24")
|
||||||
|
|
||||||
self._sd_status_timer = RepeatedTimer(lambda: get_interval("sdStatus"), self._poll_sd_status, run_first=True)
|
self._sd_status_timer = RepeatedTimer(lambda: get_interval("sdStatus", default_value=1.0), self._poll_sd_status, run_first=True)
|
||||||
self._sd_status_timer.start()
|
self._sd_status_timer.start()
|
||||||
else:
|
else:
|
||||||
line = self._getNext()
|
line = self._getNext()
|
||||||
|
|
@ -1181,7 +1181,7 @@ class MachineCom(object):
|
||||||
|
|
||||||
def _onConnected(self):
|
def _onConnected(self):
|
||||||
self._serial.timeout = settings().getFloat(["serial", "timeout", "communication"])
|
self._serial.timeout = settings().getFloat(["serial", "timeout", "communication"])
|
||||||
self._temperature_timer = RepeatedTimer(lambda: get_interval("temperature"), self._poll_temperature, run_first=True)
|
self._temperature_timer = RepeatedTimer(lambda: get_interval("temperature", default_value=4.0), self._poll_temperature, run_first=True)
|
||||||
self._temperature_timer.start()
|
self._temperature_timer.start()
|
||||||
|
|
||||||
self._changeState(self.STATE_OPERATIONAL)
|
self._changeState(self.STATE_OPERATIONAL)
|
||||||
|
|
@ -1997,11 +1997,15 @@ def get_new_timeout(type):
|
||||||
return now + get_interval(type)
|
return now + get_interval(type)
|
||||||
|
|
||||||
|
|
||||||
def get_interval(type):
|
def get_interval(type, default_value=0.0):
|
||||||
if type not in default_settings["serial"]["timeout"]:
|
if type not in default_settings["serial"]["timeout"]:
|
||||||
return 0
|
return default_value
|
||||||
else:
|
else:
|
||||||
return settings().getFloat(["serial", "timeout", type])
|
value = settings().getFloat(["serial", "timeout", type])
|
||||||
|
if not value:
|
||||||
|
return default_value
|
||||||
|
else:
|
||||||
|
return value
|
||||||
|
|
||||||
_temp_command_regex = re.compile("^M(?P<command>104|109|140|190)(\s+T(?P<tool>\d+)|\s+S(?P<temperature>[-+]?\d*\.?\d*))+")
|
_temp_command_regex = re.compile("^M(?P<command>104|109|140|190)(\s+T(?P<tool>\d+)|\s+S(?P<temperature>[-+]?\d*\.?\d*))+")
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue