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_depth.xml:206:5
|
202 | """
203 | Descend from the surface to approach depth at ApproachSpeed, limit
204 | pitch, depth-rate, and hold the rudder.
205 | """
206 | break if ( ApproachSpeed == 0.0 meter_per_second )
| ^^^^^
207 | run in sequence
208 | assign in parallel Control:VerticalControl.pitchLimit = ApproachPitchLimit
209 | assign in parallel Control:VerticalControl.kpDepth = kpDepth
210 | behavior Guidance:Pitch {
|
Unexpected: `break`
One of the following is possible:
arguments
output
run
missionesp_sample_at_depth{""" This mission takes ESP samples at the designated depth. """arguments{MissionTimeout=4hour""" Maximum duration of mission. """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. """Speed=0meter_per_second""" Vehicle speed while sampling. Set to zero to maintain depth using VBS (drift). """ApproachDepth=1.5meter""" Depth for initial descent form the surface. Initialized to 3 m. """ApproachSpeed=0.9meter_per_second""" Vehicle speed for initial descent form the surface to target depth. Set to zero to disable the thruster and descend using VBS (drift). """ApproachDepthRate=0.05meter_per_second""" Descent depth rate (Positive depth rate means going down). """ApproachPitchLimit=10degree""" Max vehicle pitch (+/-) when decending from the surface. """ApproachSettleTimePreDive=1.5minute""" Time duration for the vehicle to pump down the VBS *BEFORE* leaving the surface. """ApproachSettleTimePostDive=1minute""" Time duration for the vehicle to settle *AFTER* reaching the target depth. """ApproachDepthTimeout=15minute""" Maximum time duration for the vehicle to reach 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. """}# 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.xmlaggregateInitialDive{""" Descend from the surface to approach depth at ApproachSpeed, limit pitch, depth-rate, and hold the rudder. """breakif(ApproachSpeed==0.0meter_per_second)runinsequenceassigninparallelControl:VerticalControl.pitchLimit=ApproachPitchLimitassigninparallelControl:VerticalControl.kpDepth=kpDepthbehaviorGuidance:Pitch{runinparallelsetGuidance:Pitch.massPosition=Control:VerticalControl.massDefault}behaviorGuidance:Point{runinparallelsetGuidance:Point.rudderAngle=9degree}behaviorGuidance:Buoyancy{runinparallelsetGuidance:Buoyancy.position=Control:VerticalControl.buoyancyNeutral}sysloginfo"Waiting for "+ApproachSettleTimePreDive~minute+"while pumping down to neutral."behaviorGuidance:Wait{""" Take a few moments to ensure the VBS reaches neutral. """runinsequencesetGuidance:Wait.duration=ApproachSettleTimePreDive}syslog"Moving to "+ApproachDepth~meteraggregateApproachDepth{runinsequencebehaviorGuidance:SetSpeed{runinparallelsetGuidance:SetSpeed.speed=ApproachSpeed}behaviorGuidance:Pitch{runinsequencetimeoutduration=ApproachDepthTimeout{syslogimportant"Timed out while trying to reach target depth at current depth of "+Universal:depth~meter+"."behaviorGuidance:Execute{runinsequencesetGuidance:Execute.command="stop"}}setGuidance:Pitch.depth=ApproachDepthsetGuidance:Pitch.depthRate=ApproachDepthRate}}}aggregateSettleAtDepth{""" Take a few more 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=Speed}behaviorGuidance:Pitch{runinparallelsetGuidance:Pitch.depth=TargetDepth}aggregateSpinout{""" A speed has been specified, spin in circels while sampling. """runwhile(Speed>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"}}}}
<?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_depth"><Description>
This mission takes ESP samples at the designated depth.
</Description><DefineArgName="MissionTimeout"><Description>
Maximum duration of mission.
</Description><Units:hour/><Value>4</Value></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="Speed"><Description>
Vehicle speed while sampling. Set to zero to maintain depth using VBS
(drift).
</Description><Units:meter_per_second/><Value>0</Value></DefineArg><DefineArgName="ApproachDepth"><Description>
Depth for initial descent form the surface. Initialized to 3 m.
</Description><Units:meter/><Value>1.5</Value></DefineArg><DefineArgName="ApproachSpeed"><Description>
Vehicle speed for initial descent form the surface to target depth. Set
to zero to disable the thruster and descend using VBS (drift).
</Description><Units:meter_per_second/><Value>0.9</Value></DefineArg><DefineArgName="ApproachDepthRate"><Description>
Descent depth rate (Positive depth rate means going down).
</Description><Units:meter_per_second/><Value>0.05</Value></DefineArg><DefineArgName="ApproachPitchLimit"><Description>
Max vehicle pitch (+/-) when decending from the surface.
</Description><Units:degree/><Value>10</Value></DefineArg><DefineArgName="ApproachSettleTimePreDive"><Description>
Time duration for the vehicle to pump down the VBS *BEFORE* leaving the
surface.
</Description><Units:minute/><Value>1.5</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="ApproachDepthTimeout"><Description>
Maximum time duration for the vehicle to reach the target depth.
</Description><Units:minute/><Value>15</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><!-- 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="InitialDive"><Description>
Descend from the surface to approach depth at ApproachSpeed, limit
pitch, depth-rate, and hold the rudder.
</Description><Break><ArgName="ApproachSpeed"/><Eq><Units:meter_per_second/><Value>0.0</Value></Eq></Break><Sequence/><Assign><Parallel/><Control:VerticalControl.pitchLimit/><ArgName="ApproachPitchLimit"/></Assign><Assign><Parallel/><Control:VerticalControl.kpDepth/><ArgName="kpDepth"/></Assign><Guidance:Pitch><Parallel/><Setting><Guidance:Pitch.massPosition/><Control:VerticalControl.massDefault/></Setting></Guidance:Pitch><Guidance:Point><Parallel/><Setting><Guidance:Point.rudderAngle/><Units:degree/><Value>9</Value></Setting></Guidance:Point><Guidance:Buoyancy><Parallel/><Setting><Guidance:Buoyancy.position/><Control:VerticalControl.buoyancyNeutral/></Setting></Guidance:Buoyancy><SyslogSeverity="Info">Waiting for <ArgName="ApproachSettleTimePreDive"/><Units:minute/>while pumping down to neutral.</Syslog><Guidance:Wait><Description>
Take a few moments to ensure the VBS reaches neutral.
</Description><Sequence/><Setting><Guidance:Wait.duration/><ArgName="ApproachSettleTimePreDive"/></Setting></Guidance:Wait><Syslog>Moving to <ArgName="ApproachDepth"/><Units:meter/></Syslog><AggregateId="ApproachDepth"><Sequence/><Guidance:SetSpeed><Parallel/><Setting><Guidance:SetSpeed.speed/><ArgName="ApproachSpeed"/></Setting></Guidance:SetSpeed><Guidance:Pitch><Sequence/><TimeoutDuration="ApproachDepthTimeout"><SyslogSeverity="Important">Timed out while trying to reach target depth at current depth of <Universal:depth/><Units:meter/>.</Syslog><Guidance:Execute><Sequence/><Setting><Guidance:Execute.command/><String>stop</String></Setting></Guidance:Execute></Timeout><Setting><Guidance:Pitch.depth/><ArgName="ApproachDepth"/></Setting><Setting><Guidance:Pitch.depthRate/><ArgName="ApproachDepthRate"/></Setting></Guidance:Pitch></Aggregate></Aggregate><AggregateId="SettleAtDepth"><Description>
Take a few more 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="Speed"/></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="Speed"/><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></Mission>