89 lines
1.6 KiB
Plaintext
89 lines
1.6 KiB
Plaintext
|
|
RunOncePath("lib/flap_control").
|
|
RunOncePath("lib/stabilize_aircraft").
|
|
RunOncePath("lib/ui").
|
|
|
|
clearguis().
|
|
|
|
global done is false.
|
|
on AG9 {
|
|
set done to true.
|
|
return true.
|
|
}
|
|
|
|
global takeoffAngle is 15.
|
|
global landingAngle is 30.
|
|
|
|
function landingMode {
|
|
print "Setting flaps to landing mode.".
|
|
SetFlapAngle(landingAngle).
|
|
when SHIP:VELOCITY:SURFACE:MAG < 0.1 then {
|
|
takeoffMode().
|
|
}
|
|
}
|
|
|
|
function takeoffMode {
|
|
print "Setting flaps to takeoff mode.".
|
|
SetFlapAngle(takeoffAngle).
|
|
on GEAR {
|
|
if GEAR = true {
|
|
return true.
|
|
}
|
|
landingMode().
|
|
}
|
|
}
|
|
|
|
if SHIP:STATUS = "LANDED" or SHIP:STATUS = "PRELAUNCH" {
|
|
takeoffMode().
|
|
} else {
|
|
landingMode().
|
|
}
|
|
|
|
// Top-level elements.
|
|
local iface is gui(250, 300).
|
|
set iface:X to 200.
|
|
set iface:Y to 700.
|
|
local top is iface:AddVLayout().
|
|
local rows is List(MakeRow(top), MakeRow(top)).
|
|
local stk is iface:AddStack().
|
|
|
|
AddStockButtons(rows[0], "aircraft").
|
|
MakeMenu(
|
|
stk,
|
|
MakeButton(rows[0], "Config"),
|
|
List(
|
|
List("Takeoff Flap Angle", "SCALAR", "15"),
|
|
List("Landing Flap Angle", "SCALAR", "30")
|
|
),
|
|
"Apply",
|
|
{
|
|
parameter options.
|
|
set takeoffAngle to options["Takeoff Flap Angle"]:TEXT:ToNumber().
|
|
set landingAngle to options["Landing Flap Angle"]:TEXT:ToNumber().
|
|
}
|
|
).
|
|
|
|
MakeMenu(
|
|
stk,
|
|
MakeButton(rows[1], "Level"),
|
|
List(
|
|
List("Kp", "SCALAR", "0.02"),
|
|
List("Ki", "SCALAR", "0.01"),
|
|
List("Kd", "SCALAR", "1")
|
|
),
|
|
"Execute",
|
|
{
|
|
parameter options.
|
|
HoldHorizon(
|
|
options["Kp"]:TEXT:ToNumber(),
|
|
options["Ki"]:TEXT:ToNumber(),
|
|
options["Kd"]:TEXT:ToNumber()
|
|
).
|
|
}
|
|
).
|
|
|
|
|
|
iface:show().
|
|
|
|
wait until false.
|