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
+6 -1
View File
@@ -75,7 +75,7 @@ _configAckOk / _macroAckOk volatile bool (true = ACK, false = NACK)
| Methode | Rückgabe | Funktion |
|---|---|---|
| `Send(pkt)` | void | Rohe 8-Byte-Übertragung (fire-and-forget) |
| `Send(pkt)` | bool | Rohe, unter Write-Lock atomare 8-Byte-Übertragung |
| `SetLedOverride(keyId, r, g, b)` | void | CMD 0x01 |
| `ClearLedOverride(keyId)` | void | CMD 0x02 |
| `SetLedBase(keyId, r, g, b)` | void | CMD 0x03 |
@@ -86,6 +86,11 @@ _configAckOk / _macroAckOk volatile bool (true = ACK, false = NACK)
`SendConfig` und `SendMacros` blockieren ~1,5 s (Chunks + NVM-Zeit) → werden in `Task.Run()` aus `ConfigForm.OnSave()` aufgerufen.
Vor `BEGIN` wird das zugehörige ACK-Gate geleert. Beide Blob-Sender teilen
einen Transfer-Lock, prüfen jeden `Send()`-Rückgabewert und brechen bei
Disconnect sofort ab. Ein Disconnect gibt wartende ACK-Gates mit Fehlerstatus
frei.
## Events
| Event | Gefeuert wenn |