Main Page   Alphabetical List   Compound List   File List   Compound Members   File Members  

SABL Software

Version:
AIRS2 Rev B
Date:
Nov 24, 2003

Documentation

Doxygen (http://doxygen.org/) is used to generate documentation for the VxWorks system API. The only module with doxygen comments so far is iru/iru_fake.h.

Setup

This command can be used to checkout the sabl source tree with CVS, where login is an ATD login name.

setenv CVS_RSH ssh
cvs -d <login>@cvs:/code/cvs co -P sabl

The sabl source directory is almost entirely self-contained. Edit the SABLROOT variable in the sabl.conf file to change the path to the root directory of the sabl tree, then all of the vx source defaults to installing into the sibling directory vxworks. (Libraries are actually installed into the intermediate vx/bin directory, where rtsabl.o is built.)

The vxworks object rtsabl.o, the boot script vxtest.cmd, and the sabl_server.tcl script will all be installed under the vxworks directory. Likewise, a copy of libTcl7.3.o is kept in vx/tclvx_mod, and that will be installed into vxworks/bin by the install target. Lastly, the vx/Makefile has an install target to create a link at vxworks/bin/project.file to sabl/projects/project.file. Note the link is a relative path based on the assumption that the sabl and vxworks directories are siblings. This allows the directory containing 'sabl' and 'vxworks' to be moved around, but the link breaks if the sibling assumption ever changes or if vxworks/bin changes depth.

If the default setup is used, where sabl/ and vxworks/ are sibling directories, then these commands create the link manually:

cd vxworks/bin; ln -s ../../sabl/projects/project.file

The current setup on the plane uses a link called 'current' in /dt to switch between different sabl installations. Under /dt, the files 'sabl' and 'vxworks' are links to 'current/sabl' and 'current/vxworks', and the 'current' link points to the installation. /dt/development holds a checkout of the sabl tree for development. Other operational versions of the sabl tree can be kept in other directories, like 'ops'. To switch from development to ops:

cd /dt
rm current
ln -s ops current

Then restart vxworks and sabl.

There is also a script which does exactly the above switch, sabl/admin/sablswitch. When run with no arguments it lists the directories under /dt which appear to be valid sabl installations. Run sablswitch with one of those directory names as the single argument to switch the 'current' link to the new directory.

Compiling

There is a Makefile in the top-level sabl directory for building all of the linux components, namely the control, recorder, display, and tapeToCdf. The Makefile does not build the vxworks binaries by default. The dorade/rtfcommon library and tapeToCdf have their own autoconf setup, so their configure scripts must be generated with the autoconf tools before they can be built. The top-level Makefile has a target for this called 'bootconf'. After first checking out the sabl source tree from CVS, or any time one of the Makefile.am or configure.ac files change, regenerate the configure scripts with this command in the top directory:

make bootconf

Alternatively, the bootconf target can be run separately in the individual rtfcommon and tapeToCdf directories with this command:

make -f Makefile.am bootconf

There will probably be errors about 'possibly undefined macros' and others. The cause of the errors is unknown, but they do not prevent successful compilation.

The bootconf target automatically runs the configure script after generating it, and the configure script in turn creates all the necessary Makefiles. Once the bootconf target has been run, all of the linux components can be built with 'make all'.

To build the vxworks binary, cd into the vx directory and type make. The default target is 'all', which only compiles the object modules into library archives in each subdirectory. The 'install' target copies the libraries into vx/bin, combines the libraries into the rtsabl.o module, and copies that module into vxworks/bin. Running 'install' forces a 'make all' first, so it's possible to run 'make install' on a clean source tree.

For convenience, the toplevel sabl/Makefile extends the 'install' and 'clean' targets by recursing into the vx subdirectory. Thus it should be possible to build and install the complete sabl installation for the linux host on the plane with these commands:

cd /dt/current/sabl
make bootconf
make install

Links

Here are the known links:

/vx -> /opt/vx
/vw -> /opt/vw
/dt/vxworks -> current/vxworks
/dt/sabl -> current/sabl
/export/home/sablbin -> /dt/vxworks/

The hardcoded path to the project.file appears to be in vx/main/header_create.c, but for now I've left it as is.

System administration

There is a backup script sabl/admin/sablbackup. It clones the partition table of the system (leftmost) disk drive onto the rightmost drive, then copies each filesystem onto the right drive (with dump and restore). At the moment it lacks the ability to make the backup drive bootable like it should be.

I moved the /dt filesystem originally on the middle disk onto the leftmost system disk. There is plenty of room for it, and that simplifies administration by requiring backups of only a single disk.

Faking IRU Data

Now that the safety checks disable the laser until the pitch and roll have been verified as safe, it is necessary to fake the IRU data when ARINC is not available. See the iru_fake.h API documentation.

IRC

XChat has been setup for the sabl operator. Just click the X-Chat icon on the panel in the lower, right-hand corner of the screen. Also, the desktop session may bring it up automatically on desktop #3.


Generated on Wed May 5 01:15:01 2004 for SABL VxWorks System by doxygen1.2.18