From ba2716f968ac8e1ff75b29eb9f88d0d398a471ed Mon Sep 17 00:00:00 2001 From: make-ing Date: Wed, 13 Apr 2016 12:09:39 +0200 Subject: [PATCH 1/4] added the Raspberry Pi native serial port ttyAMA* to serialList function --- src/octoprint/util/comm_acc2.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/octoprint/util/comm_acc2.py b/src/octoprint/util/comm_acc2.py index 5581ddca..ad116e29 100644 --- a/src/octoprint/util/comm_acc2.py +++ b/src/octoprint/util/comm_acc2.py @@ -1275,6 +1275,7 @@ def serialList(): baselist = baselist \ + glob.glob("/dev/ttyUSB*") \ + glob.glob("/dev/ttyACM*") \ + + glob.glob("/dev/ttyAMA*") \ + glob.glob("/dev/tty.usb*") \ + glob.glob("/dev/cu.*") \ + glob.glob("/dev/cuaU*") \ From 64763e8ce1639d59136173c71e0173ae9363f14a Mon Sep 17 00:00:00 2001 From: make-ing Date: Mon, 2 May 2016 09:57:58 +0200 Subject: [PATCH 2/4] added version check again... was missing since the change to comm_acc2.py --- src/octoprint/util/comm_acc2.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/octoprint/util/comm_acc2.py b/src/octoprint/util/comm_acc2.py index ad116e29..30995ea5 100644 --- a/src/octoprint/util/comm_acc2.py +++ b/src/octoprint/util/comm_acc2.py @@ -147,7 +147,7 @@ class MachineCom(object): elif line.startswith('['): # feedback message self._handle_feedback_message(line) elif line.startswith('Grb'): # Grbl startup message - self._handle_startup_message() + self._handle_startup_message(line) except: self._logger.exception("Something crashed inside the monitoring loop, please report this to Mr. Beam") errorMsg = "See octoprint.log for details" @@ -405,7 +405,7 @@ class MachineCom(object): elif line[1:].startswith('Dis'): # [Disabled] pass - def _handle_startup_message(self): + def _handle_startup_message(self, line): if self.isOperational(): errorMsg = "Machine reset." self._cmd = None @@ -420,7 +420,14 @@ class MachineCom(object): self._changeState(self.STATE_LOCKED) eventManager().fire(Events.ERROR, {"error": self.getErrorString()}) else: - self._onConnected(self.STATE_LOCKED) + versionMatch = re.search("Grbl (?P.+?)(_(?P[0-9a-f]{7})(?P-dirty)?)? \[.+\]", line) + if versionMatch: + versionDict = versionMatch.groupdict() + self._writeGrblVersionToFile(versionDict) + if self._compareGrblVersion(versionDict) is False: + self._flashGrbl() + else: + self._onConnected(self.STATE_LOCKED) def _update_grbl_pos(self, line): # line example: @@ -611,7 +618,7 @@ class MachineCom(object): params = ["avrdude", "-patmega328p", "-carduino", "-b" + str(self._baudrate), "-P" + str(self._port), "-D", "-Uflash:w:" + pathToGrblHex] rc = subprocesscall(params) - if rc is False: + if rc == 0: self._log("successfully flashed new grbl version") self._openSerial() self._changeState(self.STATE_CONNECTING) From 3128ac776593d1063410927ae7bfc797c851c853 Mon Sep 17 00:00:00 2001 From: make-ing Date: Fri, 27 May 2016 18:17:39 +0200 Subject: [PATCH 3/4] bux fixing issue #67: Chrome now treats the event target attributes like Firefox, so no need for distinction anymore. --- .../plugins/svgtogcode/static/js/working_area.js | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/src/octoprint/plugins/svgtogcode/static/js/working_area.js b/src/octoprint/plugins/svgtogcode/static/js/working_area.js index 8c320b95..032b1897 100644 --- a/src/octoprint/plugins/svgtogcode/static/js/working_area.js +++ b/src/octoprint/plugins/svgtogcode/static/js/working_area.js @@ -132,14 +132,9 @@ $(function(){ }; self.getXYCoord = function(evt){ - if(isFirefox) { - var scale = evt.target.parentElement.transform.baseVal[0].matrix.a; - var x = self.px2mm(evt.offsetX) * scale; - var y = self.px2mm(parseFloat(evt.target.attributes.height.value) - evt.offsetY) * scale; - } else { - var x = self.px2mm(evt.offsetX); - var y = self.px2mm(evt.target.ownerSVGElement.getBoundingClientRect().height - evt.offsetY); // hopefully this works across browsers - } + var scale = evt.target.parentElement.transform.baseVal[0].matrix.a; + var x = self.px2mm(evt.offsetX) * scale; + var y = self.px2mm(parseFloat(evt.target.attributes.height.value) - evt.offsetY) * scale; x = Math.min(x, self.workingAreaWidthMM()); y = Math.min(y, self.workingAreaHeightMM()); return {x:x, y:y}; From 2c416eafc2527dc043a696806a36b211008c8e28 Mon Sep 17 00:00:00 2001 From: make-ing Date: Thu, 2 Jun 2016 14:43:20 +0200 Subject: [PATCH 4/4] added functionality to unlock the GUI when grbl is also unlocked with "$x" command --- src/octoprint/util/comm_acc2.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/octoprint/util/comm_acc2.py b/src/octoprint/util/comm_acc2.py index 30995ea5..609b9ef8 100644 --- a/src/octoprint/util/comm_acc2.py +++ b/src/octoprint/util/comm_acc2.py @@ -88,7 +88,7 @@ class MachineCom(object): self._finished_passes = 0 # regular expressions - self._regex_command = re.compile("^\s*\$?([GM]\d+|[TH])") + self._regex_command = re.compile("^\s*\$?([GM]\d+|[THX])") self._regex_feedrate = re.compile("F\d+", re.IGNORECASE) self._regex_intensity = re.compile("S\d+", re.IGNORECASE) @@ -755,6 +755,10 @@ class MachineCom(object): self._changeState(self.STATE_HOMING) return cmd + def _gcode_X_sent(self, cmd, cmd_type=None): + self._changeState(self.STATE_HOMING) # TODO: maybe change to seperate $X mode + return cmd + def _gcode_Hold_sent(self, cmd, cmd_type=None): self._changeState(self.STATE_PAUSED) return cmd