Frequently Asked Questions about the DMT Online Environment


Offline operation - Reading frame files

Can I read multiple frame files.

Yes! The data accessor (Dacc) class used by the DMT environments allows you to specify a single wild-card character ('*') in the file name (but not in any directory name). Note that if you specify the wild-card in the command line you must prefix the '*' with a '\' or enclose the file name in quotes to prevent your shell from expanding the file specification before it is passed to the monitor. For example, the following would work:

   MyMonitor -infile "/home/user/frames/*.gwf"

Why can't I read my frame file? My DMT monitor gives the following error message:
    Error constructing TOCReader. End of file reached
    Unable to open reader on file: XXXXXXX

This message results when a frame file doesn't have a table of contents (TOC). To fix this you can either write a TOC on the frame file(s) that you can't read, or modify your program to tell the Dacc object that it shouldn't try to use the TOC. To tell the Dacc to ignore TOCs you can

  getDacc().setTOCMode(false); // in DatEnv

  In.setTOCMode(false); // in root

This should be done as soon as possible in your program but certainly before trying to read frame data. Of course if you ignore the TOCs, the Dacc object must read in the entire frame which can take considerable time. You are much better off from a execution time standpoint if you can contrive to use frames that have a TOC.

To add tables of contents to a frame file you can use either the LDAS frtoc utility, i.e.

frtoc infile outfile

(frtoc is built with FrameCPP) or the DMT FrWrite utility

FrWrite -ofile 'Filetype-%s-1.gwf' -infile <input-frames> +toc  -repeat 0

FrWrite will write multiple frames and name them according to the "-ofile" argument. The +toc argument tells it to write a table of contents with each frame file. You can also give it a list of channels to copy and/or a number of frames to combine in a single file.


The DMT Online C environment

How can I get a copy of the C development environment distribution?
The C environment is part of the DMT C++ library, and is available from the DMT download page.

Why do I need C++ to run the C environment?
The C online-environment is based on the C++ environment and uses many common functions and data structures (represented as classes in the C++ version). It is expected that the functions developed in the C environment will be wrapped and run under C++ in the production version. Note that reasonably modern versions of the C++ compiler (e.g. gcc-2.95.3) and the standard template library are needed to compile the C++ components.