Refresh GUI documentation and profile synchronization

This commit is contained in:
2026-07-24 10:35:47 +02:00
parent 08db94bb6b
commit 7d381218f3
15 changed files with 226 additions and 35 deletions
+37
View File
@@ -25,6 +25,7 @@ Sie muessen deshalb synchron zu `VersaMCU/src/config/nvm_config.h` und `macro_co
| `ActiveProfileIndex` | aktives Profil 0..2 |
| `GlobalBrightness` | globale LED-Helligkeit |
| `Profiles[3]` | komplette Profil-Daten |
| `EncSensitivity[4]` | im Vertrag enthalten; Firmware nutzt den Wert derzeit nicht |
Fuer die GUI gibt es zusaetzlich Komfortzugriffe auf das aktive Profil:
@@ -62,6 +63,32 @@ Jedes Profil belegt 236 Byte:
20 x led_period_ms
```
### Action-Daten
| Typ | Datenbereich |
|---|---|
| `None` | Daten werden ignoriert |
| `HidKey` | Low-Byte Keycode `0x00..0x65`, High-Byte Modifier |
| `HidConsumer` | Usage `0x0000..0x03FF` |
| `HostCommand` | frei definierte Command-ID `0x0000..0xFFFF` |
| `Macro` | Slot `0..31` |
| `ProfileSwitch` | Profil `0..2`; `0x00FF` oder `0xFFFF` bedeuten „nächstes Profil“ |
### LED-Animationen im Binärformat
| Wert | Enum |
|---|---|
| `0` | `Static` |
| `1` | `Blink` |
| `2` | `Pulse` |
| `3` | `FadeIn` |
| `4` | `FadeOut` |
| `5` | `ColorCycle` |
| `6` | `ColorFade` |
`DeviceConfig` akzeptiert alle Werte `0..6`. Der aktuelle ActionDialog bietet
nur `Static`, `Blink`, `Pulse` und `ColorCycle` an.
## CRC
CRC16-CCITT:
@@ -109,10 +136,20 @@ Ein Step besteht aus:
- `keycode`
- `modifier`
`keycode == 0` beendet die Ausführung des Slots. Belegte Steps nach der ersten
Lücke werden daher zwar serialisiert, von der Firmware aber nicht ausgeführt.
Es gibt kein Magic und keine CRC fuer die Makrotabelle.
Beim Transfer prüft die GUI trotzdem exakte Größe und alle HID-Keycodes; die
Firmware prüft zusätzlich die vollständige Chunkmenge.
## Validierung
`ToBytes()` verweigert ungültige Objektzustände. `FromBytes()` verändert das
bestehende Objekt erst, nachdem Größe, Magic, Version, CRC, aktives Profil,
Action-Werte, LED-Enums und die Mindestperiode von 2 ms für `Pulse` geprüft
wurden. Für die Makrotabelle gelten exakte 512 Byte und Keycodes bis `0x65`.
## Wichtig fuer Aenderungen
Wenn sich Firmware-Layout, Magic, Version, Profilzahl oder Makrogroesse aendern, muessen mindestens diese Stellen zusammen angepasst werden: