﻿<?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 ../Xml/Tethys.xsd                            Tethys/Control ../Xml/Control.xsd                            Tethys/Guidance ../Xml/Guidance.xsd                            Tethys/Units ../Xml/Units.xsd                            Tethys/Universal ../Xml/Universal.xsd" Id="transit_3km">

<!-- To be used within 6km of waypoint. No science collection.  -->

    <DefineArg Name="ApproachDepth"><Units:meter /><Value>10.0</Value></DefineArg>

    <DefineArg Name="Wpt1Lat"><Units:degree /><Value>36.806966</Value></DefineArg>

    <DefineArg Name="Wpt1Lon"><Units:degree /><Value>-121.824326</Value></DefineArg>

    <DefineArg Name="Speed"><Units:meter_per_second/><Value>1</Value></DefineArg>

    <Timeout Duration="P130M" />

    <Guidance:AltitudeEnvelope RunIn="Parallel">
        <Set><Guidance:AltitudeEnvelope.minAltitude /><Units:meter /><Value>7</Value></Set>
    </Guidance:AltitudeEnvelope>

    <Guidance:DepthEnvelope RunIn="Parallel">
        <Set><Guidance:DepthEnvelope.maxDepth /><Units:meter /><Value>20</Value></Set>
    </Guidance:DepthEnvelope>

    <Guidance:OffshoreEnvelope RunIn="Parallel">
        <Set><Guidance:OffshoreEnvelope.minOffshore/><Units:kilometer/><Value>1</Value></Set>
    </Guidance:OffshoreEnvelope>

    <Stack Id="SURFACECOMMS">

        <Guidance:GoToSurface RunIn="Progression" />

        <Stack>

            <Preemptive><True /></Preemptive>

            <Guidance:SetSpeed RunIn="Parallel">
                <Set><Guidance:SetSpeed.speed /><Units:meter_per_second /><Value>0</Value></Set>
            </Guidance:SetSpeed>

            <Guidance:ReadSensor RunIn="Sequence">
                <SetUri><Guidance:ReadSensor.uri /><Universal:latitude_fix /></SetUri>
            </Guidance:ReadSensor>

            <Guidance:ReadSensor RunIn="Sequence">
                <Timeout Duration="P10M">
                    <When><Universal:platform_conversation />
                        <Eq /><False />
                    </When>
                    <Touch Id="TouchComms"><Universal:platform_communications /></Touch>
                </Timeout>
                <SetUri><Guidance:ReadSensor.uri /><Universal:platform_communications /></SetUri>
            </Guidance:ReadSensor>

            <Guidance:ReadSensor RunIn="Sequence">
                <SetUri><Guidance:ReadSensor.uri /><Universal:latitude_fix /></SetUri>
            </Guidance:ReadSensor>

        </Stack>

    </Stack>

<!-- GPS Update.  Don't go too long w/o a GPS fix. -->

    <Stack Id="NeedComms">

        <When>
            <Elapsed><Universal:time_fix /></Elapsed>
            <Gt /><Units:minute /><Value>35</Value>
        </When>

        <Call Id="NEEDCOMMS" refId="SURFACECOMMS" />

    </Stack>

    <Guidance:Buoyancy RunIn="Parallel">
        <Set><Guidance:Buoyancy.position /><Units:cubic_centimeter /><Value>275</Value></Set>
    </Guidance:Buoyancy>

    <Stack Id="WaypointOne">

<!-- Go to Wpt1 -->

        <Guidance:Pitch RunIn="Parallel">
            <Set><Guidance:Pitch.depth /><Arg Name="ApproachDepth" /></Set>
        </Guidance:Pitch>

        <Guidance:SetSpeed RunIn="Parallel">
            <Set><Guidance:SetSpeed.speed/><Arg Name="Speed"/></Set>
        </Guidance:SetSpeed>

        <Guidance:Waypoint Id="WaypointW1" RunIn="Sequence">
            <Set><Guidance:Waypoint.latitude /><Arg Name="Wpt1Lat" /></Set>
            <Set><Guidance:Waypoint.longitude /><Arg Name="Wpt1Lon" /></Set>
        </Guidance:Waypoint>

        <Call Id="PHONEHOMEWPT1" refId="SURFACECOMMS" />

    </Stack>

</Mission>
