You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.2 KiB
40 lines
1.2 KiB
round10 = func(v) { |
|
if (v == nil) return 0; |
|
return 0.1*int(v*10); |
|
} |
|
|
|
round100 = func(v) { |
|
if (v == nil) return 0; |
|
return 0.01*int(v*100); |
|
} |
|
|
|
var update_quad = func( ) { |
|
asl_ft = getprop("/position/altitude-ft"); |
|
ground = getprop("/position/ground-elev-ft"); |
|
agl_m = (asl_ft - ground) * 0.3048; |
|
|
|
setprop("/apm/altitude", round10(agl_m)); |
|
|
|
setprop("/apm/pitch", round10(getprop("/orientation/pitch-deg"))); |
|
setprop("/apm/roll", round10(getprop("/orientation/roll-deg"))); |
|
setprop("/apm/heading", round10(getprop("/orientation/heading-deg"))); |
|
|
|
# airspeed-kt is actually in feet per second (FDM NET bug) |
|
setprop("/apm/airspeed", round10(0.3048*getprop("/velocities/airspeed-kt"))); |
|
|
|
setprop("/apm/motor_right", round10(getprop("/engines/engine[0]/rpm")/10.0)); |
|
setprop("/apm/motor_left", round10(getprop("/engines/engine[1]/rpm")/10.0)); |
|
setprop("/apm/motor_front", round10(getprop("/engines/engine[2]/rpm")/10.0)); |
|
setprop("/apm/motor_back", round10(getprop("/engines/engine[3]/rpm")/10.0)); |
|
} |
|
|
|
var main_loop = func { |
|
update_quad(); |
|
settimer(main_loop, 0); |
|
} |
|
|
|
|
|
setlistener("/sim/signals/fdm-initialized", |
|
func { |
|
main_loop(); |
|
});
|
|
|