Harden protocol transfers and config validation

This commit is contained in:
2026-07-24 09:49:39 +02:00
parent aa6b7a8ec9
commit 08db94bb6b
18 changed files with 741 additions and 202 deletions
+22 -6
View File
@@ -3,9 +3,9 @@
Windows-Tray-App zur Konfiguration des VersaPad v2.
Geschrieben in C# mit WinForms.
Hinweis:
Diese GUI ist weiterhin die Referenzimplementierung fuer Protokoll und Datenlayout.
Parallel existiert mit `VersaGUIDelphi` ein Delphi/VCL-Port unter dem Namen `VersaGUI Delphi`.
Diese GUI und das benachbarte Repository `../VersaMCU` sind die gemeinsam
gepflegten Referenzen für Protokoll und Datenlayout. Andere GUI-Ports gehören
nicht zum aktuellen Scope.
## Voraussetzungen
@@ -17,7 +17,7 @@ Parallel existiert mit `VersaGUIDelphi` ein Delphi/VCL-Port unter dem Namen `Ver
## Starten
```bash
dotnet run
dotnet run --project src/VersaGUI.csproj
```
## Was die App macht
@@ -25,6 +25,7 @@ dotnet run
- erkennt das Board automatisch per VID/PID
- oeffnet den CDC-COM-Port mit aktivem DTR
- liest beim Verbinden zuerst die Config und danach die Makros
- validiert Chunkzahl, eindeutige Indizes, Vollständigkeit, CRC und Feldwerte
- zeigt MX-Buttons und Encoder-Aktionen an
- schreibt Config und Makros getrennt, aber in einem UI-Vorgang auf das Board
@@ -82,6 +83,9 @@ wait for ACK/NACK
```text
VersaGUI/
|-- AGENTS.md
|-- doc/
|-- tests/VersaGUI.ContractTests/
`-- src/
|-- Program.cs
|-- TrayApp.cs
@@ -93,11 +97,23 @@ VersaGUI/
`-- Protocol.cs
```
## Build und Vertragsprüfungen
```bash
dotnet build src/VersaGUI.csproj --no-restore
dotnet run --project tests/VersaGUI.ContractTests/VersaGUI.ContractTests.csproj
```
## Grenzen / Status
- Host-Commands sind protokollseitig vorhanden, aber appseitig noch nicht voll ausgebaut
- die App ist Windows-only
- fuer eine alternative GUI ist `VersaGUIDelphi` der aktuelle Delphi/VCL-Port
- Host-Command-Events enthalten Command-ID, Key-/Encoder-ID und Richtung; ein
sicheres Mapping auf konkrete Desktop-Aktionen ist noch nicht implementiert
## Einstieg für Coding-LLMs
Repository-Anweisungen, gemeinsame Binärverträge und Verifikation stehen in
[`AGENTS.md`](AGENTS.md).
## Weiterfuehrende Doku