Logging updates, includes version number.

Fix gcode_moves not being queried on opening
This commit is contained in:
Jordan Ruthe 2020-11-16 00:17:32 -05:00
parent 18a55fab2e
commit 8df55012d7

View File

@ -9,7 +9,8 @@ import requests
import websocket
import logging
import os
import asyncio
import re
import subprocess
gi.require_version("Gtk", "3.0")
@ -95,6 +96,7 @@ class KlipperScreen(Gtk.Window):
self.height = Gdk.Screen.get_height(Gdk.Screen.get_default())
self.set_default_size(self.width, self.height)
self.set_resizable(False)
logger.info("KlipperScreen version: %s" % get_software_version())
logger.info("Screen resolution: %sx%s" % (self.width, self.height))
self.printer_initializing("Connecting to Moonraker")
@ -189,6 +191,7 @@ class KlipperScreen(Gtk.Window):
self._remove_current_panel(pop)
if panel_name not in self.panels:
try:
if type == "SplashScreenPanel":
self.panels[panel_name] = SplashScreenPanel(self)
elif type == "MainPanel":
@ -222,11 +225,16 @@ class KlipperScreen(Gtk.Window):
#Temporary for development
else:
self.panels[panel_name] = MovePanel(self)
except:
logger.exception("Unable to load panel %s" % panel_name)
try:
if kwargs != {}:
self.panels[panel_name].initialize(panel_name, **kwargs)
else:
self.panels[panel_name].initialize(panel_name)
except:
logger.exception("Error initializing panel %s" % panel_name)
if hasattr(self.panels[panel_name],"process_update"):
self.panels[panel_name].process_update(self.printer.get_data())
@ -241,8 +249,17 @@ class KlipperScreen(Gtk.Window):
def read_config (self):
try:
with open(config) as config_file:
self._config = json.load(config_file)
lines = [
"===== Config File =====",
json.dumps(self._config, indent=2),
"=======================",
]
logger.info("\n".join(lines))
except:
logger.exception("Error reading configuration file")
def init_style(self):
@ -366,7 +383,8 @@ class KlipperScreen(Gtk.Window):
#self.files.add_file()
elif action == "notify_metadata_update":
self.files.update_metadata(data['filename'])
else:
elif not (action == "notify_gcode_response" and data.startswith("B:")
and re.search(r'B:[0-9\.]+\s/[0-9\.]+\sT[0-9]+:[0-9\.]+', data)):
logger.debug(json.dumps([action, data], indent=2))
for sub in self.subscriptions:
@ -389,6 +407,7 @@ class KlipperScreen(Gtk.Window):
status_objects = [
'idle_timeout',
'configfile',
'gcode_move',
'toolhead',
'virtual_sdcard',
'print_stats',
@ -416,6 +435,25 @@ class KlipperScreen(Gtk.Window):
self.ws_subscribe()
self.show_panel('job_status',"JobStatusPanel", 2)
def get_software_version():
prog = ('git', '-C', os.path.dirname(__file__), 'describe', '--always',
'--tags', '--long', '--dirty')
try:
process = subprocess.Popen(prog, stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
ver, err = process.communicate()
retcode = process.wait()
if retcode == 0:
version = ver.strip()
if isinstance(version, bytes):
version = version.decode()
return version
else:
logger.debug(f"Error getting git version: {err}")
except OSError:
logger.exception("Error runing git describe")
return "?"
def main():
win = KlipperScreen()
@ -425,4 +463,7 @@ def main():
if __name__ == "__main__":
try:
main()
except:
logger.exception("Fatal error in main loop")