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 | # 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 = 6 hour
"""
Maximum time duration for the vehicle to detach form the dock.
"""
TransponderCode = Dock:Dock.transponderCode
"""
Dock transponder address.
"""
TrackingUpdatePeriod = 10 second
"""
Time duration between acoustic range queries while the mission is
detaching from the dock.
"""
NumberOfPings = 1 count
"""
Number of pings requested each time.
"""
DriftTimeout = 3 minute
"""
How long to allow vehicle to drift away from dock before retrying reverse
"""
}
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
set driftTimeout = DriftTimeout
}
}
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"
}
}
|