UDP und Stationszustände
UDP und Stationszustände
[Bearbeiten]Zweck
[Bearbeiten]`megbes-internal` setzt Anforderungen von `megbes-external` in UDP-Signale für die Geräte im lokalen Ausstellungsnetz um. Das Zielgerät kann ein BrightSign-Player, PC, Raspberry Pi oder jedes andere Gerät sein, das das vereinbarte UDP-Signal verarbeitet.
Steuerbefehl
[Bearbeiten]Der interne Server erhält eine Kombination aus Stationsnummer und Befehl. Aus der Stationsnummer wird innerhalb des projektspezifischen Subnetzes die Zieladresse bestimmt; der Befehl wird als UDP-Nutzlast an das Gerät gesendet.
Der konkrete UDP-Port und das lokale Subnetz sind projektbezogene Konfigurationswerte. Sie dürfen nicht aus einem anderen Projekt übernommen werden, ohne die örtliche Netzstruktur zu prüfen.
Stationsgesteuerter Modus
[Bearbeiten]Im stationsgesteuerten Modus melden die Medienstationen ihren Zustand per UDP an `megbes-internal`. Die Funktion muss bei `megbes-external` und `megbes-internal` aktiviert sein.
Der aktuelle Code kennt folgende Zustände:
| Zustand | UDP-Schlüsselwort | Bedeutung im aktuellen Code |
|---|---|---|
| `IDLE` | `idle` | Station ist frei und kann übernommen werden. |
| `TOUCHSCREEN` | `touchscreen` | Station wird lokal über den Touchscreen benutzt. |
| `REMOTE` | `remote` | Station wurde einer angemeldeten Fernbedienung beziehungsweise einem Benutzer zugeordnet. |
| `OPEN` | `open` | Station ist unabhängig von der normalen Benutzersperre freigegeben; Statusabfrage und Steuerung werden nicht durch die übliche Belegungsprüfung blockiert. |
Beispiel für eine Zustandsmeldung:
touchscreen: <Stationsnummer>
Init-Meldung
[Bearbeiten]Eine UDP-Nachricht mit dem Schlüsselwort `init` wird als Start-/Statusmeldung einer Medienstation verarbeitet und kann eine Informationsmail auslösen. Inhalt und Empfänger sind projektspezifisch zu konfigurieren.
Timer
[Bearbeiten]Der Timer ist ein Fallback gegen dauerhaft blockierte Stationen und kann je Projekt überschrieben werden. Der Quellcode enthält zwei unterschiedliche Standardwerte:
- stationsgesteuerte Zustandsverwaltung in `megbes-internal`: 1.800 Sekunden
- nicht stationsgesteuerte Sperrlogik in `megbes-external`: 180 Sekunden
Diese Werte gelten nur, wenn das betreffende Projekt keinen eigenen Wert setzt. Der tatsächlich konfigurierte Wert gehört auf die Projektseite.
Status-Endpunkte
[Bearbeiten]`megbes-internal` stellt Endpunkte zum Abfragen, Initialisieren und Zurücksetzen eines Stationszustands bereit. `megbes-external` reicht die benötigten Aufrufe kontrolliert weiter. Konkrete Header- und Authentifizierungswerte werden aus Sicherheitsgründen nicht im allgemeinen Wiki dokumentiert.