system: add klipper version

This commit is contained in:
Jordan Ruthe
2020-11-28 14:25:47 -05:00
parent cc59ec68d0
commit 67d61d164c
4 changed files with 29 additions and 11 deletions

View File

@@ -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.

View File

@@ -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)

View File

@@ -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)

View File

@@ -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.")
)