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/mind_the_drift.xml:133:7
|
129 | # DO NOT REMOVE the syslog entry below. The MissionManager seems to ignore the value of ApproachSpeed and does not evaluate the SetSpeed statement properly. Adding the syslog call somehow fixes it.
130 |
131 | syslog info "Going to target depth. Speed set to " + ApproachSpeed~meter_per_second
132 | aggregate GoToTargetDepth {
133 | assign in parallel Control:VerticalControl.pitchLimit = ApproachPitchLimit
| ^^^^^^
134 | aggregate ActuatorHold {
135 | """
136 | Hold the positions of the mass, VBS, and rudder while going
137 | to the target depth with the thruster on.
|
Unexpected: `assign`
One of the following is possible:
"""
arguments
output
run
test_code
missionmind_the_drift{""" This mission drifts level at a depth while running the backseat and sending acomms data. Originally it was written for the Big Business of getting ayeris images transferred over the acomms link. The Drift: You start sinking, better grab an oar and row. And please take a path that you know You start thinking, making up the images as you go, as you go. """arguments{MissionTimeout=120minute""" Maximum duration of mission """NeedCommsTime=60minute""" How often to surface for commumications """AcousticModemCommsInterval=5minute""" How often to trigger acoustic modem communications """Depth=35meter""" How deep to drift. """DepthDeadband=1meter""" How much vertical drift from the specified depth is allowed durnig the mission. """ApproachSpeed=1meter_per_second""" Enables vehicle thruster at the commanded speed to reach target depth (set to 0 m/s to drift). """ApproachDepthTimeout=20minute""" Maximum wait time for the vehicle to reach the targeted depth. """ApproachPitchLimit=20degree""" Max vehicle pitch (+/-) when decending from the surface. """SurfaceThreshold=2.5meter""" Surface threshold depth. """MinAltitude=5meterMaxDepth=52meterMinOffshore=2kilometerCheckDepths=1bool}timeoutduration=MissionTimeoutinsertInsert/Science.xmlinsertInsert/NeedComms.xmlid="NeedComms"assigninsequenceNeedComms:DiveInterval=NeedCommsTimeinsertInsert/StandardEnvelopes.xmlassigninsequenceStandardEnvelopes:MinAltitude=MinAltitudeassigninsequenceStandardEnvelopes:MaxDepth=MaxDepthassigninsequenceStandardEnvelopes:MinOffshore=MinOffshoreinsertInsert/AcousticModemComms.xmlid="AcousticComms"{redefineArgCommsInterval=AcousticModemCommsInterval}aggregateCheckTargetDepths{runinsequencebreakif(not(CheckDepths))aggregateCheckDepth{runinsequencebreakif(not(Depth>MaxDepth))syslogimportant"Aborting mission. Target depth exceeds the mission's MaxDepth setting (review mission parameters)."behaviorGuidance:Execute{runinsequencesetGuidance:Execute.command="stop"}}assigninsequenceCheckDepths=0bool}callid="StartingMission"refId="NeedComms"syslog"Powering up backseat..."behaviorGuidance:BackseatDriver{runinparallel}syslog"Backseat powered."aggregateTheDrift{runinsequencebreakif(isNaN(Depth))assigninparallelControl:VerticalControl.kpPitchMass=0.005ratioassigninparallelControl:VerticalControl.kiPitchMass=0.00075reciprocal_secondassigninparallelControl:VerticalControl.kdPitchMass=0secondassigninparallelControl:VerticalControl.depthDeadband=DepthDeadband# DO NOT REMOVE the syslog entry below. The MissionManager seems to ignore the value of ApproachSpeed and does not evaluate the SetSpeed statement properly. Adding the syslog call somehow fixes it.sysloginfo"Going to target depth. Speed set to "+ApproachSpeed~meter_per_secondaggregateGoToTargetDepth{assigninparallelControl:VerticalControl.pitchLimit=ApproachPitchLimitaggregateActuatorHold{""" Hold the positions of the mass, VBS, and rudder while going to the target depth with the thruster on. """runwhile(ApproachSpeed>0meter_per_second)behaviorGuidance:Point{runinparallelsetGuidance:Point.rudderAngle=13degree}behaviorGuidance:Buoyancy{runinparallelsetGuidance:Buoyancy.position=Control:VerticalControl.buoyancyNeutral}behaviorGuidance:Pitch{runinparallelsetGuidance:Pitch.massPosition=Control:VerticalControl.massDefault}}aggregateApproachDepth{runinsequencesyslog"Moving to "+Depth~meterbehaviorGuidance:SetSpeed{runinparallelsetGuidance:SetSpeed.speed=ApproachSpeed}behaviorGuidance:Pitch{runinsequencetimeoutduration=ApproachDepthTimeout{syslogimportant"Timed out trying to reach the target depth. Stopping mission at current depth of "+Universal:depth~meterbehaviorGuidance:Execute{runinsequencesetGuidance:Execute.command="stop"}}setGuidance:Pitch.depth=Depth}}}aggregateDriftAtDepth{""" Drift at 0 speed at target depth. """runinsequenceassigninparallelControl:VerticalControl.depthDeadband=DepthDeadbandbehaviorGuidance:SetSpeed{runinparallelsetGuidance:SetSpeed.speed=0meter_per_second}behaviorGuidance:Pitch{runinparallelsetGuidance:Pitch.depth=DepthsetGuidance:Pitch.elevatorAngle=0degreesetGuidance:Pitch.pitch=0degree}sysloginfo"Holding at depth. Depth = "+Universal:depth~meterbehaviorGuidance:Wait{runinsequencesetGuidance:Wait.duration=MissionTimeout}}}}
<?xml version="1.0" encoding="UTF-8"?><Missionxmlns="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="mind_the_drift"><Description>
This mission drifts level at a depth while running the backseat and
sending acomms data. Originally it was written for the Big Business of
getting ayeris images transferred over the acomms link. The Drift: You
start sinking, better grab an oar and row. And please take a path that
you know You start thinking, making up the images as you go, as you go.
</Description><DefineArgName="MissionTimeout"><Description>
Maximum duration of mission
</Description><Units:minute/><Value>120</Value></DefineArg><DefineArgName="NeedCommsTime"><Description>
How often to surface for commumications
</Description><Units:minute/><Value>60</Value></DefineArg><DefineArgName="AcousticModemCommsInterval"><Description>
How often to trigger acoustic modem communications
</Description><Units:minute/><Value>5</Value></DefineArg><DefineArgName="Depth"><Description>
How deep to drift.
</Description><Units:meter/><Value>35</Value></DefineArg><DefineArgName="DepthDeadband"><Description>
How much vertical drift from the specified depth is allowed durnig the
mission.
</Description><Units:meter/><Value>1</Value></DefineArg><DefineArgName="ApproachSpeed"><Description>
Enables vehicle thruster at the commanded speed to reach target depth
(set to 0 m/s to drift).
</Description><Units:meter_per_second/><Value>1</Value></DefineArg><DefineArgName="ApproachDepthTimeout"><Description>
Maximum wait time for the vehicle to reach the targeted depth.
</Description><Units:minute/><Value>20</Value></DefineArg><DefineArgName="ApproachPitchLimit"><Description>
Max vehicle pitch (+/-) when decending from the surface.
</Description><Units:degree/><Value>20</Value></DefineArg><DefineArgName="SurfaceThreshold"><Description>
Surface threshold depth.
</Description><Units:meter/><Value>2.5</Value></DefineArg><DefineArgName="MinAltitude"><Units:meter/><Value>5</Value></DefineArg><DefineArgName="MaxDepth"><Units:meter/><Value>52</Value></DefineArg><DefineArgName="MinOffshore"><Units:kilometer/><Value>2</Value></DefineArg><DefineArgName="CheckDepths"><Units:bool/><Value>1</Value></DefineArg><TimeoutDuration="MissionTimeout"/><InsertFilename="Insert/Science.xml"/><InsertFilename="Insert/NeedComms.xml"Id="NeedComms"/><Assign><Sequence/><ArgName="NeedComms:DiveInterval"/><ArgName="NeedCommsTime"/></Assign><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><InsertFilename="Insert/AcousticModemComms.xml"Id="AcousticComms"><RedefineArgName="CommsInterval"><ArgName="AcousticModemCommsInterval"/></RedefineArg></Insert><AggregateId="CheckTargetDepths"><Sequence/><Break><Not><ArgName="CheckDepths"/></Not></Break><AggregateId="CheckDepth"><Sequence/><Break><Not><ArgName="Depth"/><Gt><ArgName="MaxDepth"/></Gt></Not></Break><SyslogSeverity="Important">Aborting mission. Target depth exceeds the mission's MaxDepth setting (review mission parameters).</Syslog><Guidance:Execute><Sequence/><Setting><Guidance:Execute.command/><String>stop</String></Setting></Guidance:Execute></Aggregate><Assign><Sequence/><ArgName="CheckDepths"/><Units:bool/><Value>0</Value></Assign></Aggregate><CallId="StartingMission"RefId="NeedComms"/><Syslog>Powering up backseat...</Syslog><Guidance:BackseatDriver><Parallel/></Guidance:BackseatDriver><Syslog>Backseat powered.</Syslog><AggregateId="TheDrift"><Sequence/><Break><IsNaN><ArgName="Depth"/></IsNaN></Break><Assign><Parallel/><Control:VerticalControl.kpPitchMass/><Units:ratio/><Value>0.005</Value></Assign><Assign><Parallel/><Control:VerticalControl.kiPitchMass/><Units:reciprocal_second/><Value>0.00075</Value></Assign><Assign><Parallel/><Control:VerticalControl.kdPitchMass/><Units:second/><Value>0</Value></Assign><Assign><Parallel/><Control:VerticalControl.depthDeadband/><ArgName="DepthDeadband"/></Assign><!-- DO NOT REMOVE the syslog entry below. The MissionManager seems to ignore the value of ApproachSpeed and does not evaluate the SetSpeed statement properly. Adding the syslog call somehow fixes it. --><SyslogSeverity="Info">Going to target depth. Speed set to <ArgName="ApproachSpeed"/><Units:meter_per_second/></Syslog><AggregateId="GoToTargetDepth"><Assign><Parallel/><Control:VerticalControl.pitchLimit/><ArgName="ApproachPitchLimit"/></Assign><AggregateId="ActuatorHold"><Description>
Hold the positions of the mass, VBS, and rudder while going
to the target depth with the thruster on.
</Description><While><ArgName="ApproachSpeed"/><Gt><Units:meter_per_second/><Value>0</Value></Gt></While><Guidance:Point><Parallel/><Setting><Guidance:Point.rudderAngle/><Units:degree/><Value>13</Value></Setting></Guidance:Point><Guidance:Buoyancy><Parallel/><Setting><Guidance:Buoyancy.position/><Control:VerticalControl.buoyancyNeutral/></Setting></Guidance:Buoyancy><Guidance:Pitch><Parallel/><Setting><Guidance:Pitch.massPosition/><Control:VerticalControl.massDefault/></Setting></Guidance:Pitch></Aggregate><AggregateId="ApproachDepth"><Sequence/><Syslog>Moving to <ArgName="Depth"/><Units:meter/></Syslog><Guidance:SetSpeed><Parallel/><Setting><Guidance:SetSpeed.speed/><ArgName="ApproachSpeed"/></Setting></Guidance:SetSpeed><Guidance:Pitch><Sequence/><TimeoutDuration="ApproachDepthTimeout"><SyslogSeverity="Important">Timed out trying to reach the target depth. Stopping mission 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="Depth"/></Setting></Guidance:Pitch></Aggregate></Aggregate><AggregateId="DriftAtDepth"><Description>
Drift at 0 speed at target depth.
</Description><Sequence/><Assign><Parallel/><Control:VerticalControl.depthDeadband/><ArgName="DepthDeadband"/></Assign><Guidance:SetSpeed><Parallel/><Setting><Guidance:SetSpeed.speed/><Units:meter_per_second/><Value>0</Value></Setting></Guidance:SetSpeed><Guidance:Pitch><Parallel/><Setting><Guidance:Pitch.depth/><ArgName="Depth"/></Setting><Setting><Guidance:Pitch.elevatorAngle/><Units:degree/><Value>0</Value></Setting><Setting><Guidance:Pitch.pitch/><Units:degree/><Value>0</Value></Setting></Guidance:Pitch><SyslogSeverity="Info">Holding at depth. Depth = <Universal:depth/><Units:meter/></Syslog><Guidance:Wait><Sequence/><Setting><Guidance:Wait.duration/><ArgName="MissionTimeout"/></Setting></Guidance:Wait></Aggregate></Aggregate></Mission>