示例#1
0
        private int IdentifyPerson(int currentState, object o)
        {
            TextBoxStreamWriter.DefaultLog.WriteLine("HAL9000.-> Reached state 'IdentifyPerson'");
            string[] knownNames = new string[brain.KnownPersons.Keys.Count];
            brain.KnownPersons.Keys.CopyTo(knownNames, 0);
            SM_IdentifyPerson identifyPersonSM = new SM_IdentifyPerson(brain, cmdMan, gestureFailed, knownNames, defaultNames[ordersCount], rejectedNames);

            SM_IdentifyPerson.FinalStates smFinalState = identifyPersonSM.Execute();

            if (smFinalState == SM_IdentifyPerson.FinalStates.Failed)
            {
                currentOrder.wasAbleToRememberFace = false;
            }
            else if (smFinalState == SM_IdentifyPerson.FinalStates.OK)
            {
                currentOrder.wasAbleToRememberFace = true;
            }
            else
            {
                return(currentState);
            }

            gestureFailed = false;

            currentOrder.personName = identifyPersonSM.Name;
            rejectedNames.Add(currentOrder.personName);
            currentOrder.x     = identifyPersonSM.X;
            currentOrder.y     = identifyPersonSM.Y;
            currentOrder.angle = identifyPersonSM.Angle;

            brain.recognizedSentences.Clear();
            return((int)States.WaitForOrder);
        }
        private int IdentifyPerson(int currentState, object o)
        {
            TextBoxStreamWriter.DefaultLog.WriteLine("HAL9000.-> Reached state 'IdentifyPerson'");
            string[] knownNames = new string[brain.KnownPersons.Keys.Count];
            brain.KnownPersons.Keys.CopyTo(knownNames, 0);
            SM_IdentifyPerson identifyPersonSM = new SM_IdentifyPerson(brain, cmdMan, gestureFailed, knownNames, defaultNames[ordersCount], rejectedNames);
            SM_IdentifyPerson.FinalStates smFinalState = identifyPersonSM.Execute();

            if (smFinalState == SM_IdentifyPerson.FinalStates.Failed)
                currentOrder.wasAbleToRememberFace = false;
            else if (smFinalState == SM_IdentifyPerson.FinalStates.OK)
                currentOrder.wasAbleToRememberFace = true;
            else return currentState;

            gestureFailed = false;

            currentOrder.personName = identifyPersonSM.Name;
            rejectedNames.Add(currentOrder.personName);
            currentOrder.x = identifyPersonSM.X;
            currentOrder.y = identifyPersonSM.Y;
            currentOrder.angle = identifyPersonSM.Angle;

            brain.recognizedSentences.Clear();
            return (int)States.WaitForOrder;
        }