buoyancyTankMass.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/buoyancyTankMass.xml:4:59
   | 
 1 | mission buoyancyTankMass {
 2 |   timeout duration=P200M
 3 | 
 4 |   assign in parallel Control:VerticalControl.kiDepthOff = .1 radian_per_meter
   |                                                           ^
 5 | 
 6 |   assign in parallel Control:VerticalControl.kdPitchMass = .2 second
 7 | 
 8 |   behavior Guidance:DepthEnvelope {
   | 
Unexpected: `.`
One of the following is possible:
  ID (for an assign)
  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
mission buoyancyTankMass {
  timeout duration=P200M

  assign in parallel Control:VerticalControl.kiDepthOff = .1 radian_per_meter

  assign in parallel Control:VerticalControl.kdPitchMass = .2 second

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

  insert Insert/Science.tl


  aggregate GPSFIX {
    run when (
      called
    )

    behavior Guidance:GoToSurface {
      run in progression
    }

    aggregate {
      run in sequence

      preemptive ( true )

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

      readDatum {
        Universal:latitude_fix
      }
    }
  }

  behavior Guidance:Buoyancy {
    run in sequence
    set Guidance:Buoyancy.position = 500 cubic_centimeter
  }

  aggregate MaintainDepth {
    run when (
      called
    )

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

    behavior Guidance:Point {
      run in parallel
      set Guidance:Point.heading = 210 degree
    }

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

  aggregate MAIN {
    run in sequence repeat=2

    # <Call Id="GPSFIXEND" RefId="GPSFIX"/>

    aggregate bottomDepth {
      run in sequence

      behavior Guidance:Pitch {
        run in parallel
        # Setting the elevator angle to zero activates mass-only control.
        set Guidance:Pitch.elevatorAngle = 0 degree
        set Guidance:Pitch.depth = 7 meter
      }

      call refId="MaintainDepth"
    }

    aggregate topDepth {
      run in sequence

      behavior Guidance:Pitch {
        run in parallel
        # Setting the elevator angle to zero activates mass-only control.
        set Guidance:Pitch.elevatorAngle = 0 degree
        set Guidance:Pitch.depth = 2 meter
      }

      call refId="MaintainDepth"
    }
  }
}
  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
<?xml version="1.0" encoding="UTF-8"?>
<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="buoyancyTankMass">

    <Timeout Duration="P200M"/>

    <Assign><Parallel/><Control:VerticalControl.kiDepthOff/><Units:radian_per_meter/><Value>.1</Value></Assign>

    <Assign><Parallel/><Control:VerticalControl.kdPitchMass/><Units:second/><Value>.2</Value></Assign>

    <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/Science.tl"/>

    <Aggregate Id="GPSFIX">

        <When>
            <Called/>
        </When>

        <Guidance:GoToSurface>
            <Progression/>
        </Guidance:GoToSurface>

        <Aggregate>

            <Sequence/>

            <Preemptive>
                <True/>
            </Preemptive>

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

            <ReadDatum>
                <Universal:latitude_fix/>
            </ReadDatum>

        </Aggregate>

    </Aggregate>

    <Guidance:Buoyancy>
        <Sequence/>
        <Setting><Guidance:Buoyancy.position/><Units:cubic_centimeter/><Value>500</Value></Setting>
    </Guidance:Buoyancy>

    <Aggregate Id="MaintainDepth">

        <When>
            <Called/>
        </When>

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

        <Guidance:Point>
            <Parallel/>
            <Setting><Guidance:Point.heading/><Units:degree/><Value>210</Value></Setting>
        </Guidance:Point>

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

    </Aggregate>

    <Aggregate Id="MAIN">

        <Sequence Repeat="2"/>

<!--
      <Call Id="GPSFIXEND" RefId="GPSFIX"/>
      -->

        <Aggregate Id="bottomDepth">

            <Sequence/>

            <Guidance:Pitch>
                <Parallel/>
<!-- Setting the elevator angle to zero activates mass-only control.-->
                <Setting><Guidance:Pitch.elevatorAngle/><Units:degree/><Value>0</Value></Setting>
                <Setting><Guidance:Pitch.depth/><Units:meter/><Value>7</Value></Setting>
            </Guidance:Pitch>

            <Call RefId="MaintainDepth"/>

        </Aggregate>

        <Aggregate Id="topDepth">

            <Sequence/>

            <Guidance:Pitch>
                <Parallel/>
<!-- Setting the elevator angle to zero activates mass-only control.-->
                <Setting><Guidance:Pitch.elevatorAngle/><Units:degree/><Value>0</Value></Setting>
                <Setting><Guidance:Pitch.depth/><Units:meter/><Value>2</Value></Setting>
            </Guidance:Pitch>

            <Call RefId="MaintainDepth"/>

        </Aggregate>

    </Aggregate>

</Mission>