missionSmear{# Almost every mission should start with an overall timeout and a NeedCommsTime. Drift Missions will have an acoustic timeout instead of a NeedCommsTime.# You probably need to change these.arguments{NumSamplers=1count""" Total number of ESP cartridges (Maximum 60) or CANON samplers. Set to 0 to disable sampling. """# debug# </Description><Units:count/><Value>3</Value></DefineArg>CartridgeType=-6count""" Cartridge type. Initialized to -6. """CANONSamplerRotateOnly=0boolMissionTimeout=3hour""" Maximum duration of mission """WaitDuration=0minute""" Wait time before firing a sample. """NeedCommsTimeInTransit=30minute""" On the way transiting to the sampling location, how often to surface for commumications """MaxWaitNoFiring=2hour""" If no firing after more than MaxWaitNoFiring, terminate mission. """# debug# </Description><Units:hour/><Value>0.05</Value></DefineArg>ReachEndWaypoint=true""" Whether to reach the end waypoint after sampling is completed (initialized to true). """# debug# </Description><False/></DefineArg>SpeedSampling=1.0meter_per_second""" Vehicle speed when sampling on cylinder yoyo. """MaxDepth=50meter""" Maximum depth for the entire mission. """SamplingYoYoMinDepth=10meter""" Minimum yoyo depth while transiting to the sampling location. """SamplingYoYoMaxDepth=20meter""" Maximum yoyo depth while transiting to the sampling location. """WaypointCaptureRadius=100meter""" Waypoint capture radius for transiting to the sampling location. """SamplingStartLatitude=NaNdegree""" The start latitude of sampling. If NaN, start here. """# debug# </Description><Units:degree/><Value>36.80</Value></DefineArg>SamplingStartLongitude=NaNdegree""" The start longitude of sampling. If NaN, start here. """# debug# </Description><Units:degree/><Value>-121.82</Value></DefineArg>SamplingEndLatitude=NaNdegree""" The end latitude of sampling. Must set. """# debug# </Description><Units:degree/><Value>36.808</Value></DefineArg>SamplingEndLongitude=NaNdegree""" The end longitude of sampling. Must set. """# debug# </Description><Units:degree/><Value>-121.838</Value></DefineArg># Use caution when changing these.YoYoMinAltitude=9meter""" Minimum altitude while performing the YoYo behavior (for bottom-terminated YoYos). """MinAltitude=7meter""" Minimum altitude for the entire mission. """MinOffshore=2kilometer""" Minimum offshore distance for the entire mission. """# You probably do not need to change these.UseCANONSampler=Science:CANONSampler.loadAtStartup""" Whether to use CANON Sampler to sample. """UseESP=Science:ESPComponent.loadAtStartup""" Whether to use ESP to sample. """CANONSamplerTriggerTimeout=1minute""" How long to wait for a CANON Sampler sample to start. """CANONSamplerTimeout=Science:CANONSampler.sampleTimeout""" How long to wait for a CANON Sampler sample to complete. """YoYoUpPitch=20degree""" Vehicle up pitch while performing the YoYo behavior. """YoYoDownPitch=-20degree""" Vehicle down pitch while performing the YoYo behavior. """BuoyancyNeutral=Control:VerticalControl.buoyancyNeutral""" Buoyancy bladder position while performing the YoYo behavior. Defaults to buoyancyNeutral setting in the Config/Control.cfg file. Set to NaN cc for active buoyancy """MassDefault=Control:VerticalControl.massDefault""" Static setting for mass during the mission. Set to NaN mm for active mass position """# Internal variables that you should not changeNeedCommsTimeVeryLong=100hour""" How often to surface for commumications during sampling. Huge number to disable needcomms. """}output{ElapsedSinceStartOrLastSample=0hour""" The mission sets this variable to reset the ESP sample timer. """ElapsedTime=0hour""" Only for syslog. """StoppedForNoFiringForTooLong=false""" Mission stopped because of no firing for too long. Initialized to false. """DepthLogged=0.0meterTempLogged=0.0celsiusChlLogged=0.0microgram_per_literMissionStartCommsCompleted=false""" MissionStartComms is completed (initialized to false). """TransitCompleted=false""" Transit is completed (initialized to False). """FlagSamplingOngoing=false""" Flag of water sampling in process (initialized to false). """SampleCompleted=false""" Sampling completed. Initialized to false. """CntSamples=1count""" Count of water samples (initilized to 1). """}# Missions should almost always start with a timeout and a NeedComms aggregate. Drift missions will not use NeedComms.timeoutduration=MissionTimeoutinsertInsert/NeedComms.xmlid="NeedComms"assigninsequenceNeedComms:DiveInterval=NeedCommsTimeVeryLong# Missions should almost always start with standard safety envelopesinsertInsert/StandardEnvelopes.xmlassigninsequenceStandardEnvelopes:MinAltitude=MinAltitudeassigninsequenceStandardEnvelopes:MaxDepth=MaxDepthassigninsequenceStandardEnvelopes:MinOffshore=MinOffshorebehaviorSample:AbortSample{runinparallel}# Many missions will keep mass position fixed at the default.behaviorGuidance:Pitch{runinparallelsetGuidance:Pitch.massPosition=MassDefault}insertInsert/Science.xmlbehaviorGuidance:AltitudeEnvelope{""" Another altitude envelope for the YoYo behavior. This envelope should fall within the limits of the standard safety envelopes in Insert/StandardEnvelopes.xml in order to avoid commanding high pitch angles for bottom-terminated YoYos. """runinparallelsetGuidance:AltitudeEnvelope.minAltitude=YoYoMinAltitudesetGuidance:AltitudeEnvelope.upPitch=YoYoUpPitch}aggregateTriggerSampling{runwhen(called)aggregateTriggerESP{runinsequencebreakif(not(UseESP))assigninsequenceDepthLogged=Universal:depthassigninsequenceTempLogged=Universal:sea_water_temperatureassigninsequenceChlLogged=Universal:mass_concentration_of_chlorophyll_in_sea_watersyslogimportant"Trigger ESP sampling. DepthLogged, TempLogged, ChlLogged = "+DepthLogged~meter+", "+TempLogged~celsius+", "+ChlLogged~microgram_per_liter+"."behaviorScience:ESPCartridgeSelect{runinsequencetimeoutduration=P1MsetScience:ESPCartridgeSelect.cartridgeType=CartridgeType}readDatum{Science:ESPComponent.sampling}syslogimportant"Wait for ESP sampling to complete."readDatum{Science:ESPComponent.sample_number}}aggregateTriggerCANON{runinsequencebreakif(not(UseCANONSampler))assigninsequenceDepthLogged=Universal:depthassigninsequenceTempLogged=Universal:sea_water_temperatureassigninsequenceChlLogged=Universal:mass_concentration_of_chlorophyll_in_sea_watersyslogimportant"Trigger CANON sampling. DepthLogged, TempLogged, ChlLogged = "+DepthLogged~meter+", "+TempLogged~celsius+", "+ChlLogged~microgram_per_liter+"."assigninparallelScience:CANONSampler.sampleTimeout=CANONSamplerTimeoutassigninparallelScience:CANONSampler.rotateOnly=CANONSamplerRotateOnlyreadDatumid="TriggerCANONSampler"{timeoutduration=CANONSamplerTriggerTimeout{syslogimportant"Timed out triggering CANONSampler. Stopping mission."behaviorGuidance:Execute{runinsequencesetGuidance:Execute.command="stop"}}Science:CANONSampler.sampling}readDatum{timeoutduration=CANONSamplerTimeout{syslogimportant"Timed out sampling with CANONSampler. Stopping mission."behaviorGuidance:Execute{runinsequencesetGuidance:Execute.command="stop"}}Science:CANONSampler.sample_number}}}aggregateInsertWait{runwhen(called)aggregateIfNot1stSample{breakif(CntSamples==1count)syslogimportant"Wait "+WaitDuration~minute+" before firing sample."behaviorGuidance:Wait{runinsequencesetGuidance:Wait.duration=WaitDuration}}}aggregateMissionStart{runinsequencecallid="MissionStartComms"refId="NeedComms"assigninsequenceMissionStartCommsCompleted=trueassigninsequenceElapsedSinceStartOrLastSample=0hourassigninsequenceTransitCompleted=true}aggregateTransitToSamplingLocation{runinsequencebreakif(isNaN(SamplingStartLatitude)orisNaN(SamplingStartLongitude))assigninsequenceTransitCompleted=falseassigninsequenceNeedComms:DiveInterval=NeedCommsTimeInTransitbehaviorGuidance:SetSpeed{runinparallelsetGuidance:SetSpeed.speed=SpeedSampling}behaviorGuidance:DepthEnvelope{runinparallelsetGuidance:DepthEnvelope.minDepth=SamplingYoYoMinDepthsetGuidance:DepthEnvelope.maxDepth=SamplingYoYoMaxDepthsetGuidance:DepthEnvelope.downPitch=YoYoDownPitchsetGuidance:DepthEnvelope.upPitch=YoYoUpPitch}behaviorGuidance:YoYo{runinparallelsetGuidance:YoYo.downPitch=YoYoDownPitchsetGuidance:YoYo.upPitch=YoYoUpPitch}behaviorGuidance:Buoyancy{runinparallelsetGuidance:Buoyancy.position=BuoyancyNeutral}behaviorGuidance:Waypoint{runinsequencesetGuidance:Waypoint.latitude=SamplingStartLatitudesetGuidance:Waypoint.longitude=SamplingStartLongitudesetGuidance:Waypoint.captureRadius=WaypointCaptureRadius}assigninsequenceNeedComms:DiveInterval=NeedCommsTimeVeryLongassigninsequenceElapsedSinceStartOrLastSample=0hourassigninsequenceTransitCompleted=true}aggregateSamplingToWaypoint{runinsequencebreakif((isNaN(SamplingEndLatitude)orisNaN(SamplingEndLongitude))ornot(ReachEndWaypoint)andCntSamples==NumSamplers+1count)behaviorGuidance:SetSpeed{runinparallelsetGuidance:SetSpeed.speed=SpeedSampling}behaviorGuidance:DepthEnvelope{runinparallelsetGuidance:DepthEnvelope.minDepth=SamplingYoYoMinDepthsetGuidance:DepthEnvelope.maxDepth=SamplingYoYoMaxDepthsetGuidance:DepthEnvelope.downPitch=YoYoDownPitchsetGuidance:DepthEnvelope.upPitch=YoYoUpPitch}behaviorGuidance:YoYo{runinparallelsetGuidance:YoYo.downPitch=YoYoDownPitchsetGuidance:YoYo.upPitch=YoYoUpPitch}behaviorGuidance:Buoyancy{runinparallelsetGuidance:Buoyancy.position=BuoyancyNeutral}behaviorGuidance:Waypoint{runinsequencesetGuidance:Waypoint.latitude=SamplingEndLatitudesetGuidance:Waypoint.longitude=SamplingEndLongitudesetGuidance:Waypoint.captureRadius=WaypointCaptureRadius}aggregateTakeSamples{runinparallelaggregateNoFiringForTooLong{runwhen((((TransitCompletedandelapsed(ElapsedSinceStartOrLastSample)>MaxWaitNoFiring)andnot(FlagSamplingOngoing))andnot(CntSamples==NumSamplers+1count))andnot(StoppedForNoFiringForTooLong))assigninsequenceElapsedTime=elapsed(ElapsedSinceStartOrLastSample)syslogimportant"No firing for too long. Stopping mission. ElapsedTime, MaxWaitNoFiring = "+ElapsedTime~minute+", "+MaxWaitNoFiring~minutebehaviorGuidance:Execute{runinsequencesetGuidance:Execute.command="stop"}assigninsequenceStoppedForNoFiringForTooLong=true}aggregateFiring{runwhen(((((((Universal:depth>=SamplingYoYoMinDepth)andUniversal:depth<=SamplingYoYoMaxDepth)andMissionStartCommsCompleted)andTransitCompleted)andnot(FlagSamplingOngoing))andCntSamples<=NumSamplers)andnot(SampleCompleted))assigninsequenceFlagSamplingOngoing=truesyslogimportant"Taking sample No."+CntSamples~count+"."assigninsequenceElapsedSinceStartOrLastSample=0hourcallid="WaitBeforeFiring"refId="InsertWait"callid="Sampling"refId="TriggerSampling"syslogimportant" Sample No."+CntSamples~count+" completed."callid="CommsSampling"refId="NeedComms"assigninsequenceSampleCompleted=trueassigninsequenceElapsedSinceStartOrLastSample=0hourassigninsequenceFlagSamplingOngoing=false}aggregateIncrementSampleCounter{runwhen(SampleCompleted)assigninsequenceCntSamples=CntSamples+1countassigninsequenceSampleCompleted=false}}}}
<?xml version="1.0" encoding="UTF-8"?><Missionxmlns="Tethys"xmlns:Control="Tethys/Control"xmlns:Guidance="Tethys/Guidance"xmlns:Science="Tethys/Science"xmlns:Sample="Tethys/Sample"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/Sample http://okeanids.mbari.org/tethys/Xml/Sample.xsd Tethys/Science http://okeanids.mbari.org/tethys/Xml/Science.xsd Tethys/Units http://okeanids.mbari.org/tethys/Xml/Units.xsd Tethys/Universal http://okeanids.mbari.org/tethys/Xml/Universal.xsd"Id="Smear"><!-- Almost every mission should start with an overall timeout and a NeedCommsTime. Drift Missions will have an acoustic timeout instead of a NeedCommsTime. --><!-- You probably need to change these. --><DefineArgName="NumSamplers"><Description>
Total number of ESP cartridges (Maximum 60) or CANON samplers. Set to 0
to disable sampling.
</Description><Units:count/><Value>1</Value></DefineArg><!--debug </Description><Units:count/><Value>3</Value></DefineArg>--><DefineArgName="CartridgeType"><Description>
Cartridge type. Initialized to -6.
</Description><Units:count/><Value>-6</Value></DefineArg><DefineArgName="CANONSamplerRotateOnly"><Units:bool/><Value>0</Value></DefineArg><DefineArgName="MissionTimeout"><Description>
Maximum duration of mission
</Description><Units:hour/><Value>3</Value></DefineArg><DefineArgName="WaitDuration"><Description>
Wait time before firing a sample.
</Description><Units:minute/><Value>0</Value></DefineArg><DefineArgName="NeedCommsTimeInTransit"><Description>
On the way transiting to the sampling location, how often to surface for
commumications
</Description><Units:minute/><Value>30</Value></DefineArg><DefineArgName="MaxWaitNoFiring"><Description>
If no firing after more than MaxWaitNoFiring, terminate mission.
</Description><Units:hour/><Value>2</Value></DefineArg><!--debug </Description><Units:hour/><Value>0.05</Value></DefineArg>--><DefineArgName="ReachEndWaypoint"><Description>
Whether to reach the end waypoint after sampling is completed
(initialized to true).
</Description><True/></DefineArg><!--debug </Description><False/></DefineArg>--><DefineArgName="SpeedSampling"><Description>
Vehicle speed when sampling on cylinder yoyo.
</Description><Units:meter_per_second/><Value>1.0</Value></DefineArg><DefineArgName="MaxDepth"><Description>
Maximum depth for the entire mission.
</Description><Units:meter/><Value>50</Value></DefineArg><DefineArgName="SamplingYoYoMinDepth"><Description>
Minimum yoyo depth while transiting to the sampling location.
</Description><Units:meter/><Value>10</Value></DefineArg><DefineArgName="SamplingYoYoMaxDepth"><Description>
Maximum yoyo depth while transiting to the sampling location.
</Description><Units:meter/><Value>20</Value></DefineArg><DefineArgName="WaypointCaptureRadius"><Description>
Waypoint capture radius for transiting to the sampling location.
</Description><Units:meter/><Value>100</Value></DefineArg><DefineArgName="SamplingStartLatitude"><Description>
The start latitude of sampling. If NaN, start here.
</Description><Units:degree/><Value>NaN</Value></DefineArg><!--debug </Description><Units:degree/><Value>36.80</Value></DefineArg>--><DefineArgName="SamplingStartLongitude"><Description>
The start longitude of sampling. If NaN, start here.
</Description><Units:degree/><Value>NaN</Value></DefineArg><!--debug </Description><Units:degree/><Value>-121.82</Value></DefineArg>--><DefineArgName="SamplingEndLatitude"><Description>
The end latitude of sampling. Must set.
</Description><Units:degree/><Value>NaN</Value></DefineArg><!--debug </Description><Units:degree/><Value>36.808</Value></DefineArg>--><DefineArgName="SamplingEndLongitude"><Description>
The end longitude of sampling. Must set.
</Description><Units:degree/><Value>NaN</Value></DefineArg><!--debug </Description><Units:degree/><Value>-121.838</Value></DefineArg>--><!-- Use caution when changing these. --><DefineArgName="YoYoMinAltitude"><Description>
Minimum altitude while performing the YoYo behavior (for
bottom-terminated YoYos).
</Description><Units:meter/><Value>9</Value></DefineArg><DefineArgName="MinAltitude"><Description>
Minimum altitude for the entire mission.
</Description><Units:meter/><Value>7</Value></DefineArg><DefineArgName="MinOffshore"><Description>
Minimum offshore distance for the entire mission.
</Description><Units:kilometer/><Value>2</Value></DefineArg><!-- You probably do not need to change these. --><DefineArgName="UseCANONSampler"><Description>
Whether to use CANON Sampler to sample.
</Description><Science:CANONSampler.loadAtStartup/></DefineArg><DefineArgName="UseESP"><Description>
Whether to use ESP to sample.
</Description><Science:ESPComponent.loadAtStartup/></DefineArg><DefineArgName="CANONSamplerTriggerTimeout"><Description>
How long to wait for a CANON Sampler sample to start.
</Description><Units:minute/><Value>1</Value></DefineArg><DefineArgName="CANONSamplerTimeout"><Description>
How long to wait for a CANON Sampler sample to complete.
</Description><Science:CANONSampler.sampleTimeout/></DefineArg><DefineArgName="YoYoUpPitch"><Description>
Vehicle up pitch while performing the YoYo behavior.
</Description><Units:degree/><Value>20</Value></DefineArg><DefineArgName="YoYoDownPitch"><Description>
Vehicle down pitch while performing the YoYo behavior.
</Description><Units:degree/><Value>-20</Value></DefineArg><DefineArgName="BuoyancyNeutral"><Description>
Buoyancy bladder position while performing the YoYo behavior. Defaults
to buoyancyNeutral setting in the Config/Control.cfg file. Set to NaN cc
for active buoyancy
</Description><Control:VerticalControl.buoyancyNeutral/></DefineArg><DefineArgName="MassDefault"><Description>
Static setting for mass during the mission. Set to NaN mm for active
mass position
</Description><Control:VerticalControl.massDefault/></DefineArg><!-- Internal variables that you should not change --><DefineArgName="NeedCommsTimeVeryLong"><Description>
How often to surface for commumications during sampling. Huge number to
disable needcomms.
</Description><Units:hour/><Value>100</Value></DefineArg><DefineOutputName="ElapsedSinceStartOrLastSample"><Description>
The mission sets this variable to reset the ESP sample timer.
</Description><Units:hour/><Value>0</Value></DefineOutput><DefineOutputName="ElapsedTime"><Description>
Only for syslog.
</Description><Units:hour/><Value>0</Value></DefineOutput><DefineOutputName="StoppedForNoFiringForTooLong"><Description>
Mission stopped because of no firing for too long. Initialized to false.
</Description><False/></DefineOutput><DefineOutputName="DepthLogged"><Description></Description><Units:meter/><Value>0.0</Value></DefineOutput><DefineOutputName="TempLogged"><Description></Description><Units:celsius/><Value>0.0</Value></DefineOutput><DefineOutputName="ChlLogged"><Description></Description><Units:microgram_per_liter/><Value>0.0</Value></DefineOutput><DefineOutputName="MissionStartCommsCompleted"><Description>
MissionStartComms is completed (initialized to false).
</Description><False/></DefineOutput><DefineOutputName="TransitCompleted"><Description>
Transit is completed (initialized to False).
</Description><False/></DefineOutput><DefineOutputName="FlagSamplingOngoing"><Description>
Flag of water sampling in process (initialized to false).
</Description><False/></DefineOutput><DefineOutputName="SampleCompleted"><Description>
Sampling completed. Initialized to false.
</Description><False/></DefineOutput><DefineOutputName="CntSamples"><Description>
Count of water samples (initilized to 1).
</Description><Units:count/><Value>1</Value></DefineOutput><!-- Missions should almost always start with a timeout and a NeedComms aggregate. Drift missions will not use NeedComms. --><TimeoutDuration="MissionTimeout"/><InsertFilename="Insert/NeedComms.xml"Id="NeedComms"/><Assign><Sequence/><ArgName="NeedComms:DiveInterval"/><ArgName="NeedCommsTimeVeryLong"/></Assign><!-- Missions should almost always start with standard safety envelopes --><InsertFilename="Insert/StandardEnvelopes.xml"/><Assign><Sequence/><ArgName="StandardEnvelopes:MinAltitude"/><ArgName="MinAltitude"/></Assign><Assign><Sequence/><ArgName="StandardEnvelopes:MaxDepth"/><ArgName="MaxDepth"/></Assign><Assign><Sequence/><ArgName="StandardEnvelopes:MinOffshore"/><ArgName="MinOffshore"/></Assign><Sample:AbortSample><Parallel/></Sample:AbortSample><!-- Many missions will keep mass position fixed at the default. --><Guidance:Pitch><Parallel/><Setting><Guidance:Pitch.massPosition/><ArgName="MassDefault"/></Setting></Guidance:Pitch><InsertFilename="Insert/Science.xml"/><Guidance:AltitudeEnvelope><Description>
Another altitude envelope for the YoYo behavior. This envelope
should fall within the limits of the standard safety envelopes in
Insert/StandardEnvelopes.xml in order to avoid commanding high pitch
angles for bottom-terminated YoYos.
</Description><Parallel/><Setting><Guidance:AltitudeEnvelope.minAltitude/><ArgName="YoYoMinAltitude"/></Setting><Setting><Guidance:AltitudeEnvelope.upPitch/><ArgName="YoYoUpPitch"/></Setting></Guidance:AltitudeEnvelope><AggregateId="TriggerSampling"><When><Called/></When><AggregateId="TriggerESP"><Sequence/><Break><Not><ArgName="UseESP"/></Not></Break><Assign><Sequence/><ArgName="DepthLogged"/><Universal:depth/></Assign><Assign><Sequence/><ArgName="TempLogged"/><Universal:sea_water_temperature/></Assign><Assign><Sequence/><ArgName="ChlLogged"/><Universal:mass_concentration_of_chlorophyll_in_sea_water/></Assign><SyslogSeverity="Important">Trigger ESP sampling. DepthLogged, TempLogged, ChlLogged = <ArgName="DepthLogged"/><Units:meter/>, <ArgName="TempLogged"/><Units:celsius/>, <ArgName="ChlLogged"/><Units:microgram_per_liter/>.</Syslog><Science:ESPCartridgeSelect><Sequence/><TimeoutDuration="P1M"/><Setting><Science:ESPCartridgeSelect.cartridgeType/><ArgName="CartridgeType"/></Setting></Science:ESPCartridgeSelect><ReadDatum><Science:ESPComponent.sampling/></ReadDatum><SyslogSeverity="Important">Wait for ESP sampling to complete.</Syslog><ReadDatum><Science:ESPComponent.sample_number/></ReadDatum></Aggregate><AggregateId="TriggerCANON"><Sequence/><Break><Not><ArgName="UseCANONSampler"/></Not></Break><Assign><Sequence/><ArgName="DepthLogged"/><Universal:depth/></Assign><Assign><Sequence/><ArgName="TempLogged"/><Universal:sea_water_temperature/></Assign><Assign><Sequence/><ArgName="ChlLogged"/><Universal:mass_concentration_of_chlorophyll_in_sea_water/></Assign><SyslogSeverity="Important">Trigger CANON sampling. DepthLogged, TempLogged, ChlLogged = <ArgName="DepthLogged"/><Units:meter/>, <ArgName="TempLogged"/><Units:celsius/>, <ArgName="ChlLogged"/><Units:microgram_per_liter/>.</Syslog><Assign><Parallel/><Science:CANONSampler.sampleTimeout/><ArgName="CANONSamplerTimeout"/></Assign><Assign><Parallel/><Science:CANONSampler.rotateOnly/><ArgName="CANONSamplerRotateOnly"/></Assign><ReadDatumId="TriggerCANONSampler"><TimeoutDuration="CANONSamplerTriggerTimeout"><SyslogSeverity="Important">Timed out triggering CANONSampler. Stopping mission.</Syslog><Guidance:Execute><Sequence/><Setting><Guidance:Execute.command/><String>stop</String></Setting></Guidance:Execute></Timeout><Science:CANONSampler.sampling/></ReadDatum><ReadDatum><TimeoutDuration="CANONSamplerTimeout"><SyslogSeverity="Important">Timed out sampling with CANONSampler. Stopping mission.</Syslog><Guidance:Execute><Sequence/><Setting><Guidance:Execute.command/><String>stop</String></Setting></Guidance:Execute></Timeout><Science:CANONSampler.sample_number/></ReadDatum></Aggregate></Aggregate><AggregateId="InsertWait"><When><Called/></When><AggregateId="IfNot1stSample"><Break><ArgName="CntSamples"/><Eq><Units:count/><Value>1</Value></Eq></Break><SyslogSeverity="Important">Wait <ArgName="WaitDuration"/><Units:minute/> before firing sample.</Syslog><Guidance:Wait><Sequence/><Setting><Guidance:Wait.duration/><ArgName="WaitDuration"/></Setting></Guidance:Wait></Aggregate></Aggregate><AggregateId="MissionStart"><Sequence/><CallId="MissionStartComms"RefId="NeedComms"/><Assign><Sequence/><ArgName="MissionStartCommsCompleted"/><True/></Assign><Assign><Sequence/><ArgName="ElapsedSinceStartOrLastSample"/><Units:hour/><Value>0</Value></Assign><Assign><Sequence/><ArgName="TransitCompleted"/><True/></Assign></Aggregate><AggregateId="TransitToSamplingLocation"><Sequence/><Break><IsNaN><ArgName="SamplingStartLatitude"/></IsNaN><Or><IsNaN><ArgName="SamplingStartLongitude"/></IsNaN></Or></Break><Assign><Sequence/><ArgName="TransitCompleted"/><False/></Assign><Assign><Sequence/><ArgName="NeedComms:DiveInterval"/><ArgName="NeedCommsTimeInTransit"/></Assign><Guidance:SetSpeed><Parallel/><Setting><Guidance:SetSpeed.speed/><ArgName="SpeedSampling"/></Setting></Guidance:SetSpeed><Guidance:DepthEnvelope><Parallel/><Setting><Guidance:DepthEnvelope.minDepth/><ArgName="SamplingYoYoMinDepth"/></Setting><Setting><Guidance:DepthEnvelope.maxDepth/><ArgName="SamplingYoYoMaxDepth"/></Setting><Setting><Guidance:DepthEnvelope.downPitch/><ArgName="YoYoDownPitch"/></Setting><Setting><Guidance:DepthEnvelope.upPitch/><ArgName="YoYoUpPitch"/></Setting></Guidance:DepthEnvelope><Guidance:YoYo><Parallel/><Setting><Guidance:YoYo.downPitch/><ArgName="YoYoDownPitch"/></Setting><Setting><Guidance:YoYo.upPitch/><ArgName="YoYoUpPitch"/></Setting></Guidance:YoYo><Guidance:Buoyancy><Parallel/><Setting><Guidance:Buoyancy.position/><ArgName="BuoyancyNeutral"/></Setting></Guidance:Buoyancy><Guidance:Waypoint><Sequence/><Setting><Guidance:Waypoint.latitude/><ArgName="SamplingStartLatitude"/></Setting><Setting><Guidance:Waypoint.longitude/><ArgName="SamplingStartLongitude"/></Setting><Setting><Guidance:Waypoint.captureRadius/><ArgName="WaypointCaptureRadius"/></Setting></Guidance:Waypoint><Assign><Sequence/><ArgName="NeedComms:DiveInterval"/><ArgName="NeedCommsTimeVeryLong"/></Assign><Assign><Sequence/><ArgName="ElapsedSinceStartOrLastSample"/><Units:hour/><Value>0</Value></Assign><Assign><Sequence/><ArgName="TransitCompleted"/><True/></Assign></Aggregate><AggregateId="SamplingToWaypoint"><Sequence/><Break><IsNaN><ArgName="SamplingEndLatitude"/></IsNaN><Or><IsNaN><ArgName="SamplingEndLongitude"/></IsNaN></Or><Or><Not><ArgName="ReachEndWaypoint"/></Not><And><ArgName="CntSamples"/><Eq><ArgName="NumSamplers"/><Add><Units:count/><Value>1</Value></Add></Eq></And></Or></Break><Guidance:SetSpeed><Parallel/><Setting><Guidance:SetSpeed.speed/><ArgName="SpeedSampling"/></Setting></Guidance:SetSpeed><Guidance:DepthEnvelope><Parallel/><Setting><Guidance:DepthEnvelope.minDepth/><ArgName="SamplingYoYoMinDepth"/></Setting><Setting><Guidance:DepthEnvelope.maxDepth/><ArgName="SamplingYoYoMaxDepth"/></Setting><Setting><Guidance:DepthEnvelope.downPitch/><ArgName="YoYoDownPitch"/></Setting><Setting><Guidance:DepthEnvelope.upPitch/><ArgName="YoYoUpPitch"/></Setting></Guidance:DepthEnvelope><Guidance:YoYo><Parallel/><Setting><Guidance:YoYo.downPitch/><ArgName="YoYoDownPitch"/></Setting><Setting><Guidance:YoYo.upPitch/><ArgName="YoYoUpPitch"/></Setting></Guidance:YoYo><Guidance:Buoyancy><Parallel/><Setting><Guidance:Buoyancy.position/><ArgName="BuoyancyNeutral"/></Setting></Guidance:Buoyancy><Guidance:Waypoint><Sequence/><Setting><Guidance:Waypoint.latitude/><ArgName="SamplingEndLatitude"/></Setting><Setting><Guidance:Waypoint.longitude/><ArgName="SamplingEndLongitude"/></Setting><Setting><Guidance:Waypoint.captureRadius/><ArgName="WaypointCaptureRadius"/></Setting></Guidance:Waypoint><AggregateId="TakeSamples"><Parallel/><AggregateId="NoFiringForTooLong"><When><ArgName="TransitCompleted"/><And><Elapsed><ArgName="ElapsedSinceStartOrLastSample"/></Elapsed><Gt><ArgName="MaxWaitNoFiring"/></Gt></And><And><Not><ArgName="FlagSamplingOngoing"/></Not></And><And><Not><ArgName="CntSamples"/><Eq><ArgName="NumSamplers"/><Add><Units:count/><Value>1</Value></Add></Eq></Not></And><And><Not><ArgName="StoppedForNoFiringForTooLong"/></Not></And></When><Assign><Sequence/><ArgName="ElapsedTime"/><Elapsed><ArgName="ElapsedSinceStartOrLastSample"/></Elapsed></Assign><SyslogSeverity="Important">No firing for too long. Stopping mission. ElapsedTime, MaxWaitNoFiring = <ArgName="ElapsedTime"/><Units:minute/>, <ArgName="MaxWaitNoFiring"/><Units:minute/></Syslog><Guidance:Execute><Sequence/><Setting><Guidance:Execute.command/><String>stop</String></Setting></Guidance:Execute><Assign><Sequence/><ArgName="StoppedForNoFiringForTooLong"/><True/></Assign></Aggregate><AggregateId="Firing"><When><Universal:depth/><Ge><ArgName="SamplingYoYoMinDepth"/></Ge><And><Universal:depth/><Le><ArgName="SamplingYoYoMaxDepth"/></Le></And><And><ArgName="MissionStartCommsCompleted"/></And><And><ArgName="TransitCompleted"/></And><And><Not><ArgName="FlagSamplingOngoing"/></Not></And><And><ArgName="CntSamples"/><Le><ArgName="NumSamplers"/></Le></And><And><Not><ArgName="SampleCompleted"/></Not></And></When><Assign><Sequence/><ArgName="FlagSamplingOngoing"/><True/></Assign><SyslogSeverity="Important">Taking sample No.<ArgName="CntSamples"/><Units:count/>.</Syslog><Assign><Sequence/><ArgName="ElapsedSinceStartOrLastSample"/><Units:hour/><Value>0</Value></Assign><CallId="WaitBeforeFiring"RefId="InsertWait"/><CallId="Sampling"RefId="TriggerSampling"/><SyslogSeverity="Important"> Sample No.<ArgName="CntSamples"/><Units:count/> completed.</Syslog><CallId="CommsSampling"RefId="NeedComms"/><Assign><Sequence/><ArgName="SampleCompleted"/><True/></Assign><Assign><Sequence/><ArgName="ElapsedSinceStartOrLastSample"/><Units:hour/><Value>0</Value></Assign><Assign><Sequence/><ArgName="FlagSamplingOngoing"/><False/></Assign></Aggregate><AggregateId="IncrementSampleCounter"><When><ArgName="SampleCompleted"/></When><Assign><Sequence/><ArgName="CntSamples"/><ArgName="CntSamples"/><Add><Units:count/><Value>1</Value></Add></Assign><Assign><Sequence/><ArgName="SampleCompleted"/><False/></Assign></Aggregate></Aggregate></Aggregate></Mission>