From aa7a781c9256966af603aacecf691e0b455e6bc7 Mon Sep 17 00:00:00 2001 From: make-ing Date: Fri, 15 Jan 2016 11:53:27 +0100 Subject: [PATCH 1/3] Testing slider bug fix --- src/octoprint/util/comm_acc2.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/octoprint/util/comm_acc2.py b/src/octoprint/util/comm_acc2.py index 2ad4a3be..f6b1234b 100644 --- a/src/octoprint/util/comm_acc2.py +++ b/src/octoprint/util/comm_acc2.py @@ -673,10 +673,10 @@ class MachineCom(object): obj = self._regex_feedrate.search(cmd) if obj is not None: feedrate_cmd = cmd[obj.start():obj.end()] + self._actual_feedrate = int(feedrate_cmd[1:]) if feedrate_cmd in self._feedrate_dict: new_feedrate = self._feedrate_dict[feedrate_cmd] else: - self._actual_feedrate = int(feedrate_cmd[1:]) new_feedrate = round(self._actual_feedrate * self._feedrate_factor) # TODO replace with value from printer profile if new_feedrate > 5000: @@ -694,10 +694,10 @@ class MachineCom(object): obj = self._regex_intensity.search(cmd) if obj is not None: intensity_cmd = cmd[obj.start():obj.end()] + self._actual_intensity = int(intensity_cmd[1:]) if intensity_cmd in self._intensity_dict: new_intensity = self._intensity_dict[intensity_cmd] else: - self._actual_intensity = int(intensity_cmd[1:]) new_intensity = round(self._actual_intensity * self._intensity_factor) if new_intensity > 1000: new_intensity = 1000 From 6867ab99a2788796315f3a3dade0ac57d32f935d Mon Sep 17 00:00:00 2001 From: make-ing Date: Fri, 15 Jan 2016 15:11:21 +0100 Subject: [PATCH 2/3] Testing slider bug fix: removed dictionary stuff --- src/octoprint/util/comm_acc2.py | 32 +++++++++++--------------------- 1 file changed, 11 insertions(+), 21 deletions(-) diff --git a/src/octoprint/util/comm_acc2.py b/src/octoprint/util/comm_acc2.py index f6b1234b..a8808fd6 100644 --- a/src/octoprint/util/comm_acc2.py +++ b/src/octoprint/util/comm_acc2.py @@ -82,8 +82,6 @@ class MachineCom(object): self._actual_feedrate = None self._intensity_factor = 1 self._actual_intensity = None - self._feedrate_dict = {} - self._intensity_dict = {} # regular expressions self._regex_command = re.compile("^\s*\$?([GM]\d+|[TH])") @@ -649,19 +647,19 @@ class MachineCom(object): temp = value / 100.0 if temp > 0: self._feedrate_factor = temp - self._feedrate_dict = {} if self._actual_feedrate is not None: temp = round(self._actual_feedrate * self._feedrate_factor) # TODO replace with value from printer profile if temp > 5000: temp = 5000 + elif temp < 30: + temp = 30 self.sendCommand('F%d' % round(temp)) def _set_intensity_override(self, value): temp = value / 100.0 if temp >= 0: self._intensity_factor = temp - self._intensity_dict = {} if self._actual_intensity is not None: temp = round(self._actual_intensity * self._intensity_factor) if temp > 1000: @@ -674,16 +672,12 @@ class MachineCom(object): if obj is not None: feedrate_cmd = cmd[obj.start():obj.end()] self._actual_feedrate = int(feedrate_cmd[1:]) - if feedrate_cmd in self._feedrate_dict: - new_feedrate = self._feedrate_dict[feedrate_cmd] - else: - new_feedrate = round(self._actual_feedrate * self._feedrate_factor) - # TODO replace with value from printer profile - if new_feedrate > 5000: - new_feedrate = 5000 - elif new_feedrate < 30: - new_feedrate = 30 - self._feedrate_dict[feedrate_cmd] = new_feedrate + new_feedrate = round(self._actual_feedrate * self._feedrate_factor) + # TODO replace with value from printer profile + if new_feedrate > 5000: + new_feedrate = 5000 + elif new_feedrate < 30: + new_feedrate = 30 else: return cmd return cmd.replace(feedrate_cmd, 'F%d' % round(new_feedrate)) @@ -695,13 +689,9 @@ class MachineCom(object): if obj is not None: intensity_cmd = cmd[obj.start():obj.end()] self._actual_intensity = int(intensity_cmd[1:]) - if intensity_cmd in self._intensity_dict: - new_intensity = self._intensity_dict[intensity_cmd] - else: - new_intensity = round(self._actual_intensity * self._intensity_factor) - if new_intensity > 1000: - new_intensity = 1000 - self._intensity_dict[intensity_cmd] = new_intensity + new_intensity = round(self._actual_intensity * self._intensity_factor) + if new_intensity > 1000: + new_intensity = 1000 else: return cmd return cmd.replace(intensity_cmd, 'S%d' % round(new_intensity)) From bead55135397a1d4bb2d7aaab364b1f1b00bd352 Mon Sep 17 00:00:00 2001 From: make-ing Date: Fri, 15 Jan 2016 16:19:07 +0100 Subject: [PATCH 3/3] Testing slider bug fix: wrong variable used --- src/octoprint/util/comm_acc2.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/octoprint/util/comm_acc2.py b/src/octoprint/util/comm_acc2.py index a8808fd6..38cd1b23 100644 --- a/src/octoprint/util/comm_acc2.py +++ b/src/octoprint/util/comm_acc2.py @@ -211,9 +211,9 @@ class MachineCom(object): self._errorValue = get_exception_string() self.close(True) else: + cmd, _, _ = self._process_command_phase("sending", cmd) self._log("Send: %s" % cmd) try: - self._cmd, _, _ = self._process_command_phase("sending", self._cmd) self._serial.write(cmd) self._process_command_phase("sent", cmd) except serial.SerialException: @@ -648,23 +648,23 @@ class MachineCom(object): if temp > 0: self._feedrate_factor = temp if self._actual_feedrate is not None: - temp = round(self._actual_feedrate * self._feedrate_factor) + new_feedrate = round(self._actual_feedrate * self._feedrate_factor) # TODO replace with value from printer profile - if temp > 5000: - temp = 5000 - elif temp < 30: - temp = 30 - self.sendCommand('F%d' % round(temp)) + if new_feedrate > 5000: + new_feedrate = 5000 + elif new_feedrate < 30: + new_feedrate = 30 + self.sendCommand('F%d' % round(new_feedrate)) def _set_intensity_override(self, value): temp = value / 100.0 if temp >= 0: self._intensity_factor = temp if self._actual_intensity is not None: - temp = round(self._actual_intensity * self._intensity_factor) - if temp > 1000: - temp = 1000 - self.sendCommand('S%d' % round(temp)) + new_intensity = round(self._actual_intensity * self._intensity_factor) + if new_intensity > 1000: + new_intensity = 1000 + self.sendCommand('S%d' % round(new_intensity)) def _replace_feedrate(self, cmd): if self._feedrate_factor != 1: