Robot Simulator of the Robotics Group for Self-Organization of Control: guilogger/ Directory Reference

# guilogger Directory Reference

A tool to customize online gnuplot windows online.

More...

## Files
file | guilogger/README

| This file is used for the doxygen documentation.

## Detailed Description

A tool to customize online gnuplot windows online.

Features

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.
Furthermore guilogger gives the opportunity to save your data "channels" in a file together with the labels you selected for the channels.
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.

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.

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

     guilogger --help

guilogger parameter listing
`-m [mode]` mode = serial | pipe (default) | file
`-p [port]` port = serial port to read from
`-f [file]` input file; only viewing, no streaming
`-l` turns logging on (writing to file)
`--help` displays this message.

Format
Here the BNF of the Logging Format:

    <STREAM>        := <LINE> <STREAM> | <LINE>
    <LINE>          := <CMDLINE> | <COMMENTLINE> | <DATALINE>
    <CMDLINE>       := #C <CHANNELLABEL>*<ENDLINE>
                    | #IN <STRING><ENDLINE>
                    | #I [<String>] D <CHANNELLABEL> <STRING><ENDLINE>
                    | #<CHAR> <STRING><ENDLINE>
    <COMMENT>       := # <STRING><ENDLINE>
    <CHANNELLABEL>  := <STRING_W/O_WHITESPACE>
    <DATALINE>      := <FLOAT> <FLOAT>*

`*` means multiple occurences separated by space. The number of Channellabels should be the same as the number of data values. The cmd lines starting with I [XXX] D assign a description to each channel. Vector or matrix channels should have the format name[i] or name[i,j]. To give a discription to the entire matrix or vector channel use "name_" in the I D line.

Here one example:

    # This is a comment
    # the following lines are a command lines for other programs and are ignored by guilogger
    # the following lines attribute names to channels
    #IN MYRobot1
    #I [test] D x[0] first sensor
    #I [test] D y_ motor values
    #I [test] D eps learning rate
    # the following line defined our channels
    #C n1 x[0] y[0] y[1] eps
    -0.3 0.424253 0.112 10e-5
    0.1 -1.2 0.231 0.00