Stefan Schuermans commited on 2011-11-19 17:19:15
Showing 1 changed files, with 132 additions and 0 deletions.
| ... | ... |
@@ -0,0 +1,132 @@ |
| 1 |
+<html> |
|
| 2 |
+ <head> |
|
| 3 |
+ <title>Blinker</title> |
|
| 4 |
+ </head> |
|
| 5 |
+ <body> |
|
| 6 |
+ <h1>Blinker</h1> |
|
| 7 |
+ <p> |
|
| 8 |
+ Blinker is a server for LED projects and Blinken-houses that are driven |
|
| 9 |
+ by Blinkenlights network streams. |
|
| 10 |
+ </p> |
|
| 11 |
+ <h2>Overview</h2> |
|
| 12 |
+ <p> |
|
| 13 |
+ Blinker is based on different modules, which can be connected via |
|
| 14 |
+ streams. |
|
| 15 |
+ Several types of modules are available, for example a movie player, |
|
| 16 |
+ a network stream sender, modules to mix and separate streams. |
|
| 17 |
+ </p> |
|
| 18 |
+ <h2>Getting Started</h2> |
|
| 19 |
+ <p> |
|
| 20 |
+ As Blinker uses BlinkenLib to perform the low-level operations |
|
| 21 |
+ on Blinken movies and Blinken streams, BlinkenLib has to be |
|
| 22 |
+ installed first. |
|
| 23 |
+ </p> |
|
| 24 |
+ <p> |
|
| 25 |
+ Go to the <code>src</code> directory and type <code>make</code>. |
|
| 26 |
+ This should compile Blinker and produce a binary <code>Blinker</code> |
|
| 27 |
+ in this directory. |
|
| 28 |
+ </p> |
|
| 29 |
+ <p> |
|
| 30 |
+ Start Blinker using the example configuration directory using |
|
| 31 |
+ <code>./Blinker ../example_cfg</code>. |
|
| 32 |
+ You should see a small test movie appearing on standard output |
|
| 33 |
+ (printed there by a printer module). |
|
| 34 |
+ Other movies are sent as MCUF streams over UDPv4, one stream |
|
| 35 |
+ is sent to <code>127.0.0.1:2323</code>. |
|
| 36 |
+ </p> |
|
| 37 |
+ <h2>Streams</h2> |
|
| 38 |
+ <p> |
|
| 39 |
+ Every stream is identified by a name and works like a TV program. |
|
| 40 |
+ A source creates the content and uses the stream to distribute |
|
| 41 |
+ it to its receivers. |
|
| 42 |
+ A single stream can have any number of receivers, they all receive the |
|
| 43 |
+ same content. |
|
| 44 |
+ Usually, there should be only one provider of content for a single |
|
| 45 |
+ stream. |
|
| 46 |
+ If multiple parties send video frames to the stream, the frames |
|
| 47 |
+ are mixed, which is most likely not what you want. |
|
| 48 |
+ </p> |
|
| 49 |
+ <h2>Configuration Directory</h2> |
|
| 50 |
+ <p> |
|
| 51 |
+ The configuration of blinker is not stored in a single file, but in a |
|
| 52 |
+ directory structure, reflecting the inner structure of Blinker's |
|
| 53 |
+ modules. |
|
| 54 |
+ This way, every module has got its own configuration directory |
|
| 55 |
+ containing single files each containing one simple setting. |
|
| 56 |
+ It the module has some internel structure, those config setting |
|
| 57 |
+ files are organized in a directory structure underneath the module's |
|
| 58 |
+ configuration directory. |
|
| 59 |
+ </p> |
|
| 60 |
+ <p> |
|
| 61 |
+ The main config directory contains a directory for each module |
|
| 62 |
+ class, e.g. <code>players</code> for movie player modules. |
|
| 63 |
+ Inside, there is an arbitrary number of subdirectories, one |
|
| 64 |
+ for each instantance of the player module. |
|
| 65 |
+ E.g. the <code>players/stereoscope</code> directory in the example |
|
| 66 |
+ configuration (<code>example_cfg</code> directory in the top level) |
|
| 67 |
+ contains the configuration of the movie player for Blinkenlights |
|
| 68 |
+ stereoscope movies. |
|
| 69 |
+ </p> |
|
| 70 |
+ <p> |
|
| 71 |
+ Reconfiguration can happen at runtime by just changing the configuration |
|
| 72 |
+ directory. |
|
| 73 |
+ Blinker will detect those changes and adapt its operation to the new |
|
| 74 |
+ configuration without restart. |
|
| 75 |
+ <br> |
|
| 76 |
+ Sometimes, especially after an invalid configuration has been seen by |
|
| 77 |
+ Blinker, changes are not automatically detected by Blinker. |
|
| 78 |
+ In this case, it is neccessary to <code>touch</code> the parent |
|
| 79 |
+ directory containing the setting file to make Blinker aware of |
|
| 80 |
+ the reconfiguration. |
|
| 81 |
+ (Solving this issue is planned.) |
|
| 82 |
+ </p> |
|
| 83 |
+ <h2>Modules</h2> |
|
| 84 |
+ <p> |
|
| 85 |
+ The following module types are available for instantiation: |
|
| 86 |
+ <ul> |
|
| 87 |
+ <li>TODO</li> |
|
| 88 |
+ </ul> |
|
| 89 |
+ </p> |
|
| 90 |
+ <h2>Copyright / Copyleft</h2> |
|
| 91 |
+ <p> |
|
| 92 |
+ Blinker<br> |
|
| 93 |
+ Copyright 2011 Stefan Schuermans <stefan@blinkenarea.org><br> |
|
| 94 |
+ Copyleft GNU public license - http://www.gnu.org/copyleft/gpl.html<br> |
|
| 95 |
+ a blinkenarea.org project |
|
| 96 |
+ </p> |
|
| 97 |
+ <h2>Links</h2> |
|
| 98 |
+ <ul> |
|
| 99 |
+ <li> |
|
| 100 |
+ <a href=https://git.blinkenarea.org/?p=Blinker"> |
|
| 101 |
+ Blinker GIT repository |
|
| 102 |
+ </a> |
|
| 103 |
+ </li> |
|
| 104 |
+ <li> |
|
| 105 |
+ <a href=https://git.blinkenarea.org/?p=BlinkenLib"> |
|
| 106 |
+ BlinkenLib GIT repository |
|
| 107 |
+ </a> |
|
| 108 |
+ </li> |
|
| 109 |
+ <li> |
|
| 110 |
+ <a href=https://wiki.blinkenarea.org/index.php/Protocols"> |
|
| 111 |
+ Information about Blinken protocols |
|
| 112 |
+ </a> |
|
| 113 |
+ </li> |
|
| 114 |
+ <li> |
|
| 115 |
+ <a href=https://wiki.blinkenarea.org/index.php/DateiformateEnglish"> |
|
| 116 |
+ Information about Blinken movie file formats |
|
| 117 |
+ </a> |
|
| 118 |
+ </li> |
|
| 119 |
+ <li> |
|
| 120 |
+ <a href=https://www.blinkenarea.org/"> |
|
| 121 |
+ BlinkenArea is a group of people building and operating Blinken stuff |
|
| 122 |
+ </a> |
|
| 123 |
+ </li> |
|
| 124 |
+ <li> |
|
| 125 |
+ <a href=http://www.blinkenlights.de/"> |
|
| 126 |
+ Project BlinkenLights kicked off the whole Blinken story |
|
| 127 |
+ </a> |
|
| 128 |
+ </li> |
|
| 129 |
+ </ul> |
|
| 130 |
+ </body> |
|
| 131 |
+</html> |
|
| 132 |
+ |
|
| 0 | 133 |