Next Previous Contents

7. Example UDDF files

Following for the sake of an easier understanding some fictitious UDDF files are given. Many comments (beginning with "<!--", and ending with "-->") are inserted. Usually, the parameters are put in brackets, for example with <city>Atown</city> the city "Atown" is denoted. Some elements are implemented as a switch. </> e.g. defines that

Only a little selection of elements is given to not make the examples too long, and to keep them understandable. Indentations are made for humans only for the sake of better clearness. A machine made UDDF file needs not to have these indentations. Nevertheless the authors strongly recommend indentations for computer generated files, too! With it readability is enhanced.

In the descriptions of the individual elements partly detailed examples are given.

7.1 A Database - Diver's data, descriptions of dive spots etc.

Diver's data

<uddf version="2.1.0">
    <!-- the <generator> section has to appear in every UDDF file -->
    <generator>
        <!-- description of the program generating the UDDF file -->
        <name>DSL - Diver's Super Logbook</name>
        <manufacturer>Dive Heroes Company</manufacturer>
        <version>3.14159</version>
        <date>
            <year>2004</year><month>9</month>
            <day>30</day><dayofweek>4</dayofweek> <!-- Thursday -->
        </date>
    </generator>
    <diver>
        <!-- first all own data are given (which are wished) ... -->
        <owner id="owner_arno">
            <!-- description of the owner of the UDDF file -->
            <!-- (so the own data are to be given here)    -->
            <personal>
                <firstname>Arno</firstname>
                <middlename>Albert</middlename>
                <lastname>Alzheimer</lastname>
                <title>Dr.</title>
                <sex>m</sex>
                <birthdate>
                    <year>1919</year>
                    <month>2</month>
                    <day>30</day>
                </birthdate
            </personal>
            <address>
                <street>Auf der Heide 12</street>
                <city>Aheim</city>
                <postcode>12345</postcode>
                <country>Deutschland</country>
            </address>
            <passport>
            </passport>
            <contact>
                <language>deutsch</language>
                <phone>01234/567890</phone>
                <email>arno@arno-alzheimer.org</email>
                <homepage>http://www.tieftauchen.info/arno</homepage>
            </contact>
            <medical>
                <examination>
                    <date>
                        <year>2003</year
                        <month>4</month>
                        <day>12</day>
                        <dayofweek>6</dayofweek> <!-- Saturday -->
                    </date>
                    <doctor id="doctorDusel">
                        <personal>
                            <firstname>Dirk</firstname>
                            <lastname>Dusel</lastname>
                            <title>Dr.</title>
                            <sex>m</sex>
                            <birthdate>
                                <!-- if date of birthdate is known, it can be given here... -->
                            </birthdate
                        </personal>
                        <address>
                            <street>Duddelstr. 34</street>
                            <city>Dortmund</city>
                            <postcode>54321</postcode>
                            <country>Deutschland</country>
                        </address>
                        <contact>
                            <language>deutsch</language>
                            <phone>01234/987654</phone>
                            <!-- neither email address nor homepage is known (no entries here) -->
                        </contact>
                    </doctor>
                    <examinationresult>passed</examinationresult>
                    <notes>
                        <text>
                            Flatfeet seem not to affect dive fitness :-) 
                        </text>
                        <image><objectname>flatfoot.jpg</objectname></image>
                    </notes>
                </examination>
                <examination>
                    <date>
                        <year>2004</year
                        <month>4</month>
                        <day>20</day>
                        <dayofweek>2</dayofweek> <!-- Tuesday -->
                    </date>
                    <!-- following a reference to the practising doctor, -->
                    <!-- the data are already given above                -->
                    <doctorref ref="doctorDusel">
                    <examinationresult>passed</examinationresult>
                </examination>
            </medical>
            <education>
                <!-- all levels of the owner's dive education -> several -->
                <!-- <certification> elements one after the other        -->
                <certification>
                    <level>Bronze</level>
                    <organisation>VDST/CMAS</organisation>
                    <!-- because data of the then dive instructor were not -->
                    <!-- registered in an UDDF file, no reference via      -->
                    <!-- <instructorref="..."> can be made here            -->
                    <issuedate>
                        <year>1994</year
                        <month>3</month>
                        <day>15</day>
                        <dayofweek>2</dayofweek> <!-- Tuesday -->
                    </issuedate>
                </certification>
                <certification>
                    <level>Silver</level>
                    <organisation>VDST/CMAS</organisation>
                    <!-- because data of the then dive instructor were not -->
                    <!-- registered in an UDDF file, no reference via      -->
                    <!-- <instructorref="..."> can be made here            -->
                    <issuedate>
                        <year>1997</year
                        <month>11</month>
                        <day>26</day>
                        <dayofweek>3</dayofweek> <!-- Wednesday -->
                    </issuedate>
                </certification>
                <certification>
                    <level>Gold</level>
                    <organisation>VDST/CMAS</organisation>
                    <!-- because data of the then dive instructor were not -->
                    <!-- registered in an UDDF file, no reference via      -->
                    <!-- <instructorref="..."> can be made here            -->
                    <issuedate>
                        <year>2000</year
                        <month>5</month>
                        <day>10</day>
                        <dayofweek>3</dayofweek> <!-- Wednesday -->
                    </issuedate>
                </certification>
            </education>
            <divepermissions>
                <!-- here any number of dive permissions can be listed -->
                <permit>
                    <name>DiveCard</name>
                    <region>Austria</region>
                    <issuedate>
                        <year>2004</year
                        <month>8</month>
                        <day>24</day>
                        <dayofweek>2</dayofweek> <!-- Tuesday -->
                    </issuedate>
                    <validdate>
                        <year>2005</year
                        <month>8</month>
                        <day>23</day>
                        <dayofweek>2</dayofweek> <!-- Tuesday -->
                    </validdate>
                </permit>
                <permit>
                    <name>Zeeland</name>
                    <region>Zeeland (The Netherlands)</region>
                    <issuedate>
                        <year>1996</year
                        <month>9</month>
                        <day>3</day>
                        <dayofweek>2</dayofweek> <!-- Tuesday -->
                    </issuedate>
                    <validdate>
                        <year>2001</year
                        <month>8</month>
                        <day>31</day>
                        <dayofweek>5</dayofweek> <!-- Friday -->
                    </validdate>
                </permit>
                <!-- here more dive permissions if necessary -->
            </divepermissions>
            <!-- because no additional dive insurances have been signed -->
            <!-- <diveinsurances>...</diveinsurances> is neglected here -->
        </owner>
        <!-- ... and now follow the data of all dive buddies -->
        <buddy id="buddy_bertie_the_airsucker">
            <!-- data of the first dive buddy -->
            <personal>
                <firstname>Bertie</firstname>
                <lastname>Bammel</lastname>
            </personal>
            <!-- no address data given - <address>...</address> is dropped -->
            <contact>
                <email>airsucker@deepdiving.info</email>
                <homepage>http://www.deepdiving.info/bertie</homepage>
            </contact>
        </buddy>
        <buddy id="buddyCarl">
            <!-- description of another dive buddy -->
            <personal>
                <firstname>Carl</firstname>
                <lastname>Cabuff</lastname>
            </personal>
            <!-- address data not known - <address>...</address> is dropped -->
            <contact>
                <email>lurchi@abcde.com</email>
                <homepage>http://www.deepdiving.info/carl</homepage>
            </contact>
        </buddy>
        <!-- here more descriptions of other dive buddies can be inserted -->
    </diver>
    <!-- here other sections, dive profiles, or data concerning -->
    <!-- generation of dive tables e.g., can be given           -->
</uddf>

Descriptions of dive spots

<uddf version="2.1.0">
    <!-- the <generator> section has to appear in every UDDF file -->
    <generator>
        <!-- description of the program generating the UDDF file -->
        ...
    </generator>
    <divesite>
        <!-- descriptions of all dive spots -->
        <site id="site_Scapa_Brummer">
            <!-- descriptions of the first registered dive spot -->
            <name>Brummer</name>
            <geography>
                <location>Scapa Flow</location>
                <province>Orkney Islands</province>
                <country>UK</country>
                <!-- degree of latitude: North > 0 / South < 0 -->
                <latitude>58.897222</latitude>
                <!-- degree of longitude: East > 0 / West < 0 -->
                <longitude>-3.1519444</longitude>
                <altitude>0.0</altitude>
            </geography>
            <sitedata>
                <maximumdepth>37.0</maximumdepth>
                <density>1030.0</density>   <!-- salt water -->
                <bottom>sandy ground</bottom>
                <wreck id="wreck_Brummer">
                    <name>SMS Brummer</name>
                    <shiptype>light cruiser</shiptype>
                    <nationality>German</nationality>
                    <built>
                        <shipyard>Vulcan, Stettin</shipyard>
                        <date>
                            <year>1916</year>
                        </date>
                    </built>
                    <dimension>
                        <length>140.0</length>
                        <beam>13.0</beam>
                        <draught>6.0</draught>
                        <displacement>4.385E6</displacement>
                    </dimension>
                    <sunk>
                        <date>
                            <year>1919</year>
                            <month>6</month>
                            <day>21</day>
                            <dayofweek>6</dayofweek> <!-- Saturday -->
                        </date>
                        <time>
                            <hour>13</hour>
                            <minute>5</minute>
                        </time>
                    </sunk>
                    <notes>
                        <text>German high sea fleet</text>
                    </notes>
                </wreck>
            </sitedata>
            <notes>
                <text>Really nice wreck dive!</text>
            </notes>
        </site>
        <!-- more dive spots -->
    </divesite>
    <divetrip>
        <!-- all documented dive trips are following -->
        <trip id="holiday2003">
            <name>Dive club travel to Red Sea 2003</name>
            <startdate>
                <year>2003</year><month>4</month><day>12</day>
            </startdate>
            <enddate>
                <year>2003</year><month>4</month><day>19</day>
            </enddate>
            <geography>
                <location>Hurghada</location>
                <country>Egypt</country>
            </geography>
            <organizedtrip/>
            <hoteltrip/>
            <accommodation>
                <name>Hotel 1000 and 1 Night</name>
                <category>4</category>
                <contact>
                    <email>info@hotel-1000-and-1-night.com</email>
                    <homepage>http://www.hotel-1000-and-1-night.com</homepage>
                </contact>
                <rating>6</rating>
            </accommodation>
            <divebase>
                <name>Deep Down</name>
                <contact>
                    <email>info@deep-dayofweekn-diving.com</email>
                    <homepage>http://www.deep-dayofweekn-diving.com</homepage>
                </contact>
                <priceperdive currency="USD">40.00</priceperdive>
                <pricedivepackage currency="USD" noofdives="10">350.00</pricedivepackage>
                <guide>
                    <!-- dive guide already registered as <buddy>, therefore only cross-referencing here  -->
                    <buddyref ref="buddy_Georg">
                </guide>
                <guide>
                    <!-- 2. dive guide already described as <buddy> ... -->
                    <buddyref ref="buddy_Hansi_the_airsucker">
                </guide>
                <rating>7</rating>
            </divebase>
            <notes>
                <text>Nice dive holiday - if there only were less other divers...</text>
                <video>
                    <objectname>rm2003.avi</objectname>
                </video>
            </notes>
        </trip>
        <trip id="holiday2004">
            <name>Dive & Sail 2004</name>
            <startdate>
                <year>2004</year><month>9</month><day>24</day>dayofweek>5</dayofweek>
            </startdate>
            <enddate>
                <year>2004</year><month>10</month><day>3</day>dayofweek>7</dayofweek> <!-- Sunday -->
            </enddate>
            <geography>
                <province>Cote d'Azur</province>
                <country>France</country>
            </geography>
            <individualtrip/>
            <boattrip/>
            <vessel>
                <name>Dorade</name>
                <shiptype>sailing ship</shiptype>
                <marina>Bormes les Mimosas</marina>
            </vessel>
            <relateddives>
                <diveref ref="dv_530"><diveref ref="dv_531"><diveref ref="dv_532"><diveref ref="dv_533">
                <diveref ref="dv_534"><diveref ref="dv_535"><diveref ref="dv_536"><diveref ref="dv_537">
                <diveref ref="dv_538"><diveref ref="dv_539"><diveref ref="dv_540"><diveref ref="dv_541">
            </relateddives>
            <notes>
                <text>Our motto: We dive, what others are dreaming of!!! :-)</text>
                <video>
                    <objectname>das2004.avi</objectname>
                </video>
            </notes>
        </trip">
    </divetrip>
    <!-- here other sections, dive profiles, or data concerning -->
    <!-- generation of dive tables e.g., can be given           -->
</uddf>

Biological population inventories

<uddf version="2.1.0">
    <!-- the <generator> section has to appear in every UDDF file -->
    <generator>
        <!-- description of the program generating the UDDF file -->
        ...
    </generator>
    <divesite>
        <!-- description of all dive spots -->
        <site id="site_Shallow_south_of_Gabiniere">
            <name>Shallow to the south of Ilot de la Gabiniere</name>
            <geography>
                <location>Ilot de la Gabiniere</location>
                <province>Cote d'Azur</province>
                <country>France</country>
                <!-- degree of latitude, and longitude, unknown -->
                <altitude>0.0</altitude>
            </geography>
            <ecology>
                <!-- listing of typically seen plants, and animals respectively -->
                <fauna>
                    <porifera>                <!-- sponges -->
                        <species>
                            <trivialname>Kidney sponge</>trivialname>
                            <scientificname>Chondrosia reniformis</>scientificname>
                        </species>
                        <species>
                            <trivialname>Orange-red encrusting sponge</>trivialname>
                            <scientificname>Crambe crambe</>scientificname>
                        </species>
                        <species>
                            <trivialname>Bluish encrusting sponge</>trivialname>
                            <scientificname>Anchinoe</>scientificname>
                        </species>
                    </porifera>
                    <cnidaria>                <!-- cnidarians -->
                        <species>
                            <trivialname>Purple gorgonian</>trivialname>
                            <scientificname>Paramuricea clavata (chamaeleon)</>scientificname>
                        </species>
                    </cnidaria>
                    <ascidiacea>              <!-- seasquirts -->
                        <species>
                            <trivialname>Red seasquirt</>trivialname>
                            <scientificname>Halocynthia papillosa</>scientificname>
                        </species>
                    </ascidiacea>
                    <echinodermata>           <!-- echinoderms -->
                        <species>
                            <trivialname>Purple Starfish</>trivialname>
                            <scientificname></>scientificname>
                        </species>
                    </echinodermata>
                    <vertebrata>              <!-- vertebrates -->
                        <osteichthyes>        <!-- Knochenfische -->
                            <species>
                                <trivialname>Moray-eel</>trivialname>
                                <scientificname></>scientificname>
                            </species>
                            <species>
                                <trivialname>Grouper</>trivialname>
                                <scientificname></>scientificname>
                            </species>
                            <species>
                                <trivialname>Striped grouper</>trivialname>
                                <scientificname></>scientificname>
                            </species>
                            <species>
                                <trivialname>Red damselfish</>trivialname>
                                <scientificname></>scientificname>
                            </species>
                            <species>
                                <trivialname>Damselfish</>trivialname>
                                <scientificname></>scientificname>
                            </species>
                            <species>
                                <trivialname>Rainbow wrasse</>trivialname>
                                <scientificname></>scientificname>
                            </species>
                            <species>
                                <trivialname>Two-banded bream</>trivialname>
                                <scientificname></>scientificname>
                            </species>
                            <species>
                                <trivialname>Toothed sparus</>trivialname>
                                <scientificname></>scientificname>
                            </species>
                            <species>
                                <trivialname>Peacock wrasse</>trivialname>
                                <scientificname></>scientificname>
                            </species>
                        </osteichthyes>
                    </vertebrata>
                </fauna>
                <flora>
                    <rhodophyceae>      <!-- red algae -->
                        <species>
                            <trivialname>Peyssonnelia</>trivialname>
                            <scientificname>Peyssonnelia squamaria</>scientificname>
                        </species>
                    </rhodophyceae>
                    <chlorophyceae>     <!-- green algae -->
                        <species>
                            <trivialname>Sea lettuce</>trivialname>
                            <scientificname>Ulva rigida</>scientificname>
                        </species>
                        <species>
                            <trivialname>Ball alga</>trivialname>
                            <scientificname>Codium bursa</>scientificname>
                        </species>
                    </chlorophyceae>
                </flora>
            </ecology>
            <sitedata>
                <minimumdepth>18.0</minimumdepth>
                <maximumdepth>32.0</maximumdepth>
                <arealength>20.0</arealength>         <!-- length of examined rock -->
                <areawidth>8.0</areawidth>            <!-- width of rock -->
                <!-- (from the above given four values a volume can be calculated, if necessary) -->
                <density>1030.0</density>   <!-- salt water -->
                <bottom>rocks</bottom>
             </sitedata>
            <notes>
                <text>
                    First class dive spot! Due to currents often difficult to dive. Access either via
                    blue water descent from boat, or - with excellent knowledge of the topography! -
                    diving from the southern tip of Ilot de la Gabiniere in southwest direction.
                    Narrow, long ridge, both sides like steep walls. Dense growing of algae, sponges,
                    and gorgonians. Many fishes, first of all many groupers.
                </text>
                <image>
                    <objectname>red_gorgonia.jpg</objectname>
                    <!-- Additionally, information about specific image data can be given -->
                    <!-- here inside <imagedata> (for example aperture, shutter speed, exposure -->
                    <!-- compensation, focal length of lens, date and time). -->
                    <!-- (of course, this is possible for all below listed images) -->
                </image>
                <image><objectname>spiny-starfish.jpg</objectname></image>
                <image><objectname>5_groupers.jpg</objectname></image>
                <image><objectname>sea-lettuce_rainbow-wrasse.jpg</objectname></image>
                <image><objectname>heinz_close_to_3_groupers.jpg</objectname></image>
                <image><objectname>portrait_red-scorpionfish.jpg</objectname></image>
                <video><objectname>shallow_040928.avi</objectname></video>
            </notes>
        </site>
    </divesite>
    <!-- more dive spots -->
</uddf>

7.2 Breathing gases used

<uddf version="2.1.0">
    <!-- the <generator> section has to appear in every UDDF file -->
    <generator>
        <!-- description of the program generating the UDDF file -->
        <name>DSL - Diver's Super Logbook</name>
        <manufacturer>Dive Heroes Company</manufacturer>
        <version>3.14159</version>
        <date>
            <year>2004</year><month>9</month><day>30</day>
        </date>
    </generator>
    <diver>
        <owner>
            <!-- description of the owner of the UDDF file -->
            <personal>
                <!-- personal data (name usw.) -->
            </personal>
            <address>
                <!-- address data ... -->
            </address>
            <!-- here more data of the owner -->
            <equipment>
                <!-- listing of the owner's equipment -->
                ...
                <tank id="tank_1">
                    <name>favourite tank</name>
                    <manufacturer>Super tank manufacturer</manufacturer>
                    <model>As hard as steel</model>
                    <serialnumber>12345</serialnumber>
                    <purchase>
                        <date>
                            <!-- date of purchase of tank -->
                        </date>
                        <price currency="DM">250.00</price>
                        <shop>
                            <!-- information concerning the shop, where the tank was bought -->
                        </shop>
                    </purchase>
                    <nextservicedate>
                        <!-- date of next proof by safety standards authority -->
                    </nextservicedate>
                    <tankmaterial>steel</tankmaterial>    <!-- steel tank -->
                    <notes>
                        <image>
                            <objectname>steeltank_new.jpg</objectname>
                            <imagedata>
                                <!-- date when photo was taken -->
                                <date>
                                    <year>2001</year><month>5</month><day>2</day>
                                </date>
                            </imagedata>
                        </image>
                        <image>
                            <objectname>steeltank_2_years_later.jpg</objectname>
                            <imagedata>
                                <!-- date when photo was taken -->
                                <date>
                                    <year>2003</year><month>7</month><day>6</day>
                                </date>
                            </imagedata>
                        </image>
                    </notes>
                </tank>
                <!-- here more tank descriptions can be inserted -->
            </equipment>
        </owner>
    </diver>
    <gasdefinitions>
        <!-- all breathing gases used -->
        <mix id="oxygen_pure">
            <name>pure oxygen</name>
            <o2>1.000</o2>
            <n2>0.000</n2>
            <he>0.000</he>
            <ar>0.000</ar>
            <h2>0.000</h2>
        </mix>
        <mix id="air">
            <name>air</name>
            <o2>0.210</o2>
            <n2>0.790</n2>
            <he>0.000</he>
            <ar>0.000</ar>
            <h2>0.000</h2>
        </mix>
        <mix id="nitrox6040">
            <name>Nitrox60/40</name>  <!-- Nitrox 60 % N2, 40 % O2 -->
            <o2>0.400</o2>
            <n2>0.600</n2>
            <he>0.000</he>
            <ar>0.000</ar>
            <h2>0.000</h2>
        </mix>
        <mix id="trimix">
            <name>Trimix</name>  <!-- Trimix 15 % O2, 40 % N2, 45 % He -->
            <o2>0.150</o2>
            <n2>0.400</n2>
            <he>0.450</he>
            <ar>0.000</ar>
            <h2>0.000</h2>
        </mix>
        <!-- here more <mix> elements can be given -->
        <tankdata id="air_1">
            <!-- air filled 15 litre tank, fill pressure at beginning 200 bar, breathing consumption volume 12 bar * litre -->
            <mixref ref="air">
            <tankref ref="tank_1">
            <tankvolume>0.015</tankvolume>
            <pstart>20000000.0</pstart>
            <breathingconsumptionvolume>0.0002</breathingconsumptionvolume>
        </tankdata>
        <tankdata id="air_2">
            <!-- another tank filled with air... -->
            <mixref ref="air">
            <tankvolume>0.01</tankvolume>
            <pstart>20000000.0</pstart>
            <breathingconsumptionvolume>0.0003333333333</breathingconsumptionvolume>          <!-- [m^3/s] ^= 20 bar * litre -->
        </tankdata>
        <tankdata id="nitrox_tank">
            <mixref ref="nitrox6040">
            <tankvolume>0.01</tankvolume>
            <pstart>220000000.0</pstart>
            <breathingconsumptionvolume>0.00025</breathingconsumptionvolume>                  <!-- [m^3/s] ^= 15 bar * litre -->
        </tankdata>
        <tankdata id="o2_tank">
            <mixref ref="oxygen_pure">
            <tankvolume>0.008</tankvolume>
            <pstart>20000000.0</pstart>
            <breathingconsumptionvolume>0.0002</breathingconsumptionvolume>                   <!-- [m^3/s] ^= 12 bar * litre -->
        </tankdata>
        <!-- here more <tankdata> elements can be inserted -->
    </gasdefinitions>
</uddf>

7.3 Dive profiles

<uddf version="2.1.0">
    <!-- the <generator> section has to appear in every UDDF file -->
    <generator>
        <!-- description of the program generating the UDDF file -->
        <name>Tausim v1.0</name>
        <manufacturer>Kai Schröder</manufacturer>
        <version>1.0</version>
        <date>
            <year>2006</year><month>4</month><day>28</day>
        </date>
    </generator>
    <divesite>
        <site id="site_tausim_0.0_1030.0">
            <geography>
                <altitude>0.0</altitude>   <!-- sea level -->
            </geography>
            <sitedata>
                <density>1030.0</density>  <!-- salt water -->
            </sitedata>
        </site>
    </divesite>
    <gasdefinitions>
        <!-- all breathing gases used -->
        <mix id="air">
            <name>air</name>
            <o2>0.210</o2>
            <n2>0.790</n2>
            <he>0.000</he>
            <ar>0.000</ar>
            <h2>0.000</h2>
        </mix>
        <tankdata>
            <mixref ref="air">
            <tankvolume>0.015</tankvolume>
            <pstart>20000000.0</pstart>
            <breathingconsumptionvolume>12.0</breathingconsumptionvolume>
        </tankdata>
    </gasdefinitions>
    <profiledata>
        <!-- in the following one recorded dive profile is shown examplary -->
        <repetitiongroup>
            <dive id="dive_tausim_060428_1549">
                <siteref ref="site_tausim_0.0_1030.0">
                <date><year>2006</year><month>4</month><day>28</day></date>
                <time><hour>15</hour><minute>49</minute></time>
                <surfaceinterval>
                    <passedtime>infinity</passedtime>
                </surfaceinterval>
                <!-- temperature is of no importance in "Tausim", but the greatest depth -->
                <!-- reached during a (simulated) dive is written to the UDDF output -->
                <greatestdepth>53.0</greatestdepth>
                <program>
                    <!-- Within this section data relevant only to the program generating -->
                    <!-- the profile - in this case "Tausim" - are given. These data can  -->
                    <!-- be ignored by other programs. -->
                    <tausim>
                        <pres>4000000.0</pres>
                        <timeinc>10</timeinc>
                        <depthinc>10</depthinc>
                        <durdep>9</durdep>
                        <nstatic>18</nstatic>
                        <rls>50</rls>
                        <decomodel>ZH-L16</decomodel>
                        <buehl>5</buehl>
                        <tissues>16</tissues>
                        <ip>75073.70000</ip><ip>75073.70000</ip><ip>75073.70000</ip><ip>75073.70000</ip>
                        <ip>75073.70000</ip><ip>75073.70000</ip><ip>75073.70000</ip><ip>75073.70000</ip>
                        <ip>75073.70000</ip><ip>75073.70000</ip><ip>75073.70000</ip><ip>75073.70000</ip>
                        <ip>75073.70000</ip><ip>75073.70000</ip><ip>75073.70000</ip><ip>75073.70000</ip>
                    </tausim>
                </program>
                <timedepthmode/>
                <samples>
                    <!-- Tausim stores time, and depth -->
                    <switchmix>air</switchmix>
                    <t>0.0</t><d>0.0</d>
                    <t>5.0</t><d>50.0</d>
                    <t>7.0</t><d>50.0</d>
                    <t>8.0</t><d>46.0</d>
                    <t>10.0</t><d>46.0</d>
                    <t>11.0</t><d>53.0</d>
                    <t>12.0</t><d>48.0</d>
                    <t>15.0</t><d>48.0</d>
                    <t>16.0</t><d>38.0</d>
                    <t>21.0</t><d>38.0</d>
                    <t>23.0</t><d>25.0</d>
                    <t>26.0</t><d>21.0</d>
                    <t>31.0</t><d>11.0</d>
                    <t>37.0</t><d>11.0</d>
                    <t>39.0</t><d>5.0</d>
                    <t>43.0</t><d>5.0</d>
                    <t>44.0</t><d>3.0</d>
                    <t>69.0</t><d>3.0</d>
                    <t>75.0</t><d>0.0</d>
                </samples>
            </dive> <!-- end dive_tausim_060428_1549 -->
            <!-- here more <dive> sections can be inserted -->
        </repetitiongroup>
        <!-- here more <repetitiongroup> sections can be inserted -->
    </profiledata>
    <tablegeneration>
        <!-- here follow instructions for the generation of dive tables -->
    </tablegeneration>
</uddf>

7.4 Generation of ascent profiles, dive tables, and "maximum bottom time tables"

Calculation of ascent profiles

<uddf version="2.1.0">
    <!-- the <generator> section has to appear in every UDDF file -->
    <generator>
        <!-- description of the program generating the UDDF file -->
        <name>DP Planner</name>
        <manufacturer>Grouper Inc.</manufacturer>
        <version>1.41421</version>
        <date>
            <year>2006</year><month>6</month><day>20</day>
        </date>
    </generator>
    <gasdefinitions>
        <mix id="oxygen">
            <name>pure oxygen</name>
            <o2>1.000</o2>
            <n2>0.000</n2>
            <he>0.000</he>
            <ar>0.000</ar>
            <h2>0.000</h2>
        </mix>
        <mix id="noaa1">
            <name>NOAA1</name>  <!-- 32 % O2, 68 % N2 -->
            <o2>0.320</o2>
            <n2>0.680</n2>
            <he>0.000</he>
            <ar>0.000</ar>
            <h2>0.000</h2>
        </mix>
        <mix id="trimix">
            <name>Trimix</name>  <!-- Trimix 16 % O2, 40 % N2, 44 % He -->
            <o2>0.160</o2>
            <n2>0.400</n2>
            <he>0.440</he>
            <ar>0.000</ar>
            <h2>0.000</h2>
        </mix>
        <mix id="heliox">
            <name>Heliox</name>  <!-- 12 % O2, 88 % He -->
            <o2>0.120</o2>
            <n2>0.000</n2>
            <he>0.880</he>
            <ar>0.000</ar>
            <h2>0.000</h2>
        </mix>
    </gasdefinitions>
    <tablegeneration>
        <!-- here follow parameters for the generation of ascent tables -->
        <profile>
            <!-- <diveref ref="..."> dropped because tissues are saturated corresponding to ambient pressure -->
            <!-- <tankdataref ref="..."> dropped because no breathing gas consumption calculation is to be performed -->
            <mixref ref="oxygen">
            <mixref ref="noaa1">
            <mixref ref="trimix">
            <mixref ref="heliox">
            <surfaceinterval>
                <!-- tissues saturated corresponding to ambient pressure, no -->
                <!-- remaining saturation from a prior dive to be considered -->
                <passedtime>infinity</passedtime>
            </surfaceinterval>
            <density>1030.0</density>   <!-- salt water -->
            <output>
                <lingo>en</lingo>
                <fileformat>pdf</fileformat>
                <filename>example_profile_1</filename>
                <headline>100 m example dive</headline>
                <remark>
                    This is an examplary calculation for a dive to 100 m salt water.
                </remark>
            </output>
            <!-- program specific parameters which an UDDF parser will not necessarily read -->
            <program>...</program>
            <!-- setting of the decompression model to be used -->
            <!-- If the executing software does not support this deco model, the program's -->
            <!-- standard model has to be used - what should be noticed to the user, of course! :-) -->
            <decomodel>ZH-L16</decomodel>
            <!-- "Deep Stops" shall be used; length 1 minute -->
            <deepstoptime>60.0</deepstoptime>
            <!-- maximum ascent velocity in meters per seconds -->
            <!-- here: 10 m/min ^= 0.1666... m/s -->
            <maximumascendingrate>0.16666666667</maximumascendingrate>
            <!-- settings on which depths the breathing gases shall be changed -->
            <mixchange>
                <!-- change of breathing gases during descent -->
                <descent>
                    <!-- beginning the dive with Nitrox NOAA I (32 % O2, 68 % N2) -->
                    <d> 0.0</d><switchmix>noaa1</switchmix>
                    <!-- at a depth of 35 m change to Trimix mix -->
                    <d>35.0</d><switchmix>trimix</switchmix>
                    <!-- at a depth of 80 m change to Heliox -->
                    <d>80.0</d><switchmix>heliox</switchmix>
                </descent>
                <!-- change of breathing gases during following ascent -->
                <ascent>
                    <d>85.0</d><switchmix>trimix</switchmix>
                    <d>40.0</d><switchmix>noaa1</switchmix>
                    <d> 5.0</d><switchmix>oxygen</switchmix>
                </ascent>
            </mixchange>
            <!-- definition of a descent profile as a basis to calculate the ascent profile -->
            <inputprofile>
                <!-- Each dive begins at 0 min at the surface! :-) -->
                <t>  0.0</t><d>  0.0</d>
                <!-- simple profile: -->
                <!-- descent within 5 min to 100 m -->
                <t>300.0</t><d>100.0</d>
                <!-- remaining time on depth 10 min -->
                <t>900.0</t><d>100.0</d>
                <!-- now the ascent begins - it's the task of the program to calculate it -->
            </inputprofile>
        </profile>
    </tablegeneration>
</uddf>

Calculation of a dive table

<uddf version="2.1.0">
    <!-- the <generator> section has to appear in every UDDF file -->
    <generator>
        <!-- description of the program generating the UDDF file -->
        <name>DSL - Diver's Super Logbook</name>
        <manufacturer>Dive Heroes Company</manufacturer>
        <version>3.14159</version>
        <date>
            <year>2004</year><month>9</month><day>30</day>
        </date>
    </generator>
    <gasdefinitions>
        <!--  -->
    </gasdefinitions>
    <profiledata>
        <!-- all recorded dive profiles -->
    </profiledata>
    <tablegeneration>
        <!-- here follow parameters for the generation of dive tables -->
    </tablegeneration>
</uddf>

Computation of a "maximum bottom time table"

<uddf version="2.1.0">
    <!-- the <generator> section has to appear in every UDDF file -->
    <generator>
        <!-- description of the program generating the UDDF file -->
        <name>MGT</name>
        <manufacturer>Kai Schröder</manufacturer>
        <version>0.6</version>
        <date>
            <year>2004</year><month>9</month><day>30</day>
        </date>
    </generator>
    <gasdefinitions>
        <!-- only air is to be used for this calculation -->
        <mix id="Air">
            <name>air</name>  
            <o2>21.000</o2>
            <n2>79.000</n2>
            <he> 0.000</he>
            <ar> 0.000</ar>
            <h2> 0.000</h2>
        </mix>
    </gasdefinitions>
    <profiledata>
        <!-- all recorded dive profiles - here none is necessary -->
    </profiledata>
    <tablegeneration>
        <calculatebottomtimetable>
            <bottomtimetable id="DECO2000">
                <tableref ref="deco2000">
                <output>
                    <!-- output language is set to "German" -->
                    <lingo>de</lingo>
                    <!-- format of output, in this case ASCII -->
                    <fileformat>ascii</fileformat>
                    <!-- name of output file -->
                    <filename>mgt_deco2000</filename>
                    <!-- headline for table to be calculated -->
                    <headline>Tabelle fuer   0 m bis  700 muedM (DECO 2000)</headline>
                    <!-- remarks added to the table output -->
                    <remark>
                        Maximale Grundzeit in Minuten bei verschiedenen Flaschenvolumina,
                        Tauchtiefen und Atemminutenvolumen (AMV)
                        unter Beruecksichtigung von notwendigen Dekompressionsstopps

                        Wird die Nullzeit bei einem Tauchgang ueberschritten, so wird der
                        max. Grundzeit ein "d" (fuer Deko-Tauchgang) vorangestellt.

                        Ist die maximale Grundzeit laenger als die Nullzeit, aber dafuer
                        in der Tabelle kein Dekostopp angegeben, so wird die Nullzeit als
                        maximale Grundzeit angegeben und dieser ein "s" (fuer "Sicher-
                        heitsstopp") vorangestellt. In diesem Fall obliegt es dem Taucher,
                        einen Sicherheitsstopp von z.B. 3 min auf 5 m (oder laenger) zu machen.

                        Muss die maximale Grundzeit auf die laengste in der Tabelle enthaltene
                        Grundzeit gesetzt werden (weil fuer laengere Grundzeiten keine
                        Dekostopps mehr berechnet wurden), wird dem Wert ein "t"
                        vorangestellt. In diesem Fall ist die theoretisch moegliche maximale
                        Grundzeit laenger als die angegebene, aber dafuer existieren keine
                        Dekostopp-Angaben mehr.

                        Grundzeiten berechnet mit Hilfe der Austauchtabelle DECO 2000
                        (0 -- 700 muedM) von Max Hahn; Aufstiegsgeschwindigkeit 10 m/min
                    </remark>
                </output>
                <bottomtimetablescope>
                    <!-- shallowest depth: 5 m -->
                    <divedepthbegin>5.0</divedepthbegin>
                    <!-- deepest depth: 60 m -->
                    <divedepthend>60.0</divedepthend>
                    <!-- increment for depth: 5 m -->
                    <divedepthstep>5.0</divedepthstep>
                    <!-- table is to be calculated for different breathing gas consumption values, ... -->
                    <!-- beginning with a BCV of 10 l/min -->
                    <breathingconsumptionvolumebegin>0.00016666667</breathingconsumptionvolumebegin>
                    <!-- end at 30 l/min -->
                    <breathingconsumptionvolumeend>0.0005</breathingconsumptionvolumeend>
                    <!-- increment 5 l/min -->
                    <breathingconsumptionvolumestep>8.3333333e-5</breathingconsumptionvolumestep>
                    <!-- ... and also for different tank volumes... -->
                    <!-- beginning with a tank volume of 10 litres ^= 0.01 m^3 -->
                    <tankvolumebegin>0.01</tankvolumebegin>
                    <!-- end at 20 litres -->
                    <tankvolumeend>0.02</tankvolumeend>
                    <!-- increment 5 litres -->
                    <tankvolumestep>0.005</tankvolumestep>
                    <!-- fill pressure at beginning of each dive 200 bar -->
                    <pfill>20000000.0</pfill>
                    <!-- reserve pressure at end to be considered (40 bar) - not to be used -->
                    <preserve>40000.0</preserve>
                </bottomtimetablescope>
            </bottomtimetable>
        </calculatebottomtimetable>
    </tablegeneration>
</uddf>

The output to the above given parameters could be as follows:

 MGT - Maximale Grundzeit-Tabellen-Berechnung v0.6 vom 27.3.2006, Autor: Kai Schroeder

     Maximale Grundzeit in Minuten bei verschiedenen Flaschenvolumina,
     Tauchtiefen und Atemminutenvolumen (AMV)
     unter Beruecksichtigung von notwendigen Dekompressionsstopps

     Wird die Nullzeit bei einem Tauchgang ueberschritten, so wird der
     max. Grundzeit ein "d" (fuer Deko-Tauchgang) vorangestellt.

     Ist die maximale Grundzeit laenger als die Nullzeit, aber dafuer
     in der Tabelle kein Dekostopp angegeben, so wird die Nullzeit als
     maximale Grundzeit angegeben und dieser ein "s" (fuer "Sicher-
     heitsstopp") vorangestellt. In diesem Fall obliegt es dem Taucher,
     einen Sicherheitsstopp von z.B. 3 min auf 5 m (oder laenger) zu machen.

     Muss die maximale Grundzeit auf die laengste in der Tabelle enthaltene
     Grundzeit gesetzt werden (weil fuer laengere Grundzeiten keine
     Dekostopps mehr berechnet wurden), wird dem Wert ein "t"
     vorangestellt. In diesem Fall ist die theoretisch moegliche maximale
     Grundzeit laenger als die angegebene, aber dafuer existieren keine
     Dekostopp-Angaben mehr.

     Grundzeiten berechnet mit Hilfe der Austauchtabelle DECO 2000
     (0 -- 700 muedM) von Max Hahn; Aufstiegsgeschwindigkeit 10 m/min



                              Tabelle fuer   0 m bis  700 muedM (DECO 2000)
----------------------------------------------------------------------------------------------------
       |                                  maximale Grundzeit [min]
       |--------------------------------------------------------------------------------------------
       |                                      Flaschenvolumen
 Tauch |           10 Liter           |           15 Liter           |           20 Liter           
 tiefe |                              |                              |                              
  [m]  |          AMV [l/min]         |          AMV [l/min]         |          AMV [l/min]         
       |  10    15    20    25    30  |  10    15    20    25    30  |  10    15    20    25    30  
-------+------------------------------+------------------------------+------------------------------
   5   |  106    71    53    42    35 |  160   106    80    64    53 |  213   142   106    85    71
  10   |   80    53    40    32    26 |  120    80    60    48    40 | s142   106    80    64    53
  15   |   64    42    32    25    21 | t 84    64    48    38    32 | t 84  d 82    64    51    42
  20   | d 48  d 34    26    21    17 | t 61  d 48  d 37  d 31    26 | t 61  t 61  d 48  d 40  d 34
  25   | d 38  d 27  d 21  d 18    15 | t 46  d 38  d 30  d 25  d 21 | t 46  t 46  d 38  d 31  d 27
  30   | d 33  d 23  d 18  d 15    13 | t 36  d 33  d 25  d 21  d 18 | t 36  t 36  d 33  d 27  d 23
  35   | d 27  d 19  d 14  d 13  d 10 | t 33  d 27  d 21  d 18  d 14 | t 33  t 33  d 27  d 22  d 19
  40   | d 22  d 16  d 13  d 10  d  9 | t 25  d 22  d 18  d 15  d 13 | t 25  t 25  d 22  d 19  d 16
  45   | d 20  d 14  d 12  d 10  d  8 | t 22  d 20  d 16  d 13  d 12 | t 22  t 22  d 20  d 17  d 14
  50   | t 18  d 13  d 10  d  8  d  7 | t 18  t 18  d 14  d 12  d 10 | t 18  t 18  t 18  d 14  d 13
  55   | t 16  d 11  d  9  d  8  d  6 | t 16  t 16  d 12  d 10  d  9 | t 16  t 16  t 16  d 13  d 11
  60   | t 14  d 10  d  8  d  6  d  6 | t 14  t 14  d 11  d  9  d  8 | t 14  t 14  t 14  d 12  d 10

7.5 Configuration of, and reading data from, dive computers

The use of this section presumes that the dive computer is able to understand UDDF commands! :-)

Configuration of a dive computer

<uddf version="2.1.0">
    <!-- the <generator> section has to appear in every UDDF file -->
    <generator>
        <!-- description of the program generating the UDDF file -->
        <name>Dive Computer Configuration</name>
        <manufacturer>Dive Heroes Company</manufacturer>
        <version>2.71828</version>
        <date>
            <year>2006</year><month>5</month><day>14</day>
        </date>
    </generator>
    <divecomputercontrol>
        <setdcdata>
            <!-- set date -->
            <setdcdate>
                <year>2006</year><month>5</month><day>18</day>
            </setdcdate>
            <!-- set time -->
            <setdctime>
                <hour>14</hour><minute>21</minute>
            </setdctime>
            <!-- settings for an alarm, to be given by the dive computer at 16.30 h -->
            <setdcalarmtime>
                <hour>16</hour>
                <minute>30</minute>
                <dcalarm>
                    <!-- that type of alarm shall be given which is defined as ,,1`` inside the dive computer -->
                    <alarmtype>1</alarmtype>
                    <!-- alarm has to be acknowledged -->
                    <acknowledge/>
                </dcalarm>
            </setdcalarmtime>
            <setdcdivedepthalarm>
                <!-- first depth alarm at 35 m -->
                <depth>35.0</depth>
                <dcalarm>
                    <!-- that type of alarm shall be given which is defined as ,,2`` inside the dive computer -->
                    <alarmtype>2</alarmtype>
                    <!-- alarm is to be given for 5 seconds -->
                    <period>5.0</period>
                </dcalarm>
            </setdcdivedepthalarm>
            <setdcdivedepthalarm>
                <!-- second depth alarm at 40 m -->
                <depth>40.0</depth>
                <dcalarm>
                    <!-- that type of alarm shall be given which is defined as ,,3`` inside the dive computer -->
                    <alarmtype>3</alarmtype>
                    <!-- this alarm, again, has to be acknowledged :-) -->
                    <acknowledge/>
                </dcalarm>
            </setdcdivedepthalarm>
            <!-- when no-decompression time is over, play an acoustic hint -->
            <setdcendndtalarm>
                <dcalarm>
                    <!-- that type of alarm shall be given which is defined as ,,4`` inside the dive computer -->
                    <alarmtype>4</alarmtype>
                    <!-- alarm is to be given for 5 seconds -->
                    <period>5.0</period>
                </dcalarm>
            </setdcendndtalarm>
        </setdcdata>
    </divecomputercontrol>
</uddf>

Reading recorded data from a dive computer

<uddf version="2.1.0">
    <!-- the <generator> section has to appear in every UDDF file -->
    <generator>
        <!-- description of the program generating the UDDF file -->
        <name>Dive Computer Configuration</name>
        <manufacturer>Dive Heroes Company</manufacturer>
        <version>2.71828</version>
        <date>
            <year>2006</year><month>5</month><day>14</day>
        </date>
    </generator>
    <!-- other sections are meaningless in this context and will be ignored by dive computers -->
    <divecomputercontrol>
        <getdcdata>
            <!-- get all data recorded by the dive computer -->
            <getdcalldata/>
        </getdcdata>
    </divecomputercontrol>
</uddf>

<uddf version="2.1.0">
    <!-- die <generator> section muß in jeder UDDF-Datei stehen -->
    <generator>
        <!-- description of the program generating the UDDF file -->
        <name>Dive Computer Configuration</name>
        <manufacturer>Dive Heroes Company</manufacturer>
        <version>2.71828</version>
        <date>
            <year>2006</year><month>5</month><day>14</day>
        </date>
    </generator>
    <!-- other sections are meaningless in this context and will be ignored by dive computers -->
    <divecomputercontrol>
        <getdcdata>
            <!-- dayofweeknload only breathing gas definitions, and profile data -->
            <getdcgasdefinitionsdata/>
            <getdcprofiledata/>
        </getdcdata>
    </divecomputercontrol>
</uddf>


Next Previous Contents