Resend correct gcode line when resend is requested

(manually cherry picked from commit c8875fd)
master
Bryan Mayland 2013-06-20 17:41:10 +02:00 committed by Gina Häußge
parent c24a66c361
commit bbad030a92
1 changed files with 12 additions and 5 deletions

View File

@ -40,7 +40,13 @@ def serialList():
i+=1
except:
pass
baselist = baselist + glob.glob("/dev/ttyUSB*") + glob.glob("/dev/ttyACM*") + glob.glob("/dev/tty.usb*") + glob.glob("/dev/cu.*") + glob.glob("/dev/rfcomm*")
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/rfcomm*")
prev = settings().get(["serial", "port"])
if prev in baselist:
baselist.remove(prev)
@ -766,10 +772,11 @@ class MachineCom(object):
if lineToResend is not None:
self._resendDelta = self._currentLine - lineToResend
if self._resendDelta > len(self._lastLines):
if self._resendDelta >= len(self._lastLines):
self._errorValue = "Printer requested line %d but history is only available up to line %d" % (lineToResend, self._currentLine - len(self._lastLines))
self._changeState(self.STATE_ERROR)
self._logger.warn(self._errorValue)
if self.isPrinting():
self._changeState(self.STATE_ERROR)
else:
self._resendNextCommand()
@ -821,13 +828,13 @@ class MachineCom(object):
# Make sure we are only handling one sending job at a time
with self._sendingLock:
self._logger.debug("Resending line %d, delta is %d, history log is %s items strong" % (self._currentLine - self._resendDelta, self._resendDelta, len(self._lastLines)))
cmd = self._lastLines[-self._resendDelta]
cmd = self._lastLines[-(self._resendDelta+1)]
lineNumber = self._currentLine - self._resendDelta
self._doSendWithChecksum(cmd, lineNumber)
self._resendDelta -= 1
if self._resendDelta <= 0:
if self._resendDelta < 0:
self._resendDelta = None
def _sendCommand(self, cmd, sendChecksum=False):