70 lines
2.9 KiB
Markdown
70 lines
2.9 KiB
Markdown
# 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.
|