2.9 KiB
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
0x03FFkö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 erkanntenEND. RequestConfig()undRequestMacros()melden einen unmittelbar fehlgeschlagenenSend()nicht anTrayApp.- Während
SendConfig()undSendMacros()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.