Start in configurations without fans or extruders or temp devices
A bunch of conditionals that makes KS start and not stay in the splash screen
This commit is contained in:
parent
dad267d278
commit
c1372c1839
@ -30,6 +30,7 @@ icon: home
|
|||||||
name: {{ gettext('Temperature') }}
|
name: {{ gettext('Temperature') }}
|
||||||
icon: heat-up
|
icon: heat-up
|
||||||
panel: temperature
|
panel: temperature
|
||||||
|
enable: {{ printer.temperature_devices.count > 0 }}
|
||||||
|
|
||||||
[menu __main actions]
|
[menu __main actions]
|
||||||
name: {{ gettext('Actions') }}
|
name: {{ gettext('Actions') }}
|
||||||
@ -98,11 +99,13 @@ panel: move
|
|||||||
name: {{ gettext('Extrude') }}
|
name: {{ gettext('Extrude') }}
|
||||||
icon: filament
|
icon: filament
|
||||||
panel: extrude
|
panel: extrude
|
||||||
|
enable: {{ printer.extruders.count > 0 }}
|
||||||
|
|
||||||
[menu __main actions fan]
|
[menu __main actions fan]
|
||||||
name: {{ gettext('Fan') }}
|
name: {{ gettext('Fan') }}
|
||||||
icon: fan
|
icon: fan
|
||||||
panel: fan
|
panel: fan
|
||||||
|
enable: {{ printer.fans.count > 0 }}
|
||||||
|
|
||||||
[menu __main actions macros]
|
[menu __main actions macros]
|
||||||
name: {{ gettext('Macros') }}
|
name: {{ gettext('Macros') }}
|
||||||
@ -180,17 +183,19 @@ name: {{ gettext('Print Control') }}
|
|||||||
name: {{ gettext('Temperature') }}
|
name: {{ gettext('Temperature') }}
|
||||||
icon: heat-up
|
icon: heat-up
|
||||||
panel: temperature
|
panel: temperature
|
||||||
|
enable: {{ printer.temperature_devices.count > 0 }}
|
||||||
|
|
||||||
[menu __print fan]
|
[menu __print fan]
|
||||||
name: {{ gettext('Fan') }}
|
name: {{ gettext('Fan') }}
|
||||||
icon: fan
|
icon: fan
|
||||||
panel: fan
|
panel: fan
|
||||||
|
enable: {{ printer.fans.count > 0 }}
|
||||||
|
|
||||||
[menu __print extrude]
|
[menu __print extrude]
|
||||||
name: {{ gettext('Extrude') }}
|
name: {{ gettext('Extrude') }}
|
||||||
icon: filament
|
icon: filament
|
||||||
panel: extrude
|
panel: extrude
|
||||||
enable: {{ printer.pause_resume.is_paused == True }}
|
enable: {{ (printer.pause_resume.is_paused == True) and (printer.extruders.count > 0) }}
|
||||||
|
|
||||||
[menu __print power]
|
[menu __print power]
|
||||||
name: {{ gettext('Power') }}
|
name: {{ gettext('Power') }}
|
||||||
|
@ -32,6 +32,8 @@ class Printer:
|
|||||||
self.config = data['configfile']['config']
|
self.config = data['configfile']['config']
|
||||||
self.toolcount = 0
|
self.toolcount = 0
|
||||||
self.extrudercount = 0
|
self.extrudercount = 0
|
||||||
|
self.tempdevcount = 0
|
||||||
|
self.fancount = 0
|
||||||
self.tools = []
|
self.tools = []
|
||||||
self.devices = {}
|
self.devices = {}
|
||||||
self.data = data
|
self.data = data
|
||||||
@ -65,6 +67,10 @@ class Printer:
|
|||||||
"temperature": 0,
|
"temperature": 0,
|
||||||
"target": 0
|
"target": 0
|
||||||
}
|
}
|
||||||
|
self.tempdevcount += 1
|
||||||
|
if x == 'fan' or x.startswith('controller_fan ') or x.startswith('heater_fan ') \
|
||||||
|
or x.startswith('fan_generic '):
|
||||||
|
self.fancount += 1
|
||||||
if x.startswith('bed_mesh '):
|
if x.startswith('bed_mesh '):
|
||||||
r = self.config[x]
|
r = self.config[x]
|
||||||
r['x_count'] = int(r['x_count'])
|
r['x_count'] = int(r['x_count'])
|
||||||
@ -77,7 +83,10 @@ class Printer:
|
|||||||
self.process_update(data)
|
self.process_update(data)
|
||||||
|
|
||||||
logging.info("Klipper version: %s", self.klipper['version'])
|
logging.info("Klipper version: %s", self.klipper['version'])
|
||||||
logging.info("### Toolcount: " + str(self.toolcount) + " Heaters: " + str(self.extrudercount))
|
logging.info("# Toolcount: %s", str(self.toolcount))
|
||||||
|
logging.info("# Extruders: %s", str(self.extrudercount))
|
||||||
|
logging.info("# Temperature devices: %s", str(self.tempdevcount))
|
||||||
|
logging.info("# Fans: %s", str(self.fancount))
|
||||||
|
|
||||||
def process_update(self, data):
|
def process_update(self, data):
|
||||||
keys = [
|
keys = [
|
||||||
@ -214,6 +223,15 @@ class Printer:
|
|||||||
def get_printer_status_data(self):
|
def get_printer_status_data(self):
|
||||||
data = {
|
data = {
|
||||||
"printer": {
|
"printer": {
|
||||||
|
"extruders": {
|
||||||
|
"count": self.extrudercount
|
||||||
|
},
|
||||||
|
"temperature_devices": {
|
||||||
|
"count": self.tempdevcount
|
||||||
|
},
|
||||||
|
"fans": {
|
||||||
|
"count": self.fancount
|
||||||
|
},
|
||||||
"bltouch": self.section_exists("bltouch"),
|
"bltouch": self.section_exists("bltouch"),
|
||||||
"gcode_macros": {
|
"gcode_macros": {
|
||||||
"count": len(self.get_gcode_macros())
|
"count": len(self.get_gcode_macros())
|
||||||
|
@ -123,23 +123,20 @@ class BasePanel(ScreenPanel):
|
|||||||
if show is False:
|
if show is False:
|
||||||
return
|
return
|
||||||
|
|
||||||
i = 0
|
if self._printer.get_tools():
|
||||||
for extruder in self._printer.get_tools():
|
for i, extruder in enumerate(self._printer.get_tools()):
|
||||||
self.labels[extruder + '_box'] = Gtk.Box(spacing=0)
|
self.labels[extruder + '_box'] = Gtk.Box(spacing=0)
|
||||||
self.labels[extruder] = Gtk.Label(label="")
|
self.labels[extruder] = Gtk.Label(label="")
|
||||||
# self.labels[extruder].get_style_context().add_class("printing-info")
|
if i <= 4:
|
||||||
if i <= 4:
|
ext_img = self._gtk.Image("extruder-%s.svg" % i, None, .4, .4)
|
||||||
ext_img = self._gtk.Image("extruder-%s.svg" % i, None, .4, .4)
|
self.labels[extruder + '_box'].pack_start(ext_img, True, 3, 3)
|
||||||
self.labels[extruder + '_box'].pack_start(ext_img, True, 3, 3)
|
self.labels[extruder + '_box'].pack_start(self.labels[extruder], True, 3, 3)
|
||||||
self.labels[extruder + '_box'].pack_start(self.labels[extruder], True, 3, 3)
|
self.current_extruder = self._printer.get_stat("toolhead", "extruder")
|
||||||
i += 1
|
self.control['temp_box'].pack_start(self.labels["%s_box" % self.current_extruder], True, 5, 5)
|
||||||
self.current_extruder = self._printer.get_stat("toolhead", "extruder")
|
|
||||||
self.control['temp_box'].pack_start(self.labels["%s_box" % self.current_extruder], True, 5, 5)
|
|
||||||
|
|
||||||
if self._printer.has_heated_bed():
|
if self._printer.has_heated_bed():
|
||||||
heater_bed = self._gtk.Image("bed.svg", None, .4, .4)
|
heater_bed = self._gtk.Image("bed.svg", None, .4, .4)
|
||||||
self.labels['heater_bed'] = Gtk.Label(label="20 C")
|
self.labels['heater_bed'] = Gtk.Label(label="20 C")
|
||||||
# self.labels['heater_bed'].get_style_context().add_class("printing-info")
|
|
||||||
heater_bed_box = Gtk.Box(spacing=0)
|
heater_bed_box = Gtk.Box(spacing=0)
|
||||||
heater_bed_box.pack_start(heater_bed, True, 5, 5)
|
heater_bed_box.pack_start(heater_bed, True, 5, 5)
|
||||||
heater_bed_box.pack_start(self.labels['heater_bed'], True, 3, 3)
|
heater_bed_box.pack_start(self.labels['heater_bed'], True, 3, 3)
|
||||||
|
@ -13,6 +13,7 @@ def create_panel(*args):
|
|||||||
|
|
||||||
class MenuPanel(ScreenPanel):
|
class MenuPanel(ScreenPanel):
|
||||||
i = 0
|
i = 0
|
||||||
|
j2_data = None
|
||||||
def initialize(self, panel_name, display_name, items):
|
def initialize(self, panel_name, display_name, items):
|
||||||
_ = self.lang.gettext
|
_ = self.lang.gettext
|
||||||
|
|
||||||
@ -25,7 +26,8 @@ class MenuPanel(ScreenPanel):
|
|||||||
self.content.add(self.grid)
|
self.content.add(self.grid)
|
||||||
|
|
||||||
def activate(self):
|
def activate(self):
|
||||||
self.j2_data = self._printer.get_printer_status_data()
|
if not self.j2_data:
|
||||||
|
self.j2_data = self._printer.get_printer_status_data()
|
||||||
self.j2_data.update({
|
self.j2_data.update({
|
||||||
'moonraker_connected': self._screen._ws.is_connected()
|
'moonraker_connected': self._screen._ws.is_connected()
|
||||||
})
|
})
|
||||||
@ -94,6 +96,8 @@ class MenuPanel(ScreenPanel):
|
|||||||
if enable is False:
|
if enable is False:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
if not self.j2_data:
|
||||||
|
self.j2_data = self._printer.get_printer_status_data()
|
||||||
try:
|
try:
|
||||||
logging.debug("Template: '%s'" % enable)
|
logging.debug("Template: '%s'" % enable)
|
||||||
logging.debug("Data: %s" % self.j2_data)
|
logging.debug("Data: %s" % self.j2_data)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user