0f9687cc9932778e6aa0fae06f975814daff3d0c
Stefan Schuermans start page of documentation

Stefan Schuermans authored 12 years ago

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>
Stefan Schuermans more documentation

Stefan Schuermans authored 12 years ago

87)         <li><a href="canvas.html">Canvas</a></li>
88)         <li><a href="player.html">Player</a></li>
89)         <li><a href="printer.html">Printer</a></li>
90)         <li><a href="udp4sender.html">UDP4 Sender</a></li>