public void transitionAction(ref System.Windows.Forms.Panel panel, System.Windows.Forms.TextBox[] texts, ref int pass) { switch (state) { case stIdle: // nothing break; case stSonarFiring: if (Cart.flagSonarArrayFiringDone) { Cart.flagSonarArrayFiringDone = false; // changing state state = stSonarDataTransmission; Cart.requestSensorData(); } break; case stSonarDataTransmission: if (Cart.flagSensorDataAcquired) { Cart.fillSonarTextBoxes(texts); state = stFrameTransmission; Cart.retrieveAbstraction(); } break; case stFrameTransmission: if (Cart.flagAbstractionReady) { Cart.drawAbstraction(panel); state = stAbilityExecuting; // running the cognitive array now double[][] inputVecs = Cart.makeInputVector(); pass++; int output = (int)MetaNode.getOutput(Cart.CogTop, inputVecs, pass); if (output < 11) { Cart.useAbility((t_CartAbility)output); } else { state = stIdle; } } break; case stAbilityExecuting: if (Cart.flagAbilityDone) { Cart.flagAbilityDone = false; state = stIdle; } break; } }
public void transitionAction(System.Windows.Forms.Panel panel, System.Windows.Forms.TextBox[] texts) { switch (state) { case stIdle: // nothing break; case stAbilityExecuting: if (Cart.flagAbilityDone) { Cart.flagAbilityDone = false; // ability dopne. Now firing the transducers state = stSonarFiring; Cart.fireSonarArray(); } break; case stSonarFiring: if (Cart.flagSonarArrayFiringDone) { // now attempting to retrieve the data state = stSonarDataTransmission; Cart.requestSensorData(); } break; case stSonarDataTransmission: if (Cart.flagSensorDataAcquired) { Cart.fillSonarTextBoxes(texts); // now retrieving a camera frame abstraction state = stFrameTransmission; Cart.retrieveAbstraction(); } break; case stFrameTransmission: if (Cart.flagAbstractionReady) { Cart.drawAbstraction(panel); // no need to reset the flag. // It's being reset inside drawAbstraction() state = stIdle; } break; } }