Merge branch 'main' into dev/jappel
Reconciles two independent lines of work: main cherry-picked and then extended dev/jappel's build-script/config-portability/rename-tab/ COM-port fixes, additionally fixing a config-loss bug (rebuild wiped the config when it lived in the install dir -- moved to roaming %APPDATA% instead) and adding free-text notes per action plus a frameless resizable window. dev/jappel keeps its .mcp.json registration and docs/ reference tree, which main deliberately left out. Conflict resolutions favored main's versions where the two sides solved the same problem (config location, build deploy target, COM-port release, tab rename) since main's fixes were validated against a real rebuild-wipes-config incident. docs/architecture.md and docs/data-model.md updated to describe the resulting %APPDATA% config path and the note field.
This commit is contained in:
commit
189ec01e68
11 changed files with 470 additions and 125 deletions
|
|
@ -50,6 +50,16 @@ siehe unten):
|
|||
| `0x04` | Alt |
|
||||
| `0x08` | Win |
|
||||
|
||||
Jede `Action` trägt zusätzlich ein optionales `note`-Feld (freier Text,
|
||||
z.B. `"Speichern in Fusion 360"`) — **rein lokal**, wie `profile_names`
|
||||
(siehe unten): kein Platz dafür in `SAction` (3 Byte, komplett verplant),
|
||||
`to_binary()`/`pack_config()` ignorieren das Feld beim Schreiben ans
|
||||
Board, `from_binary()` liefert frisch vom Board immer `note=""`.
|
||||
`versapad_combined.merge_notes(neu, alt)` kopiert bestehende Notizen nach
|
||||
jedem `load_from_board()`/`fetch_from_board()` zurück, sonst gingen sie
|
||||
bei jedem Board-Refresh verloren. Editierbar per Programmiermodus-Dialog
|
||||
oder MCP (`set_button_note()`/`set_encoder_note()`).
|
||||
|
||||
## LED
|
||||
|
||||
Pro MX-Button (nicht pro Encoder — Encoder haben keine eigene LED):
|
||||
|
|
@ -100,7 +110,7 @@ kompletten 740B-Block, nie nur ein Profil.
|
|||
"buttons": [
|
||||
{
|
||||
"index": 0,
|
||||
"action": { "type": "HidKey", "data": 30 },
|
||||
"action": { "type": "HidKey", "data": 30, "note": "Speichern in Fusion 360" },
|
||||
"led": { "r": 80, "g": 40, "b": 0, "brightness": 255,
|
||||
"anim": "Static", "period_ms": 4000 }
|
||||
}
|
||||
|
|
@ -128,7 +138,8 @@ kompletten 740B-Block, nie nur ein Profil.
|
|||
Profilnamen (`profile_names`) sind **rein lokal** — die Firmware-Structs
|
||||
haben keinen Platz für einen String (Header exakt 32B, jedes Profil exakt
|
||||
236B, alles verplant), sie landen nie aufs Board, egal welcher
|
||||
Schreibpfad benutzt wird.
|
||||
Schreibpfad benutzt wird. Dasselbe gilt für `note` in jeder `Action`
|
||||
(siehe oben).
|
||||
|
||||
## JSON: Legacy-Einzeldatei-Format (`versapad_config1/2/3.json`)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue