zkk 2bec6cd072 实现二喷头偏移值校准功能、断料自动切头开关选项、优化探针偏移校准移动速度慢的问题、优化打印结束没有调z偏移值显示保存偏移值按钮的问题等……
Squashed commit of the following:

commit 3b85e8e8d59b0d4eae75f80d9e637fe9dc272cbe
Merge: 882850db 10ec2029
Author: zkk <1007518571@qq.com>
Date:   Wed Dec 18 17:26:08 2024 +0800

    Merge branch 'develop' of https://server.creatbot.com/Gitea/CreatBot/CreatBotKlipperScreen into develop

commit 882850dbde648598e5f91281101d0ea01fd56d56
Author: zkk <1007518571@qq.com>
Date:   Wed Dec 18 17:21:16 2024 +0800

    补充双喷头偏移校准页面二维码图片

commit 10ec2029eb73e66874d5a0ec492c016480641110
Author: ruipeng <1041589370@qq.com>
Date:   Wed Dec 18 17:17:18 2024 +0800

    增加自动切换喷头开关选项

commit 3d6eed9d9526b77472ba7df29014b5768c594026
Author: zkk <1007518571@qq.com>
Date:   Mon Dec 16 16:33:34 2024 +0800

    喷头偏移值校准功能的实现

commit 40ecbb3ea4827c9bac1aa271cccc958c94c1114a
Author: zkk <1007518571@qq.com>
Date:   Fri Dec 13 09:20:00 2024 +0800

    z探针校准时指定默认激活工具头为第一个头

commit bce3caa409618ef5bc2067865940d14a1441c0f8
Author: zkk <1007518571@qq.com>
Date:   Fri Dec 13 09:19:19 2024 +0800

    优化z探针校准时候移动过慢问题

commit 4f3aa9aa4c581ae9e7a740bd37f9e80ba064c27f
Merge: e3fd413d 1a69b518
Author: zkk <1007518571@qq.com>
Date:   Thu Dec 12 10:30:00 2024 +0800

    Merge branch 'develop' of https://server.creatbot.com/Gitea/CreatBot/CreatBotKlipperScreen into develop

commit 1a69b5180de733f15550a1294a7221d6070306a0
Author: ruipeng <1041589370@qq.com>
Date:   Wed Dec 11 11:44:36 2024 +0800

    新增D600pro2、D1000的V0版机型

commit e3fd413d6256414441e9fe653c1132b1799a5cb2
Author: zkk <1007518571@qq.com>
Date:   Tue Dec 10 14:34:13 2024 +0800

    修复打印时没有修改z偏移值 仍提示保存z偏移的按钮的bug

commit 594fb668fe94fe907c028bf65ecced43ea8660cb
Author: zkk <1007518571@qq.com>
Date:   Tue Dec 10 14:25:04 2024 +0800

    设置自适应调平选项默认为关闭状态
2024-12-19 16:53:03 +08:00

68 lines
3.3 KiB
Python

import logging
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk
from ks_includes.KlippyGcodes import KlippyGcodes
from ks_includes.screen_panel import ScreenPanel
class Panel(ScreenPanel):
def __init__(self, screen, title):
title = title or _("Advanced")
super().__init__(screen, title)
self.advanced = {}
self.menu_list ={}
self.advanced_options = [
{"adaptive_leveling": {"section": "main", "name": _("Adaptive Bed Leveling"), "type": "binary",
"tooltip": _("Leveling Only in the Actual Print Area"),
"value": "False", "callback": self.set_adaptive_leveling}},
{"power_loss_recovery": {"section": "main", "name": _("Power Loss Recovery"), "type": "binary",
"tooltip": _("Restores your print job after a power outage"),
"value": "True", "callback": self.set_power_loss_recovery}},
{"auto_change_nozzle": {"section": "main", "name": _("Auto Change Nozzle"), "type": "binary",
"tooltip": _("Auto change nozzle when filament runout"),
"value": "False", "callback": self.set_auto_change_nozzle}},
]
options = self.advanced_options
self.labels['advanced_menu'] = self._gtk.ScrolledWindow()
self.labels['advanced'] = Gtk.Grid()
self.labels['advanced_menu'].add(self.labels['advanced'])
for option in options:
name = list(option)[0]
res = self.add_option('advanced', self.advanced, name, option[name])
self.menu_list.update(res)
self.content.add(self.labels['advanced_menu'])
def set_adaptive_leveling(self, *args):
self.set_configuration_feature("adaptive_meshing", *args)
def set_power_loss_recovery(self, *args):
self.set_configuration_feature("power_loss_recovery", *args)
def set_auto_change_nozzle(self, *args):
self.set_configuration_feature("auto_change_nozzle", *args)
def set_configuration_feature(self, feature_name, *args):
enable_feature = any(args)
script_value = True if enable_feature else False
script = KlippyGcodes.set_save_variables(feature_name, script_value)
self._screen._send_action(None, "printer.gcode.script", {"script": script})
logging.info(f"Set {feature_name}: {script_value}")
def process_update(self, action, data):
if action != "notify_status_update":
return
if 'save_variables' in data and 'variables' in data['save_variables']:
variables = data['save_variables']['variables']
if 'adaptive_meshing' in variables:
self.menu_list['adaptive_leveling'].set_active(variables['adaptive_meshing'])
else:
self.menu_list["adaptive_leveling"].set_active(False)
if 'power_loss_recovery' in variables:
self.menu_list['power_loss_recovery'].set_active(variables['power_loss_recovery'])
if 'auto_change_nozzle' in variables:
self.menu_list['auto_change_nozzle'].set_active(variables['auto_change_nozzle'])
else:
self.menu_list["auto_change_nozzle"].set_active(False)