Refresh GUI documentation and profile synchronization
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
# Bekannte Einschränkungen
|
||||
|
||||
Diese Seite trennt bewusst offene Punkte von bereits implementierten
|
||||
Verträgen. Sie ist vor Änderungen an Verbindungslogik, ActionDialog oder
|
||||
Binärformat zu lesen.
|
||||
|
||||
## Host-Commands
|
||||
|
||||
Firmware und GUI übertragen für `HostCommand`:
|
||||
|
||||
- Key- beziehungsweise Encoder-ID
|
||||
- Richtung über die Event-ID
|
||||
- 16-Bit-Command-ID in Byte 2/3
|
||||
|
||||
`TrayApp` führt die Command-ID noch nicht als Desktop-Aktion aus. Eine spätere
|
||||
Implementierung benötigt ein explizites Allowlist-Mapping; beliebige
|
||||
Shellbefehle aus Config-Daten sind nicht zulässig.
|
||||
|
||||
## LED- und globale Einstellungen
|
||||
|
||||
Das Binärformat und `DeviceConfig` unterstützen sieben Animationen:
|
||||
`Static`, `Blink`, `Pulse`, `FadeIn`, `FadeOut`, `ColorCycle` und `ColorFade`.
|
||||
Der `ActionDialog` bietet aktuell nur die ersten drei sowie `ColorCycle` an.
|
||||
Beim Öffnen einer nicht angebotenen Animation fällt die Auswahl auf `Static`
|
||||
zurück und würde beim Bestätigen entsprechend gespeichert.
|
||||
|
||||
Per-LED-Helligkeit wird binär und im JSON erhalten, besitzt aber kein
|
||||
Bedienelement. Globale Helligkeit und Encoder-Sensitivität werden binär
|
||||
erhalten, sind weder im Hauptfenster editierbar noch Teil des JSON-Exports.
|
||||
Die Firmware verwendet Encoder-Sensitivität derzeit ebenfalls nicht.
|
||||
|
||||
## ActionDialog
|
||||
|
||||
- Die Consumer-Liste enthält zwölf vordefinierte Usages. Andere formal gültige
|
||||
Usages bis `0x03FF` können aus dem Board gelesen werden, fallen beim Öffnen
|
||||
des Dialogs aber auf „Play / Pause“ zurück.
|
||||
- Das Periodenfeld bietet nur 500, 1000, 2000 und 4000 ms. Andere geladene
|
||||
Perioden fallen im Dialog auf 4000 ms zurück.
|
||||
- Ein Makro endet am ersten Step mit `keycode == 0`; Lücken vor späteren
|
||||
belegten Steps werden nicht ausgeführt.
|
||||
|
||||
## Transfers und Verbindung
|
||||
|
||||
- Das CDC-Protokoll besitzt kein Byte-Framing, keine Paket-CRC und keine
|
||||
Transfer-ID. Verliert der Stream ein Byte, kann die 8-Byte-Grenze bis zum
|
||||
Reconnect verschoben bleiben.
|
||||
- Chunkzahl, eindeutige Indizes, Vollständigkeit und END-Metadaten werden
|
||||
geprüft. Bleibt ein Dump jedoch ohne `END`, existiert noch kein
|
||||
Empfangs-Timeout oder Watchdog; die automatische Wiederholung startet nur
|
||||
nach einem als ungültig erkannten `END`.
|
||||
- `RequestConfig()` und `RequestMacros()` melden einen unmittelbar
|
||||
fehlgeschlagenen `Send()` nicht an `TrayApp`.
|
||||
- Während `SendConfig()` und `SendMacros()` ist nur die Speichern-Schaltfläche
|
||||
deaktiviert. Andere Editoraktionen werden nicht global gesperrt.
|
||||
|
||||
## Testabdeckung
|
||||
|
||||
Die Console-Contract-Tests prüfen:
|
||||
|
||||
- Configgröße, CRC und Roundtrip
|
||||
- ausgewählte ungültige Configfelder
|
||||
- Makrogröße und HID-Keycode-Grenze
|
||||
- Chunkvollständigkeit und doppelte Chunks
|
||||
- 16-Bit-Host-Command-Payload
|
||||
|
||||
Nicht automatisiert geprüft werden WinForms-Interaktionen, WMI-Porterkennung,
|
||||
echte SerialPort-Fehler, Reconnects, NVM-Schreibzeiten, HID-Ausgabe und
|
||||
Hardwareverhalten. Dafür ist weiterhin ein Test mit angeschlossenem VersaPad
|
||||
erforderlich.
|
||||
Reference in New Issue
Block a user