From 441cde585ca1cad528513321b8afa7359b547e23 Mon Sep 17 00:00:00 2001 From: alfrix Date: Wed, 20 Mar 2024 08:16:47 -0300 Subject: [PATCH] base_panel: cpu report less intrusive, needs two cycles to enter high usage report --- panels/base_panel.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/panels/base_panel.py b/panels/base_panel.py index 1dc7a599..4d4ef9af 100644 --- a/panels/base_panel.py +++ b/panels/base_panel.py @@ -22,6 +22,7 @@ class BasePanel(ScreenPanel): self.titlebar_name_type = None self.current_extruder = None self.last_usage_report = datetime.now() + self.usage_report = False # Action bar buttons abscale = self.bts * 1.1 self.control['back'] = self._gtk.Button('back', scale=abscale) @@ -208,20 +209,26 @@ class BasePanel(ScreenPanel): def process_update(self, action, data): if action == "notify_proc_stat_update": + logging.info(action) cpu = (max(data["system_cpu_usage"][core] for core in data["system_cpu_usage"] if core.startswith("cpu"))) memory = (data["system_memory"]["used"] / data["system_memory"]["total"]) * 100 error = "message_popup_error" ctx = self.titlebar.get_style_context() + msg = f"CPU: {cpu:2.0f}% RAM: {memory:2.0f}%" if cpu > 80 or memory > 85: + if not self.usage_report: + self.usage_report = True + return self.last_usage_report = datetime.now() if not ctx.has_class(error): ctx.add_class(error) - msg = f"CPU: {cpu:2.0f}% RAM: {memory:2.0f}%" self._screen.log_notification(msg, 3) self.titlelbl.set_label(msg) elif ctx.has_class(error): - if (datetime.now() - self.last_usage_report).seconds < 3: + self.titlelbl.set_label(msg) + if (datetime.now() - self.last_usage_report).seconds < 5: return + self.usage_report = False ctx.remove_class(error) self.titlelbl.set_label(f"{self._screen.connecting_to_printer}") return