Changed speed match function to use target distance instead of airspeed ... not perfected yet ,but better ...
This commit is contained in:
parent
514f2c1ce7
commit
a7f90a8cb8
1 changed files with 183 additions and 170 deletions
|
@ -8,7 +8,11 @@ var R2D = 180 / math.pi;
|
||||||
var sin = func(v) math.sin(v * D2R);
|
var sin = func(v) math.sin(v * D2R);
|
||||||
var cos = func(v) math.cos(v * D2R);
|
var cos = func(v) math.cos(v * D2R);
|
||||||
var atan2 = func(v, w) math.atan2(v, w) * R2D;
|
var atan2 = func(v, w) math.atan2(v, w) * R2D;
|
||||||
|
var time=0;
|
||||||
|
var lasttime=0;
|
||||||
|
var seconds =0;
|
||||||
|
var dist=0;
|
||||||
|
var lastdist=0;
|
||||||
var panel_dialog = gui.Dialog.new("/sim/gui/dialogs/cam/panel/dialog",
|
var panel_dialog = gui.Dialog.new("/sim/gui/dialogs/cam/panel/dialog",
|
||||||
"Aircraft/ufo/Dialogs/cam.xml");
|
"Aircraft/ufo/Dialogs/cam.xml");
|
||||||
var callsign_dialog = gui.Dialog.new("/sim/gui/dialogs/cam/select/dialog",
|
var callsign_dialog = gui.Dialog.new("/sim/gui/dialogs/cam/select/dialog",
|
||||||
|
@ -106,6 +110,7 @@ var update_aircraft_list = func {
|
||||||
|
|
||||||
var update = func {
|
var update = func {
|
||||||
# data acquisition
|
# data acquisition
|
||||||
|
|
||||||
target.set_latlon(
|
target.set_latlon(
|
||||||
targetN.getNode("position/latitude-deg").getValue(),
|
targetN.getNode("position/latitude-deg").getValue(),
|
||||||
targetN.getNode("position/longitude-deg").getValue(),
|
targetN.getNode("position/longitude-deg").getValue(),
|
||||||
|
@ -169,18 +174,25 @@ if (0) {
|
||||||
}
|
}
|
||||||
|
|
||||||
# calculate own speed
|
# calculate own speed
|
||||||
if (mode.speed.getValue())
|
if (mode.speed.getValue()){
|
||||||
maxspeed = targetN.getNode("velocities/true-airspeed-kt").getValue() * MPS * 2;
|
dist=targetN.getNode("radar/range-nm").getValue();
|
||||||
else
|
var nmps =dist-lastdist*seconds;
|
||||||
|
nmps =nmps*1852;
|
||||||
|
maxspeed = nmps * 2;
|
||||||
|
lastdist=dist;
|
||||||
|
}else{
|
||||||
maxspeed = speed[current];
|
maxspeed = speed[current];
|
||||||
|
}
|
||||||
maxspeedN.setDoubleValue(lowpass.speed.filter(maxspeed));
|
maxspeedN.setDoubleValue(lowpass.speed.filter(maxspeed));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
var loop = func {
|
var loop = func {
|
||||||
|
time=getprop("/sim/time/elapsed-sec");
|
||||||
|
seconds=time-lasttime;
|
||||||
if (view_number == cam_view and targetN != nil)
|
if (view_number == cam_view and targetN != nil)
|
||||||
update();
|
update();
|
||||||
|
lasttime=time;
|
||||||
settimer(loop, 0);
|
settimer(loop, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -309,6 +321,7 @@ setlistener("/sim/signals/fdm-initialized", func {
|
||||||
setprop("/sim/current-view/view-number", cam_view);
|
setprop("/sim/current-view/view-number", cam_view);
|
||||||
setprop("/engines/engine/speed-max-mps", 500);
|
setprop("/engines/engine/speed-max-mps", 500);
|
||||||
update_aircraft();
|
update_aircraft();
|
||||||
|
lasttime=getprop("/sim/time/elapsed-sec");
|
||||||
loop();
|
loop();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue