mirror of https://github.com/ArduPilot/ardupilot
49 lines
1.4 KiB
Lua
49 lines
1.4 KiB
Lua
--[[
|
|
|
|
example script to switch between two notch setups by changing the
|
|
attenuation to zero on the notch to disable. This allows for easy
|
|
in-flight switching between two different notch setups
|
|
--]]
|
|
local INS_HNTCH_ATT = Parameter('INS_HNTCH_ATT')
|
|
local INS_HNTC2_ATT = Parameter('INS_HNTC2_ATT')
|
|
|
|
local MAV_SEVERITY = {EMERGENCY=0, ALERT=1, CRITICAL=2, ERROR=3, WARNING=4, NOTICE=5, INFO=6, DEBUG=7}
|
|
|
|
if not INS_HNTCH_ATT:get() or not INS_HNTC2_ATT:get() then
|
|
gcs:send_text(MAV_SEVERITY.ERROR, string.format("Need 2 notches configured"))
|
|
return
|
|
end
|
|
|
|
local last_sw = -1
|
|
local AUX_FN = 300
|
|
|
|
local attenuation = INS_HNTCH_ATT:get()
|
|
if not attenuation then
|
|
gcs:send_text(MAV_SEVERITY.ERROR, string.format("Unable to get attenuation"))
|
|
return
|
|
end
|
|
|
|
function update()
|
|
local sw_current = rc:get_aux_cached(AUX_FN)
|
|
if not sw_current then
|
|
-- treat unset as notch1
|
|
sw_current = 0
|
|
end
|
|
if sw_current ~= last_sw then
|
|
last_sw = sw_current
|
|
if sw_current == 0 then
|
|
INS_HNTC2_ATT:set(0)
|
|
INS_HNTCH_ATT:set(attenuation)
|
|
gcs:send_text(MAV_SEVERITY.INFO, string.format("Switched to notch1 %.2f", attenuation))
|
|
else
|
|
INS_HNTC2_ATT:set(attenuation)
|
|
INS_HNTCH_ATT:set(0)
|
|
gcs:send_text(MAV_SEVERITY.INFO, string.format("Switched to notch2 %.2f", attenuation))
|
|
end
|
|
end
|
|
return update,100
|
|
end
|
|
|
|
return update()
|
|
|