Logging updates
This commit is contained in:
commit
fedeaa1d85
@ -9,6 +9,7 @@ import requests
|
||||
import websocket
|
||||
import asyncio
|
||||
import logging
|
||||
logger = logging.getLogger("KlipperScreen.KlipperWebsocket")
|
||||
|
||||
gi.require_version("Gtk", "3.0")
|
||||
from gi.repository import Gtk, Gdk, GLib
|
||||
@ -30,6 +31,7 @@ api = {
|
||||
"url": "/access/oneshot_token"
|
||||
}
|
||||
}
|
||||
|
||||
class KlippyWebsocket(threading.Thread):
|
||||
_req_id = 0
|
||||
connected = False
|
||||
@ -50,7 +52,7 @@ class KlippyWebsocket(threading.Thread):
|
||||
headers={"x-api-key":api_key}
|
||||
)
|
||||
if r.status_code != 200:
|
||||
logging.info("Failed to retrieve oneshot token")
|
||||
logger.info("Failed to retrieve oneshot token")
|
||||
return
|
||||
|
||||
token = json.loads(r.content)['result']
|
||||
@ -109,12 +111,12 @@ class KlippyWebsocket(threading.Thread):
|
||||
|
||||
def on_open(self, ws):
|
||||
print("### ws open ###")
|
||||
logging.info("### ws open ###")
|
||||
logger.info("### ws open ###")
|
||||
self.connected = True
|
||||
|
||||
def on_close(self, ws):
|
||||
print("### ws closed ###")
|
||||
logging.info("### ws closed ###")
|
||||
logger.info("### ws closed ###")
|
||||
self.connected = False
|
||||
|
||||
# TODO: Make non-blocking
|
||||
@ -146,11 +148,13 @@ class MoonrakerApi:
|
||||
self._ws = ws
|
||||
|
||||
def emergency_stop(self):
|
||||
logger.info("Sending printer.emergency_stop")
|
||||
self._ws.send_method(
|
||||
"printer.emergency_stop"
|
||||
)
|
||||
|
||||
def gcode_script(self, script, callback=None, *args):
|
||||
logger.debug("Sending printer.gcode.script: %s", script)
|
||||
self._ws.send_method(
|
||||
"printer.gcode.script",
|
||||
{"script": script},
|
||||
@ -159,6 +163,7 @@ class MoonrakerApi:
|
||||
)
|
||||
|
||||
def get_file_list(self, callback=None, *args):
|
||||
logger.debug("Sending server.files.list")
|
||||
self._ws.send_method(
|
||||
"server.files.list",
|
||||
{},
|
||||
@ -167,6 +172,7 @@ class MoonrakerApi:
|
||||
)
|
||||
|
||||
def get_file_metadata(self, filename, callback=None, *args):
|
||||
logger.debug("Sending server.files.metadata: %s", filename)
|
||||
self._ws.send_method(
|
||||
"server.files.metadata",
|
||||
{"filename": filename},
|
||||
@ -175,12 +181,14 @@ class MoonrakerApi:
|
||||
)
|
||||
|
||||
def object_subscription(self, updates):
|
||||
logger.debug("Sending printer.objects.subscribe: %s", str(updates))
|
||||
self._ws.send_method(
|
||||
"printer.objects.subscribe",
|
||||
updates
|
||||
)
|
||||
|
||||
def print_cancel(self, callback=None, *args):
|
||||
logger.debug("Sending printer.print.cancel")
|
||||
self._ws.send_method(
|
||||
"printer.print.cancel",
|
||||
{},
|
||||
@ -189,6 +197,7 @@ class MoonrakerApi:
|
||||
)
|
||||
|
||||
def print_pause(self, callback=None, *args):
|
||||
logger.debug("Sending printer.print.pause")
|
||||
self._ws.send_method(
|
||||
"printer.print.pause",
|
||||
{},
|
||||
@ -197,6 +206,7 @@ class MoonrakerApi:
|
||||
)
|
||||
|
||||
def print_resume(self, callback=None, *args):
|
||||
logger.debug("Sending printer.print.resume")
|
||||
self._ws.send_method(
|
||||
"printer.print.resume",
|
||||
{},
|
||||
@ -205,6 +215,7 @@ class MoonrakerApi:
|
||||
)
|
||||
|
||||
def print_start(self, filename, callback=None, *args):
|
||||
logger.debug("Sending printer.print.start")
|
||||
self._ws.send_method(
|
||||
"printer.print.start",
|
||||
{
|
||||
@ -216,6 +227,7 @@ class MoonrakerApi:
|
||||
|
||||
def temperature_set(self, heater, target, callback=None, *args):
|
||||
if heater == "heater_bed":
|
||||
logger.debug("Sending printer.gcode.script: %s", KlippyGcodes.set_bed_temp(target))
|
||||
self._ws.send_method(
|
||||
"printer.gcode.script",
|
||||
{
|
||||
@ -225,6 +237,8 @@ class MoonrakerApi:
|
||||
*args
|
||||
)
|
||||
else:
|
||||
logger.debug("Sending printer.gcode.script: %s",
|
||||
KlippyGcodes.set_ext_temp(target, heater.replace("tool","")))
|
||||
#TODO: Add max/min limits
|
||||
self._ws.send_method(
|
||||
"printer.gcode.script",
|
||||
@ -236,6 +250,7 @@ class MoonrakerApi:
|
||||
)
|
||||
|
||||
def set_bed_temp(self, target, callback=None, *args):
|
||||
logger.debug("Sending set_bed_temp: %s", KlippyGcodes.set_bed_temp(target))
|
||||
self._ws.send_method(
|
||||
"printer.gcode.script",
|
||||
{
|
||||
@ -246,6 +261,7 @@ class MoonrakerApi:
|
||||
)
|
||||
|
||||
def set_tool_temp(self, tool, target, callback=None, *args):
|
||||
logger.debug("Sending set_tool_temp: %s", KlippyGcodes.set_ext_temp(target, tool))
|
||||
self._ws.send_method(
|
||||
"printer.gcode.script",
|
||||
{
|
||||
@ -256,11 +272,13 @@ class MoonrakerApi:
|
||||
)
|
||||
|
||||
def restart(self):
|
||||
logger.debug("Sending printer.restart")
|
||||
self._ws.send_method(
|
||||
"printer.restart"
|
||||
)
|
||||
|
||||
def restart_firmware(self):
|
||||
logger.debug("Sending printer.firmware_restart")
|
||||
self._ws.send_method(
|
||||
"printer.firmware_restart"
|
||||
)
|
||||
|
@ -6,6 +6,9 @@ from gi.repository import Gtk, Gdk, GLib
|
||||
from KlippyGtk import KlippyGtk
|
||||
from KlippyGcodes import KlippyGcodes
|
||||
|
||||
import logging
|
||||
logger = logging.getLogger("KlipperScreen.ZCalibratePanel")
|
||||
|
||||
class ZCalibratePanel:
|
||||
_screen = None
|
||||
labels = {}
|
||||
@ -117,13 +120,15 @@ class ZCalibratePanel:
|
||||
|
||||
def move(self, widget, dir):
|
||||
dist = str(self.distance) if dir == "+" else "-" + str(self.distance)
|
||||
print("# Moving " + KlippyGcodes.probe_move(dist))
|
||||
logger.info("# Moving %s", KlippyGcodes.probe_move(dist))
|
||||
self._screen._ws.klippy.gcode_script(KlippyGcodes.probe_move(dist))
|
||||
|
||||
def abort(self, widget):
|
||||
logger.info("Aborting Z calibrate")
|
||||
self._screen._ws.klippy.gcode_script(KlippyGcodes.PROBE_ABORT)
|
||||
self._screen._menu_go_back(widget)
|
||||
|
||||
def accept(self, widget):
|
||||
logger.info("Accepting Z calibrate")
|
||||
self._screen._ws.klippy.gcode_script(KlippyGcodes.PROBE_ACCEPT)
|
||||
self._screen._ws.klippy.gcode_script(KlippyGcodes.SAVE_CONFIG)
|
||||
|
72
screen.py
72
screen.py
@ -39,11 +39,26 @@ from panels.system import *
|
||||
from panels.temperature import *
|
||||
from panels.zcalibrate import *
|
||||
|
||||
logging.basicConfig(filename="/tmp/KlipperScreen.log", level=logging.INFO)
|
||||
# Create logging
|
||||
logger = logging.getLogger('KlipperScreen')
|
||||
logger.setLevel(logging.DEBUG)
|
||||
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
|
||||
|
||||
fh = logging.FileHandler('/tmp/KlipperScreen.log')
|
||||
fh.setLevel(logging.DEBUG)
|
||||
fh.setFormatter(formatter)
|
||||
|
||||
ch = logging.StreamHandler()
|
||||
ch.setLevel(logging.ERROR)
|
||||
ch.setFormatter(formatter)
|
||||
|
||||
logger.addHandler(fh)
|
||||
logger.addHandler(ch)
|
||||
|
||||
klipperscreendir = os.getcwd()
|
||||
config = klipperscreendir + "/KlipperScreen.config"
|
||||
logging.info("Config file: " + config)
|
||||
logger.warning("test test")
|
||||
logger.info("Config file: " + config)
|
||||
|
||||
class KlipperScreen(Gtk.Window):
|
||||
""" Class for creating a screen for Klipper via HDMI """
|
||||
@ -68,10 +83,15 @@ class KlipperScreen(Gtk.Window):
|
||||
|
||||
self.set_default_size(Gdk.Screen.get_width(Gdk.Screen.get_default()), Gdk.Screen.get_height(Gdk.Screen.get_default()))
|
||||
self.set_resizable(False)
|
||||
logging.info(str(Gdk.Screen.get_width(Gdk.Screen.get_default()))+"x"+str(Gdk.Screen.get_height(Gdk.Screen.get_default())))
|
||||
logger.info("Screen resolution: %s", str(Gdk.Screen.get_width(Gdk.Screen.get_default()))+"x"+str(Gdk.Screen.get_height(Gdk.Screen.get_default())))
|
||||
|
||||
self.printer_initializing("Connecting to Moonraker")
|
||||
|
||||
# Disable DPMS
|
||||
os.system("/usr/bin/xset -display :0 s off")
|
||||
os.system("/usr/bin/xset -display :0 -dpms")
|
||||
os.system("/usr/bin/xset -display :0 s noblank")
|
||||
|
||||
ready = False
|
||||
|
||||
try:
|
||||
@ -86,7 +106,7 @@ class KlipperScreen(Gtk.Window):
|
||||
self.create_websocket()
|
||||
|
||||
if info['result']['state'] == "ready" and "M112" in info['result']['state_message']:
|
||||
print("Emergency stopped")
|
||||
logger.warning("Printer is emergency stopped")
|
||||
self.printer_initializing("Shutdown due to Emergency Stop")
|
||||
|
||||
status_objects = [
|
||||
@ -117,11 +137,9 @@ class KlipperScreen(Gtk.Window):
|
||||
self.last_update[x] = data[x]
|
||||
|
||||
self.printer_config = data['configfile']['config']
|
||||
#self.read_printer_config()
|
||||
self.printer = Printer(data)
|
||||
|
||||
# Initialize target values. TODO: methodize this
|
||||
print (json.dumps(data, indent=2))
|
||||
self.printer.set_dev_stat("heater_bed", "target", data['heater_bed']['target'])
|
||||
self.printer.set_dev_stat("extruder", "target", data['extruder']['target'])
|
||||
|
||||
@ -132,30 +150,13 @@ class KlipperScreen(Gtk.Window):
|
||||
self.printer_ready()
|
||||
|
||||
while (self._ws.is_connected() == False):
|
||||
print("### Main: Waiting for websocket")
|
||||
logger.warning("### Main: Waiting for websocket")
|
||||
continue
|
||||
|
||||
self.files = KlippyFiles(self)
|
||||
|
||||
self._ws.klippy.object_subscription(requested_updates)
|
||||
|
||||
|
||||
|
||||
def read_printer_config(self):
|
||||
logging.info("### Reading printer config")
|
||||
self.toolcount = 0
|
||||
self.extrudercount = 0
|
||||
for x in self.printer_config.keys():
|
||||
if x.startswith('extruder'):
|
||||
if x.startswith('extruder_stepper') or "shared_heater" in self.printer_config[x]:
|
||||
self.toolcount += 1
|
||||
continue
|
||||
self.extrudercount += 1
|
||||
|
||||
logging.info("### Toolcount: " + str(self.toolcount) + " Heaters: " + str(self.extrudercount))
|
||||
|
||||
self._printer = Printer(self.toolcount, self.extrudercount)
|
||||
|
||||
def show_panel(self, panel_name, type, remove=None, pop=True, **kwargs):
|
||||
if remove == 2:
|
||||
self._remove_all_panels()
|
||||
@ -198,7 +199,6 @@ class KlipperScreen(Gtk.Window):
|
||||
self.panels[panel_name] = MovePanel(self)
|
||||
|
||||
if kwargs != {}:
|
||||
print(type)
|
||||
self.panels[panel_name].initialize(panel_name, **kwargs)
|
||||
else:
|
||||
self.panels[panel_name].initialize(panel_name)
|
||||
@ -209,7 +209,7 @@ class KlipperScreen(Gtk.Window):
|
||||
self.add(self.panels[panel_name].get())
|
||||
self.show_all()
|
||||
self._cur_panels.append(panel_name)
|
||||
logging.info(self._cur_panels)
|
||||
logger.debug("Current panel hierarchy: %s", str(self._cur_panels))
|
||||
|
||||
|
||||
def read_config (self):
|
||||
@ -234,7 +234,7 @@ class KlipperScreen(Gtk.Window):
|
||||
|
||||
|
||||
def _go_to_submenu(self, widget, name):
|
||||
logging.info("#### Go to submenu " + str(name))
|
||||
logger.info("#### Go to submenu " + str(name))
|
||||
#self._remove_current_panel(False)
|
||||
|
||||
# Find current menu item
|
||||
@ -245,10 +245,9 @@ class KlipperScreen(Gtk.Window):
|
||||
else:
|
||||
menu = self._config['printmenu']
|
||||
|
||||
logging.info("#### Menu " + str(menu))
|
||||
logger.info("#### Menu " + str(menu))
|
||||
#self.show_panel("_".join(self._cur_panels) + '_' + name, "menu", 1, False, menu=menu)
|
||||
|
||||
print(menu)
|
||||
self.show_panel(self._cur_panels[-1] + '_' + name, "menu", 1, False, items=menu)
|
||||
return
|
||||
|
||||
@ -291,7 +290,7 @@ class KlipperScreen(Gtk.Window):
|
||||
self.show_all()
|
||||
|
||||
def _menu_go_back (self, widget):
|
||||
logging.info("#### Menu go back")
|
||||
logger.info("#### Menu go back")
|
||||
self._remove_current_panel()
|
||||
|
||||
|
||||
@ -320,10 +319,10 @@ class KlipperScreen(Gtk.Window):
|
||||
|
||||
if "webhooks" in data and "state" in data['webhooks']:
|
||||
if data['webhooks']['state'] == "shutdown":
|
||||
logging.info("### Going to disconnected state")
|
||||
logger.info("### Going to disconnected state")
|
||||
self.printer_initializing("Klipper has shutdown")
|
||||
elif data['webhooks']['state'] == "ready":
|
||||
logging.info("### Going to ready state")
|
||||
logger.info("### Going to ready state")
|
||||
self.printer_ready()
|
||||
else:
|
||||
active = self.printer.get_stat('virtual_sdcard','is_active')
|
||||
@ -336,9 +335,10 @@ class KlipperScreen(Gtk.Window):
|
||||
self.printer_printing()
|
||||
|
||||
|
||||
|
||||
|
||||
if action == "notify_status_update":
|
||||
if action == "notify_filelist_changed":
|
||||
logger.DEBUG("Filelist changed: %s", json.dumps(data,indent=2))
|
||||
#self.files.add_file()
|
||||
elif action == "notify_status_update":
|
||||
if "heater_bed" in data:
|
||||
d = data["heater_bed"]
|
||||
if "target" in d:
|
||||
@ -375,8 +375,6 @@ class KlipperScreen(Gtk.Window):
|
||||
self.show_panel('job_status',"JobStatusPanel", 2)
|
||||
|
||||
def main():
|
||||
log_file = ("/tmp/KlipperScreen.log")
|
||||
root_logger = logging.getLogger()
|
||||
|
||||
win = KlipperScreen()
|
||||
win.connect("destroy", Gtk.main_quit)
|
||||
|
@ -3,7 +3,7 @@
|
||||
screen=${1:-0}
|
||||
|
||||
# wait for the display manager service to start and attach to screen
|
||||
sleep 5
|
||||
sleep 15
|
||||
|
||||
/usr/bin/xset -display :$screen s off # deactivate screen saver
|
||||
/usr/bin/xset -display :$screen -dpms # disable DPMS
|
||||
|
Loading…
x
Reference in New Issue
Block a user