Properly initialize timelapse when started during a paused print, better error resilience in event handler
parent
54679e663e
commit
4ab3e5424e
|
@ -46,7 +46,10 @@ class EventManager(object):
|
|||
eventListeners = self._registeredListeners[event]
|
||||
for listener in eventListeners:
|
||||
self._logger.debug("Sending action to %r" % listener)
|
||||
listener(event, payload)
|
||||
try:
|
||||
listener(event, payload)
|
||||
except:
|
||||
self._logger.exception("Got an exception while sending event %s (Payload: %r) to %s" % (event, payload, listener))
|
||||
|
||||
|
||||
def subscribe(self, event, callback):
|
||||
|
|
|
@ -51,6 +51,7 @@ class Timelapse(object):
|
|||
eventManager().subscribe("PrintStarted", self.onPrintStarted)
|
||||
eventManager().subscribe("PrintFailed", self.onPrintDone)
|
||||
eventManager().subscribe("PrintDone", self.onPrintDone)
|
||||
eventManager().subscribe("PrintResumed", self.onPrintResumed)
|
||||
for (event, callback) in self.eventSubscriptions():
|
||||
eventManager().subscribe(event, callback)
|
||||
|
||||
|
@ -62,6 +63,7 @@ class Timelapse(object):
|
|||
eventManager().unsubscribe("PrintStarted", self.onPrintStarted)
|
||||
eventManager().unsubscribe("PrintFailed", self.onPrintDone)
|
||||
eventManager().unsubscribe("PrintDone", self.onPrintDone)
|
||||
eventManager().unsubscribe("PrintResumed", self.onPrintResumed)
|
||||
for (event, callback) in self.eventSubscriptions():
|
||||
eventManager().unsubscribe(event, callback)
|
||||
|
||||
|
@ -77,12 +79,20 @@ class Timelapse(object):
|
|||
"""
|
||||
self.stopTimelapse()
|
||||
|
||||
def onPrintResumed(self, event, payload):
|
||||
"""
|
||||
Override this to perform additional actions upon the pausing of a print job.
|
||||
"""
|
||||
if not self._inTimelapse:
|
||||
self.startTimelapse(payload)
|
||||
|
||||
def eventSubscriptions(self):
|
||||
"""
|
||||
Override this method to subscribe to additional events by returning an array of (event, callback) tuples.
|
||||
|
||||
Events that are already subscribed:
|
||||
* PrintStarted - self.onPrintStarted
|
||||
* PrintResumed - self.onPrintResumed
|
||||
* PrintFailed - self.onPrintDone
|
||||
* PrintDone - self.onPrintDone
|
||||
"""
|
||||
|
|
|
@ -386,6 +386,7 @@ class MachineCom(object):
|
|||
self.sendCommand("M24")
|
||||
else:
|
||||
self._sendNext()
|
||||
eventManager().fire("PrintResumed", self._currentFile.getFilename())
|
||||
if pause and self.isPrinting():
|
||||
self._changeState(self.STATE_PAUSED)
|
||||
if self.isSdFileSelected():
|
||||
|
|
Loading…
Reference in New Issue