public static LittleState.ReturnObject OutputValues() { LittleState.ReturnObject retObj = new LittleState.ReturnObject(); Console.WriteLine(String.Format("Ergebnis: {0}", MainValues.c.ToString())); retObj.returnState = LittleState.FunctionResult.Success; return(retObj); }
/// <summary> /// The program has been paused. /// </summary> public static LittleState.ReturnObject Paused() { LittleState.ReturnObject retObj = new LittleState.ReturnObject(); Console.WriteLine("Pausiert. \nEnter drücken um fortzufahren. \nEscape drücken um zu beenden"); ConsoleKeyInfo pressedKey = Console.ReadKey(); if (pressedKey.Key == ConsoleKey.Enter) { retObj.shallContinueProgram = true; } return(retObj); }
public static LittleState.ReturnObject CalculateValues(LittleState.LittleEvent eve) { LittleState.ReturnObject retObj = new LittleState.ReturnObject(); try { MainValues.c = MainValues.a + MainValues.b; retObj.returnState = LittleState.FunctionResult.Success; } catch (Exception ex) { retObj.returnState = LittleState.FunctionResult.Fail; retObj.returnArguments.failException = ex; } return(retObj); }
public static LittleState.ReturnObject ReadValues() { LittleState.ReturnObject retObj = new LittleState.ReturnObject(); try { Console.WriteLine("Wert 1: "); MainValues.a = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Wert 2: "); MainValues.b = Convert.ToInt32(Console.ReadLine()); retObj.returnState = LittleState.FunctionResult.Success; } catch (Exception ex) { retObj.returnState = LittleState.FunctionResult.Fail; retObj.returnArguments.failException = ex; } return(retObj); }
public static LittleState.ReturnObject GetPayload() { LittleState.ReturnObject retObj = new LittleState.ReturnObject(); return(retObj); }
public static LittleState.ReturnObject CalculatorDone() { LittleState.ReturnObject retObj = new LittleState.ReturnObject(); return(retObj); }
/// <summary> /// The program has endet with an error. /// </summary> public static LittleState.ReturnObject Fail() { LittleState.ReturnObject retObj = new LittleState.ReturnObject(); return(retObj); }
public static LittleState.ReturnObject DoneMenu() { LittleState.ReturnObject retObj = new LittleState.ReturnObject(); return(retObj); }
static void StateMachine() { LittleState.LittleProgram mainProgram = new Runner(); LittleState.LittleEvent lEvent = new MenuEvent(); // Program always starts with a menu. while (mainProgram.state == LittleState.mainState.Running) { // New creation to prevent NullReferenceException. LittleState.ReturnObject retObj = new LittleState.ReturnObject(); LittleState.StateArgs arg = new LittleState.StateArgs(); switch (lEvent.current) { case LittleState.EventState.Init: // Init is set as start value. After creation current is always set to Init. { // retObj is the object of the function of this state. retObj = lEvent.Init(); arg = retObj.returnArguments; switch (retObj.returnState) { case LittleState.FunctionResult.Success: { //Insert commands if the function succeded. lEvent.ChangeTo(LittleState.EventState.Idle); break; } case LittleState.FunctionResult.Fail: { //Insert commands to do if the function failed. lEvent.Fail(arg); break; } } break; } case LittleState.EventState.Idle: { retObj = lEvent.Idle(lEvent); arg = retObj.returnArguments; switch (retObj.returnState) { case LittleState.FunctionResult.Success: { //Insert commands if the function succeded. lEvent.ChangeTo(LittleState.EventState.Finish); break; } case LittleState.FunctionResult.Fail: { //Insert commands to do if the function failed. lEvent.Fail(arg); break; } } break; } case LittleState.EventState.Finish: { retObj = lEvent.Finish(); arg = retObj.returnArguments; switch (retObj.returnState) { case LittleState.FunctionResult.Success: { //Insert commands if the function succeded. lEvent.ChangeTo(LittleState.EventState.Done); break; } case LittleState.FunctionResult.Fail: { //Insert commands to do if the function failed. lEvent.Fail(arg); break; } } break; } case LittleState.EventState.Done: { retObj = lEvent.Done(); arg = retObj.returnArguments; switch (retObj.returnState) { case LittleState.FunctionResult.Success: { //Insert commands if the function succeded. break; } case LittleState.FunctionResult.Fail: { //Insert commands to do if the function failed. lEvent.Fail(arg); break; } } // Set to paused if que is empty and menu has endet. if (MainValues.eventQue.Count == 0 && lEvent.info().isRoot == true) { mainProgram.state = LittleState.mainState.Paused; } // If que is not empty execute next event. else if (MainValues.eventQue.Count > 0) { lEvent = MainValues.eventQue[0]; MainValues.eventQue.RemoveAt(0); } // If last item of the que has endet and it was not the menu, go to the menu. else if (MainValues.eventQue.Count == 0 && lEvent.info().isRoot != true) { Console.WriteLine("Letztes Item. Zurück zum Menu"); lEvent = new MenuEvent(); } break; } } switch (mainProgram.state) { case LittleState.mainState.Done: { mainProgram.Done(); break; } case LittleState.mainState.Fail: { mainProgram.Fail(); break; } case LittleState.mainState.Paused: { LittleState.ReturnObject retObjPrg = mainProgram.Paused(); if (retObjPrg.shallContinueProgram) { mainProgram.state = LittleState.mainState.Running; lEvent.current = LittleState.EventState.Init; } break; } } } Console.ReadKey(); }