/* NowPlaying */ Null-Pakete, um beendete Wiedergabe zu signalisieren
[stratum0-wiki.git] / EVENTDISTR.mw
index ef07709..7805d5e 100644 (file)
@@ -1,8 +1,10 @@
+{{Projekt|kontakt=[[Benutzer:Daniel Bohrer|Daniel Bohrer]], [[Benutzer:chrissi^|chrissi^]]|status=aktiv|beschreibung=Paketspezifikation für Events aller Art|bild=Beispiel UDP-Paket.jpg|bildbeschreibung=Beispiel-Paket in Wireshark}}
+
 Im Space gibt es ein standardisiertes Protokoll, wie Events über das Netzwerk verteilt werden. Das Protokoll baut auf UDP auf und benutzt Port 31337. Die Pakete können sowohl als Unicast als auch als Broadcast oder Multicast gesendet werden.
 
+== Format ==
 Der Payload der UDP-Pakete hat folgenden Aufbau:
 
-[[Datei:Beispiel UDP-Paket.jpg|thumb|300px|Beispiel-Paket in Wireshark]]
 {| class="prettytable"
 ! Offset (Byte) !! Inhalt !! Bemerkung
 |-
@@ -10,11 +12,11 @@ Der Payload der UDP-Pakete hat folgenden Aufbau:
 |-
 | 10 || <tt>v</tt> || Trennzeichen
 |-
-| 11 || Protokollversion || Zur Zeit wird nur Version 1 eingesetzt: ASCII "<tt>1</tt>" == 49 == 0x31
+| 11 || Protokollversion || Version des Protokolls in ASCII. Zur Zeit wird Version 2 eingesetzt: ASCII "<tt>2</tt>" == 50 == 0x32. (Siehe auch [[#Changelog]])
 |-
 | 12 || <tt>;</tt> || Trennzeichen
 |-
-| 13-… || <tt><i>Event</i>=<i>Wert</i></tt> || Name des Events, optional gefolgt von einem Trennzeichen (ASCII "<tt>=</tt>" == 61 == 0x3D) und einem zusätzlichem Wert. Dieser Teil des Paketes darf eine maximale Länge von 100 Byte nicht überschreiten! (Andernfalls wird gebeten, RFC 3514 zu beachten.)
+| 13-… || <tt><i>Event</i>=<i>Wert</i></tt> || Name des Events, optional gefolgt von einem Trennzeichen (ASCII "<tt>=</tt>" == 61 == 0x3D) und einem zusätzlichem Wert. Es ist zu beachten, dass einige Implementierungen unter Umständen nicht das komplette Event verarbeiten, sondern auf eine bestimmte Länge beschränkt sind. Generell wird gebeten, RFC 3514 zu beachten.
 |}
 
 == Events ==
@@ -58,13 +60,26 @@ Dient zur Ankündigung von aktuell gespielten Songtitel/Interpreten im Space. De
 ;Interpret: Der Interpret des Musikstücks, das zur Zeit im Teilbereich des Spaces gespielt wird, kodiert im UTF-8-Zeichensatz (RFC 3629, ISO/IEC 10646-1:2000 Annex D)
 ;Title: der Titel des Musikstücks, das zur Zeit im Teilbereich des Spaces gespielt wird, kodiert im UTF-8-Zeichensatz (RFC 3629, ISO/IEC 10646-1:2000 Annex D)
 
-Durch die Beschränkung der Payload auf 100 Byte sind die Felder ''Interpret'' und ''Title'' faktisch zusammen auf 87 Byte (jeweils inkl. abschließenden Nullbytes) beschränkt. Es wird empfohlen, größere Zeichenketten an geeigneten Stellen durch „<tt>...</tt>“ zu beenden.
+Falls durch Implementierungen eine Begrenzung der Paketgröße vorgenommen wird, wird empfohlen, längere Zeichenketten von <em>Interpret</em> und <em>Title</em> an geeigneten Stellen durch „<tt>...</tt>“ abzukürzen.
+
+Das Versenden eines NowPlaying-Events macht alle vorher gesendeten NowPlaying-Events ungültig. Alternativ kann in diesem Fall auch ein NowPlaying-Event gesendet werden, in dem die Felder ''Interpret'' und ''Title'' die leere Zeichenkette enthalten (z.B. wenn das Ende einer Playlist erreicht wurde und kein neuer Titel folgt).
+
+Beispiel: Im Frickelraum wird gerade „J. S. Bach: St Matthew Passion, Part I: No. 1. Chorus: Kommt, ihr Töchter, helft mir klagen (Chorus, Soprano in ripieno)“ von „Cologne Chamber Orchestra“ gespielt.
+
+ 0000000: 4556 454e 5444 4953 5452 7632 3b4e 6f77  EVENTDISTRv2;Now
+ 0000010: 506c 6179 696e 673d 4100 436f 6c6f 676e  Playing=A.Cologn
+ 0000020: 6520 4368 616d 6265 7220 4f72 6368 6573  e Chamber Orches
+ 0000030: 7472 6100 4a2e 2053 2e20 4261 6368 3a20  tra.J. S. Bach: 
+ 0000040: 5374 204d 6174 7468 6577 2050 6173 7369  St Matthew Passi
+ 0000050: 6f6e 2c20 5061 7274 2049 3a20 4e6f 2e20  on, Part I: No. 
+ 0000060: 312e 2043 686f 7275 733a 204b 6f6d 6d74  1. Chorus: Kommt
+ 0000070: 2c20 6968 7220 54c3 b663 6874 6572 2e2e  , ihr T..chter..
+ 0000080: 2e00
+
+Beispiel: Die Wiedergabe im Frickelraum wurde beendet und es folgt kein weiteres Lied.
 
-Beispiel: Im Frickelraum wird gerade „Carry on My Wayward Son“ von „Kansas“ gespielt.
- 0000000: 4556 454e 5444 4953 5452 7631 3b4e 6f77  EVENTDISTRv1;Now
- 0000010: 506c 6179 696e 673d 4100 4b61 6e73 6173  Playing=A.Kansas
- 0000020: 0043 6172 7279 206f 6e20 4d79 2057 6179  .Carry on My Way
- 0000030: 7761 7264 2053 6f6e 00                   ward Son.
+ 0000000: 4556 454e 5444 4953 5452 7632 3b4e 6f77  EVENTDISTRv2;Now
+ 0000010: 506c 6179 696e 673d 4100 0000            Playing=A...
 
 === VirtualMsg ===
 Zum Ankündigungen von Nachrichten aus dem virtuellen Raum im Space. Die Nachricht kann z.&nbsp;B. aus dem IRC kommen und im Space auf einer LED-Leiste angezeigt werden. Der Wert des Events besteht aus der entsprechenden Nachricht, die angezeigt werden soll.
@@ -75,9 +90,17 @@ Beispiel:
  0000020: 6861 636b 6572 3e20 6772 6164 206a 656d  hacker> grad jem
  0000030: 616e 6420 696d 2073 7061 6365 3f         and im space?
 
-== Implementierung ==
-Python-Paket mit einigen Scripts um EVENTDISTR-Pakete zu generieren und empfangen: https://github.com/stratum0/pyEventdistr
 :''siehe auch [[StratumPing]]''
 
+== Changelog ==
+{| class="prettytable"
+! Version !! Datum !! Änderung
+|-
+| v2 || 2013-06-19 || 100-Byte-Beschränkung aufgehoben, Größe ist jetzt implementierungsspezifisch. --[[Benutzer:Daniel Bohrer|Daniel Bohrer]] 02:06, 19. Jun. 2013 (CEST)
+|}
+
+== Implementierungen ==
+* [https://github.com/stratum0/pyEventdistr pyEventdistr]: Python-Paket mit einigen Scripts um EVENTDISTR-Pakete zu generieren und empfangen (von {{Benutzer|comawill}})
+
 [[Kategorie:Dokumentation]]
 [[Kategorie:Infrastruktur]]
This page took 0.023759 seconds and 4 git commands to generate.