Close cards through one path so the page swipe is never left blocked (0.2.32)
Read live on a Guition: every edge swipe was recognised but refused by the "card open" check, because the light, climate and vacuum cards cleared their overlay on close (X, tap beside the card, wake from standby) without forgetting active_entity. One opened card blocked swiping until the next layout change; the old whole-screen gesture and the CYD had the same gate. Both boards now close cards through one script, close_cards, which hides every overlay and clears that state; wake_display uses it too. The Guition edge swipe now follows LVGL's own pointer events (lv_indev_add_event_cb: PRESSED begins, PRESSING flips the page and calls lv_indev_wait_release from inside LVGL) instead of ESPHome's touchscreen on_update, so the point arrives already rotated. The direction rule is 45 degrees instead of twice as horizontal, and the log now says why a swipe was refused or how far an unfinished one got. Firmware 0.2.27 for both boards; the app only moves its target version. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
# Testresultaten app 0.2.32 / firmware 0.2.27 (2026-09-14)
|
||||
|
||||
Alleen firmware: de randveeg die op een echte Guition (Studio 1, firmware 0.2.24) nooit
|
||||
pakte, plus de veeg op LVGL's eigen pointer-events. De app verandert alleen de doelversie.
|
||||
|
||||
## Live diagnose op Studio 1 (ESPHome-log via de native API)
|
||||
|
||||
- Elke veeg begon netjes in de band (`GT911 press x=0…13` links, `x=470…478` rechts), maar er
|
||||
volgde nooit `randveeg`. Instelling stond aan (add-on: `swipe_pages: true`, 10 tegels,
|
||||
rotatie 0), `ui_state` meldde niet gedimd, geen kalibratie, geen runtime-kaart.
|
||||
- Na `preview_runtime_card -1` (roept `runtime_tiles::dismiss()` aan) werkte elke veeg
|
||||
meteen: `randveeg: pagina 0 -> 1`. Oorzaak: de kruisjes en achtergrondtikken van de
|
||||
licht-, klimaat- en stofzuigerkaart en het wakker worden uit standby verbergen de kaart
|
||||
zonder `active_entity` te wissen; de veeg-guard leest die en meldde stil "kaart open".
|
||||
Dezelfde gate zat in de oude LVGL-gesture en in het CYD-profiel.
|
||||
- Daarna: ongeveer één op de twee eerste vegen na een paginawissel vuurde niet, de
|
||||
tweede wel (bijvoorbeeld 12:57:28 en :29 vanaf rechts zonder wissel, :29 wel). De
|
||||
0.2.24-firmware logde daarvoor niets; 0.2.27 meldt nu `randveeg niet gevuurd: N px naar
|
||||
binnen, M px verticaal` en de richtingseis is 45° in plaats van "twee keer zo horizontaal".
|
||||
- Eén tik werd terecht geweigerd: `tik op script.studio_1_startup_sequence genegeerd:
|
||||
verplaatst 73 px (grens 67)`; de grens op de Guition is een open vraag aan Max.
|
||||
|
||||
## Wat veranderde
|
||||
|
||||
- `cyd::EdgeSwipe` op LVGL-pointercoördinaten (`begin(x, y, width)` met de horizontale
|
||||
resolutie van LVGL, dus rotatie is al verwerkt), 45°-regel, `inward()`/`sideways()`.
|
||||
- Guition: één `lv_indev_add_event_cb` in `on_boot` (PRESSED → begin, PRESSING → update en
|
||||
paginawissel met `lv_indev_wait_release`, RELEASED/PRESS_LOST → logregel als de veeg
|
||||
niet vuurde); geblokkeerde vegen loggen de reden. De touchscreen-triggers voeden alleen
|
||||
nog de tap-guard.
|
||||
- Beide borden: script `close_cards` (via `runtime_tiles::dismiss()`, anders overlays
|
||||
verbergen en `active_entity` wissen) voor de zes sluitknoppen en `wake_display`.
|
||||
|
||||
## Geautomatiseerd
|
||||
|
||||
- C++ (clang++ -std=c++17 -Wall -Wextra -Werror -I.): 11/11 PASS; `test_cyd_ui` dekt de
|
||||
nieuwe `EdgeSwipe`-API, de 45°-regel, de logwaarden en een smallere (gedraaide) breedte.
|
||||
- Python: 91 tests OK (`FIRMWARE_VERSION` 0.2.27 in app, profielen en pakketten).
|
||||
`generate_packages.py --check` groen.
|
||||
- ESPHome 2026.6.2 compile (verse worktree, geen cache): `easy-guition-device.yaml` SUCCESS in
|
||||
112 s (RAM 32,0%, flash 18,3%), `easy-cyd-device.yaml` SUCCESS in 86 s (RAM 31,0%, flash
|
||||
76,1%); geen nieuwe waarschuwingen.
|
||||
|
||||
## Nog te controleren op Studio 1
|
||||
|
||||
- Werkt de randveeg direct na een update zonder eerst een kaart te openen en te sluiten, en
|
||||
pakt de eerste veeg na een paginawissel nu ook; het log (`touch`) laat het zien.
|
||||
- Na het openen en sluiten van een lichtkaart (kruisje, tik ernaast, standby) blijft vegen werken.
|
||||
Reference in New Issue
Block a user