diff --git a/boot/satellite.ks b/boot/satellite.ks new file mode 100644 index 0000000..73ff62f --- /dev/null +++ b/boot/satellite.ks @@ -0,0 +1,24 @@ +runoncepath("0:/lib/boot"). + +parameter debug is false. + +local compiled is list( + "/lib/navigation", + "/lib/node", + "/lib/throttle" +). + +local copied is list( + "/lib/ui", + "/prog/execnode", + "/prog/nodestats", + "/prog/circ" +). + +Bootstrap( +"/boot/satellite", +"", +compiled, +copied, +debug +). diff --git a/lib/node.ks b/lib/node.ks index ba5acc3..55a0416 100644 --- a/lib/node.ks +++ b/lib/node.ks @@ -11,7 +11,7 @@ function ExecNode { local leadT is BurnTime(NEXTNODE:DELTAV:MAG / 2). local t is BurnTime(NEXTNODE:DELTAV:MAG). - if willStage(NEXTNODE:DELTAV:MAG) { + if WillStage(NEXTNODE:DELTAV:MAG) { print "WARNING: kOS will stage during this node execution. Safe cancellation requires reboot.". when flameOut() then { print "Flameout detected. Staging.". @@ -39,6 +39,12 @@ function ExecNode { print "Node execution complete.". } +function WillStage { + parameter dV. + if not HASNODE { return false. } + return dV > NEXTNODE:DELTAV:MAG. +} + // Calculate the time required to burn a given dV. // Assumes a perfectly spherical Kerbal in a vacuum. function BurnTime { diff --git a/prog/circ.ks b/prog/circ.ks new file mode 100644 index 0000000..dc5ce57 --- /dev/null +++ b/prog/circ.ks @@ -0,0 +1,15 @@ +@lazyglobal off. + +runoncepath("/lib/navigation"). + +parameter where is "a". +parameter whereStr is "apoapsis". + +local usePeri is false. +if where = "p" { + set usePeri to true. + set whereStr to "periapsis". +} + +CreateCircularizationNode(usePeri). +print "Circularization node created at " + whereStr. diff --git a/prog/execnode.ks b/prog/execnode.ks new file mode 100644 index 0000000..54c4c27 --- /dev/null +++ b/prog/execnode.ks @@ -0,0 +1,4 @@ +@lazyglobal off. + +runoncepath("/lib/node"). +ExecuteNode(). diff --git a/prog/nodestats.ks b/prog/nodestats.ks new file mode 100644 index 0000000..2b24b4a --- /dev/null +++ b/prog/nodestats.ks @@ -0,0 +1,15 @@ +@lazyglobal off. + +runoncepath("/lib/node"). + +if not HASNODE { + print "No node planned.". + return. +} + +print "Node dV: " + NEXTNODE:DELTAV:MAG. +print "Burn time: " + BurnTime(NEXTNODE:DELTAV:MAG). +print "Lead time: " + BurnTime(NEXTNODE:DELTAV:MAG / 2). +print "Node UT: " + NEXTNODE:TIME. +print "Node ETA: " + NEXTNODE:ETA. +print "Will stage? " + choose "yes" if WillStage(NEXTNODE:DELTAV:MAG) else "no".