# 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.
aggregate SetNavAcoustic {
"""
Reset nav to dock location if the vehicle is within dock range.
"""
arguments {
DockLat = Dock:Dock.lat
"""
Latitude of docking station waypoint (defaults to
Config/workSite.beaconLat).
"""
DockLon = Dock:Dock.lon
"""
Longitude of docking station waypoint (defaults to
Config/workSite.beaconLon).
"""
DockRange = Dock:SetNav.dockRange
"""
Range from dock in which the vehicle resets it's position to dock
lat/lon .
"""
RangeTimeout = Dock:SetNav.rangeTimeout
"""
Time duration after which ranges are considered stagnant.
"""
}
run when (
called
or ( ( elapsed ( Dock:SetNav.time_fix ) > RangeTimeout )
and Estimation:TrackAcousticContact.range_to_contact <= DockRange
)
and elapsed ( Estimation:TrackAcousticContact.range_to_contact ) < RangeTimeout
)
aggregate UpdateNav {
run in sequence
timeout duration=P1M
syslog info "Reseting nav to dock location at range"
+ Estimation:TrackAcousticContact.range_to_contact~meter
behavior Dock:SetNav {
run in sequence
set latitude = DockLat
set longitude = DockLon
}
}
}