터치 패널 온도 경고 점멸 적용

This commit is contained in:
seo committed 2026-07-31 06:07:01 +09:00
1 parent 3eda77c741
commit 33851e0189
2 files changed
+16 -7

No files matched your search

+15 -6
View File
@@ -308,6 +308,7 @@ class StatusDot(QWidget):
class StatusTile(QFrame):
ACTIVITY_HOLD_SECONDS = 0.12
ERROR_HOLD_SECONDS = 2.0
ERROR_BLINK_SECONDS = 0.5
def __init__(self, title):
super().__init__()
@@ -320,6 +321,7 @@ class StatusTile(QFrame):
self.read_steady = None
self.write_steady = None
self.error_steady = None
self.error_blink = False
self.title = QLabel(title)
self.title.setObjectName("statusTitle")
self.detail = QLabel("-")
@@ -356,11 +358,13 @@ class StatusTile(QFrame):
read_steady=None,
write_steady=None,
error_steady=None,
error_blink=False,
):
now = time.monotonic()
self.read_steady = read_steady
self.write_steady = write_steady
self.error_steady = error_steady
self.error_blink = error_blink
if read_activity:
self.last_read_at = now
if write_activity:
@@ -376,7 +380,10 @@ class StatusTile(QFrame):
def update_dots(self, now):
read_on = self.read_steady if self.read_steady is not None else now - self.last_read_at <= self.ACTIVITY_HOLD_SECONDS
write_on = self.write_steady if self.write_steady is not None else now - self.last_write_at <= self.ACTIVITY_HOLD_SECONDS
error_on = self.error_steady if self.error_steady is not None else now - self.last_error_at <= self.ERROR_HOLD_SECONDS
if self.error_blink:
error_on = int(now / self.ERROR_BLINK_SECONDS) % 2 == 0
else:
error_on = self.error_steady if self.error_steady is not None else now - self.last_error_at <= self.ERROR_HOLD_SECONDS
self.read_dot.set_steady(read_on)
self.write_dot.set_steady(write_on)
self.error_dot.set_steady(error_on)
@@ -984,8 +991,9 @@ class TouchPanel(QMainWindow):
self.rows["rpi_temp"].set_state(
detail,
read_steady=0 < hottest < 60,
write_steady=60 <= hottest < 70,
error_steady=hottest >= 70,
write_steady=60 <= hottest < 80,
error_steady=False,
error_blink=hottest >= 80,
)
def render_rpi_fan(self, rpm):
@@ -996,9 +1004,10 @@ class TouchPanel(QMainWindow):
detail = f"{temp:.0f} C" if temp > 0 else "- C"
self.rows["synology_temp"].set_state(
detail,
read_steady=0 < temp < 75,
write_steady=75 <= temp < 90,
error_steady=temp >= 90,
read_steady=0 < temp < 60,
write_steady=60 <= temp < 80,
error_steady=False,
error_blink=temp >= 80,
)
def render_synology_fan(self):