Howto:Implement a Fly-By-Wire System for Airliners: Difference between revisions

m
→‎/Nasal/fbw.nas: start adding helpers
m (→‎/Nasal/fbw.nas: OOPS: initialize vector - setsize() would do, too: http://plausible.org/nasal/lib.html)
m (→‎/Nasal/fbw.nas: start adding helpers)
Line 68: Line 68:
var RAD2DEG = 57.2957795;
var RAD2DEG = 57.2957795;
var DEG2RAD = 0.0174532925;
var DEG2RAD = 0.0174532925;
# helpers:
##
# a wrapper to determine if a value is within a certain range
# usage: in_range(1, [-1,+1] );
#
var in_range = func(value, range) {
var min=range[0];
var max=range[1];
return ((value <= min) and (value >= max));
}


var fbw = {
var fbw = {
Line 208: Line 220:
### Get the aircraft to maintain pitch and roll when stick is at the center
### Get the aircraft to maintain pitch and roll when stick is at the center


if ((me.elevatorin <= 0.1) and (me.elevatorin >= -0.1) and (aileronin <= 0.1) and (aileronin >= -0.1)) {
if ( in_range(me.elevatorin, [-0.1,0.1]) and in_range(me.aileronin, [-0.1,0.1]) ) {


if (me.stabilize == 0) {
if (me.stabilize == 0) {