The generated TethysL source could not be parsed,
likely due to source XML not being well-formed.
Below is the compile error at the TethysL level,
as well as the source XML.
The TethysL file name shown below does not necessarily indicate the
file exists, but hints about the actual corresponding .xml file.
Syntax error:
--> lrauv-application/Missions/Science/esp_sample_at_threshold.xml:335:5
|
331 |
332 | # This first aggregate is the sci2 part
333 |
334 | aggregate Sci2Phase {
335 | break if ( ChlThresholdReached )
| ^^^^^
336 | assign in sequence NeedComms:DiveInterval = NeedCommsTime
337 | behavior Guidance:Pitch {
338 |
339 | run in parallel
|
Unexpected: `break`
One of the following is possible:
"""
arguments
output
run
test_code
missionesp_sample_at_threshold{""" This mission drives towards a waypoint until chl reading is above a threshold for the timeout. Then it stops and takes ESP samples at the designated depth. Originally this was meant to be a mashup of sci2 and esp_sample_at_depth. """arguments{MissionTimeout=6hour""" Maximum duration of mission. """NeedCommsTime=60minute""" How often to surface for commumications during transit to waypoint. """chlorophyllLowerBound=3microgram_per_liter""" When WetLabsBB2FL.bin_median_mass_concentration_of_chlorophyll lies between chlorophyllLowerBound and chlorophyllUpperBound for the timeout, stop running waypoints and sample at depth. """chlorophyllUpperBound=100microgram_per_liter""" When WetLabsBB2FL.bin_median_mass_concentration_of_chlorophyll lies between chlorophyllLowerBound and chlorophyllUpperBound for the timeout, stop running waypoints and sample at depth. """chlorophyllThresholdTimeout=1minute""" How long to wait to start sampling while chl is above the threshold. """Lat1=NaNdegree""" Latitude of waypoint 1. If nan, waypoint is skipped. """Lon1=NaNdegree""" Longitude of waypoint 1. If nan, waypoint is skipped. """Lat2=NaNdegree""" Latitude of waypoint 2. If nan, waypoint is skipped. """Lon2=NaNdegree""" Longitude of waypoint 2. If nan, waypoint is skipped. """Lat3=NaNdegree""" Latitude of waypoint 3. If nan, waypoint is skipped. """Lon3=NaNdegree""" Longitude of waypoint 3. If nan, waypoint is skipped. """Lat4=NaNdegree""" Latitude of waypoint 4. If nan, waypoint is skipped. """Lon4=NaNdegree""" Longitude of waypoint 4. If nan, waypoint is skipped. """Lat5=NaNdegree""" Latitude of waypoint 5. If nan, waypoint is skipped. """Lon5=NaNdegree""" Longitude of waypoint 5. If nan, waypoint is skipped. """Lat6=NaNdegree""" Latitude of waypoint 6. If nan, waypoint is skipped. """Lon6=NaNdegree""" Longitude of waypoint 6. If nan, waypoint is skipped. """Lat7=NaNdegree""" Latitude of waypoint 7. If nan, waypoint is skipped. """Lon7=NaNdegree""" Longitude of waypoint 7. If nan, waypoint is skipped. """Speed=1meter_per_second""" Speed while performing the YoYo behavior. """CaptureRadius=NaNmeter""" Speed while performing the YoYo behavior. """YoYoMinDepth=2meter""" Minimum depth while performing the YoYo behavior. """YoYoMaxDepth=200meter""" Maximum depth while performing the YoYo behavior. """YoYoMinAltitude=9meter""" Minimum altitude while performing the YoYo behavior (for bottom-terminated YoYos). """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 """TargetDepth=3meter""" Depth to sample at. Initialized to 3 m. """ESPCartridgeType_1=-4count""" Specifies ESP cartridge type code for sample# 1. Set to NaN to skip this sample. """ESPCartridgeType_2=-15count""" Specifies ESP cartridge type code for sample# 2. Set to NaN to skip this sample. """ESPCartridgeType_3=NaNcount""" Specifies ESP cartridge type code for sample# 3. Set to NaN to skip this sample. """ESPCartridgeType_4=NaNcount""" Specifies ESP cartridge type code for sample# 4. Set to NaN to skip this sample. """SettleTime=3minute""" How long to wait between samples. This starts *before* the first sample. """SpeedSampling=0meter_per_second""" Vehicle speed while sampling. Set to zero to maintain depth using VBS (drift). """ApproachSettleTimePostDive=1minute""" Time duration for the vehicle to settle *AFTER* reaching the target depth. """kpDepth=0.07radian_per_meter""" Dive loop proportional gain (applied only while the vehicle is descending to target depth). """DepthDeadband=0.01meter""" How much vertical drift from the specified depth is allowed while sampling. """MinAltitude=2meter""" Minimum height above the sea floor for the entire mission. """MaxDepth=5meter""" Maximum allowable depth during the mission. """MinOffshore=1kilometer""" Minimum distance from the shoreline to maintain. """}output{ESPCartridgeType=NaNcount""" Mission parameter (don't change). Specifies ESP cartridge type code. """ChlThresholdReached=false""" Indicates internally that the threshold has been reach and we should start a sample. """ChlThresholdReachedFlagSet=false""" Indicates internally that the threshold-met flag is set. """}# Mission timeouttimeoutduration=MissionTimeout# Safety nets and surfacing behaviorsbehaviorSample:AbortSample{runinparallel}insertInsert/StandardEnvelopes.xmlassigninsequenceStandardEnvelopes:MaxDepth=MaxDepthassigninsequenceStandardEnvelopes:MinAltitude=MinAltitudeassigninsequenceStandardEnvelopes:MinOffshore=MinOffshoreinsertInsert/NeedComms.xmlid="NeedComms"assigninsequenceNeedComms:DiveInterval=MissionTimeoutassigninsequenceNeedComms:WaitForPitchUp=0minuteassigninparallelControl:VerticalControl.depthDeadband=DepthDeadband# Callable aggregateaggregateSampleESP{runwhen(called)aggregatesample{runinsequencesyslogimportant"At "+Universal:depth~meter+", settling for "+SettleTime~minutebehaviorGuidance:Wait{runinsequencesetGuidance:Wait.duration=SettleTime}syslogimportant"Requesting ESP cartridge type:"+ESPCartridgeType~countbehaviorScience:ESPCartridgeSelect{runinsequencetimeoutduration=P1MsetScience:ESPCartridgeSelect.cartridgeType=ESPCartridgeType}readDatumid="TriggerESP"{Science:ESPComponent.sampling}syslogimportant"ESP sampling at "+Universal:depth~meter+" in "+Science:CTD_Seabird.bin_mean_sea_water_temperature~celsius+" water with "+Science:WetLabsBB2FL.bin_mean_mass_concentration_of_chlorophyll_in_sea_water~microgram_per_liter+"chlorophyll fluorescence."readDatumid="WaitForESP"{Science:ESPComponent.sample_number}}}# Start mission sequencecallid="StartingMission"refId="NeedComms"insertInsert/Science.xmlaggregateCheckChlThreshold{runwhen((((Science:WetLabsBB2FL.bin_median_mass_concentration_of_chlorophyll_in_sea_water>chlorophyllLowerBound)andScience:WetLabsBB2FL.bin_median_mass_concentration_of_chlorophyll_in_sea_water<chlorophyllUpperBound)andelapsed(Universal:time_fix)>chlorophyllThresholdTimeout)andnot(ChlThresholdReachedFlagSet))assigninsequenceChlThresholdReached=trueassigninsequenceChlThresholdReachedFlagSet=true}# This first aggregate is the sci2 partaggregateSci2Phase{breakif(ChlThresholdReached)assigninsequenceNeedComms:DiveInterval=NeedCommsTimebehaviorGuidance:Pitch{runinparallelsetGuidance:Pitch.massPosition=MassDefault}behaviorGuidance:Buoyancy{runinparallelsetGuidance:Buoyancy.position=BuoyancyNeutral}behaviorGuidance:SetSpeed{runinparallelsetGuidance:SetSpeed.speed=Speed}behaviorGuidance:DepthEnvelope{""" Another depth 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 depth-terminated YoYos. """runinparallelsetGuidance:DepthEnvelope.minDepth=YoYoMinDepthsetGuidance:DepthEnvelope.maxDepth=YoYoMaxDepthsetGuidance:DepthEnvelope.downPitch=YoYoDownPitchsetGuidance:DepthEnvelope.upPitch=YoYoUpPitch}behaviorGuidance: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}behaviorGuidance:YoYo{runinparallelsetGuidance:YoYo.downPitch=YoYoDownPitchsetGuidance:YoYo.upPitch=YoYoUpPitch}aggregateLap{aggregateWpt1{runinsequencebehaviorGuidance:Waypoint{runinsequencesetGuidance:Waypoint.latitude=Lat1setGuidance:Waypoint.longitude=Lon1setGuidance:Waypoint.captureRadius=CaptureRadius}}aggregateWpt2{runinsequencebehaviorGuidance:Waypoint{runinsequencesetGuidance:Waypoint.latitude=Lat2setGuidance:Waypoint.longitude=Lon2}}aggregateWpt3{runinsequencebehaviorGuidance:Waypoint{runinsequencesetGuidance:Waypoint.latitude=Lat3setGuidance:Waypoint.longitude=Lon3}}aggregateWpt4{runinsequencebehaviorGuidance:Waypoint{runinsequencesetGuidance:Waypoint.latitude=Lat4setGuidance:Waypoint.longitude=Lon4}}aggregateWpt5{runinsequencebehaviorGuidance:Waypoint{runinsequencesetGuidance:Waypoint.latitude=Lat5setGuidance:Waypoint.longitude=Lon5}}aggregateWpt6{runinsequencebehaviorGuidance:Waypoint{runinsequencesetGuidance:Waypoint.latitude=Lat6setGuidance:Waypoint.longitude=Lon6}}aggregateWpt7{runinsequencebehaviorGuidance:Waypoint{runinsequencesetGuidance:Waypoint.latitude=Lat7setGuidance:Waypoint.longitude=Lon7}}}}# Once the threshold is met for the timeout, we sampleaggregateSamplingPhase{breakif(not(ChlThresholdReached))assigninsequenceNeedComms:DiveInterval=MissionTimeoutaggregateSettleAtDepth{""" Take a few moments here to ensure the vechile is settled at the target depth. """runinsequencebehaviorGuidance:Pitch{runinprogressionsetGuidance:Pitch.depth=TargetDepth}sysloginfo"Reached "+Universal:depth~meter+", settling for "+ApproachSettleTimePostDive~minutebehaviorGuidance:Wait{runinsequencesetGuidance:Wait.duration=ApproachSettleTimePostDive}}aggregateSampleAtTargetDepth{""" Maintain target depth and acquire ESP samples. """runinsequencebehaviorGuidance:SetSpeed{runinparallelsetGuidance:SetSpeed.speed=SpeedSampling}behaviorGuidance:Pitch{runinparallelsetGuidance:Pitch.depth=TargetDepth}aggregateSpinout{""" A speed has been specified, spin in circels while sampling. """runwhile(SpeedSampling>0.0meter_per_second)behaviorGuidance:Pitchid="HoldMassPosition"{runinparallelsetGuidance:Pitch.massPosition=Control:VerticalControl.massDefault}behaviorGuidance:Buoyancyid="HoldBuoyancyPosition"{runinparallelsetGuidance:Buoyancy.position=Control:VerticalControl.buoyancyNeutral}behaviorGuidance:Pointid="HoldRudderAngle"{setGuidance:Point.rudderAngle=9degree}}aggregateGrabSamples{runinsequenceaggregateSample1{breakif(isNaN(ESPCartridgeType_1))assigninsequenceESPCartridgeType=ESPCartridgeType_1callrefId="SampleESP"}aggregateSample2{breakif(isNaN(ESPCartridgeType_2))assigninsequenceESPCartridgeType=ESPCartridgeType_2callrefId="SampleESP"}aggregateSample3{breakif(isNaN(ESPCartridgeType_3))assigninsequenceESPCartridgeType=ESPCartridgeType_3callrefId="SampleESP"}aggregateSample4{breakif(isNaN(ESPCartridgeType_4))assigninsequenceESPCartridgeType=ESPCartridgeType_4callrefId="SampleESP"}}}}# end of sampling phase}
<?xml version="1.0" encoding="UTF-8"?><Missionxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="Tethys"xmlns:Units="Tethys/Units"xmlns:Guidance="Tethys/Guidance"xmlns:Control="Tethys/Control"xmlns:Sample="Tethys/Sample"xmlns:Science="Tethys/Science"xmlns:Universal="Tethys/Universal"xsi:schemaLocation="Tethys http://okeanids.mbari.org/tethys/Xml/Tethys.xsd Tethys/Units http://okeanids.mbari.org/tethys/Xml/Units.xsd Tethys/Guidance http://okeanids.mbari.org/tethys/Xml/Guidance.xsd Tethys/Control http://okeanids.mbari.org/tethys/Xml/Control.xsd Tethys/Sample http://okeanids.mbari.org/tethys/Xml/Sample.xsd Tethys/Science http://okeanids.mbari.org/tethys/Xml/Science.xsd Tethys/Universal http://okeanids.mbari.org/tethys/Xml/Universal.xsd"Id="esp_sample_at_threshold"><Description>
This mission drives towards a waypoint until chl reading is above a
threshold for the timeout. Then it stops and takes ESP samples at the
designated depth. Originally this was meant to be a mashup of sci2 and
esp_sample_at_depth.
</Description><DefineArgName="MissionTimeout"><Description>
Maximum duration of mission.
</Description><Units:hour/><Value>6</Value></DefineArg><DefineArgName="NeedCommsTime"><Description>
How often to surface for commumications during transit to waypoint.
</Description><Units:minute/><Value>60</Value></DefineArg><DefineArgName="chlorophyllLowerBound"><Description>
When WetLabsBB2FL.bin_median_mass_concentration_of_chlorophyll lies
between chlorophyllLowerBound and chlorophyllUpperBound for the timeout,
stop running waypoints and sample at depth.
</Description><Units:microgram_per_liter/><Value>3</Value></DefineArg><DefineArgName="chlorophyllUpperBound"><Description>
When WetLabsBB2FL.bin_median_mass_concentration_of_chlorophyll lies
between chlorophyllLowerBound and chlorophyllUpperBound for the timeout,
stop running waypoints and sample at depth.
</Description><Units:microgram_per_liter/><Value>100</Value></DefineArg><DefineArgName="chlorophyllThresholdTimeout"><Description>
How long to wait to start sampling while chl is above the threshold.
</Description><Units:minute/><Value>1</Value></DefineArg><DefineArgName="Lat1"><Description>
Latitude of waypoint 1. If nan, waypoint is skipped.
</Description><Units:degree/><Value>NaN</Value></DefineArg><DefineArgName="Lon1"><Description>
Longitude of waypoint 1. If nan, waypoint is skipped.
</Description><Units:degree/><Value>NaN</Value></DefineArg><DefineArgName="Lat2"><Description>
Latitude of waypoint 2. If nan, waypoint is skipped.
</Description><Units:degree/><Value>NaN</Value></DefineArg><DefineArgName="Lon2"><Description>
Longitude of waypoint 2. If nan, waypoint is skipped.
</Description><Units:degree/><Value>NaN</Value></DefineArg><DefineArgName="Lat3"><Description>
Latitude of waypoint 3. If nan, waypoint is skipped.
</Description><Units:degree/><Value>NaN</Value></DefineArg><DefineArgName="Lon3"><Description>
Longitude of waypoint 3. If nan, waypoint is skipped.
</Description><Units:degree/><Value>NaN</Value></DefineArg><DefineArgName="Lat4"><Description>
Latitude of waypoint 4. If nan, waypoint is skipped.
</Description><Units:degree/><Value>NaN</Value></DefineArg><DefineArgName="Lon4"><Description>
Longitude of waypoint 4. If nan, waypoint is skipped.
</Description><Units:degree/><Value>NaN</Value></DefineArg><DefineArgName="Lat5"><Description>
Latitude of waypoint 5. If nan, waypoint is skipped.
</Description><Units:degree/><Value>NaN</Value></DefineArg><DefineArgName="Lon5"><Description>
Longitude of waypoint 5. If nan, waypoint is skipped.
</Description><Units:degree/><Value>NaN</Value></DefineArg><DefineArgName="Lat6"><Description>
Latitude of waypoint 6. If nan, waypoint is skipped.
</Description><Units:degree/><Value>NaN</Value></DefineArg><DefineArgName="Lon6"><Description>
Longitude of waypoint 6. If nan, waypoint is skipped.
</Description><Units:degree/><Value>NaN</Value></DefineArg><DefineArgName="Lat7"><Description>
Latitude of waypoint 7. If nan, waypoint is skipped.
</Description><Units:degree/><Value>NaN</Value></DefineArg><DefineArgName="Lon7"><Description>
Longitude of waypoint 7. If nan, waypoint is skipped.
</Description><Units:degree/><Value>NaN</Value></DefineArg><DefineArgName="Speed"><Description>
Speed while performing the YoYo behavior.
</Description><Units:meter_per_second/><Value>1</Value></DefineArg><DefineArgName="CaptureRadius"><Description>
Speed while performing the YoYo behavior.
</Description><Units:meter/><Value>NaN</Value></DefineArg><DefineArgName="YoYoMinDepth"><Description>
Minimum depth while performing the YoYo behavior.
</Description><Units:meter/><Value>2</Value></DefineArg><DefineArgName="YoYoMaxDepth"><Description>
Maximum depth while performing the YoYo behavior.
</Description><Units:meter/><Value>200</Value></DefineArg><DefineArgName="YoYoMinAltitude"><Description>
Minimum altitude while performing the YoYo behavior (for
bottom-terminated YoYos).
</Description><Units:meter/><Value>9</Value></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><DefineArgName="TargetDepth"><Description>
Depth to sample at. Initialized to 3 m.
</Description><Units:meter/><Value>3</Value></DefineArg><DefineArgName="ESPCartridgeType_1"><Description>
Specifies ESP cartridge type code for sample# 1. Set to NaN to skip this
sample.
</Description><Units:count/><Value>-4</Value></DefineArg><DefineArgName="ESPCartridgeType_2"><Description>
Specifies ESP cartridge type code for sample# 2. Set to NaN to skip this
sample.
</Description><Units:count/><Value>-15</Value></DefineArg><DefineArgName="ESPCartridgeType_3"><Description>
Specifies ESP cartridge type code for sample# 3. Set to NaN to skip this
sample.
</Description><Units:count/><Value>NaN</Value></DefineArg><DefineArgName="ESPCartridgeType_4"><Description>
Specifies ESP cartridge type code for sample# 4. Set to NaN to skip this
sample.
</Description><Units:count/><Value>NaN</Value></DefineArg><DefineArgName="SettleTime"><Description>
How long to wait between samples. This starts *before* the first sample.
</Description><Units:minute/><Value>3</Value></DefineArg><DefineArgName="SpeedSampling"><Description>
Vehicle speed while sampling. Set to zero to maintain depth using VBS
(drift).
</Description><Units:meter_per_second/><Value>0</Value></DefineArg><DefineArgName="ApproachSettleTimePostDive"><Description>
Time duration for the vehicle to settle *AFTER* reaching the target
depth.
</Description><Units:minute/><Value>1</Value></DefineArg><DefineArgName="kpDepth"><Description>
Dive loop proportional gain (applied only while the vehicle is
descending to target depth).
</Description><Units:radian_per_meter/><Value>0.07</Value></DefineArg><DefineArgName="DepthDeadband"><Description>
How much vertical drift from the specified depth is allowed while
sampling.
</Description><Units:meter/><Value>0.01</Value></DefineArg><DefineArgName="MinAltitude"><Description>
Minimum height above the sea floor for the entire mission.
</Description><Units:meter/><Value>2</Value></DefineArg><DefineArgName="MaxDepth"><Description>
Maximum allowable depth during the mission.
</Description><Units:meter/><Value>5</Value></DefineArg><DefineArgName="MinOffshore"><Description>
Minimum distance from the shoreline to maintain.
</Description><Units:kilometer/><Value>1</Value></DefineArg><DefineOutputName="ESPCartridgeType"><Description>
Mission parameter (don't change). Specifies ESP cartridge type code.
</Description><Units:count/><Value>NaN</Value></DefineOutput><DefineOutputName="ChlThresholdReached"><Description>
Indicates internally that the threshold has been reach and we should
start a sample.
</Description><False/></DefineOutput><DefineOutputName="ChlThresholdReachedFlagSet"><Description>
Indicates internally that the threshold-met flag is set.
</Description><False/></DefineOutput><!-- Mission timeout --><TimeoutDuration="MissionTimeout"/><!-- Safety nets and surfacing behaviors --><Sample:AbortSample><Parallel/></Sample:AbortSample><InsertFilename="Insert/StandardEnvelopes.xml"/><Assign><Sequence/><ArgName="StandardEnvelopes:MaxDepth"/><ArgName="MaxDepth"/></Assign><Assign><Sequence/><ArgName="StandardEnvelopes:MinAltitude"/><ArgName="MinAltitude"/></Assign><Assign><Sequence/><ArgName="StandardEnvelopes:MinOffshore"/><ArgName="MinOffshore"/></Assign><InsertFilename="Insert/NeedComms.xml"Id="NeedComms"/><Assign><Sequence/><ArgName="NeedComms:DiveInterval"/><ArgName="MissionTimeout"/></Assign><Assign><Sequence/><ArgName="NeedComms:WaitForPitchUp"/><Units:minute/><Value>0</Value></Assign><Assign><Parallel/><Control:VerticalControl.depthDeadband/><ArgName="DepthDeadband"/></Assign><!-- Callable aggregate --><AggregateId="SampleESP"><When><Called/></When><AggregateId="sample"><Sequence/><SyslogSeverity="Important">At <Universal:depth/><Units:meter/>, settling for <ArgName="SettleTime"/><Units:minute/></Syslog><Guidance:Wait><Sequence/><Setting><Guidance:Wait.duration/><ArgName="SettleTime"/></Setting></Guidance:Wait><SyslogSeverity="Important">Requesting ESP cartridge type:<ArgName="ESPCartridgeType"/><Units:count/></Syslog><Science:ESPCartridgeSelect><Sequence/><TimeoutDuration="P1M"/><Setting><Science:ESPCartridgeSelect.cartridgeType/><ArgName="ESPCartridgeType"/></Setting></Science:ESPCartridgeSelect><ReadDatumId="TriggerESP"><Science:ESPComponent.sampling/></ReadDatum><SyslogSeverity="Important">ESP sampling at <Universal:depth/><Units:meter/> in <Science:CTD_Seabird.bin_mean_sea_water_temperature/><Units:celsius/> water with <Science:WetLabsBB2FL.bin_mean_mass_concentration_of_chlorophyll_in_sea_water/><Units:microgram_per_liter/>chlorophyll fluorescence.</Syslog><ReadDatumId="WaitForESP"><Science:ESPComponent.sample_number/></ReadDatum></Aggregate></Aggregate><!-- Start mission sequence --><CallId="StartingMission"RefId="NeedComms"/><InsertFilename="Insert/Science.xml"></Insert><AggregateId="CheckChlThreshold"><When><Science:WetLabsBB2FL.bin_median_mass_concentration_of_chlorophyll_in_sea_water/><Gt><ArgName="chlorophyllLowerBound"/></Gt><And><Science:WetLabsBB2FL.bin_median_mass_concentration_of_chlorophyll_in_sea_water/><Lt><ArgName="chlorophyllUpperBound"/></Lt></And><And><Elapsed><Universal:time_fix/></Elapsed><Gt><ArgName="chlorophyllThresholdTimeout"/></Gt></And><And><Not><ArgName="ChlThresholdReachedFlagSet"/></Not></And></When><Assign><Sequence/><ArgName="ChlThresholdReached"/><True/></Assign><Assign><Sequence/><ArgName="ChlThresholdReachedFlagSet"/><True/></Assign></Aggregate><!-- This first aggregate is the sci2 part --><AggregateId="Sci2Phase"><Break><ArgName="ChlThresholdReached"/></Break><Assign><Sequence/><ArgName="NeedComms:DiveInterval"/><ArgName="NeedCommsTime"/></Assign><Guidance:Pitch><Parallel/><Setting><Guidance:Pitch.massPosition/><ArgName="MassDefault"/></Setting></Guidance:Pitch><Guidance:Buoyancy><Parallel/><Setting><Guidance:Buoyancy.position/><ArgName="BuoyancyNeutral"/></Setting></Guidance:Buoyancy><Guidance:SetSpeed><Parallel/><Setting><Guidance:SetSpeed.speed/><ArgName="Speed"/></Setting></Guidance:SetSpeed><Guidance:DepthEnvelope><Description>
Another depth 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 depth-terminated YoYos.
</Description><Parallel/><Setting><Guidance:DepthEnvelope.minDepth/><ArgName="YoYoMinDepth"/></Setting><Setting><Guidance:DepthEnvelope.maxDepth/><ArgName="YoYoMaxDepth"/></Setting><Setting><Guidance:DepthEnvelope.downPitch/><ArgName="YoYoDownPitch"/></Setting><Setting><Guidance:DepthEnvelope.upPitch/><ArgName="YoYoUpPitch"/></Setting></Guidance:DepthEnvelope><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><Guidance:YoYo><Parallel/><Setting><Guidance:YoYo.downPitch/><ArgName="YoYoDownPitch"/></Setting><Setting><Guidance:YoYo.upPitch/><ArgName="YoYoUpPitch"/></Setting></Guidance:YoYo><AggregateId="Lap"><AggregateId="Wpt1"><Sequence/><Guidance:Waypoint><Sequence/><Setting><Guidance:Waypoint.latitude/><ArgName="Lat1"/></Setting><Setting><Guidance:Waypoint.longitude/><ArgName="Lon1"/></Setting><Setting><Guidance:Waypoint.captureRadius/><ArgName="CaptureRadius"/></Setting></Guidance:Waypoint></Aggregate><AggregateId="Wpt2"><Sequence/><Guidance:Waypoint><Sequence/><Setting><Guidance:Waypoint.latitude/><ArgName="Lat2"/></Setting><Setting><Guidance:Waypoint.longitude/><ArgName="Lon2"/></Setting></Guidance:Waypoint></Aggregate><AggregateId="Wpt3"><Sequence/><Guidance:Waypoint><Sequence/><Setting><Guidance:Waypoint.latitude/><ArgName="Lat3"/></Setting><Setting><Guidance:Waypoint.longitude/><ArgName="Lon3"/></Setting></Guidance:Waypoint></Aggregate><AggregateId="Wpt4"><Sequence/><Guidance:Waypoint><Sequence/><Setting><Guidance:Waypoint.latitude/><ArgName="Lat4"/></Setting><Setting><Guidance:Waypoint.longitude/><ArgName="Lon4"/></Setting></Guidance:Waypoint></Aggregate><AggregateId="Wpt5"><Sequence/><Guidance:Waypoint><Sequence/><Setting><Guidance:Waypoint.latitude/><ArgName="Lat5"/></Setting><Setting><Guidance:Waypoint.longitude/><ArgName="Lon5"/></Setting></Guidance:Waypoint></Aggregate><AggregateId="Wpt6"><Sequence/><Guidance:Waypoint><Sequence/><Setting><Guidance:Waypoint.latitude/><ArgName="Lat6"/></Setting><Setting><Guidance:Waypoint.longitude/><ArgName="Lon6"/></Setting></Guidance:Waypoint></Aggregate><AggregateId="Wpt7"><Sequence/><Guidance:Waypoint><Sequence/><Setting><Guidance:Waypoint.latitude/><ArgName="Lat7"/></Setting><Setting><Guidance:Waypoint.longitude/><ArgName="Lon7"/></Setting></Guidance:Waypoint></Aggregate></Aggregate></Aggregate><!-- Once the threshold is met for the timeout, we sample --><AggregateId="SamplingPhase"><Break><Not><ArgName="ChlThresholdReached"/></Not></Break><Assign><Sequence/><ArgName="NeedComms:DiveInterval"/><ArgName="MissionTimeout"/></Assign><AggregateId="SettleAtDepth"><Description>
Take a few moments here to ensure the vechile is settled at the
target depth.
</Description><Sequence/><Guidance:Pitch><Progression/><Setting><Guidance:Pitch.depth/><ArgName="TargetDepth"/></Setting></Guidance:Pitch><SyslogSeverity="Info">Reached <Universal:depth/><Units:meter/>, settling for <ArgName="ApproachSettleTimePostDive"/><Units:minute/></Syslog><Guidance:Wait><Sequence/><Setting><Guidance:Wait.duration/><ArgName="ApproachSettleTimePostDive"/></Setting></Guidance:Wait></Aggregate><AggregateId="SampleAtTargetDepth"><Description>
Maintain target depth and acquire ESP samples.
</Description><Sequence/><Guidance:SetSpeed><Parallel/><Setting><Guidance:SetSpeed.speed/><ArgName="SpeedSampling"/></Setting></Guidance:SetSpeed><Guidance:Pitch><Parallel/><Setting><Guidance:Pitch.depth/><ArgName="TargetDepth"/></Setting></Guidance:Pitch><AggregateId="Spinout"><Description>
A speed has been specified, spin in circels while sampling.
</Description><While><ArgName="SpeedSampling"/><Gt><Units:meter_per_second/><Value>0.0</Value></Gt></While><Guidance:PitchId="HoldMassPosition"><Parallel/><Setting><Guidance:Pitch.massPosition/><Control:VerticalControl.massDefault/></Setting></Guidance:Pitch><Guidance:BuoyancyId="HoldBuoyancyPosition"><Parallel/><Setting><Guidance:Buoyancy.position/><Control:VerticalControl.buoyancyNeutral/></Setting></Guidance:Buoyancy><Guidance:PointId="HoldRudderAngle"><Setting><Guidance:Point.rudderAngle/><Units:degree/><Value>9</Value></Setting></Guidance:Point></Aggregate><AggregateId="GrabSamples"><Sequence/><AggregateId="Sample1"><Break><IsNaN><ArgName="ESPCartridgeType_1"/></IsNaN></Break><Assign><Sequence/><ArgName="ESPCartridgeType"/><ArgName="ESPCartridgeType_1"/></Assign><CallRefId="SampleESP"/></Aggregate><AggregateId="Sample2"><Break><IsNaN><ArgName="ESPCartridgeType_2"/></IsNaN></Break><Assign><Sequence/><ArgName="ESPCartridgeType"/><ArgName="ESPCartridgeType_2"/></Assign><CallRefId="SampleESP"/></Aggregate><AggregateId="Sample3"><Break><IsNaN><ArgName="ESPCartridgeType_3"/></IsNaN></Break><Assign><Sequence/><ArgName="ESPCartridgeType"/><ArgName="ESPCartridgeType_3"/></Assign><CallRefId="SampleESP"/></Aggregate><AggregateId="Sample4"><Break><IsNaN><ArgName="ESPCartridgeType_4"/></IsNaN></Break><Assign><Sequence/><ArgName="ESPCartridgeType"/><ArgName="ESPCartridgeType_4"/></Assign><CallRefId="SampleESP"/></Aggregate></Aggregate></Aggregate></Aggregate><!-- end of sampling phase --></Mission>