forked from CreatBot/CreatBotKlipperScreen
system: add klipper version
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
#### 2020 11 28
|
||||
* Add option for enable in menu for configuration. This can hide certain options
|
||||
* Add Power panel to control power devices via moonraker
|
||||
* Add klipper version to system panel
|
||||
|
||||
#### 2020 11 18
|
||||
* Changed configuration file format.
|
||||
|
@@ -4,7 +4,7 @@ logger = logging.getLogger("KlipperScreen.Printer")
|
||||
|
||||
class Printer:
|
||||
|
||||
def __init__(self, data):
|
||||
def __init__(self, printer_info, data):
|
||||
self.config = data['configfile']['config']
|
||||
|
||||
logging.info("### Reading printer config")
|
||||
@@ -14,8 +14,13 @@ class Printer:
|
||||
self.devices = {}
|
||||
self.state = data['print_stats']['state']
|
||||
self.data = data
|
||||
self.klipper = {}
|
||||
self.power_devices = {}
|
||||
|
||||
self.klipper = {
|
||||
"version": printer_info['software_version']
|
||||
}
|
||||
|
||||
for x in self.config.keys():
|
||||
if x.startswith('extruder'):
|
||||
if x.startswith('extruder_stepper'):
|
||||
@@ -37,7 +42,8 @@ class Printer:
|
||||
}
|
||||
self.process_update(data)
|
||||
|
||||
logging.info("### Toolcount: " + str(self.toolcount) + " Heaters: " + str(self.extrudercount))
|
||||
logger.info("Klipper version: %s", self.klipper['version'])
|
||||
logger.info("### Toolcount: " + str(self.toolcount) + " Heaters: " + str(self.extrudercount))
|
||||
|
||||
def configure_power_devices(self, data):
|
||||
self.power_devices = {}
|
||||
@@ -90,6 +96,9 @@ class Printer:
|
||||
def get_data(self):
|
||||
return self.data
|
||||
|
||||
def get_klipper_version(self):
|
||||
return self.klipper['version']
|
||||
|
||||
def get_power_devices(self):
|
||||
return list(self.power_devices)
|
||||
|
||||
|
@@ -42,13 +42,19 @@ class SystemPanel(ScreenPanel):
|
||||
title.get_style_context().add_class('temperature_entry')
|
||||
self.labels['loadavg'].get_style_context().add_class('temperature_entry')
|
||||
|
||||
self.labels['version'] = Gtk.Label(_("KlipperScreen Version") + (": %s" % self._screen.version))
|
||||
self.labels['version'].set_margin_top(15)
|
||||
self.labels['version'].get_style_context().add_class('temperature_entry')
|
||||
self.labels['klipper_version'] = Gtk.Label(_("Klipper Version") +
|
||||
(": %s" % self._screen.printer.get_klipper_version()))
|
||||
self.labels['klipper_version'].set_margin_top(15)
|
||||
self.labels['klipper_version'].get_style_context().add_class('temperature_entry')
|
||||
|
||||
self.labels['ks_version'] = Gtk.Label(_("KlipperScreen Version") + (": %s" % self._screen.version))
|
||||
self.labels['ks_version'].set_margin_top(15)
|
||||
self.labels['ks_version'].get_style_context().add_class('temperature_entry')
|
||||
|
||||
info.add(title)
|
||||
info.add(self.labels['loadavg'])
|
||||
info.add(self.labels['version'])
|
||||
info.add(self.labels['klipper_version'])
|
||||
info.add(self.labels['ks_version'])
|
||||
|
||||
|
||||
grid.attach(info, 0, 0, 4, 2)
|
||||
|
12
screen.py
12
screen.py
@@ -66,6 +66,8 @@ class KlipperScreen(Gtk.Window):
|
||||
self._config = KlipperScreenConfig()
|
||||
self.init_style()
|
||||
self.printer = Printer({
|
||||
"software_version": "Unknown"
|
||||
}, {
|
||||
'configfile': {
|
||||
'config': {}
|
||||
},
|
||||
@@ -385,16 +387,16 @@ class KlipperScreen(Gtk.Window):
|
||||
'extruder',
|
||||
'pause_resume'
|
||||
]
|
||||
info = self.apiclient.get_printer_info()
|
||||
printer_info = self.apiclient.get_printer_info()
|
||||
data = self.apiclient.send_request("printer/objects/query?" + "&".join(status_objects))
|
||||
powerdevs = self.apiclient.send_request("machine/device_power/devices")
|
||||
if info == False or data == False:
|
||||
if printer_info == False or data == False:
|
||||
self.printer_initializing(_("Moonraker error"))
|
||||
return
|
||||
data = data['result']['status']
|
||||
|
||||
# Reinitialize printer, in case the printer was shut down and anything has changed.
|
||||
self.printer.__init__(data)
|
||||
self.printer.__init__(printer_info['result'], data)
|
||||
self.ws_subscribe()
|
||||
self.printer.configure_power_devices(powerdevs['result'])
|
||||
|
||||
@@ -403,8 +405,8 @@ class KlipperScreen(Gtk.Window):
|
||||
else:
|
||||
self.files.add_timeout()
|
||||
|
||||
if info['result']['state'] == "shutdown":
|
||||
if "FIRMWARE_RESTART" in info['result']['state_message']:
|
||||
if printer_info['result']['state'] == "shutdown":
|
||||
if "FIRMWARE_RESTART" in printer_info['result']['state_message']:
|
||||
self.printer_initializing(
|
||||
_("Klipper has encountered an error. Issue a FIRMWARE_RESTART to attempt fixing the issue.")
|
||||
)
|
||||
|
Reference in New Issue
Block a user