From b1101f5150bf3b075ab7cd93df51828d3c34de7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gina=20H=C3=A4u=C3=9Fge?= Date: Fri, 14 Jul 2017 11:07:25 +0200 Subject: [PATCH] Virtual printer: support pinning of temperatures Helpful for simulating disconnected thermistors, preparation for debugging #2007 --- src/octoprint/plugins/virtual_printer/virtual.py | 7 +++++++ src/octoprint/settings.py | 1 + 2 files changed, 8 insertions(+) diff --git a/src/octoprint/plugins/virtual_printer/virtual.py b/src/octoprint/plugins/virtual_printer/virtual.py index 632cddf4..a87e16a0 100644 --- a/src/octoprint/plugins/virtual_printer/virtual.py +++ b/src/octoprint/plugins/virtual_printer/virtual.py @@ -65,6 +65,9 @@ class VirtualPrinter(object): self.currentExtruder = 0 self.extruderCount = settings().getInt(["devel", "virtualPrinter", "numExtruders"]) + self.pinnedExtruders = settings().get(["devel", "virtualPrinter", "pinnedExtruders"]) + if self.pinnedExtruders is None: + self.pinnedExtruders = dict() self.sharedNozzle = settings().getBoolean(["devel", "virtualPrinter", "sharedNozzle"]) self.temperatureCount = (1 if self.sharedNozzle else self.extruderCount) @@ -1001,6 +1004,10 @@ class VirtualPrinter(object): timeDiff = self.lastTempAt - time.time() self.lastTempAt = time.time() for i in range(len(self.temp)): + if i in self.pinnedExtruders: + self.temp[i] = self.pinnedExtruders[i] + continue + if abs(self.temp[i] - self.targetTemp[i]) > delta: oldVal = self.temp[i] self.temp[i] += math.copysign(timeDiff * 10, self.targetTemp[i] - self.temp[i]) diff --git a/src/octoprint/settings.py b/src/octoprint/settings.py index 221d35e7..269fa3de 100644 --- a/src/octoprint/settings.py +++ b/src/octoprint/settings.py @@ -342,6 +342,7 @@ default_settings = { "okAfterResend": False, "forceChecksum": False, "numExtruders": 1, + "pinnedExtruders": None, "includeCurrentToolInTemps": True, "includeFilenameInOpened": True, "hasBed": True,