MicroControllerUnitFrameEnglish: Difference between revisions

From BlinkenArea Wiki
Jump to: navigation, search
(New page: __NOEDITSECTION__ {{FlagDe|target=MicroControllerUnitFrame}} ''back to summary'' The microcontroller unit frame protocol is used to transmit grayscale or colored Blinkenligh...)
 
No edit summary
Line 69: Line 69:


The UDP port should be configurable at server and client side. The standard port is UDP 2323.
The UDP port should be configurable at server and client side. The standard port is UDP 2323.
[[Category: Protocols]]

Revision as of 07:32, 2 October 2007

Zur deutschsprachigen Version dieser Seite

back to summary

The microcontroller unit frame protocol is used to transmit grayscale or colored Blinkenlights streams using UDP packets. Simply, a UDP packet is sent for every new frame:

+-----------------------+
| 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: fixed value
  • height: the height of the image in pixels
  • width: the width of the image in pixels
  • channels: the number of channels of the image, 1 for grayscales, 3 for RGB
  • maxval: the maximum pixel value used in the pixel data
  • pixels: the value of the channels * width * height pixels
    • 0 for off, maxval for on, values between 0 and maxval for grayscales
    • from left to right, then from top to bottom (i.e. channels of top left pixel first, pixel right to it next, ...)
  • all values are in network byte order - big endian - highbyte first

The dynamic extension can be used to request a MCUF stream dynamically. A request packet is sent periodically (e.g. every 10s) to the UDP port of the server. The server then replys with a MCUF stream sent from this port to the source port of the request packet. After no request packet has been received for a longer time (e.g. 30s), the stream is no longer sent. This dynamic extension is also known as the Blinkenproxy protocol.

The format of the request packet is as follows:

+-----------------------+
| magic                 |
| 0x42 0x42   0x42 0x42 |
+-----------------------+
| reserved              |
| 0x00 0x00   0x00 0x00 |
| 0x00 0x00   0x00 0x00 |
+-----------------------+
  • magic: fixed value
  • reserved: fixed value for now

It is also possible to tell the server that the stream is no longer needed. This happens by sending a close packet instead of a request packet:

+-----------------------+
| magic                 |
| 0x42 0x42   0x42 0x43 |
+-----------------------+
| reserved              |
| 0x00 0x00   0x00 0x00 |
| 0x00 0x00   0x00 0x00 |
+-----------------------+
  • magic: fixed value
  • reserved: fixed value for now

The UDP port should be configurable at server and client side. The standard port is UDP 2323.