aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--klippy/gcode.py11
-rw-r--r--klippy/klippy.py7
2 files changed, 12 insertions, 6 deletions
diff --git a/klippy/gcode.py b/klippy/gcode.py
index ff7e2443..d607a0cc 100644
--- a/klippy/gcode.py
+++ b/klippy/gcode.py
@@ -72,12 +72,11 @@ class GCodeParser:
self.build_handlers()
if is_ready and self.is_fileinput and self.fd_handle is None:
self.fd_handle = self.reactor.register_fd(self.fd, self.process_data)
- if not is_ready:
- logging.info("Dumping gcode input %d blocks" % (
- len(self.input_log),))
- # XXX - read from self.input_log is not thread safe
- for eventtime, data in self.input_log:
- logging.info("Read %f: %s" % (eventtime, repr(data)))
+ def dump_debug(self):
+ logging.info("Dumping gcode input %d blocks" % (
+ len(self.input_log),))
+ for eventtime, data in self.input_log:
+ logging.info("Read %f: %s" % (eventtime, repr(data)))
# Parse input into commands
args_r = re.compile('([a-zA-Z*])')
def process_commands(self, eventtime):
diff --git a/klippy/klippy.py b/klippy/klippy.py
index 9b7a68ab..0dbc8f60 100644
--- a/klippy/klippy.py
+++ b/klippy/klippy.py
@@ -82,6 +82,7 @@ class Printer:
self.connect_timer = self.reactor.register_timer(
self.connect, self.reactor.NOW)
self.all_config_options = {}
+ self.need_dump_debug = False
self.state_message = message_startup
self.debugoutput = self.dictionary = None
self.fileconfig = None
@@ -91,6 +92,10 @@ class Printer:
self.debugoutput = debugoutput
self.dictionary = dictionary
def stats(self, eventtime):
+ if self.need_dump_debug:
+ # Call dump_debug here so it is executed in the main thread
+ self.gcode.dump_debug()
+ self.need_dump_debug = False
out = []
out.append(self.gcode.stats(eventtime))
toolhead = self.objects.get('toolhead')
@@ -174,6 +179,8 @@ class Printer:
def get_state_message(self):
return self.state_message
def note_shutdown(self, msg):
+ if self.state_message == 'Running':
+ self.need_dump_debug = True
self.state_message = "Firmware shutdown: %s%s" % (
msg, message_shutdown)
self.gcode.set_printer_ready(False)