Add documentation, manual and screenshots preview

This commit is contained in:
2026-07-23 21:24:48 +02:00
commit d6cda77aaf
40 changed files with 1571 additions and 0 deletions
+74
View File
@@ -0,0 +1,74 @@
# Open Fixture Library
## Søgeflow
1. Web UI sender `POST /api/v1/fixtures/search-ofl?query=<tekst>`.
2. Backend bruger OFL API, eller falder tilbage til lokale testfixtures i `test-data/fixtures`.
3. Resultater vises som `manufacturer/fixture`.
## Preview
Preview kaldes via:
```http
POST /api/v1/fixtures/preview-ofl?manufacturer_key=<manufacturer>&fixture_key=<fixture>
```
Preview returnerer normaliseret fixturedata uden at skrive til lokal fixtureliste.
I UI kan brugeren:
- åbne preview,
- se schema-version,
- se kategorier,
- vælge og inspicere modes,
- se kanalindeks, displaynavn, precedence og opløsning.
## Import
Import kaldes via:
```http
POST /api/v1/fixtures/import-ofl?manufacturer_key=<manufacturer>&fixture_key=<fixture>
```
Import:
- henter rå OFL-data,
- normaliserer til TuxDMX-format,
- gemmer resultatet i lokal runtime/cache.
## Modevalg
Modevalg bruges i preview til inspektion af kanalstruktur. Importen bevarer alle normaliserede modes i fixturemodellen, så patch/UI senere kan vælge korrekt mode.
## Fixture-normalisering
Normalisering sker i `backend/app/fixtures/normalize.py`:
- OFL JSON læses ikke direkte af runtime.
- Hver mode bliver til en stabil intern struktur med:
- `key`
- `channel_count`
- `channels[]`
- Hver kanal får:
- `index`
- `key`
- `display_name`
- `precedence`
- `resolution`
Fallback-regel i denne leverance:
- kanaler med `dim` i navnet bliver markeret som `HTP`
- øvrige kanaler bliver markeret som `LTP`, medmindre OFL-data allerede angiver noget andet
## Offline fallback
Hvis OFL ikke kan nås, søger klienten i lokale fixtures under `test-data/fixtures`.
## Begrænsninger i denne leverance
- OFL update-diff, warnings og backup før fixturemigration er endnu ikke fuldt implementeret.
- Runtime persistence til database for importerede fixtures er kun delvist implementeret; preview/import virker i simulator-runtime og kan verificeres via API/UI.