BBO BlinkenArea > Blinkenarea > BlinkenlightsProtokolle > BlinkenlightsProtocols > MicroControllerUnitFrameEnglish > MicroControllerUnitFrame BlinkenArea webs:
BlinkenArea | Main | TWiki | Sandbox | (Recycle Bin)
Blinkenarea . { Changes | Index | Search }

BlinkenArea.MicroControllerUnitFrame
144 pixels ought to be enough for anybody


Home
Ziele
BlinkenArea
BlinkenLights

News
Presse
Links
Forum
MailList
Join

Audio,Video
Projekte
Protokolle
Dateiformate
Troia
bluebox

WTH
ICMP
CBCamp
CCCamp
CCCongress
EasterHack

Stats
Users
SiteMap
TWikiDoku
SiteTools
Translate
WebChanges

Impressum
Imprint

Datenschutzerklärung
Privacy Policy

RSS and Mail notification
powered by: [Powered by Eventphone]

MCUF - microcontroller unit frame protocol english

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:

+-----------------------+
| 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

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

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

-- StefanSchuermans - 06 Jun 2004


EOF

Topic MicroControllerUnitFrame . { Edit | Attach | Ref-By | Printable | Diffs | r1.2 | > | r1.1 | More }
Revision r1.2 - 06 Jun 2004 - 20:50 - StefanSchuermans
Parents: BlinkenlightsProtokolle > BlinkenlightsProtocols > MicroControllerUnitFrameEnglish