Create a dedicated fullscreen display process for Viture/X11. It must own the Ground Station visual lifecycle rather than relying on the terminal or a bare fpv-video window.
Scope
Start a fullscreen canvas on Viture before video is available.
Keep video as the rendering-priority background layer when it exists.
Keep the design ready for a later independent MIPI/touch display.
Do not alter WFB transport, UART parsing, or RC control.
Updated architecture decision
The display is a kiosk application and stays alive independently of WFB, the transmitter, and the video receiver state. The no-video black canvas is the future primary Ground Station menu.
The display layer must become a multi-target compositor model:
DisplayController
├─ Viture target: dedicated FPV template; video receives visual priority
└─ MIPI/touch target: independent operator template; later telemetry/map/video widgets
For the first milestone there is only one Viture/X11 target. The interface must not assume one global layout or one physical display forever.
Acceptance
Ground Station can start/stop the display deterministically.
Canvas is fullscreen on DISPLAY=:0.
No crash/restart of the Ground Station supervisor when X11 is temporarily unavailable.
Canvas remains open while WFB/video is absent; it is not tied to the RC knob lifecycle.
## Goal
Create a dedicated fullscreen display process for Viture/X11. It must own the Ground Station visual lifecycle rather than relying on the terminal or a bare `fpv-video` window.
## Scope
- Start a fullscreen canvas on Viture before video is available.
- Keep video as the rendering-priority background layer when it exists.
- Keep the design ready for a later independent MIPI/touch display.
- Do not alter WFB transport, UART parsing, or RC control.
## Updated architecture decision
The display is a kiosk application and stays alive independently of WFB, the transmitter, and the video receiver state. The no-video black canvas is the future primary Ground Station menu.
The display layer must become a multi-target compositor model:
```text
DisplayController
├─ Viture target: dedicated FPV template; video receives visual priority
└─ MIPI/touch target: independent operator template; later telemetry/map/video widgets
```
For the first milestone there is only one Viture/X11 target. The interface must not assume one global layout or one physical display forever.
## Acceptance
- Ground Station can start/stop the display deterministically.
- Canvas is fullscreen on DISPLAY=:0.
- No crash/restart of the Ground Station supervisor when X11 is temporarily unavailable.
- Canvas remains open while WFB/video is absent; it is not tied to the RC knob lifecycle.
grzesiu
was assigned by piotr2026-09-30 22:31:18 +02:00
PR zweryfikowany: head issue-1-fullscreen-display, base main; issue pozostaje otwarte do merge.
Wdrożono fundament niezależnego fullscreen Ground Station display i wystawiono PR: https://git.piksar.eu/piotr/groundstation/pulls/7
- commit: `53ab05ce12a3dc750216b94c349562e5ce18a784`
- walidacja OpenCode: pełne `go test ./...`, testy procesu z `-race` (10 powtórzeń), `go vet ./...`, formatowanie, build ARM64 i `git diff --check` — OK
- CI dla dokładnego SHA: [run 178](https://git.piksar.eu/piotr/groundstation/actions/runs/178) — **success**
- PR zweryfikowany: head `issue-1-fullscreen-display`, base `main`; issue pozostaje otwarte do merge.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Goal
Create a dedicated fullscreen display process for Viture/X11. It must own the Ground Station visual lifecycle rather than relying on the terminal or a bare
fpv-videowindow.Scope
Updated architecture decision
The display is a kiosk application and stays alive independently of WFB, the transmitter, and the video receiver state. The no-video black canvas is the future primary Ground Station menu.
The display layer must become a multi-target compositor model:
For the first milestone there is only one Viture/X11 target. The interface must not assume one global layout or one physical display forever.
Acceptance
Wdrożono fundament niezależnego fullscreen Ground Station display i wystawiono PR: #7
53ab05ce12a3dc750216b94c349562e5ce18a784go test ./..., testy procesu z-race(10 powtórzeń),go vet ./..., formatowanie, build ARM64 igit diff --check— OKissue-1-fullscreen-display, basemain; issue pozostaje otwarte do merge.