Skip to content

Tethys Scripting Language

This section describes the main constructs of the Tethys Scripting Language.1

Note

  • This section mainly uses TethysL syntax for illustration, but the conceptual model of the language applies regardless of the particular syntax (XML or TethysL).
  • In general, the documentation structure for language constructs, keywords, grammar description, etc., is still being worked out.

Main Constructs

Todo

Some sort of brief general intro about the main constructs and concepts...

For the notation used in various parts to this documentation, see Notation.

Mission

Todo

The general structure of a mission is:

mission ⟨id⟩ {
  ⟨testCode⟩?
  ⟨description⟩?
  ⟨defineArgs⟩?
  ⟨defineOutput⟩?
  ⟨endRunGroup⟩?
  ⟨maTypeChoice⟩*
}

Aggregate

Todo

The general structure of an aggregate is:

aggregate ⟨id⟩ {
  ⟨testCode⟩?
  ⟨description⟩?
  ⟨defineArgs⟩?
  ⟨defineOutput⟩?
  ⟨runMode⟩?
  ⟨endRunGroup⟩?
  ⟨preemptive⟩?
  ⟨maTypeChoice⟩*
}

Behavior

The keyword behavior in TethysL allows to invoke a particular LRAUV behavior, which are defined at the C++ level. The Behaviors section describes some of commonly used LRAUV behaviors.

Todo

More general behavior aspects that should be explained to the user?

The general form of this construct is:

behavior ⟨behaviorId⟩  id = "someId" ⟧? {
  ⟨description⟩?
  ⟨executionMode⟩
  ⟨endRunGroup⟩?
   ⟨behaviorChoice1⟩ | ⟨behaviorChoice2⟩ ⟧*
}

Todo

To what level of detail to explain the grammar here?

Execution modes

😊

Everything you always wanted to know about parallel/sequence/progression, but were afraid to ask!

Todo


  1. M. A. Godin, J. G. Bellingham, B. Kieft and R. McEwen, "Scripting language for state configured layered control of the Tethys long range autonomous underwater vehicle," OCEANS 2010 MTS/IEEE SEATTLE, 2010, pp. 1-7, doi: 10.1109/OCEANS.2010.5664515