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
}
}
}