Tracking on surface.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/Maintenance/tracking_on_surface.xml:26:3
    | 
 22 |     run in parallel
 23 |     set Guidance:Pitch.massPosition = MassDefault
 24 |   }
 25 | 
 26 |   Derivation:Tracking #! xml2tethysl note: A non-behavior Tethys definition used by itself.
    |   ^^^^^^^^^^
 27 | 
 28 | 
 29 |   aggregate TestDrive {
 30 |     run in sequence repeat=Repeat
    | 
Unexpected: `Derivation`
One of the following is possible (total 12):
  aggregate
  assign
  behavior
  call
  insert
  readData
  readDatum
  sendData
  syslog
  touch
  macro
  }
 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
mission tracking_on_surface {
  arguments {
    MissionTimeout = 10 minute
      """
      Maximum duration of mission
      """

    ContactLabel = 0 count

    NumberOfPings = 1 count

    TrackingUpdatePeriod = 60 second

    Repeat = 13 count

    MassDefault = Control:VerticalControl.massDefault
  }

  timeout duration=MissionTimeout

  behavior Guidance:Pitch {
    run in parallel
    set Guidance:Pitch.massPosition = MassDefault
  }

  Derivation:Tracking #! xml2tethysl note: A non-behavior Tethys definition used by itself.


  aggregate TestDrive {
    run in sequence repeat=Repeat

    aggregate Data {
      run when (
        true
      )

      sendData service=express (
        Derivation:Tracking.contact_latitude~degree,
        Derivation:Tracking.contact_longitude~degree,
        Derivation:Tracking.contact_depth~meter,
        Derivation:Tracking.range_to_contact~meter,
        Derivation:Tracking.heading_to_contact~degree
      )


      syslog none "Pause a cycle"
    }

    readDatum {
      timeout duration=P1M
      Universal:platform_communications
    }

    behavior Guidance:Wait {
      run in sequence
      set Guidance:Wait.duration = 1 minute
    }
  }
}
 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
<?xml version="1.0" encoding="UTF-8"?>
<Mission xmlns="Tethys"
       xmlns:Control="Tethys/Control"
       xmlns:Derivation="Tethys/Derivation"
       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/Derivation http://okeanids.mbari.org/tethys/Xml/Derivation.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="tracking_on_surface">

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

    <DefineArg Name="ContactLabel"><Units:count/><Value>0</Value></DefineArg>

    <DefineArg Name="NumberOfPings"><Units:count/><Value>1</Value></DefineArg>

    <DefineArg Name="TrackingUpdatePeriod"><Units:second/><Value>60</Value></DefineArg>

    <DefineArg Name="Repeat"><Units:count/><Value>13</Value></DefineArg>

    <DefineArg Name="MassDefault"><Control:VerticalControl.massDefault/></DefineArg>

    <Timeout Duration="MissionTimeout"/>

    <Guidance:Pitch>
        <Parallel/>
        <Setting><Guidance:Pitch.massPosition/><Arg Name="MassDefault"/></Setting>
    </Guidance:Pitch>

    <Derivation:Tracking>
        <Parallel/>
        <Setting><Derivation:Tracking.contactLabelSetting/><Arg Name="ContactLabel"/></Setting>
        <Setting><Derivation:Tracking.numberOfSamplesSetting/><Arg Name="NumberOfPings"/></Setting>
        <Setting><Derivation:Tracking.updatePeriodSetting/><Arg Name="TrackingUpdatePeriod"/></Setting>
    </Derivation:Tracking>

    <Aggregate Id="TestDrive">

        <Sequence Repeat="Repeat"/>

        <Aggregate Id="Data">

            <When>
                <True/>
            </When>

            <SendData Service="Express">
                <Derivation:Tracking.contact_latitude/><Units:degree/>
                <Derivation:Tracking.contact_longitude/><Units:degree/>
                <Derivation:Tracking.contact_depth/><Units:meter/>
                <Derivation:Tracking.range_to_contact/><Units:meter/>
                <Derivation:Tracking.heading_to_contact/><Units:degree/>
            </SendData>

            <Syslog Severity="None">Pause a cycle</Syslog>

        </Aggregate>

        <ReadDatum>
            <Timeout Duration="P1M"/>
            <Universal:platform_communications/>
        </ReadDatum>

        <Guidance:Wait>
            <Sequence/>
            <Setting><Guidance:Wait.duration/><Units:minute/><Value>1</Value></Setting>
        </Guidance:Wait>

    </Aggregate>

</Mission>