Der Kernel bildet das datentechnische Herzstück von Photon. Er läuft als performante, eigenständige Rust-Engine und übernimmt die DMX-Steuerung via Art-Net, Zustandsverwaltung und die Kommunikation mit der GUI.
- Art-Net Engine:
- Aktuell wird exklusiv Art-Net zur Ausgabe der DMX-Daten über das Netzwerk unterstützt.
- Zuverlässige, jitterarme Übertragung von DMX-Frames an Art-Net Nodes / Gateways.
- Patch- & Universum-Management:
- Verwaltung von DMX-Universen (Universum 0, 1, 2, ...).
- Mapping von Fixtures auf diskrete Startkanäle.
- Kollisions- und Überlappungsprüfung im Adressraum.
- Fixture-Abstraktion:
- Auflösung von High-Level-Attributen (z. B.
dimmer: 100%, pan: 32768, red: #FF) in konkrete DMX-Kanalwerte.
- Automatische Skalierung für 8-Bit, 16-Bit und 32-Bit Kanäle (Fine Channels wie
pan_f, tilt_f).
- Farbmodell-Konvertierung (RGB, CMY, HSV).
- State & Value Store:
- Deterministischer Speicherzustand für alle aktiven Scheinwerfer und Kanäle.
- Vorbereitung für Cues, Szenen und Fades.
Der Kernel ist im Workspace modular aufgebaut:
Kernel/
├── kernel/ # Core-Logik, Art-Net Ausgabe und State-Engine
├── interface/ # TCP-Schnittstelle (Server) für eingehende Befehle von der GUI
└── common/ # Gemeinsame Datenstrukturen, Typen und Protokolldefinitionen
Die GUI und der Kernel kommunizieren über eine TCP-Verbindung:
- Der Kernel stellt über sein
interface-Modul einen TCP-Server bereit.
- Die GUI verbindet sich als TCP-Client.
- Alle Steuerbefehle (z. B. CLI-Kommandos wie
set, add, new oder Fader-Änderungen in der GUI) werden in Echtzeit über diesen TCP-Socket übertragen.
- Vorteil der Entkopplung: Der Kernel kann autonom als Service oder auf einem dedizierten Steuerungsrechner (z. B. Raspberry Pi oder Linux-Server im Rig) laufen, während die GUI auf einem Laptop oder Bedienpult im selben Netzwerk läuft.