예제 #1
0
        void TaskThreadProcess()
        {
            while (true)
            {
                switch (state)
                {
                case TaskFinDeMatchStates.Init:
                    servoPositionsRequested = new Dictionary <ServoId, int>();
                    servoPositionsRequested.Add(ServoId.PorteDrapeau, (int)TaskDrapeauPositionsInit.Drapeau);
                    OnHerkulexPositionRequest(servoPositionsRequested);
                    state = TaskFinDeMatchStates.Attente;
                    break;

                case TaskFinDeMatchStates.Attente:
                    break;

                /**********************Ouverture drapeau**************************************/
                case TaskFinDeMatchStates.FinDeMatch:
                    OnPilotageVentouse(5, 0);
                    OnPilotageVentouse(6, 0);
                    OnPilotageVentouse(7, 0);
                    state = TaskFinDeMatchStates.FinDeMatchAttente;
                    parentManager.OnEnableMotors(false);
                    servoPositionsRequested = new Dictionary <ServoId, int>();
                    servoPositionsRequested.Add(ServoId.PorteDrapeau, (int)TaskDrapeauPositionsOpen.Drapeau);
                    OnHerkulexPositionRequest(servoPositionsRequested);
                    break;

                case TaskFinDeMatchStates.FinDeMatchAttente:
                    state = TaskFinDeMatchStates.Finished;
                    break;

                /**********************Finished task**************************************/
                case TaskFinDeMatchStates.Finished:
                    isFinished = true;
                    state      = TaskFinDeMatchStates.Attente;
                    break;
                }
                Thread.Sleep(10);
            }
        }
예제 #2
0
 public void Start()
 {
     state      = TaskFinDeMatchStates.FinDeMatch;
     isFinished = false;
     StopSw();
 }
예제 #3
0
 public void Pause()
 {
     state      = TaskFinDeMatchStates.Attente;
     isFinished = false;
     StopSw();
 }
예제 #4
0
 public void Init()
 {
     state      = TaskFinDeMatchStates.Init;
     isFinished = false;
     StopSw();
 }