Update how the printing time remaining estimate is calculated. This gives better accurate results as the first part of the print is not added in the estimate, removing the heating and startup-code from the equasion.
parent
b6e62387d4
commit
6ebaa35518
|
@ -352,13 +352,12 @@ class printWindow(wx.Frame):
|
|||
status += 'Line: -/%d\n' % (len(self.gcodeList))
|
||||
else:
|
||||
printTime = self.machineCom.getPrintTime() / 60
|
||||
printTimeTotal = printTime * len(self.gcodeList) / self.machineCom.getPrintPos()
|
||||
printTimeLeft = printTimeTotal - printTime
|
||||
printTimeLeft = self.machineCom.getPrintTimeRemainingEstimate()
|
||||
status += 'Line: %d/%d %d%%\n' % (self.machineCom.getPrintPos(), len(self.gcodeList), self.machineCom.getPrintPos() * 100 / len(self.gcodeList))
|
||||
if self.currentZ > 0:
|
||||
status += 'Height: %0.1f\n' % (self.currentZ)
|
||||
status += 'Print time: %02d:%02d\n' % (int(printTime / 60), int(printTime % 60))
|
||||
if printTime < 1:
|
||||
if printTimeLeft == None:
|
||||
status += 'Print time left: Unknown\n'
|
||||
else:
|
||||
status += 'Print time left: %02d:%02d\n' % (int(printTimeLeft / 60), int(printTimeLeft % 60))
|
||||
|
|
|
@ -180,9 +180,9 @@ class simpleModeWindow(configBase.configWindowBase):
|
|||
put('support', 'None')
|
||||
#put('machine_center_x', '100')
|
||||
#put('machine_center_y', '100')
|
||||
put('retraction_enable', 'True')
|
||||
put('retraction_enable', 'False')
|
||||
put('retraction_min_travel', '5.0')
|
||||
put('retraction_speed', '13.5')
|
||||
put('retraction_speed', '40.0')
|
||||
put('retraction_amount', '4.5')
|
||||
put('retraction_extra', '0.0')
|
||||
put('travel_speed', '150')
|
||||
|
|
|
@ -161,6 +161,7 @@ class MachineCom(object):
|
|||
self._currentZ = -1
|
||||
self._heatupWaitStartTime = 0
|
||||
self._heatupWaitTimeLost = 0.0
|
||||
self._printStartTime100 = None
|
||||
|
||||
self.thread = threading.Thread(target=self._monitor)
|
||||
self.thread.daemon = True
|
||||
|
@ -226,7 +227,15 @@ class MachineCom(object):
|
|||
return self._gcodePos
|
||||
|
||||
def getPrintTime(self):
|
||||
return time.time() - self._printStartTime - self._heatupWaitTimeLost
|
||||
return time.time() - self._printStartTime
|
||||
|
||||
def getPrintTimeRemainingEstimate(self):
|
||||
if self._printStartTime100 == None or self.getPrintPos() < 200:
|
||||
return None
|
||||
printTime = (time.time() - self._printStartTime100) / 60
|
||||
printTimeTotal = printTime * (len(self._gcodeList) - 100) / (self.getPrintPos() - 100)
|
||||
printTimeLeft = printTimeTotal - printTime
|
||||
return printTimeLeft
|
||||
|
||||
def getTemp(self):
|
||||
return self._temp
|
||||
|
@ -464,6 +473,8 @@ class MachineCom(object):
|
|||
if self._gcodePos >= len(self._gcodeList):
|
||||
self._changeState(self.STATE_OPERATIONAL)
|
||||
return
|
||||
if self._gcodePos == 100:
|
||||
self._printStartTime100 = time.time()
|
||||
line = self._gcodeList[self._gcodePos]
|
||||
if type(line) is tuple:
|
||||
self._printSection = line[1]
|
||||
|
@ -498,6 +509,7 @@ class MachineCom(object):
|
|||
return
|
||||
self._gcodeList = gcodeList
|
||||
self._gcodePos = 0
|
||||
self._printStartTime100 = None
|
||||
self._printSection = 'CUSTOM'
|
||||
self._changeState(self.STATE_PRINTING)
|
||||
self._printStartTime = time.time()
|
||||
|
|
Loading…
Reference in New Issue