20,741
edits
m (→/Nasal/fbw.nas: move elevator processing to separate method) |
m (→/Nasal/fbw.nas: move yaw damping to separate method) |
||
Line 135: | Line 135: | ||
var aileronin = getprop(fcs~"aileron-cmd-norm"); | var aileronin = getprop(fcs~"aileron-cmd-norm"); | ||
me.elevatorin = getprop(fcs~"elevator-cmd-norm"); | me.elevatorin = getprop(fcs~"elevator-cmd-norm"); | ||
me.rudderin = getprop(fcs~"rudder-cmd-norm"); | |||
## FBW Output (actual surface positions) | ## FBW Output (actual surface positions) | ||
Line 141: | Line 141: | ||
var aileronout = getprop(fcs~"aileron-fbw-output"); | var aileronout = getprop(fcs~"aileron-fbw-output"); | ||
me.elevatorout = getprop(fcs~"elevator-fbw-output"); | me.elevatorout = getprop(fcs~"elevator-fbw-output"); | ||
me.rudderout = getprop(fcs~"rudder-fbw-output"); | |||
## Engine Throttle Positions | ## Engine Throttle Positions | ||
Line 312: | Line 312: | ||
me.targetrudder = aileronout / 2; | me.targetrudder = aileronout / 2; | ||
if (me.targetrudder < rudderout) rudderout -= 0.015; | if (me.targetrudder < me.rudderout) me.rudderout -= 0.015; | ||
if (me.targetrudder > rudderout) rudderout += 0.015; | if (me.targetrudder > me.rudderout) me.rudderout += 0.015; | ||
} } | } } | ||
me.update_yaw_damper(); | |||
# Transmit output signals to surfaces | # Transmit output signals to surfaces | ||
Line 335: | Line 323: | ||
setprop(fcs~"aileron-fbw-output", aileronout); | setprop(fcs~"aileron-fbw-output", aileronout); | ||
setprop(fcs~"elevator-fbw-output", me.elevatorout); | setprop(fcs~"elevator-fbw-output", me.elevatorout); | ||
setprop(fcs~"rudder-fbw-output", rudderout); | setprop(fcs~"rudder-fbw-output", me.rudderout); | ||
setprop("controls/engines/engine[0]/throttle", throttles[0]); | setprop("controls/engines/engine[0]/throttle", throttles[0]); | ||
Line 348: | Line 336: | ||
setprop(fcs~"aileron-fbw-output", aileronin); | setprop(fcs~"aileron-fbw-output", aileronin); | ||
setprop(fcs~"elevator-fbw-output", me.elevatorin); | setprop(fcs~"elevator-fbw-output", me.elevatorin); | ||
setprop(fcs~"rudder-fbw-output", rudderin); | setprop(fcs~"rudder-fbw-output", me.rudderin); | ||
} | } | ||
Line 359: | Line 347: | ||
if ((me.elevatorin - me.elevatorout < 0.05) and (me.elevatorin - me.elevatorout > 0)) me.elevatorout += 0.01; | if ((me.elevatorin - me.elevatorout < 0.05) and (me.elevatorin - me.elevatorout > 0)) me.elevatorout += 0.01; | ||
if ((me.elevatorout - me.elevatorin < 0.05) and (me.elevatorin - me.elevatorout < 0)) me.elevatorout -= 0.01; | if ((me.elevatorout - me.elevatorin < 0.05) and (me.elevatorin - me.elevatorout < 0)) me.elevatorout -= 0.01; | ||
}, | |||
update_yaw_damper: func { | |||
## YAW DAMPER | |||
if (getprop("/controls/fbw/yaw-damper")) { | |||
if (me.rudderin > me.rudderout) me.rudderout += 0.05 * me.fpsfix; | |||
if (me.rudderin < me.rudderout) me.rudderout -= 0.05 * me.fpsfix; | |||
} else { | |||
me.rudderout = me.rudderin; | |||
} | |||
}, | }, | ||
reset : func { | reset : func { |