1.3 KiB
1.3 KiB
ConfigJson (Import / Export)
Datei: ConfigJson.cs
Format
Menschenlesbares JSON mit System.Text.Json (WriteIndented=true, Enums als Strings via JsonStringEnumConverter).
{
"version": 2,
"buttons": [
{
"index": 0,
"action": { "type": "HidKey", "data": 260 },
"led": { "r": 80, "g": 40, "b": 0, "anim": "ColorCycle", "period_ms": 4000 }
},
...
],
"encoders": [
{
"index": 0,
"sw": { "type": "None", "data": 0 },
"cw": { "type": "None", "data": 0 },
"ccw": { "type": "None", "data": 0 }
},
...
]
}
Serialisierung
ConfigJson.Serialize(cfg) → JSON-String. Exportiert alle 20 Buttons + 4 Encoder vollständig.
Deserialisierung
ConfigJson.Deserialize(json, cfg):
- Prüft
version– wirftInvalidDataExceptionbei Mismatch - Schreibt in bestehendes
DeviceConfig-Objekt (keinnew) - Fehlende
buttons/encoders-Arrays werden ignoriert (partial import möglich) - Ungültige
index-Werte werden übersprungen
Anmerkungen
MacroTablewird nicht exportiert (kein JSON-Format für Makros definiert)dataenthält denushort-Wert direkt (für HidKey z.B.Keycode | (Modifier << 8))- Die Datei ist kein Binärformat und kann manuell bearbeitet werden