base_panel: usage report count at least 3 cycles of high usage

This commit is contained in:
alfrix 2024-03-20 08:43:48 -03:00
parent 441cde585c
commit 1ac7465e82

View File

@ -22,7 +22,7 @@ class BasePanel(ScreenPanel):
self.titlebar_name_type = None
self.current_extruder = None
self.last_usage_report = datetime.now()
self.usage_report = False
self.usage_report = 0
# Action bar buttons
abscale = self.bts * 1.1
self.control['back'] = self._gtk.Button('back', scale=abscale)
@ -209,15 +209,14 @@ 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
if self.usage_report < 3:
self.usage_report += 1
return
self.last_usage_report = datetime.now()
if not ctx.has_class(error):
@ -228,7 +227,7 @@ class BasePanel(ScreenPanel):
self.titlelbl.set_label(msg)
if (datetime.now() - self.last_usage_report).seconds < 5:
return
self.usage_report = False
self.usage_report = 0
ctx.remove_class(error)
self.titlelbl.set_label(f"{self._screen.connecting_to_printer}")
return