コード例 #1
0
        private int SearchFall(int currentState, object o)
        {
            TextBoxStreamWriter.DefaultLog.WriteLine("HAL9000.-> SearchFall state of SM_DetectPersonFall reached.");

            //double headAngle=-Math.PI/6;
            double headAngle = (-0.5 * 3.1416) / 180;

            cmdMan.HEAD_lookat(0.0, headAngle, 5000);
            //headAngle = (headAngle * 180) / Math.PI;
            headAngle = -0.5;
            brain.lastPersonFallDetected.Clear();
            Thread.Sleep(5000);
            //enviar comando para que comienze a detectar caidas
            cmdMan.VISION_findfall(true, headAngle);

            timer.Start();
            while (timer.Elapsed.Seconds < 25 && brain.lastPersonFallDetected.Count == 0)
            {
                ;
            }
            timer.Stop();

            //enviar comando para que deje de detectar caidas
            cmdMan.VISION_findfall(false, 0);

            if (brain.lastPersonFallDetected.Count > 0)
            {
                fallDetected = true;
            }
            else
            {
                fallDetected = false;
            }

            if (!fallDetected)
            {
                finalState = FinalStates.FallNotDetected;
                return((int)States.FinalState);
            }

            return((int)States.GoToFall);
        }