92 lines
5.0 KiB
INI
92 lines
5.0 KiB
INI
#Аргументы
|
||
#NAME (строка) — отфильтруйте результаты по названию (отображайте только переменные с названиями, содержащими эту строку)
|
||
#VALUE (строка) — отфильтруйте результаты по значению (отображайте только значения, содержащие это значение)
|
||
#SHOW_CFG (целое число, 0-1) — установите значение 1, чтобы включить в вывод всю конфигурацию. По умолчанию 0 (конфигурация отфильтровывается)
|
||
#Примеры
|
||
#DUMP_VARIABLES: Возвращает все переменные (за исключением printer['configfile'].config и printer['configfile'].settings, так как они содержат всю конфигурацию).
|
||
#DUMP_VARIABLES NAME=stepper: Возвращает все переменные, в имени которых есть строка stepper.
|
||
#DUMP_VARIABLES VALUE=extruder : Возвращает все переменные, в значении которых есть строка extruder.
|
||
#DUMP_VARIABLES NAME=stepper VALUE=extruder : Возвращает все переменные, в названии которых есть строка stepper и в значении которых есть строка extruder.
|
||
#DUMP_VARIABLES SHOW_CFG=1 : Возвращает все переменные, включая конфигурацию.
|
||
|
||
[gcode_macro DUMP_VARIABLES]
|
||
gcode:
|
||
{% set filter_name = params.NAME|default('')|string|lower %}
|
||
{% set filter_value = params.VALUE|default('')|string|lower %}
|
||
{% set show_cfg = params.SHOW_CFG|default(0)|int %}
|
||
|
||
{% set out = [] %}
|
||
|
||
{% for key1 in printer %}
|
||
{% for key2 in printer[key1] %}
|
||
{% if (show_cfg or not (key1|lower == 'configfile' and key2|lower in ['config', 'settings'])) and (filter_name in key1|lower or filter_name in key2|lower) and filter_value in printer[key1][key2]|string|lower %}
|
||
{% set dummy = out.append("printer['%s'].%s = %s" % (key1, key2, printer[key1][key2])) %}
|
||
{% endif %}
|
||
{% else %}
|
||
{% if filter_name in key1|lower and filter_value in printer[key1]|string|lower %}
|
||
{% set dummy = out.append("printer['%s'] = %s" % (key1, printer[key1])) %}
|
||
{% endif %}
|
||
{% endfor %}
|
||
{% endfor %}
|
||
|
||
{action_respond_info(out|join("\n"))}
|
||
|
||
|
||
#Аргументы
|
||
#NAME (строка) (обязательно) — укажите имя переменной, которую вы хотите получить.
|
||
#Примеры
|
||
#GET_VARIABLE NAME=toolhead: Возвращает значение и тип переменной printer.toolhead.
|
||
#GET_VARIABLE NAME=bed_mesh.profiles.default.points.1.0: Возвращает значение и тип переменной printer.bed_mesh.profiles.default.points[1][0].
|
||
[gcode_macro GET_VARIABLE]
|
||
gcode:
|
||
{% set names = (params.NAME).split('.')|list %}
|
||
{% set join = (params.JOIN)|default(1)|int %}
|
||
|
||
{% set _dummy0 = namespace( break = 0 ) %}
|
||
{% set _dummy1 = namespace( out = printer[names|first] ) %}
|
||
|
||
{% for name in names if _dummy0.break == 0 %}
|
||
{% if loop.index > 1 %}
|
||
{% if name in _dummy1.out %}
|
||
{% set _dummy1.out = _dummy1.out[name] %}
|
||
{% elif name[0] in '0123456789' and _dummy1.out is iterable and _dummy1.out is not string and _dummy1.out is not mapping and _dummy1.out|length > name[0]|int %}
|
||
{% set _dummy1.out = _dummy1.out[name|int] %}
|
||
{% else %}
|
||
{% set _dummy0.break = loop.index0 %}
|
||
{% endif %}
|
||
{% endif %}
|
||
{% endfor %}
|
||
|
||
{% if _dummy1.out is boolean %}
|
||
{ action_respond_info('Type: boolean') }
|
||
{% elif _dummy1.out is float %}
|
||
{ action_respond_info('Type: float') }
|
||
{% elif _dummy1.out is integer %}
|
||
{ action_respond_info('Type: integer') }
|
||
{% elif _dummy1.out is mapping %}
|
||
{ action_respond_info('Type: mapping') }
|
||
{% elif _dummy1.out is string %}
|
||
{ action_respond_info('Type: string') }
|
||
{% elif _dummy1.out is iterable %}
|
||
{ action_respond_info('Type: iterable') }
|
||
{% elif _dummy1.out is none %}
|
||
{ action_respond_info('Type: none') }
|
||
{% elif _dummy1.out is undefined %}
|
||
{ action_respond_info('Type: undefined') }
|
||
{% elif _dummy1.out is callable %}
|
||
{ action_respond_info('Type: callable') }
|
||
{% else %}
|
||
{ action_respond_info('Type: unknown') }
|
||
{% endif %}
|
||
|
||
{% if join and _dummy1.out is iterable and _dummy1.out is not string and _dummy1.out is not mapping %}
|
||
{ action_respond_info('%s' % _dummy1.out|join("\n")) }
|
||
{% else %}
|
||
{ action_respond_info('%s' % _dummy1.out) }
|
||
{% endif %}
|
||
|
||
{% if _dummy0.break != 0 %}
|
||
{ action_respond_info('"printer.%s" does not contain "%s"!' % (names[0:_dummy0.break]|join('.'), names[_dummy0.break])) }
|
||
{% endif %}
|
||
|