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 | # 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 DefaultWithUndock {
arguments {
ElapsedSinceDefaultStarted = 0 minute
DetachTimeout = 30 minute
"""
Maximum time duration for the vehicle to detach form the dock.
"""
TransponderCode = Dock:Dock.transponderCode
"""
Dock transponder address.
"""
TrackingUpdatePeriod = 2.5 second
"""
Time duration between acoustic range queries while the mission is
detaching from the dock.
"""
NumberOfPings = 1 count
"""
Number of pings requested each time.
"""
}
behavior Guidance:Wait {
"""
Wait a moment to see if the scheduler starts a new mission before
starting to actually run Default.
"""
run in sequence
set duration = 30 second
}
aggregate LeaveDock {
run in sequence
timeout duration=DetachTimeout {
syslog important "Timed out while trying to detach from dock at current depth of "
+ Universal:depth~meter + "."
}
# Acoustic tracking directives
behavior Estimation:TrackAcousticContact {
run while (
Universal:depth > Control:VerticalControl.surfaceThreshold
)
set contactLabelSetting = TransponderCode
set numberOfSamplesSetting = NumberOfPings
set updatePeriodSetting = TrackingUpdatePeriod
}
# Leave the dock
behavior Dock:Undock {
run in sequence
}
}
aggregate SurfaceDefault {
run in sequence
# This mission assumes open water so from here on it's the same old default that's always used
behavior Guidance:GoToSurface {
run in progression
}
aggregate CheckIn {
run in sequence repeat=288
readDatum id="Read_GPS" {
timeout duration=P5M
Universal:time_fix
}
readDatum id="Read_Iridium" {
timeout duration=P2H {
behavior Guidance:Execute {
run in sequence
set command = "Burn on"
}
syslog critical "Dropped weight due to communications timeout."
}
Universal:platform_communications
}
behavior Guidance:Wait {
run in sequence
set duration = 5 minute
}
assign in sequence ElapsedSinceDefaultStarted = elapsed ( Universal:mission_started )
syslog important "Default mission has been running for " + ElapsedSinceDefaultStarted~minute
}
}
syslog important "Restarting logs and Default mission."
behavior Guidance:Execute {
run in sequence
set command = "restart logs"
}
}
|