[ Home : Programs | libCVD | Hardware hacks | Publications | Teaching | TooN | Research ]

Gvars3

Gvars3 - configuration system library

GVars3 is also hosted as a subsidiary project of libCVD.

News

Downloading

The use of CVS or the most recent snapshot is strongly reccomended.

Documentation

Mailing list
Mailing list archives

TooN-1.x compatibility

Please note, GVars3 has been upgraded to work with TooN 2. Since TooN-1 produces unreliable code on recent versions of GCC (>= 4.3.0) due to the extensive use of undefined behaviour, we will not be maintaining a TooN-1 branch. The most recent version of GVars3 to work with TooN-1 is here:

A simple example

The following program will illustrate many of the major features of GVars3. In partucular, it shows how to load values from a configuration file, or the commandline arguments, how to retrieve a value in the program, and how to create a simple GUI for manipulating the values.
#include <gvars3/instances.h>
#include <iostream>
#include <cstdlib>

using namespace GVars3;
using namespace std;

int main(int argc, char** argv)
{
    //Load a configuration file (optional)
    GUI.LoadFile("foo.cfg");

    //Process commandline arguments (optional)
    cout << "An integer = " << GV3::get<int>("wurble") << endl;
    cout << "A float = " << GV3::get<float>("fobble") << endl;

    //Make an easier to use binding to a gvar:
    gvar3<int> an_integer("i");

    //An illustration of using the graphical
    //components.
    while(1)
    {
        //Process the GUI. This can be done in another thread if
        //need be.
        GUI_Widgets.process_in_crnt_thread();

        cout << "\r" << *an_integer << "     " << flush;
        usleep(10000);
    }
}
Then create the configuration file foo.cfg with the following contents:
//Set some variables
wurble=10
fobble=6.66666
i=54

//Create a simple GUI for controlling i
GUI.InitXInterface
GUI.AddWindow iwin "This window controls i" 
iwin.AddMonitor "The value of i" i
iwin.AddSlider i 0 1000
iwin.AddPushButton "Set i=88" "i=88"

//Create a simple function
function strange
. echo "Setting i to 279"
. i=279
. echo "Hello. world"
endfunction

//Run the function from a pushbutton:
iwin.AddPushButton "Strange function" strange

//Another pushbutton to list all commands:
iwin.AddPushButton "Command list" "commandlist"
Now try running the program. Also, try running ./prog --wurble 79

Dependencies

Requirements

There are no requirements.

Options


Updated February 6th 2012, 13:27


Home : Programs | libCVD | Hardware hacks | Publications | Teaching | TooN | Research
* libCVD : CVD Documentation | GVars3 | TaG | TaG Documentation | TooN | TooN Documentation | CVD Tutorial


ed (at) edwardrosten . com
Check HTML compliance