From 89155c3f2a33a2e9319c662ea2dd83fe43239eef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Przemys=C5=82aw=20Kie=C5=82kowski?= Date: Fri, 31 Jul 2026 08:16:36 +0200 Subject: [PATCH] =?UTF-8?q?Wska=C5=BAnik=20offline:=20ramka=20zamiast=20be?= =?UTF-8?q?lki=20+=20naprawa=20cyklicznego=20migania?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Dwa zgłoszenia z kiosku (2026-07-31): 1. BELKA ZASŁANIAŁA DANE ALS. Pełnoekranowy pasek u góry zajmował pas ekranu i obcinał dane informacyjne w iframe. Zastąpiony cienką pulsującą RAMKĄ wokół całego ekranu (pointer-events: none, niczego nie zakrywa) plus małą plakietką w rogu. Z daleka widoczna równie dobrze. 2. WSKAŹNIK MIGAŁ zamiast świecić ciągle. disconnectedSince było resetowane przy KAŻDEJ nieudanej próbie reconnectu, nie tylko przy przejściu połączone->rozłączone — przy odstępie ponowień > 10 s (backoff dochodzi do 30 s) licznik ciszy zerował się co próbę i wskaźnik cyklicznie znikał i wracał. Teraz znacznik początku przerwy ustawiany wyłącznie przy przejściu ze stanu połączonego. Kontekst zgłoszenia: strona działa jeszcze przeciw STAREMU LuPortowi, który nie ma kanału zbiorczego ani uwierzytelniania WS — połączenie pada ciągle (oczekiwane do czasu wdrożenia; potem wstaje bez zmian), a błąd zamieniał tę ciągłą przerwę w miganie. Testy: scenariusz 7 próbkuje wskaźnik co 500 ms przez 90 s ciągłej awarii i wymaga 100% aktywnych próbek — z błędem aktywnych było 51/182 (72% czasu zgaszony; dokładnie zgłoszone "pojawia się i znika"). Fałszywy WebSocket odrzuca teraz połączenia jak przeglądarka (onclose po nieudanej próbie), więc długa przerwa z ponowieniami jest testowalna. 11/11 scenariuszy PASS, mutacja poprawki wywraca scenariusz 7. Co-Authored-By: Claude Fable 5 --- README.md | 29 ++++-- als_alert_screen.html | 86 +++++++++++------- test/__pycache__/testy_ekranu.cpython-313.pyc | Bin 0 -> 10332 bytes test/testy_ekranu.py | 61 +++++++++---- 4 files changed, 118 insertions(+), 58 deletions(-) create mode 100644 test/__pycache__/testy_ekranu.cpython-313.pyc diff --git a/README.md b/README.md index 85bfd50..6baea8e 100644 --- a/README.md +++ b/README.md @@ -18,13 +18,15 @@ także po każdym wznowieniu połączenia. |----------|-------| | Brak maszyny w alarmie | Iframe z infoterminalem ALS | | Co najmniej jedna maszyna w alarmie | Ekran alarmowy z kartami maszyn | -| Brak łączności z LuPort > 10 s | Pomarańczowy pasek u góry (na obu widokach) | +| Brak łączności z LuPort > 10 s | Pomarańczowa pulsująca ramka wokół ekranu + plakietka w rogu (na obu widokach) | Alarm jest wykrywany, gdy pole `status` maszyny zawiera słowo **`alarm`** (bez rozróżnienia wielkości liter), np. `"Alarm - awaria"`, `"ALARM"`. -Pomarańczowy pasek to celowo INNY kolor niż czerwień alarmów: mówi „ekran może -pokazywać nieświeży obraz", a nie „maszyna stoi". +Wskaźnik offline to cienka pulsująca RAMKA wokół całego ekranu plus mała +plakietka w rogu — niczego nie zasłania (pełnoekranowa belka zakrywała dane +ALS w iframe). Pomarańcz to celowo INNY kolor niż czerwień alarmów: mówi +„ekran może pokazywać nieświeży obraz", a nie „maszyna stoi". --- @@ -39,7 +41,7 @@ Wszystkie parametry na początku sekcji `