Files
VersaGUI/doc/07_known_limitations.md
T

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 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.