/// <summary>
        /// The robot enters to the arena an goes to the MVN_PLN EntranceLocation
        /// </summary>
        private int EnterArena(int currentState, object o)
        {
            TextBoxStreamWriter.DefaultLog.WriteLine("HAL9000.-> State reached EnterArena");

            SM_EnterArena.FinalStates enterArena_status;
            SM_EnterArena enterArena = new SM_EnterArena(brain, cmdMan, SMConfiguration.EntranceLocation);
            enterArena_status = enterArena.Execute();

            if (enterArena_status == SM_EnterArena.FinalStates.OK)
            {
                if (!cmdMan.ARMS_goto(SMConfiguration.ArmsNavigationPosition, 3000))
                    if (!cmdMan.ARMS_goto(SMConfiguration.ArmsNavigationPosition, 3000))
                        cmdMan.ARMS_goto(SMConfiguration.ArmsNavigationPosition, 3000);

                return (int)States.GetCloseToTable;
            }
            else
                return (int)States.EnterArena;
        }
Beispiel #2
0
        /// <summary>
        /// the robot enters to the arena (to an especificated MVN-PLN map location)
        /// </summary>
        /// <returns>NavigateToOperator state if the robot enters the arena, EnterArena otherwise</returns>
        private int EnterArena(int currentState, object o)
        {
            TextBoxStreamWriter.DefaultLog.WriteLine("HAL9000.-> EnterArena state reached.");

            SM_EnterArena sm = new SM_EnterArena(this.brain, this.cmdMan, SMConfiguration.MVNPLN_entranceLocation, false);
            SM_EnterArena.FinalStates final =  sm.Execute();
            if (final == SM_EnterArena.FinalStates.OK)
            {
                attemptCounter = 0;
                return (int)States.NavigateToOperator;
            }
            else
            {
                attemptCounter++;
                //the robot cannot entered the arena
                if (attemptCounter < attemptLimit)
                {
                    TextBoxStreamWriter.DefaultLog.WriteLine("HAL9000.-> Cannot enter to the arena at attempt " + attemptCounter + ". Try again.");
                    return (int)States.EnterArena;
                }
                else
                {
                    //reset the attempt counter
                    TextBoxStreamWriter.DefaultLog.WriteLine("HAL9000.-> Cannot enter to the arena. Try to continue with the test.");
                    attemptCounter = 0;
                    return (int)States.NavigateToOperator;
                }
            }
        }
Beispiel #3
0
        private int EnterArena(int currentState, object o)
        {
            TextBoxStreamWriter.DefaultLog.WriteLine("HAL9000.-> State reached EnterArena");

            SM_EnterArena enterArena = new SM_EnterArena(brain, cmdMan, "entrancelocation");
            SM_EnterArena.FinalStates enterArena_status = enterArena.Execute();

            if (enterArena_status == SM_EnterArena.FinalStates.OK)
            {
                this.cmdMan.SPG_GEN_say("Please tell me what you would like me to do.");
                brain.recognizedSentences.Clear();
                return (int)States.WaitForQuestion;
            }

            return currentState;
        }
        private int EnterArena(int currentState, object o)
        {
            SM_EnterArena enterArenaSM = new SM_EnterArena(brain, cmdMan, entranceLocation, tryToOpenDoor);
            if(enterArenaSM.Execute() != SM_EnterArena.FinalStates.OK)
                TextBoxStreamWriter.DefaultLog.WriteLine("HAL9000.-> Cannot enter the arena, trying to continue the test.");

            return (int)States.GoToPartyRoom;
        }