# Copyright (C) 2022 Justin Schuh # # This file may be distributed under the terms of the GNU GPLv3 license. [gcode_macro _km_save_state] description: Tracks gcode state. variable_state_set: {} variable_is_ephemeral: 0 gcode: {% if params.SAVE|int %} {% set dummy = state_set.__setitem__(params.NAME, None) %} {% else %} {% set dummy = state_set.__delitem__(params.NAME) %} {% endif %} SET_GCODE_VARIABLE MACRO=_km_save_state VARIABLE=is_ephemeral VALUE="{ 1 if state_set|length > 0 else 0 }" [gcode_macro save_gcode_state] description: Wraps SAVE_GCODE_STATE to track persistence state. Usage: See Klipper documentation rename_existing: _KM_SAVE_GCODE_STATE gcode: _KM_SAVE_GCODE_STATE {rawparams} {% set NAME = params.NAME|default("default") %} _km_save_state NAME={NAME} SAVE=1 [gcode_macro restore_gcode_state] description: Wraps RESTORE_GCODE_STATE to track persistence state. Usage: See Klipper documentation rename_existing: _KM_RESTORE_GCODE_STATE gcode: _KM_RESTORE_GCODE_STATE {rawparams} {% set NAME = params.NAME|default("default") %} _km_save_state NAME={NAME} SAVE=0