How to use Gaw

Introduction

This page gives some instructions on how to compile, run and use Gaw.

If you are lost with some terms used in this page have a look to this page.

Requirements for Gaw

Dependancies :

Or :

Compiling Gaw

Gaw comes now in 2 packages : a package for gtk+-2.0 and a package for gtk+-3.0. They are no longer interchangeable. So, Please, start by choosing the version you want.

We need to have some files installed, and next run the following commands.

tar zxvf gaw-yyyymmdd.tar.gz
cd gaw-yyyymmdd
./configure
make
make install
Options to configure

If you do not want to embed libasound, try :

./configure --enable-gawsound=no

If you want to disable nls support :

./configure --disable-nls

Gaw does not need to be installed in a special directory and will run as long it finds its libraries. However, if a tool default configuration file gawrc is created in ~/.gaw at the first run, a default gtk configuration file gaw-gtkrc is needed. The installation process makes a copy in $prefix/share/gaw directory, but the user can have its own customised copy in $HOME/.gaw directory.

To get some more debugging messages, just configure with the following flag and run gaw with -d option.

./configure CFLAGS="-g -DMSG_DEBUG"
gaw -d

Help while using Gaw

You can get short help by leaving the mouse on a button, this will generate a tooltips. As in Gtk+, it is not possible to get a tooltips on a menu item, messages are generated in the statusBar. The statusBar is at the bottom left corner, and displays "Welcome to gaw" when you enter Gaw. So you should keep one eye on the statusBar and the other on the menu item. But this is difficult to do for some people !!!

The help menu will direct you to this page using your prefered browser. This one is defined by default to be firefox %s, but you can override this with an environnement variable GAW_HELPCMD. Here is an example on how to set this in bash :

export GAW_HELPCMD=konqueror

Two other environnement variables, GAW_USERGUIDE and GAW_WEBSITE, let the user to redirect the browser to, for example, a local instance of this web page , or another web site respectively.

export GAW_USERGUIDE=file://your_path_to/gawman.html

Instead of setting environnement variables, you can modify the configuration. file .gaw/gawrc

up_helpCmd = "firefox %s"
    /* Gaw user guide page */
up_userGuide = "http://www.rvq.fr/linux/gawman.php"
    /* gaw main page web site */
up_webSite = "http://www.rvq.fr/linux/gaw.php"

If you prefer use a local copy of this page, create it with the save page command of you browser and modify the above variables top point to it.

Running Gaw

On command line :

gaw  [options] [input file] ...
                : display analog waveforms from input file
 [-h]           : print list of options
 [-d]           : set debug mode
 [-rf fmt]      : specify spice format for input file
 [-pf fmt]      : specify a printf format for output file
 [-p num]       : port number for inside server
 [-C name]      : configuration dir or file name\n")

Simple example:

gaw

This command will load all the files invsweep.tr* present in the current directory :

gaw invsweep.tr*

Running a different version of Gaw

Running a previous version of Gaw, with the current version installed, may fail, as configuration is dependant of release. You can specify another configuration file or directory with the -C option.

Without this option, if a gawrc file is present in the current directory it will be taken as the configuration directory.

Sensitive areas for Drag and Drop

Sources for Drag and Drop :
Destinations for Drag and Drop :

others Sensitive areas

There is a resize grip at left of the X labels area. it is intended to allow the modification of ratio between the left side size and drawing area size.

However, remember that panels have a minimal width.

As the grip may be not very visible depending on default style, it is possible to modify its background color using gtkrc using widget name gawgrip.

How to ...

Load data file when gaw is running
Display wave when not already displayed
Display wave when already displayed : move
Display wave when already displayed : copy
Remove displayed wave
Set cursors in DrawingArea
Resize the panels

File menu

Open file...
Do a capture from Sound card...
Export to image file in one of the format available in Gtk
Export data in some available formats
Save conf
Clear def
Factory settings

Zoom menu

Zoom in
Zoom out
Zoom a selected X area
Zoom X undo
Zoom Y
Zoom Y undo
Zoom X+Y
Zoom centered on cursor 0

Cursors menu

Preferences menu

Show X labels.
Show Y labels.
Show more Y labels.
log X scale.
log Y selected.
show Y diff measure.
Show grid.
Scientific conversion.
Change panel colors...

Tools menu

Text editor

Sometime, it may be usefull to put comments in panels near the waveforms. This can be done with the text editor. Select your settings font, bg color, fg color, angle. Enter your text in the entry, click apply, move the pointer in a panel and click with left button to place the text.

Text can be modified and moved around the panel. Click left and drag to move the text. Click Right on the text to get a context menu that lets you edit or suppress the text. By clicking Right in the panel, the context menu lets you remove all texts in the panel.

Multisweep

Multisweep means that a set of data is generated for each value of a given parameter for a component. This parameter is swept from one value to another. Only Hspice format incorporates the value of his parameter for each data set.

You can find an example of multisweep data in the file examples/invsweep.tr0. So load the file and try Right click on a button in the list window : y @... and select Add all similar to selected. This will show all the waves for each value of the component.

Other formats can be multi tables that gives the same waveforms, but without the different values of the parameter on the button labels.

multi sweep in gaw

Capture...

Instead of taking input from file, Gaw can take input from the sound card on your motherboard. Samples come directly in internal memory and can be viewed as a loaded file. You have just to connect your real time signals to the sound card input.

This just a direct replacement for using arecord to store data in a .wav file and loading the file afterwards.

Talk to Gaw

Talk to Gaw or in short ttg is an experimental feature that let the user to send command to Gaw from another application. Of course you do not get more, but you get it in another way.

The directory ttg provides 2 examples, one in C and one in Perl on how it can be done. Just think about !

About data Formats

In principle Gaw is able to recognize the implemented formats, but due to the lack of definition in some format, it should be very easy to confuse Gaw. So it is suggested to provide a format name , when possible.

There are 2 ways to provide a format :

The recognized extensions are :

See directory examples for example of different data file formats.

Languages

Gaw can display menus and messages in other languages than the native.

These are the languages shipped in package at the date of writting:

You should have a file gaw.mo in the directory /usr/share/locale/fr/LC_MESSAGES/ or /usr/local/share/locale/fr/LC_MESSAGES/, depending on the prefix given to configure, if not, copy the message file to its destination:

cd po
cp fr.gmo /usr/share/locale/fr/LC_MESSAGES/gaw.mo

Verify the value of LANG in your environnement, and set it, if not set.

export LANG=fr_FR.UTF-8

Gaw development

Gaw is developped under Fedora. But this does not mean, it should not work on others distributions. Instead it means that if there are mistakes due to distributions differences, I cannot see them, and you need to report them.

If you have crashes or messages like the following from Gtk, Glib, ..., report them with the steps, you make to produce them. If I cannot reproduce them, I cannot fix them.

(gaw:2565): GLib-GObject-WARNING **: IA__g_object_set_valist: 
   construct property "type" for object `Log' can't be set after construction
(gaw:5863): Gtk-CRITICAL **: gtk_drag_dest_set: assertion `GTK_IS_WIDGET (widget)' failed

Gaw configuration files

As evoked above, Gaw uses 2 configuration files :

The first one is specific to Gtk objects and is mandatory. A copy of it can be found in the directory GAWRCDIR (/usr/local/share/gaw) after installation. The contents of this file can be overriden by an instance of the file $HOME/.gaw/gaw-gtkrc where users are invited to put their preferences. Infos on the content and syntax of this file can be found in GTK+ Reference Manual : Resource Files.

Note: for the same function, the gtk3.0 version uses a different file name gaw-gtkrc.css with a different syntax described in the GTK3.0+ Reference Manual : Resource Files.

This file define colors for labels corresponding to cursors, wave buttons, waves, DrawingAreas in wavePanel, statusBar. Keep in mind that changing a color may imply others changes. For example changing the DrawingArea background to white, will imply changing the hightlight and srange color and may be the cursor color to make then visible.

So to change :

The second configuration file deals with application itself and is automaticaly created in the file $HOME/.gaw/gawrc at first startup. Its purpose is to keep remanent the info stored with action Save conf, Clear default, and to let the user modify them. Some variables can be changed from inside the application in the Preference menu, but others require that you use your favorite text editor.

So if you want to start Gaw with 4 panels instead of 2 or with a height of 400 pixels instead of 100 for the drawing areas, this is the place to go.

Warning about displayed data

Gaw can display a one million datas in a panel of 512 points. It is easy to understand that there is some loss somewhere and to consider the plot as an approch of the reality. Only zooming will make the display more reliable.