/** \file 
 * This file is used for the doxygen documentation. 
 */

/**
\dir guilogger

A tool to customize online gnuplot windows online. 

\b Features \n 

One can send data in "channels" 
(a channel is more or less a variable observed over time equipped with a label) 
per pipe to the guilogger.
Guilogger provides a seperate window where you can choose which of the channels 
should be displayed in which window. According to your selection your data will 
be plotted online. \n
Furthermore guilogger gives the opportunity to save your data "channels" in a file
together with the labels you selected for the channels. \n
To do something useful with these logfiles guilogger allows you to watch them again
and navigate through the logfile. Once you found a valuable figure you can use the 
gnuplot commands generated by guilogger. Copy this command in a console where gnuplot 
is running and you receive your figure and can save it to disk. \n 

Here you can see a screenshot of the guilogger window with 9 channels. 
The used labels range from "x[0]" to "y[2]". The top three boxes after the word "Channels" 
are useless at the moment.
\image html screenshot.jpg
\image latex screenshot.ps "Screenshot of the guilogger window with 9 channels. Labels range from x[0] to y[2]."


\b Usage \n 
You start guilogger by typing \c guilogger and the right parameters.
For working in pipe mode you type <tt> -m pipe</tt>. An additional
\c -l enables the logging to a file. \n
One can also you can view a logfile with <tt> guilogger -m file -f filename.log</tt>
where filename.log is the name of the logfile.
Guilogger can also read from serial port with <tt> guilogger -m serial -p portnumber</tt>.
This information is summarized in the parameter listing, which you can get by typing
\code guilogger --help \endcode \n

guilogger parameter listing \n
<tt> -m [mode] </tt> mode = serial | pipe | file \n
<tt> -p [port] </tt> port = serial port to read from \n
<tt> -f [file] </tt> input file; only viwewing, no streaming \n 
<tt> -l        </tt> turns logging on \n
<tt> --help    </tt> displays this message. \n


\b Format \n 
Here the BNF of the Logging Format:\n
\code
<STREAM>        := <LINE> <STREAM> | <LINE>
<LINE>          := <CMDLINE> | <COMMENTLINE> | <DATALINE>\n
<CMDLINE>       := #C <CHANNELLABEL>*<ENDLINE> | #<CHAR> <STRING><ENDLINE>\n 
<COMMENT>       := # <STRING><ENDLINE>\n
<CHANNELLABEL>  := <STRING_W/O_WHITESPACE>\n
<DATALINE>      := <FLOAT> <FLOAT>*\n
\endcode
<tt>*</tt> means multiple occurences separated by space. 
The number of Channellabels should be the same as the number of data values.

Here one example:
\code
 # This is a comment
 # the following line can be treated as a comments these are required for other programs
 #N neural_net stefan
 #N layer l1
 #N neuron n1
 # the following line defined our channels
 #C n1 x[1] y[0] eps 
  -0.3 0.424253 10e-5
  0.1 -1.2 0.00
\endcode

*/



