Swipe in from the side edge to change pages on the Guition (0.2.29)

Page swipes were an LVGL gesture anywhere on the screen: 50 px, fast only,
and almost always starting on a tile that lit up as pressed. On the Guition
a touch that starts within 32 px of the left or right edge and travels
40 px inward, clearly sideways, now flips one page (from the right edge
leftwards is next, from the left edge rightwards previous), at any speed
and in every rotation; a swipe that starts in the middle does nothing, so
taps and drags on tiles can no longer change the page by accident. The
whole-screen gesture is removed from the Guition profile; the CYD keeps
it. Firmware 0.2.24 for both boards, the app only reworded the setting.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
Max Gramser
2026-09-14 11:40:19 +02:00
parent ea0b423fab
commit 104f20e4fa
13 changed files with 170 additions and 31 deletions
+6 -2
View File
@@ -138,8 +138,12 @@ Klik **Opslaan & naar scherm** om je wijzigingen door te sturen.
Vanaf firmware 0.2.7 passen twintig tegels op maximaal vier pagina’s. Oudere
firmware houdt de limiet van tien totdat je bijwerkt. Via **Algemene instellingen
→ Vegen tussen pagina’s** kun je horizontaal swipen inschakelen. Sliders bedienen
alleen hun waarde; detailmenu’s en standby wisselen niet van pagina.
→ Vegen tussen pagina’s** kun je vegen inschakelen. Op de Guition (firmware
0.2.24+) veeg je dan vanaf de linker- of rechterrand naar binnen, zoals
terug-vegen op een telefoon; langzaam of snel, en een veeg die midden op het
scherm begint doet niets, zodat tikken en slepen op tegels nooit per ongeluk van
pagina wisselen. Op de CYD blijft het een snelle veeg over het scherm. Sliders
bedienen alleen hun waarde; detailmenu’s en standby wisselen niet van pagina.
Er staan zes tegels op een pagina. Bij maximaal zes verdwijnen Vorige/Volgende.
De standby-tijd is standaard tien minuten. Bij offline apparaten blokkeert het
+11
View File
@@ -177,6 +177,17 @@ staan iconen in de browser uit het midden); draai daarna `generate_packages.py`.
De substituties `MDI_GLYPH_*` zijn vervallen: `TILEn_ICON` in handmatige
profielen moet uit de set komen. Geen gewijzigde preferences of sleutels.
### Compatibiliteit 0.2.29 / firmware 0.2.24
Alleen firmware (Guition). `cyd::EdgeSwipe` (in `cyd_ui.h`, getest in
`test_cyd_ui.cpp`) vervangt op de Guition de LVGL-gesture op `home_page`: `begin()`
in `on_touch` met de LVGL-rotatie, `update()` in `on_update` voor het eerste contact;
bij een treffer `touch_guard.consume()`, `lv_indev_wait_release()` op alle indevs en
`show_tile_page`. Substituties `EDGE_SWIPE_BAND_PX`/`EDGE_SWIPE_TRAVEL_PX`;
`DISPLAY_W`/`DISPLAY_H` bepalen de rotatiemapping (ESPHome: 90° `x=y, y=W-x-1`,
270° `x=H-y-1, y=x`, 180° spiegelt beide). De CYD houdt de LVGL-gesture. De
instelling `swipe_pages` blijft de schakelaar; protocol, opslag en sleutels ongewijzigd.
### Compatibiliteit 0.2.28 / firmware 0.2.23
Alleen firmware. `cyd::TouchGuard` krijgt `configure(move_limit_px, min_press_ms)`
+36
View File
@@ -0,0 +1,36 @@
# Testresultaten app 0.2.29 / firmware 0.2.24 (2026-09-14)
Vegen vanaf de zijrand op de Guition vervangt de LVGL-gesture over het hele scherm;
de CYD houdt zijn snelle veeg. In de app alleen de omschrijving van de instelling.
## Wat veranderde
- `cyd::EdgeSwipe` in `cyd_ui.h`: een aanraking die binnen `EDGE_SWIPE_BAND_PX` (32) van de
linker- of rechterrand begint en `EDGE_SWIPE_TRAVEL_PX` (40) naar binnen aflegt, duidelijk
meer zijwaarts dan verticaal (|dx| ≥ 2·|dy|), wisselt één keer per aanraking van pagina.
Geen snelheidseis. De rotatie volgt ESPHome's LVGL-mapping (90°: x=y, y=W−x−1; 270°:
x=H−y−1, y=x; 180°: beide gespiegeld), dus "linkerrand" is altijd de rand die de gebruiker ziet.
- Guition-profiel: `configure()` in `on_boot`, `begin()` in `on_touch`, `update()` in
`on_update` voor het eerste contact; bij een treffer `touch_guard.consume()`,
`lv_indev_wait_release()` en `show_tile_page` (die de pagina begrenst). De
`LV_EVENT_GESTURE`-handler op `home_page` is verwijderd. Dezelfde blokkades als voorheen:
instelling uit, gedimd, kalibratie, open kaart.
## Geautomatiseerd
- C++ (clang++ -std=c++17 -Wall -Wextra -Werror -I.): 11/11 PASS. `test_cyd_ui` dekt:
42 px vanaf links = vorige, vanaf rechts = volgende, één keer per aanraking, start in het
midden doet niets, diagonaal telt niet en naar buiten bewegen niet, later rechtgetrokken telt
wel, en de drie rotaties.
- Python: 84 tests OK (`FIRMWARE_VERSION` 0.2.24 in app, profielen en pakketten).
`generate_packages.py --check` groen; bench-kopieën opnieuw gegenereerd.
- ESPHome 2026.6.2 compile: `easy-guition-device.yaml` SUCCESS in 41 s (RAM 31,9%, flash
18,3%), `easy-cyd-device.yaml` SUCCESS in 40 s (RAM 30,9%, flash 76,0%); geen nieuwe
waarschuwingen.
## Nog niet geverifieerd
- Fysiek vegen vanaf de rand van de Guition (frame van de wallbox, eerste GT911-meting
bij x≈0–10), inclusief een gedraaid scherm; en of de CYD-veeg onveranderd werkt na de
herbouw. De bench-borden hingen niet aan USB en reageerden niet op de API. Max werkt bij
via **Bijwerken** en kijkt in het log naar `randveeg: pagina 0 -> 1`.