<?xml version="1.0" encoding="UTF-8"?>
<Mission xmlns="Tethys"
       xmlns:Control="Tethys/Control"
       xmlns:Guidance="Tethys/Guidance" 
       xmlns:Units="Tethys/Units"
       xmlns:Universal="Tethys/Universal"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="Tethys http://okeanids.mbari.org/tethys/Xml/Tethys.xsd
                           Tethys/Control http://okeanids.mbari.org/tethys/Xml/Control.xsd
                           Tethys/Guidance http://okeanids.mbari.org/tethys/Xml/Guidance.xsd
                           Tethys/Units http://okeanids.mbari.org/tethys/Xml/Units.xsd
                           Tethys/Universal http://okeanids.mbari.org/tethys/Xml/Universal.xsd"
       Id="tank_buoyancy">

    <DefineArg Name="MassDefault"><Control:VerticalControl.massDefault/></DefineArg>

    <Timeout Duration="P45M"/>

    <Aggregate>

        <Sequence/>

        <Guidance:SetSpeed>
            <Parallel/>
            <Setting><Guidance:SetSpeed.speed/><Units:meter_per_second/><Value>0</Value></Setting>
        </Guidance:SetSpeed>

        <Guidance:Pitch>
            <Parallel/>
            <Setting><Guidance:Pitch.depth/><Units:meter/><Value>15</Value></Setting>
            <Setting><Guidance:Pitch.massPosition/><Arg Name="MassDefault"/></Setting>
        </Guidance:Pitch>

        <Guidance:Point>
            <Parallel/>
            <Setting><Guidance:Point.heading/><Units:degree/><Value>0</Value></Setting>
        </Guidance:Point>

        <Aggregate Id="Maintain_Depth">

            <Sequence/>

<!-- RISING -->

            <Aggregate Id="GoBuoyantFast">

                <When>
                    <Universal:depth/>
                    <Gt><Units:meter/><Value>4.9</Value></Gt>
                    <And><Universal:depth_rate/><Gt><Units:meter_per_second/><Value>-.025</Value></Gt></And>
                </When>

                <Guidance:Buoyancy>
                    <Progression/>
                    <Setting><Guidance:Buoyancy.position/><Units:cubic_centimeter/><Value>650</Value></Setting>
                </Guidance:Buoyancy>

            </Aggregate>

            <Aggregate Id="GoBuoyant">

                <When>
                    <Universal:depth/>
                    <Gt><Units:meter/><Value>4.9</Value></Gt>
                </When>

                <Guidance:Buoyancy>
                    <Progression/>
                    <Setting><Guidance:Buoyancy.position/><Units:cubic_centimeter/><Value>600</Value></Setting>
                </Guidance:Buoyancy>

            </Aggregate>

<!-- SINKING -->

            <Aggregate Id="GoHeavyFast">

                <When>
                    <Universal:depth/>
                    <Lt><Units:meter/><Value>4.7</Value></Lt>
                    <And><Universal:depth_rate/><Lt><Units:meter_per_second/><Value>.025</Value></Lt></And>
                </When>

                <Guidance:Buoyancy>
                    <Progression/>
                    <Setting><Guidance:Buoyancy.position/><Units:cubic_centimeter/><Value>250</Value></Setting>
                </Guidance:Buoyancy>

            </Aggregate>

            <Aggregate Id="GoHeavy">

                <When>
                    <Universal:depth/>
                    <Lt><Units:meter/><Value>4.7</Value></Lt>
                </When>

                <Guidance:Buoyancy>
                    <Progression/>
                    <Setting><Guidance:Buoyancy.position/><Units:cubic_centimeter/><Value>300</Value></Setting>
                </Guidance:Buoyancy>

            </Aggregate>

            <Guidance:Wait>
                <Sequence/>
                <Timeout Duration="P30M"></Timeout>
            </Guidance:Wait>

        </Aggregate>

    </Aggregate>

</Mission>
