Upload Q1_Pro klipper

This commit is contained in:
CChen616
2024-05-10 10:41:37 +08:00
parent 81e23fab2b
commit 637c14aa97
459 changed files with 104963 additions and 109121 deletions

View File

@@ -30,6 +30,9 @@ class VirtualSD:
gcode_macro = self.printer.load_object(config, 'gcode_macro')
self.on_error_gcode = gcode_macro.load_template(
config, 'on_error_gcode', '')
# power lose resume
self.lines = 0
self.save_every_n_lines = 50
# Register commands
self.gcode = self.printer.lookup_object('gcode')
for cmd in ['M20', 'M21', 'M23', 'M24', 'M25', 'M26', 'M27']:
@@ -120,6 +123,7 @@ class VirtualSD:
self.do_pause()
self.current_file.close()
self.current_file = None
self.lines = 0
self.print_stats.note_cancel()
self.file_position = self.file_size = 0.
# G-Code commands
@@ -232,16 +236,20 @@ class VirtualSD:
partial_input = ""
lines = []
error_message = None
plr_file = open("/home/mks/scripts/plr/plr_record", 'w', buffering=0)
while not self.must_pause_work:
if not lines:
# Read more data
try:
data = self.current_file.read(8192)
except:
plr_file.close()
logging.exception("virtual_sdcard read")
break
if not data:
# End of file
self.lines = 0
plr_file.close()
self.current_file.close()
self.current_file = None
logging.info("Finished SD card print")
@@ -263,6 +271,13 @@ class VirtualSD:
next_file_position = self.file_position + len(line) + 1
self.next_file_position = next_file_position
try:
self.lines += 1
if self.lines % self.save_every_n_lines == 0:
# temp = "SAVE_VARIABLE VARIABLE=gcode_lines VALUE=" + str(self.lines)
# self.gcode._process_commands([temp], need_ack=False)
plr_file.seek(0)
plr_file.write(str(self.lines))
plr_file.truncate()
self.gcode.run_script(line)
except self.gcode.error as e:
error_message = str(e)
@@ -287,6 +302,7 @@ class VirtualSD:
lines = []
partial_input = ""
logging.info("Exiting SD card print (position %d)", self.file_position)
plr_file.close()
self.work_timer = None
self.cmd_from_sd = False
if error_message is not None:
@@ -296,6 +312,16 @@ class VirtualSD:
else:
self.print_stats.note_complete()
return self.reactor.NEVER
# cmd_TOGGLE_PLR_help = "enable or disable power lose resume"
# def cmd_TOGGLE_PLR(self, gcmd):
# if self.plr_enable:
# self.plr_enable = False
# temp = "SAVE_VARIABLE VARIABLE=plr_enable VALUE=" + str(self.plr_enable)
# self.gcode._process_commands([temp], need_ack=False)
# gcmd.respond_raw("Power lose resume disabled")
# else:
# self.plr_enable = True
# gcmd.respond_raw("Power lose resume enabled")
def load_config(config):
return VirtualSD(config)