2.2 KiB
2.2 KiB
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:
EvtKeyDownempfangen → Aktion aus Config laden → URL/Programm starten - Eigenes Tray-Icon statt
SystemIcons.Application - Debug-Log (
versapad_rx.txt) entfernen