(no subject)

Garry Petrie garry.petrie@resurgentsoftware.com
Tue, 1 Jan 2002 21:17:25 -0800


http://www.resurgentsoftware.com/rosettastal.htm

**************************************************************************
****                   RosettaStall Verison 3.0                       ****
**************************************************************************
o General Information

Taco van Ieperen wrote version 2.0 of RosettaStal and wrote,

"The RosettaStal is a companion program that converts data from other cave
data formats to the new CDI format. CDI is an attempt to make a universally
acceptable cave data format. This should make it easier to move your
valuable data between programs without having to reenter everything."

"Why is the RosettaStal a separate Install? Because I want other cave
software authors to use it too! There are many programs available to map
caves, and they all have compatibility problems. Anyone can use the
RosettaStal to convert data. The source is free, so hopefully other authors
will add better support for their formats and we will be able to easily
convert information between all the different programs out there."

Unfortunately, Taco's vision of everyone using the program to convert their
data to CDI was unrealistic. Especially unrealistic given no compelling
reason and the inherent problem of any conversion utility filtering out
seemingly unimportant data as defined by the author of the software.
However, Taco did have the vision of open source software. In version 3.0 of
RosettaStal, Garry Petrie added three new write filters and three new read
filters. Bugs in version 2.0 while reading or writing various file types
were uncovered and corrected. The software now has a more neutral stance in
that it can read or write multiple file formats. But be for warned, while a
conversion between two data types may proceed without an error, reading by
the destination application is not guaranteed. Download the updated version
of RosettaStal, use and distribute as freeware.

                   Reading Cave Survey Data Files

Data Format     Source       Filter Author      Tested in version 3.0

SUR             WinKarst     Garry Petrie       Yes
DAT             Compass      Garry Petrie       Yes
SEF             SMAPS        Garry Petrie       Yes
CDI             OnStation    Taco van Ieperen   Yes
CAV             OnStation    Taco van Ieperen   No
DAT             Compass      Taco van Ieperen   Yes
SEF             SMAPS        Taco van Ieperen   Yes
SVX             Survex       Taco van Ieperen   Yes
PRJ             Walls        Taco van Ieperen   No
TXT             CavePlot     Taco van Ieperen   No
RSD             SMAPS        Taco van Ieperen   No

                    Writing Cave Survey Data Files
Data Format     Destination  Filter Author      Tested in version 3.0

SUR             WinKarst     Garry Petrie       Yes
DAT             Compass      Garry Petrie       Yes
SEF             SMAPS        Garry Petrie       Yes
SEF             SMAPS        Taco van Ieperen   No
CDI             OnStation    Taco van Ieperen   Yes


                       Using RosettaStal

Depending on how RosettaStal is installed, it can be started by selecting
its name from the Start Menu or double clicking its icon on the desktop.
>From the main dialog window, select the "Convert File..." button. Pressing
the button brings up the standard Windows Open File dialog interface in that
a file may be selected. The "Files of type" drop down list filters the
selection field to a specific cave survey data type. Select one or more
files for conversion.

For each selected file, a second dialog box appears. The "Automatic
Conversion" simply saves the root of the data file and attaches the selected
data type for writing, e.g. BigCave.SUR is converted to BigCave.SEF.
Selection of the data type for writing is made in the drop down list.
Alternately, the "Pick a name by hand" button brings up the Windows SaveAs
File dialog interface. Either type the complete file name with extension for
writing, or use the Files of type list to filter and add the extension
automatically.

After the file is converted, a third dialog box appears and displays any
messages encountered during the read and write operations. The sequence is
repeated if more than one file was selected for conversion.

RosettaStal can also be associated with a file type in the
"MyComputer|Tools|Folder Options..." dialog. Through an association, double
clicking on a particular cave survey data type file will start RosettaStal
and the program will read the selected file automatically. The file
association can also be applied from an email reader or web browser.


                  For Cave Survey Software Authors

I would like to continue promoting the expansion of RosettaStal through Open
Source. RosettaStal is written with Microsoft's Visual C++ version 6.0. All
of Taco's code is fully visible and I had to edit the code in several
places. The file input/output routines from WinKarst were precompiled into a
library and I will provide the necessary header files from WinKarst to
compile RosettaStal. In this manner, authors can achieve a reasonable level
of propriety. However, the biggest hurdle will be writing your code
compatible with Visual C++. That was a very difficult process for me,
because WinKarst is build with a different compiler. But you will find in
making your base code compiler independent, its utility will increase. This
will be your principle reward if you add to RosettaStal.

I build on RosettaStal to include the native data containers of WinKarst and
OnStation. When a file is opened with a filter written by Taco, the data is
stored internally with his container. Like wise, the same for a file opened
with any of my filters. The trick is in the output path. Should the output
path require the same data container as input path, then the output proceeds
directly. But if there is a cross, e.g. from Taco's CDI format to my SUR
format, then a data structure mapping routine is invoked. If you add a data
container of your type, you are responsible for writing the input/output
cross converters to the other data type containers. Hopefully, that will not
be difficult by seeing my example in the source code. The source code for
RosettaStal is in a zip file.

Garry Petrie