Beispiel #1
0
 public void abortPassiveLAScompletion() {
   if (internalState == cevStatesAscent) {
     if (internalAscentState == ascentStatesAbortPassiveLAS) {
       spacecraft.doLowPassiveAbort();
       internalState = cevStatesEntry;
       internalEntryState = entryStatesChuteSequence;
       return;
     }
   }
   assert false;
 }
Beispiel #2
0
 public void completion() {
   if (internalState == cevStatesAscent) {
     if (internalAscentState == ascentStatesHoldLaunch) {
       internalState = cevStatesEndState;
       return;
     }
     if (internalAscentState == ascentStatesPadAbort) {
       internalState = cevStatesEndState;
       return;
     }
     if (internalAscentState == ascentStatesAbortPassiveLAS) {
       spacecraft.doLowPassiveAbort();
       internalState = cevStatesEntry;
       internalEntryState = entryStatesChuteSequence;
       return;
     }
     if (internalAscentState == ascentStatesAbortLowActiveLAS) {
       assert failures.noLAS_CNTRLfailure() : errors.log("active LAS with failed control motor");
       spacecraft.doLowActiveAbort();
       internalState = cevStatesEntry;
       internalEntryState = entryStatesChuteSequence;
       return;
     }
     if (internalAscentState == ascentStatesAbortHighActiveLAS) {
       assert failures.noLAS_CNTRLfailure() : errors.log("active LAS with failed control motor");
       internalState = cevStatesEntry;
       internalEntryState = entryStatesChuteSequence;
       return;
     }
   }
   if (internalState == cevStatesEarthOrbit) {
     if (internalEarthOrbitState == earthOrbitStatesInsertion) {
       if (failures.noEARTH_SENSORfailure()) {
         internalEarthOrbitState = earthOrbitStatesOrbitOps;
       } else {
         internalEarthOrbitState = earthOrbitStatesSafeHold;
         // <ERR> never reached
       }
       return;
     }
   }
   if (internalState == cevStatesLunarOps) {
     if (internalLunarOpsState == lunarOpsStatesInsertion) {
       internalLunarOpsState = lunarOpsStatesLunarOrbit;
       return;
     }
     if (internalLunarOpsState == lunarOpsStatesLunarLanding) {
       internalLunarOpsState = lunarOpsStatesLunarOrbit;
     }
   }
   if (internalState == cevStatesEntry) {
     if (internalEntryState == entryStatesEntryInterface) {
       internalEntryState = entryStatesNominalEntry;
       return;
     }
     if (internalEntryState == entryStatesNominalEntry) {
       internalEntryState = entryStatesChuteSequence;
       return;
     }
     if (internalEntryState == entryStatesChuteSequence) {
       assert spacecraft.readyForChuteSequence() : errors.last();
       internalEntryState = entryStatesLanding;
       return;
     }
     if (internalEntryState == entryStatesLanding) {
       internalState = cevStatesEndState;
       return;
     }
     if (internalEntryState == entryStatesAbortEntryBallistic) {
       internalEntryState = entryStatesChuteSequence;
       return;
     }
     if (internalEntryState == entryStatesAbortEntryFixedBank) {
       internalEntryState = entryStatesChuteSequence;
       return;
     }
     if (internalState == cevStatesLunarOps) {
       if (internalLunarOpsState == lunarOpsStatesLunarLanding) {
         if (internalLunarLandingLSAMState == lunarLandingLSAMStatesLunarDescent) {
           internalLunarLandingLSAMState = lunarLandingLSAMStatesSurfaceOps;
           return;
         }
       }
     }
   }
   assert false;
 }