transitUnder.xml

Page auto-generated from XML file.

Failure

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/underIce/transitUnder.xml:80:13
    | 
 76 |       Set to True in order to hold buoyancy at neutral position, False to
 77 |       allow buoyancy to run on its own.
 78 |       """
 79 | 
 80 |     timeout duration=MissionTimeout
    |             ^^^^^^^^
 81 |     MicromodemCommsInterval = 2 minute
 82 |       """
 83 |       How often to trigger Umodem communications
 84 |       """
    | 
Unexpected: `duration`
Expecting: '(argument name)' <<<<
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
mission transitUnder {
  """
  Vehicle transits to desired waypoint and can be commanded to use/hold
  mass or buoyancy. Designed for under ice.
  """
  arguments {
    MissionTimeout = 60 minute
      """
      Maximum duration of mission
      """

    DetachTimeout = 20 minute
      """
      Maximum time to spend getting off the dock
      """

    Latitude = NaN degree
      """
      Latitude of waypoint to seek. If set to NaN, uses latitude at mission
      initialization.
      """

    Longitude = NaN degree
      """
      Longitude of waypoint to seek. If set to NaN, uses longitude at mission
      initialization.
      """

    Northings = 0 meter
      """
      Northward distance of the waypoint to seek. If combined with Latitude
      and/or Longitude, this is an offset from the specified Latitude and/or
      Longitude.
      """

    Eastings = 0 meter
      """
      Eastward distance of the waypoint to seek. If combined with Latitude
      and/or Longitude, this is an offset from the specified Latitude and/or
      Longitude.
      """

    Depth = 10 meter
      """
      Depth of flat and level flight during the mission.
      """

    Speed = 1 meter_per_second
      """
      Speed of vehicle (relative to water) during the mission.
      """

    MaxDepth = 20 meter
      """
      Maximum depth for the entire mission.
      """

    MinOffshore = 1 kilometer
      """
      Minimum distance offshore for the entire mission.
      """

    MinAltitude = 7 meter
      """
      Minimum height above the sea floor for the entire mission.
      """

    MassHold = true
      """
      Set to True in order to hold mass at default position, False to allow
      mass to run on its own.
      """

    BuoyancyHold = true
      """
      Set to True in order to hold buoyancy at neutral position, False to
      allow buoyancy to run on its own.
      """

    timeout duration=MissionTimeout
    MicromodemCommsInterval = 2 minute
      """
      How often to trigger Umodem communications
      """

    DetachDepth = 4.5 meter
      """
      Desired vehicle depth when leaving the dock.
      """

    DetachBounceTimeout = 20 second
      """
      Time duration to keep the thruster engaged to bounce/slingshot off the
      dock.
      """

    TransponderCode = 2 count
      """
      Transponder Address.
      """

    TrackingUpdatePeriod = 2.5 second
      """
      How long to wait between acoustic queries.
      """

    NumberOfPings = 1 count
      """
      Number of pings requested each time.
      """

  }

  insert Insert/StandardEnvelopes.xml

  assign in sequence  StandardEnvelopes:MinAltitude = MinAltitude
  assign in sequence  StandardEnvelopes:MaxDepth = MaxDepth
  assign in sequence  StandardEnvelopes:MinOffshore = MinOffshore
  aggregate Detach {
    run in sequence
    timeout duration=DetachTimeout {

      syslog important "Timed out trying to detach from dock. Stopping mission."

      behavior Guidance:Execute  {

        run in sequence


        set Guidance:Execute.command = "stop"

      }



    }

    syslog important "Detaching from dock."
    # Turn on tracking so we get some ranges to see how far we are from the dock

    behavior Estimation:TrackAcousticContact  {

      run in parallel


      set Estimation:TrackAcousticContact.contactLabelSetting = TransponderCode

      set Estimation:TrackAcousticContact.numberOfSamplesSetting = NumberOfPings

      set Estimation:TrackAcousticContact.updatePeriodSetting = TrackingUpdatePeriod

    }


    # Time to leave the dock!

    behavior Dock:Undock  {

      run in sequence


    }


  }

  behavior Guidance:Buoyancy id="BuoyancyHold"  {

    run while ( BuoyancyHold
  )


    set Guidance:Buoyancy.position = Control:VerticalControl.buoyancyNeutral

  }


  behavior Guidance:Pitch id="MassHold"  {

    run while ( MassHold
  )


    set Guidance:Pitch.massPosition = Control:VerticalControl.massDefault

  }


  aggregate Transit {
    run in sequence
    insert Insert/MicromodemComms.xml id="MicromodemComms" {

      redefineArg CommsInterval = MicromodemCommsInterval

    }


    behavior Guidance:Pitch  {

      run in parallel


      set Guidance:Pitch.depth = Depth

    }


    behavior Guidance:SetSpeed  {

      run in parallel


      set Guidance:SetSpeed.speed = Speed

    }


    behavior Guidance:Waypoint id="Wpt1"  {

      run in sequence


      set Guidance:Waypoint.latitude = Latitude

      set Guidance:Waypoint.longitude = Longitude

      set Guidance:Waypoint.northingsDelta = Northings

      set Guidance:Waypoint.eastingsDelta = Eastings

    }


  }

}
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
<?xml version="1.0" encoding="utf-8"?>
<Mission xmlns="Tethys"
        xmlns:Control="Tethys/Control"
        xmlns:Estimation="Tethys/Estimation"
        xmlns:Dock="Tethys/Dock"
        xmlns:Guidance="Tethys/Guidance" 
        xmlns:Units="Tethys/Units"
        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/Estimation http://okeanids.mbari.org/tethys/Xml/Estimation.xsd
                            Tethys/Dock http://okeanids.mbari.org/tethys/Xml/Dock.xsd
                            Tethys/Guidance http://okeanids.mbari.org/tethys/Xml/Guidance.xsd                            
                            Tethys/Units http://okeanids.mbari.org/tethys/Xml/Units.xsd"
        Id="transitUnder">

    <Description>
        Vehicle transits to desired waypoint and can be commanded to use/hold
        mass or buoyancy. Designed for under ice.
    </Description>

    <DefineArg Name="MissionTimeout"><Description>
        Maximum duration of mission
    </Description><Units:minute/><Value>60</Value></DefineArg>

    <DefineArg Name="DetachTimeout"><Description>
        Maximum time to spend getting off the dock
    </Description><Units:minute/><Value>20</Value></DefineArg>

    <DefineArg Name="Latitude"><Description>
        Latitude of waypoint to seek. If set to NaN, uses latitude at mission
        initialization.
    </Description><Units:degree/><Value>NaN</Value></DefineArg>

    <DefineArg Name="Longitude"><Description>
        Longitude of waypoint to seek. If set to NaN, uses longitude at mission
        initialization.
    </Description><Units:degree/><Value>NaN</Value></DefineArg>

    <DefineArg Name="Northings"><Description>
        Northward distance of the waypoint to seek. If combined with Latitude
        and/or Longitude, this is an offset from the specified Latitude and/or
        Longitude.
    </Description><Units:meter/><Value>0</Value></DefineArg>

    <DefineArg Name="Eastings"><Description>
        Eastward distance of the waypoint to seek. If combined with Latitude
        and/or Longitude, this is an offset from the specified Latitude and/or
        Longitude.
    </Description><Units:meter/><Value>0</Value></DefineArg>

    <DefineArg Name="Depth"><Description>
        Depth of flat and level flight during the mission.
    </Description><Units:meter /><Value>10</Value></DefineArg>

    <DefineArg Name="Speed"><Description>
        Speed of vehicle (relative to water) during the mission.
    </Description><Units:meter_per_second/><Value>1</Value></DefineArg>

    <DefineArg Name="MaxDepth"><Description>
        Maximum depth for the entire mission.
    </Description><Units:meter/><Value>20</Value></DefineArg>

    <DefineArg Name="MinOffshore"><Description>
        Minimum distance offshore for the entire mission.
    </Description><Units:kilometer/><Value>1</Value></DefineArg>

    <DefineArg Name="MinAltitude"><Description>
        Minimum height above the sea floor for the entire mission.
    </Description><Units:meter/><Value>7</Value></DefineArg>

    <DefineArg Name="MassHold"><Description>
        Set to True in order to hold mass at default position, False to allow
        mass to run on its own.
    </Description><True/></DefineArg>

    <DefineArg Name="BuoyancyHold"><Description>
        Set to True in order to hold buoyancy at neutral position, False to
        allow buoyancy to run on its own.
    </Description><True/></DefineArg>

    <Timeout Duration="MissionTimeout"/>

    <DefineArg Name="MicromodemCommsInterval"><Description>
        How often to trigger Umodem communications
    </Description><Units:minute/><Value>2</Value></DefineArg>

    <DefineArg Name="DetachDepth"><Description>
        Desired vehicle depth when leaving the dock.
    </Description><Units:meter/><Value>4.5</Value></DefineArg>

    <DefineArg Name="DetachBounceTimeout"><Description>
        Time duration to keep the thruster engaged to bounce/slingshot off the
        dock.
    </Description><Units:second/><Value>20</Value></DefineArg>

    <DefineArg Name="TransponderCode"><Description>
        Transponder Address.
    </Description><Units:count/><Value>2</Value></DefineArg>

    <DefineArg Name="TrackingUpdatePeriod"><Description>
        How long to wait between acoustic queries.
    </Description><Units:second/><Value>2.5</Value></DefineArg>

    <DefineArg Name="NumberOfPings"><Description>
        Number of pings requested each time.
    </Description><Units:count/><Value>1</Value></DefineArg>

    <Insert Filename="Insert/StandardEnvelopes.xml"/>

    <Assign><Sequence/><Arg Name="StandardEnvelopes:MinAltitude"/><Arg Name="MinAltitude"/></Assign>

    <Assign><Sequence/><Arg Name="StandardEnvelopes:MaxDepth"/><Arg Name="MaxDepth"/></Assign>

    <Assign><Sequence/><Arg Name="StandardEnvelopes:MinOffshore"/><Arg Name="MinOffshore"/></Assign>

    <Aggregate Id="Detach">

        <Sequence/>

        <Timeout Duration="DetachTimeout">
            <Syslog Severity="Important">Timed out trying to detach from dock. Stopping mission.</Syslog>
            <Guidance:Execute>
                <Sequence/>
                <Setting><Guidance:Execute.command/><String>stop</String></Setting>
            </Guidance:Execute>
        </Timeout>

        <Syslog Severity="Important">Detaching from dock.</Syslog>

<!-- Turn on tracking so we get some ranges to see how far we are from the dock -->

        <Estimation:TrackAcousticContact>
            <Parallel/>
            <Setting><Estimation:TrackAcousticContact.contactLabelSetting/><Arg Name="TransponderCode"/></Setting>
            <Setting><Estimation:TrackAcousticContact.numberOfSamplesSetting/><Arg Name="NumberOfPings"/></Setting>
            <Setting><Estimation:TrackAcousticContact.updatePeriodSetting/><Arg Name="TrackingUpdatePeriod"/></Setting>
        </Estimation:TrackAcousticContact>

<!-- Time to leave the dock! -->

        <Dock:Undock>
            <Sequence/>
        </Dock:Undock>

    </Aggregate>

    <Guidance:Buoyancy Id="BuoyancyHold">
        <While>
            <Arg Name="BuoyancyHold"/>
        </While>
        <Setting><Guidance:Buoyancy.position/><Control:VerticalControl.buoyancyNeutral/></Setting>
    </Guidance:Buoyancy>

    <Guidance:Pitch Id="MassHold">
        <While>
            <Arg Name="MassHold"/>
        </While>
        <Setting><Guidance:Pitch.massPosition/><Control:VerticalControl.massDefault/></Setting>
    </Guidance:Pitch>

    <Aggregate Id="Transit">

        <Sequence/>

        <Insert Filename="Insert/MicromodemComms.xml" Id="MicromodemComms">
            <RedefineArg Name="CommsInterval"><Arg Name="MicromodemCommsInterval"/></RedefineArg>
        </Insert>

        <Guidance:Pitch>
            <Parallel/>
            <Setting><Guidance:Pitch.depth/><Arg Name="Depth"/></Setting>
        </Guidance:Pitch>

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

        <Guidance:Waypoint Id="Wpt1">
            <Sequence/>
            <Setting><Guidance:Waypoint.latitude/><Arg Name="Latitude"/></Setting>
            <Setting><Guidance:Waypoint.longitude/><Arg Name="Longitude"/></Setting>
            <Setting><Guidance:Waypoint.northingsDelta/><Arg Name="Northings"/></Setting>
            <Setting><Guidance:Waypoint.eastingsDelta/><Arg Name="Eastings"/></Setting>
        </Guidance:Waypoint>

    </Aggregate>

</Mission>