Skip to content

Engineering/multiray_test.tl

  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
#   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 multiray_test {
  """
  This mission is designed to run in the lab only. Cycles through MultiRay light modes
  """

  arguments {
    MissionTimeout = 5 minute
      """
      How long to let the mission run.
      """

    LightDuration = 5 second
      """
      How long to wait before changing light modes
      """

    LightMode0 = 0 count
      """
      Light mode = 0
      """

    LightMode1 = 1 count
      """
      Light mode = 1
      """

    LightMode2 = 2 count
      """
      Light mode = 2
      """

    EnabledMultiray = Sensor:MultiRay.loadAtStartup
      """
      Automatically set to true if the Multiray is enabled.
      """
  }

  timeout duration=MissionTimeout

  readData strategy="MinError" {
    while ( EnabledMultiray )

    Sensor:MultiRay.lightModeLog
  }

  # <ReadDatum>
  #            <Sensor:MultiRay.lightModeLog/>
  #    </ReadDatum>

  assign in sequence Sensor:MultiRay.lightModeCommand = LightMode0

  behavior Guidance:Wait {
    run in sequence

    set duration = LightDuration
  }

  assign in sequence Sensor:MultiRay.lightModeCommand = LightMode1

  behavior Guidance:Wait {
    run in sequence

    set duration = LightDuration
  }

  assign in sequence Sensor:MultiRay.lightModeCommand = LightMode2

  behavior Guidance:Wait {
    run in sequence

    set duration = LightDuration
  }

  assign in sequence Sensor:MultiRay.lightModeCommand = LightMode0

  behavior Guidance:Wait {
    run in sequence

    set duration = LightDuration
  }

  assign in sequence Sensor:MultiRay.lightModeCommand = LightMode1

  behavior Guidance:Wait {
    run in sequence

    set duration = LightDuration
  }

  assign in sequence Sensor:MultiRay.lightModeCommand = LightMode2

  behavior Guidance:Wait {
    run in sequence

    set duration = LightDuration
  }

  assign in sequence Sensor:MultiRay.lightModeCommand = LightMode0

  behavior Guidance:Wait {
    run in sequence

    set duration = LightDuration
  }

  assign in sequence Sensor:MultiRay.lightModeCommand = LightMode1

  behavior Guidance:Wait {
    run in sequence

    set duration = LightDuration
  }

  assign in sequence Sensor:MultiRay.lightModeCommand = LightMode2

  behavior Guidance:Wait {
    run in sequence

    set duration = LightDuration
  }

  assign in sequence Sensor:MultiRay.lightModeCommand = LightMode0

  behavior Guidance:Wait {
    run in sequence

    set duration = LightDuration
  }
}