MicroControllerUnitFrame: Difference between revisions

From BlinkenArea Wiki
Jump to: navigation, search
No edit summary
(MCUF Informations-Erweiterung)
Line 3: Line 3:
''[[Protokolle|zurück zur Übersicht]]''
''[[Protokolle|zurück zur Übersicht]]''


Das microcontroller unit frame protocol wird benutzt um Farb- oder Graustufen-Blinkenlights-Streams per UDP zu versenden. Es wird dazu einfach für jedes neue Bild ein UDP-Paket gesendet:
== Stream ==
 
Das microcontroller unit frame protocol wird benutzt um Farb- oder Graustufen-Blinkenlights-Streams per UDP zu versenden. Es wird dazu einfach für jedes neue Bild ein UDP-Paket gesendet (für über 1 Sekunde andeuernde Frames wird das Frame jede Sekunde wiederholt):


<pre>
<pre>
Line 32: Line 34:
** von links nach rechts, dann von oben nach unten (also alle Kanäle des oberen linken Pixels zuerst, dann der Pixel rechts daneben, ...)
** von links nach rechts, dann von oben nach unten (also alle Kanäle des oberen linken Pixels zuerst, dann der Pixel rechts daneben, ...)
* alle Werte sind in network byte order - big endian - High-Byte zuerst
* alle Werte sind in network byte order - big endian - High-Byte zuerst
Der UDP Port sollte auf Server- und Client-Seite konfigurierbar sein. Der Standard-Port ist UDP 2323.
Es ist auch möglich, diese Pakete über Datenströme, wie TCP oder serielle Schnittstellen, zu senden.
== Dynamische Erweiterung ==


Die dynamische Erweiterung kann benutzt werden, um einen MCUF-Stream dynamisch anzufordern. Ein Anfrage-Paket wird periodisch (z.B. alle 10s) zum UDP-Port des Servers gesendet. Der Server antwortet dann mit einem MCUF-Stream, gesendet von diesem Port zum Quell-Port des Anfrage-Pakets. Nachdem für eine längere Zeit (z.B. 30s)  kein Anfrage-Paket empfangen wurde, wird das Senden des Streams eingestellt.
Die dynamische Erweiterung kann benutzt werden, um einen MCUF-Stream dynamisch anzufordern. Ein Anfrage-Paket wird periodisch (z.B. alle 10s) zum UDP-Port des Servers gesendet. Der Server antwortet dann mit einem MCUF-Stream, gesendet von diesem Port zum Quell-Port des Anfrage-Pakets. Nachdem für eine längere Zeit (z.B. 30s)  kein Anfrage-Paket empfangen wurde, wird das Senden des Streams eingestellt.
Line 65: Line 73:
* reserved: vorerst fester Wert
* reserved: vorerst fester Wert


Der UDP Port sollte auf Server- und Client-Seite konfigurierbar sein. Der Standard-Port ist UDP 2323.
== Zusätzliche Informationen ==
 
Eine weitere Erweiterung erlaubt, zusätzlich zu den Stream-Paketen oder Stream-Anforderungen Informationen zu übertragen.
Diese Informationen haben die folgende Struktur:
 
<pre>
+-----------------------+
| magic                |
| 0x42 0x42  0x42 0x23 |
+-----------------------+
| info                  |
| 0x45 0x4E  0x44 0x00 |
| 0x00 0x00  0x00 0x00 |
+-----------------------+
</pre>
 
* magic: fester Wert
* info: 0..8 ASCII-Zeichen, aufgefüllt mit 0x00 bis  8 Bytes Gesamtlänge
** "END", SaE: der Stream ist beendet
* Abkürzungen:
** SaE: Sender an Empfänger, Paket wird in Richtung der Stream-Frames gesendet
** EaS: Empfänger an Sender, Paket wird in Richtung der Stream-Requests gesendet


[[Category:Protokolle]]
[[Category:Protokolle]]

Revision as of 21:37, 15 November 2011

English Version of this Page

zurück zur Übersicht

Stream

Das microcontroller unit frame protocol wird benutzt um Farb- oder Graustufen-Blinkenlights-Streams per UDP zu versenden. Es wird dazu einfach für jedes neue Bild ein UDP-Paket gesendet (für über 1 Sekunde andeuernde Frames wird das Frame jede Sekunde wiederholt):

+-----------------------+
| magic                 |
| 0x23 0x54   0x26 0x66 |
+-----------+-----------+
| height    | width     |
| 0x00 0x14 | 0x00 0x1A |
+-----------+-----------+
| channels  | maxval    |
| 0x00 0x01 | 0x00 0xFF |
+-----------+-----------+
| pixels                |
| 0xFF 0xCC   0x99 0x66 |
| 0x33 0x00   0x00 0x00 |
| ...                   |
| 0x00 0x00   0x00 0x00 |
+-----------------------+
  • magic: fester Wert
  • height: die Höhe des Bildes in Pixeln
  • width: die Breite des Bildes in Pixeln
  • channels: die Anzahl der Kanäle im Bild, 1 für Graustufen, 3 für RGB
  • maxval: der maximale Wert in den Pixel-Daten
  • pixels: die Werte der channels * width * height Pixel
    • 0x00 für aus, maxval für an, Werte dazwischen für Graustufen
    • von links nach rechts, dann von oben nach unten (also alle Kanäle des oberen linken Pixels zuerst, dann der Pixel rechts daneben, ...)
  • alle Werte sind in network byte order - big endian - High-Byte zuerst

Der UDP Port sollte auf Server- und Client-Seite konfigurierbar sein. Der Standard-Port ist UDP 2323.

Es ist auch möglich, diese Pakete über Datenströme, wie TCP oder serielle Schnittstellen, zu senden.

Dynamische Erweiterung

Die dynamische Erweiterung kann benutzt werden, um einen MCUF-Stream dynamisch anzufordern. Ein Anfrage-Paket wird periodisch (z.B. alle 10s) zum UDP-Port des Servers gesendet. Der Server antwortet dann mit einem MCUF-Stream, gesendet von diesem Port zum Quell-Port des Anfrage-Pakets. Nachdem für eine längere Zeit (z.B. 30s) kein Anfrage-Paket empfangen wurde, wird das Senden des Streams eingestellt.

Das Format des Anfrage-Pakets ist wie folgt:

+-----------------------+
| magic                 |
| 0x42 0x42   0x42 0x42 |
+-----------------------+
| reserved              |
| 0x00 0x00   0x00 0x00 |
| 0x00 0x00   0x00 0x00 |
+-----------------------+
  • magic: fester Wert
  • reserved: vorerst fester Wert

Es ist auch möglich, dem Server mitzuteilen, dass der Stream nicht länger benötigt wird. Dies passiert, indem man ein Ende-Paket anstelle eines Anfrage-Pakets sendet:

+-----------------------+
| magic                 |
| 0x42 0x42   0x42 0x43 |
+-----------------------+
| reserved              |
| 0x00 0x00   0x00 0x00 |
| 0x00 0x00   0x00 0x00 |
+-----------------------+
  • magic: fester Wert
  • reserved: vorerst fester Wert

Zusätzliche Informationen

Eine weitere Erweiterung erlaubt, zusätzlich zu den Stream-Paketen oder Stream-Anforderungen Informationen zu übertragen. Diese Informationen haben die folgende Struktur:

+-----------------------+
| magic                 |
| 0x42 0x42   0x42 0x23 |
+-----------------------+
| info                  |
| 0x45 0x4E   0x44 0x00 |
| 0x00 0x00   0x00 0x00 |
+-----------------------+
  • magic: fester Wert
  • info: 0..8 ASCII-Zeichen, aufgefüllt mit 0x00 bis 8 Bytes Gesamtlänge
    • "END", SaE: der Stream ist beendet
  • Abkürzungen:
    • SaE: Sender an Empfänger, Paket wird in Richtung der Stream-Frames gesendet
    • EaS: Empfänger an Sender, Paket wird in Richtung der Stream-Requests gesendet