superx-goes-arch/docs/safe-test-frames.md

2.6 KiB

Safe Test Frames / Regeln

Noch kein finales Protokoll. Deshalb erstmal Regeln statt Heldentum.

Do

  • nur einzelne kurze Testframes
  • jede Probe mit Device, Hex, sichtbarer Wirkung notieren
  • zuerst hidraw2, dann erst hidraw1
  • erst Preset/Enable/Disable, dann Farbe

Don't

  • kein blindes Fuzzing
  • keine Schleifen mit hunderten Writes
  • keine zufälligen Feature-Reports in alle Interfaces ballern

Aktuell plausible Klassen von Testframes

Klasse 1: OEM-Level Path-Proben

Nicht direkt HID-Bytes, sondern kleinste semantische CompatLayerCT-Routen:

  • /programhandle/connect
  • /programhandle/isOpen

Klasse 2: globale Enable-/Disable-Proben

Passend zu bestätigten Routen:

  • /programhandle/rgb/setOpen2/false/0
  • /programhandle/rgb/setOpen2/true/0

Klasse 3: kleine Preset-/Mode-Proben

Passend zu:

  • /programhandle/rgb/setPreset/0
  • /programhandle/rgb/assignSetOpen/0/true

Klasse 4: erst ganz zuletzt dunkle Color-Proben

Passend zu:

  • /programhandle/rgb/setColor/16/16/16
  • später erst assignSetColor

Importierte Legacy-HID-Familie aus onexplayer-superxcontrol

Die alte public tree behauptet für den Super X eine konservative Paketfamilie auf 1a86:1305 Interface 02 / typischerweise hidraw2.

Konkret importiert in tools/superx_hidraw_rgb.py:

  • Mode enable: 07 ff 05 00
  • Level off: 07 ff fd 00 05 01
  • Level 1: 07 ff fd 01 05 01
  • Level 2: 07 ff fd 01 05 03
  • Level 3: 07 ff fd 01 05 04
  • Mode static: 07 ff fd 00 05 04
  • Mode rainbow: 07 ff fd 01 05 04
  • Preset safe range: 0x00..0x16
  • Static color family: 07 ff fe RR GG BB ...

Wichtig:

  • Das sind jetzt Referenzframes, keine Wahrheitsgarantie.
  • Sie sind wertvoll, weil sie aus älteren Super-X-Artefakten kommen und nicht komplett geraten sind.
  • Trotzdem zuerst dry-run und Beobachtungsprotokoll, weil unklar bleibt, ob dein aktueller WS2812B-Ersatzpfad exakt gleich reagiert.

Praktische Dry-Run-Beispiele

  • python tools/superx_hidraw_rgb.py legacy-catalog
  • python tools/superx_hidraw_rgb.py legacy-packet mode enable --dry-run
  • python tools/superx_hidraw_rgb.py legacy-packet level 3 --dry-run
  • python tools/superx_hidraw_rgb.py legacy-packet preset 0x03 --dry-run
  • python tools/superx_hidraw_rgb.py legacy-packet static probe 16 8 4 --dry-run

Aktueller Arbeitsgrundsatz

CompatLayerCT ist jetzt klar genug, dass wir die OEM-Semantik zuerst festhalten. Dann machen wir lieber 3 gute Proben als 300 dumme.

Praktisch heißt das:

  • erst OEM-Route-Level katalogisieren
  • dann Linux-Bridge-/Backend-Gerüst vorbereiten
  • dann erst minimale HID-Writes gegen hidraw2 und ggf. hidraw1