##################################################################### # Macros to debug the printer variable # - DUMP_PARAMETERS # - DUMP_CONFIG # - DUMP_WARNINGS # - DUMP_SETTINGS ##################################################################### [gcode_macro xk] gcode: M117 xk M118 xk # M117 {quad_gantry_level.applied} # M118 {quad_gantry_level.applied} {% if printer['quad_gantry_level'] is not none %} M117 not none M118 not none {% if printer['quad_gantry_level'].applied %} M117 not none yes M118 not none yes {% endif %} {% else %} M117 not not none M118 not not none {% endif %} {% if printer['quad_gantry_level'] is defined %} M117 defined M118 defined {% if printer['quad_gantry_level'].applied %} M117 defined yes M118 defined yes {% endif %} {% else %} M117 not defined M118 not defined {% endif %} ## Use: ## - DUMP_PARAMETERS ## - DUMP_PARAMETERS S='gcode_macro _USER_VARIABLE' [gcode_macro DUMP_PARAMETERS] description: Debug: Print all entries of the printer object gcode: {% set parameters = [] %} {% for name1 in printer|sort %} {% if 'S' in params %} {% if name1 is in [params.S] %} {% for name2 in printer[name1]|sort %} {% set parameters = parameters.append("printer['%s'].%s = %s" % (name1, name2, printer[name1][name2])) %} {% endfor %} {% endif %} {% else %} {% if name1 is not in ['configfile'] %} {% for name2 in printer[name1]|sort %} {% set parameters = parameters.append("printer['%s'].%s = %s" % (name1, name2, printer[name1][name2])) %} {% endfor %} {% endif %} {% endif %} {% endfor %} {action_respond_info(parameters|join("\n"))} ## Use: ## - DUMP_CONFIG S='printer' [gcode_macro DUMP_CONFIG] description: Debug: Print the selected entry of the printer config object gcode: {% if 'S' in params %} {% set parameters = [] %} {% for name1 in printer.configfile.config %} {% if name1 is in [params.S] %} {% for name2 in printer.configfile.config[name1]|sort %} {% set parameters = parameters.append("printer.configfile.config['%s'].%s = %s" % (name1, name2, printer.configfile.config[name1][name2])) %} {% endfor %} {% endif %} {% endfor %} {action_respond_info(parameters|join("\n"))} {% else %} {action_respond_info("WARNING: parameter S needed call e.g. DUMP_CONFIG S='printer'")} {% endif %} ## Use: ## - DUMP_WARNINGS [gcode_macro DUMP_WARNINGS] description: Debug: Print all warning messages from klipper gcode: {% set parameters = ["printer.configfile.warnings:"] %} {% for name1 in printer.configfile.warnings %} {% set parameters = parameters.append("%s -> %s -> %s\n%s" % (name1.type, name1.section, name1.option, name1.message)) %} {% endfor %} {action_respond_info(parameters|join("\n"))} ## Use: ## - DUMP_SETTINGS S='printer' [gcode_macro DUMP_SETTINGS] description: Debug: Print the selected entry of the printer settings object gcode: {% if 'S' in params %} {% set parameters = [] %} {% for name1 in printer.configfile.settings %} {% if name1 is in [params.S] %} {% for name2 in printer.configfile.settings[name1]|sort %} {% set parameters = parameters.append("printer.configfile.settings['%s'].%s = %s" % (name1, name2, printer.configfile.settings[name1][name2])) %} {% endfor %} {% endif %} {% endfor %} {action_respond_info(parameters|join("\n"))} {% else %} {action_respond_info("WARNING: parameter S needed call e.g. DUMP_SETTINGS S='printer'")} {% endif %} ##################################################################### # Macros needed for several debug activities #####################################################################