Tank overnight test.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/Demo/tank_overnight_test.xml:79:39
    | 
 75 |       run in sequence
 76 | 
 77 |       behavior Guidance:SetSpeed {
 78 |         run in parallel
 79 |         set Guidance:SetSpeed.speed = .5 meter_per_second
    |                                       ^
 80 |       }
 81 | 
 82 |       behavior Guidance:Buoyancy {
 83 |         run in parallel
    | 
Unexpected: `.`
One of the following is possible:
  expression
  universal
  customUri
  number
  NaN
  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
# -   Copyright (c) 2024 MBARI
# -   MBARI Proprietary Information. Confidential. All Rights Reserved
# -   Unauthorized copying or distribution of this file via any medium is strictly
# -   prohibited.
# -
# -   WARNING - This file contains information whose export is restricted by the
# -   Export Administration Act of 1979 (Title 50, U.S.C., App. 2401 et seq.), as
# -   amended. Violations of these export laws are subject to severe civil and/or
# -   criminal penalties.

mission tank_overnight_test {
  timeout duration=P25H

  behavior Guidance:AltitudeEnvelope {
    run in parallel
    set Guidance:AltitudeEnvelope.minAltitude = 0 meter
  }

  behavior Guidance:DepthEnvelope {
    run in parallel
    set Guidance:DepthEnvelope.minDepth = 0 meter
    set Guidance:DepthEnvelope.maxDepth = 15 meter
  }

  insert Insert/Surface.tl id="SURFACECOMMS"


  # GPS Update
  #     Once every 120 minutes

  aggregate NeedComms {
    run when (
      elapsed ( Universal:time_fix ) > 120 minute
    )

    call id="NEEDCOMMS" refId="SURFACECOMMS"
  }

  aggregate Loop {
    run in sequence repeat=48

    aggregate One {
      run in sequence

      behavior Guidance:SetSpeed {
        run in parallel
        set Guidance:SetSpeed.speed = 1 meter_per_second
      }

      behavior Guidance:Buoyancy {
        run in parallel
        set Guidance:Buoyancy.position = 100 cubic_centimeter
      }

      behavior Guidance:Pitch {
        run in parallel
        set Guidance:Pitch.massPosition = 3 centimeter
        set Guidance:Pitch.elevatorAngle = 14 degree
      }

      behavior Guidance:Point {
        run in parallel
        set Guidance:Point.rudderAngle = 14 degree
      }

      behavior Guidance:Wait {
        run in sequence
        timeout duration=P10M
      }

      call id="GPSFIX1" refId="SURFACECOMMS"
    }

    aggregate Two {
      run in sequence

      behavior Guidance:SetSpeed {
        run in parallel
        set Guidance:SetSpeed.speed = .5 meter_per_second
      }

      behavior Guidance:Buoyancy {
        run in parallel
        set Guidance:Buoyancy.position = 945 cubic_centimeter
      }

      behavior Guidance:Pitch {
        run in parallel
        set Guidance:Pitch.massPosition = -3 centimeter
        set Guidance:Pitch.elevatorAngle = -14 degree
      }

      behavior Guidance:Point {
        run in parallel
        set Guidance:Point.rudderAngle = -14 degree
      }

      behavior Guidance:Wait {
        run in sequence
        timeout duration=P10M
      }

      call id="GPSFIX2" refId="SURFACECOMMS"
    }
  }
}
  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
<?xml version="1.0" encoding="UTF-8"?>
<!--
-   Copyright (c) 2024 MBARI
-   MBARI Proprietary Information. Confidential. All Rights Reserved
-   Unauthorized copying or distribution of this file via any medium is strictly
-   prohibited.
-
-   WARNING - This file contains information whose export is restricted by the
-   Export Administration Act of 1979 (Title 50, U.S.C., App. 2401 et seq.), as
-   amended. Violations of these export laws are subject to severe civil and/or
-   criminal penalties.
-->

<Mission xmlns="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="tank_overnight_test">

    <Timeout Duration="P25H"/>

    <Guidance:AltitudeEnvelope>
        <Parallel/>
        <Setting><Guidance:AltitudeEnvelope.minAltitude/><Units:meter/><Value>0</Value></Setting>
    </Guidance:AltitudeEnvelope>

    <Guidance:DepthEnvelope>
        <Parallel/>
        <Setting><Guidance:DepthEnvelope.minDepth/><Units:meter/><Value>0</Value></Setting>
        <Setting><Guidance:DepthEnvelope.maxDepth/><Units:meter/><Value>15</Value></Setting>
    </Guidance:DepthEnvelope>

    <Insert Filename="Insert/Surface.tl" Id="SURFACECOMMS" />

<!-- GPS Update 
     Once every 120 minutes -->

    <Aggregate Id="NeedComms">

        <When>
            <Elapsed><Universal:time_fix/></Elapsed>
            <Gt><Units:minute/><Value>120</Value></Gt>
        </When>

        <Call Id="NEEDCOMMS" RefId="SURFACECOMMS"/>

    </Aggregate>

    <Aggregate Id="Loop">

        <Sequence Repeat="48"/>

        <Aggregate Id="One">

            <Sequence/>

            <Guidance:SetSpeed>
                <Parallel/>
                <Setting><Guidance:SetSpeed.speed/><Units:meter_per_second/><Value>1</Value></Setting>
            </Guidance:SetSpeed>

            <Guidance:Buoyancy>
                <Parallel/>
                <Setting><Guidance:Buoyancy.position/><Units:cubic_centimeter/><Value>100</Value></Setting>
            </Guidance:Buoyancy>

            <Guidance:Pitch>
                <Parallel/>
                <Setting><Guidance:Pitch.massPosition/><Units:centimeter/><Value>3</Value></Setting>
                <Setting><Guidance:Pitch.elevatorAngle/><Units:degree/><Value>14</Value></Setting>
            </Guidance:Pitch>

            <Guidance:Point>
                <Parallel/>
                <Setting><Guidance:Point.rudderAngle/><Units:degree/><Value>14</Value></Setting>
            </Guidance:Point>

            <Guidance:Wait>
                <Sequence/>
                <Timeout Duration="P10M"></Timeout>
            </Guidance:Wait>

            <Call Id="GPSFIX1" RefId="SURFACECOMMS"/>

        </Aggregate>

        <Aggregate Id="Two">

            <Sequence/>

            <Guidance:SetSpeed>
                <Parallel/>
                <Setting><Guidance:SetSpeed.speed/><Units:meter_per_second/><Value>.5</Value></Setting>
            </Guidance:SetSpeed>

            <Guidance:Buoyancy>
                <Parallel/>
                <Setting><Guidance:Buoyancy.position/><Units:cubic_centimeter/><Value>945</Value></Setting>
            </Guidance:Buoyancy>

            <Guidance:Pitch>
                <Parallel/>
                <Setting><Guidance:Pitch.massPosition/><Units:centimeter/><Value>-3</Value></Setting>
                <Setting><Guidance:Pitch.elevatorAngle/><Units:degree/><Value>-14</Value></Setting>
            </Guidance:Pitch>

            <Guidance:Point>
                <Parallel/>
                <Setting><Guidance:Point.rudderAngle/><Units:degree/><Value>-14</Value></Setting>
            </Guidance:Point>

            <Guidance:Wait>
                <Sequence/>
                <Timeout Duration="P10M"></Timeout>
            </Guidance:Wait>

            <Call Id="GPSFIX2" RefId="SURFACECOMMS"/>

        </Aggregate>

    </Aggregate>

</Mission>