public void transitionAction(ref System.Windows.Forms.Panel panel, System.Windows.Forms.TextBox[] texts, ref int pass) { switch (state) { case stIdle: // nothing break; case stSensorDataTransmission: if (Robosapien.flagSensorDataAcquired) { Robosapien.fillSensorTexts(texts); state = stFrameTransmission; Robosapien.retrieveAbstraction(); } break; case stFrameTransmission: if (Robosapien.flagAbstractionReady) { Robosapien.drawAbstraction(panel); state = stAbilityExecuting; // running the cognitive array now double[][] inputVecs = Robosapien.makeInputVector(); pass++; int output = (int)MetaNode.getOutput(Robosapien.CogTop, inputVecs, pass); Robosapien.useAbility((t_RSV2Ability)output); } break; case stAbilityExecuting: if (Robosapien.flagAbilityDone) { Robosapien.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 (Robosapien.flagAbilityDone) { Robosapien.flagAbilityDone = false; // ability dopne. Now firing the transducers state = stSensorDataTransmission; Robosapien.requestSensorData(); } break; case stSensorDataTransmission: if (Robosapien.flagSensorDataAcquired) { Robosapien.fillSensorTexts(texts); // flag has been cleared inside fillSensorTexts // now retrieving a camera frame abstraction state = stFrameTransmission; Robosapien.retrieveAbstraction(); } break; case stFrameTransmission: if (Robosapien.flagAbstractionReady) { Robosapien.drawAbstraction(panel); // no need to reset the flag. // It's being reset inside drawAbstraction() state = stIdle; } break; } }