Added doc
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
# TrayApp
|
||||
|
||||
**Datei:** `TrayApp.cs`
|
||||
|
||||
## Verantwortung
|
||||
|
||||
- App-Lebenszyklus als `ApplicationContext` (kein Hauptfenster)
|
||||
- Tray-Icon mit Verbindungsstatus und Kontextmenü
|
||||
- Empfang und Routing aller Board-Events (via `SerialManager.PacketReceived`)
|
||||
- Config/Makro-Dump-Empfang (chunked, via `_rxConfigBuf` / `_rxMacroBuf`)
|
||||
- Öffnen des `ConfigForm` (nur eine Instanz gleichzeitig)
|
||||
|
||||
## Tray-Menü
|
||||
|
||||
```
|
||||
[●/○] VersaPad – verbunden / nicht verbunden (disabled, nur Anzeige)
|
||||
──────────────────────────────────────────────
|
||||
Konfiguration... → OpenConfigForm()
|
||||
──────────────────────────────────────────────
|
||||
Beenden → Application.Exit()
|
||||
```
|
||||
|
||||
Icon und Tooltip spiegeln den Verbindungsstatus:
|
||||
- Verbunden: `SystemIcons.Information`, Text "VersaPad – verbunden"
|
||||
- Getrennt: `SystemIcons.Application`, Text "VersaPad – nicht verbunden"
|
||||
|
||||
(TODO: eigenes Icon einbinden)
|
||||
|
||||
## Board-Event-Handling (OnPacket)
|
||||
|
||||
| Event-ID | Aktion |
|
||||
|---|---|
|
||||
| `EvtConfigBegin` | `_rxConfigBuf = new byte[223]` |
|
||||
| `EvtConfigData` | Chunk in `_rxConfigBuf` eintragen (`KeyId * 6` = Byte-Offset) |
|
||||
| `EvtConfigEnd` | `DeviceConfig.FromBytes()` → `ConfigForm.RefreshAll()` |
|
||||
| `EvtMacroBegin` | `_rxMacroBuf = new byte[256]` |
|
||||
| `EvtMacroData` | Chunk in `_rxMacroBuf` eintragen |
|
||||
| `EvtMacroEnd` | `MacroTable.FromBytes()` |
|
||||
| `EvtPong` | MessageBox "Ping OK" |
|
||||
| `EvtConfigAck` | MessageBox "Config gespeichert" |
|
||||
| `EvtConfigNack` | MessageBox "Config FEHLER" |
|
||||
| `EvtMacroAck` | MessageBox "Makros gespeichert" |
|
||||
| `EvtKeyDown` | TODO: HOST_COMMAND-Aktion ausführen |
|
||||
| `EvtEncCw/Ccw` | TODO: Encoder HOST_COMMAND |
|
||||
|
||||
## Verbindungslebenszyklus
|
||||
|
||||
```
|
||||
OnConnected():
|
||||
Icon + Text + Menü-Item aktualisieren
|
||||
serial.RequestConfig() → Config-Dump vom Board
|
||||
serial.RequestMacros() → Makro-Dump vom Board
|
||||
|
||||
OnDisconnected():
|
||||
Icon + Text + Menü-Item aktualisieren
|
||||
```
|
||||
|
||||
## TODOs in dieser Klasse
|
||||
|
||||
- HOST_COMMAND-Ausführung: `EvtKeyDown` empfangen → Aktion aus Config laden → URL/Programm starten
|
||||
- Eigenes Tray-Icon statt `SystemIcons.Application`
|
||||
- Debug-Log (`versapad_rx.txt`) entfernen
|
||||
Reference in New Issue
Block a user