public async Task <ActionResult <IncomingUserTask[]> > Get()
        {
            try
            {
                var result = await taskrepository.GetAllUserTasksAsync(GetUsedId());

                if (result == null)
                {
                    return(BadRequest());
                }

                List <IncomingUserTask> userTasks = new List <IncomingUserTask>(result.Length);

                foreach (UserTask task in result)
                {
                    var taskNumber = new TaskNumber(task.Number, task.TaskDate);

                    userTasks.Add(
                        new IncomingUserTask()
                    {
                        Comment    = task.Comment,
                        Date       = task.Date,
                        Status     = task.Status,
                        TaskNumber = task.ToString()
                    });
                }

                return(Ok(userTasks.ToArray()));
            }
            catch (Exception)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, "Repository failure"));
            }
        }
 public override int GetHashCode()
 {
     unchecked
     {
         return((NodeId.GetHashCode() * 397) ^ TaskNumber.GetHashCode());
     }
 }
        public async Task <ActionResult <IncomingUserTask> > Get(int Id)
        {
            try
            {
                var result = await taskrepository.GetTaskAsync(Id);

                if (result == null || GetUsedId() != result.UserId)
                {
                    return(BadRequest());
                }

                TaskNumber taskNumber = new TaskNumber(result.Number, result.TaskDate);

                return(Ok(
                           new IncomingUserTask()
                {
                    Comment = result.Comment,
                    Date = result.Date,
                    Status = result.Status,
                    TaskNumber = taskNumber.ToString()
                }));
            }
            catch (Exception)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, "Repository failure"));
            }
        }
Exemple #4
0
        public void Task16c()
        {
            const int TaskNumber = 16;

            uMTasks.ActiveTask = TaskNumber;

            switch (uMTasks.Work[TaskNumber].StateNo)
            {
            case

                1:
                uMTasks.SleepAGN(0.61F);         // 0.4 + TaskNumber*0.01 secondes .. ou n'importe quoi d'autre
                break;

            case

                2:
                uPiaget.GoState(1000);
                break;

            case



                1000: uPiaget.GoState(1); break;

            default:
            {
                uPanel.MessageErreur = "Task" + TaskNumber.ToString() + " - Line missing: " + uMTasks.Work[TaskNumber].StateNo.ToString();        // uPanel.MessageErreur.Length;
            } break;
            } // end switch
        } // end void Task16c
Exemple #5
0
        public void Task01c()
        {
            const int TaskNumber = 1;

            uMTasks.ActiveTask = TaskNumber;

            switch (uMTasks.Work[TaskNumber].StateNo)
            {
            //-----------------------------------------------------------------
            case
                1: uMTasks.SleepAGN(0.8F);

                break;

            case
                2:
                if (uPanel.Choix[uPanel.NCMusique].Etat)
                {
                    System.Media.SystemSounds.Beep.Play();
                }
                uPiaget.GoNext();
                break;

            case
                3:  uPiaget.GoState(1);
                break;

            default:
            {
                uPanel.MessageErreur = "Task" + TaskNumber.ToString() + " - Line missing: " + uMTasks.Work[TaskNumber].StateNo.ToString();        // uPanel.MessageErreur.Length;
            } break;
                //-------------------------------------------------------------------

                /*
                 * case
                 *
                 *  1:
                 *  uMTasks.SleepAGN(0.41F);     // 0.4 + TaskNumber*0.01 secondes .. ou n'importe quoi d'autre
                 *  break;
                 * case
                 *
                 *  2:
                 *  uPiaget.GoState(1000);
                 *  break;
                 * case
                 *
                 *
                 *
                 *
                 *
                 *  1000: uPiaget.GoState(1); break;
                 * default:
                 *  {
                 *      uPanel.MessageErreur = "Task" + TaskNumber.ToString() + " - Line missing: " + uMTasks.Work[TaskNumber].StateNo.ToString();// uPanel.MessageErreur.Length;
                 *  } break;
                 */
            } // end switch
        }     // end void Task01c
Exemple #6
0
        public string GetResult(TaskNumber number)
        {
            switch (number)
            {
            case TaskNumber.First:
            {
                return(GetResultFirst());
            }

            case TaskNumber.Second:
            {
                return(GetResultSecond());
            }

            default:
                throw new Exception("This code should be unreachable");
            }
        }
Exemple #7
0
        protected override string Execute(CodeActivityContext context)
        {
            var db                  = new CoreToWorkflowEntities();
            int idWF                = IdWorkflow.Get(context);
            int _position           = TaskNumber.Get(context);
            var positionTaskInTable = db.tableTasks.Where(x => x.IdTableWorkflow == idWF).OrderBy(j => j.Id).ToList();
            var nameFunction        = positionTaskInTable[_position].TaskFunction;

            var obj = new _Tasks();

            try
            {
                obj.GetType().GetMethod(nameFunction).Invoke(obj, null);
                return("se ejecuto la función: " + nameFunction);
            }
            catch
            {
                return("no existe la función: " + nameFunction);
            }
        }
        public async Task <ActionResult <IncomingUserTask> > Post(IncomingUserTask task)
        {
            if (ModelState.IsValid)
            {
                var taskNumber = new TaskNumber(task.TaskNumber);

                if (taskNumber.IsValid)
                {
                    var userTask = new UserTask()
                    {
                        TaskDate = taskNumber.Date,
                        Number   = taskNumber.Number,
                        Date     = task.Date,
                        Status   = task.Status,
                        Comment  = task.Comment,
                        UserId   = GetUsedId()
                    };

                    try
                    {
                        taskrepository.Add(userTask);
                        await taskrepository.SaveChangesAsync();

                        return(Ok(task));
                    }
                    catch (Exception)
                    {
                        return(StatusCode(StatusCodes.Status500InternalServerError, "Repository failure"));
                    }
                }
                else
                {
                    return(BadRequest());
                }
            }
            else
            {
                return(BadRequest());
            }
        }
        public static object[] PerformTask(TaskNumber number)
        {
            switch (number)
            {
            case TaskNumber.Task1:
                var aSource = new[, ] {
                    { 2, 4, 3 }, { 1.0, 3, 4 }, { 7, 4, 5 }
                };
                var A = Matrix.Create(Chapter7TaskType.FromMatrix, aSource);
                var B = Matrix.Create(Chapter7TaskType.One, aSource);
                var C = 2 * (A + (!B)) - (~A) * B;
                return(new object[] { A, B, C });

            case TaskNumber.Task2:
                var A2    = Matrix.Create(Chapter7TaskType.Two, new[] { 1.0, 2, 3 });
                var B2    = A2.MatrixDevideMaxOrMinElement(true);
                var AE    = A2 + Matrix.Create(Chapter7TaskType.EGen, A2.Rows);
                var _3B_E = 3 * B2 - Matrix.Create(Chapter7TaskType.EGen, B2.Rows);
                // X * AE = _3B_E   =>  X = B * A^-1;
                var X2 = _3B_E * (!AE);
                return(new object[] { A2, B2, X2 });

            case TaskNumber.Task3:
                var A3    = Matrix.Create(Chapter7TaskType.Three, Tuple.Create(new[] { 1.0, 2.0, 3.0 }, new[] { 4.0, 5.0, 6.0 }));
                var B3    = A3.MatrixDevideMaxOrMinElement(false);
                var _2A_E = 2 * A3 - Matrix.Create(Chapter7TaskType.EGen, A3.Rows);
                var _BE   = B3 + Matrix.Create(Chapter7TaskType.EGen, B3.Rows);
                var X3    = (!_2A_E) * _BE;
                return(new object[] { A3, B3, X3 });

            case TaskNumber.Task4:
                double[,] a4Source = { { 1.0, 0.42, 0.54, 0.66 }, { 0.42, 1.0, 0.32, 0.44 }, { 0.54, 0.32, 1.0, 0.22 }, { 0.66, 0.44, 0.22, 1 } };
                var A4   = Matrix.Create(Chapter7TaskType.FromMatrix, a4Source);
                var res4 = A4.IsOrtogonal();
                return(new object[] { res4 });

            case TaskNumber.Task5:
                double[] a5source = { 1.0, 0.0, 1.0, 1.0 };
                var      A5       = ~(Matrix.Create(Chapter7TaskType.FromArray, a5source));
                var      H5       = A5 * (~A5) / Math.Pow(A5.VectorLength(), 2);
                var      res5     = H5.IsOrtogonal();
                return(new object[] { res5 });

            case TaskNumber.Task6:
                double[,] a6source = { { -26, -18, -27 }, { 21.0, 15, 21 }, { 12, 8, 13 } };
                var A6   = Matrix.Create(Chapter7TaskType.FromMatrix, a6source);
                var det6 = A6.Determinant();
                var res6 = (A6 * A6) == A6;
                return(new object[] { det6, res6 });

            case TaskNumber.Task7:
                var a7source = new[, ] {
                    { 1.0, 2, 5, 1 }, { -2, -1.0, -2, -1 }, { 1.0, 1.0, -3, 1 }, { 1.0, -1.0, 1.0, -1 }
                };
                var A7 = Matrix.Create(Chapter7TaskType.FromMatrix, a7source);
                var X7 = Matrix.Create(Chapter7TaskType.FromArray, new[] { 1.0, -1.0, 3.0, -1.0 });
                var tt = ~X7;
                var Y7 = A7.Determinant() != 0 ? (!A7) * tt : Matrix.Create(Chapter7TaskType.FromArray, 0);
                return(new object[] { Y7 });

            case TaskNumber.Task8:
                double[,] a8source = { { 3.75, -0.28, 0.17 }, { 2.11, -0.11, -0.12 }, { 0.22, -3.17, 1.81 } };
                double[] b8source = { 0.75, 1.11, 0.05 };
                var      A8       = Matrix.Create(Chapter7TaskType.FromMatrix, a8source);
                var      X8       = Matrix.Create(Chapter7TaskType.FromArray, A8.Slau(b8source).Item2);
                return(new object[] { X8, X8.VectorLength() });

            case TaskNumber.Task9:
                var a9source = new[, ] {
                    { 5.7, -7.8, -5.6, -8.3 }, { 6.6, 13.1, -6.3, 4.3 }, { 14.7, -2.8, 5.6, -12.1 }, { 8.5, 12.7, -23.7, 5.7 }
                };
                var b9source = new[] { 2.7, -5.5, 8.6, 14.7 };
                var y9source = new double[] { 1, 1, 2, -3 };
                var A9       = Matrix.Create(Chapter7TaskType.FromMatrix, a9source);
                var Y9       = Matrix.Create(Chapter7TaskType.FromArray, y9source);
                var X9       = Matrix.Create(Chapter7TaskType.FromArray, A9.Slau(b9source).Item2);
                return(new object[] { X9.ScalarProduct(Y9) });

            case TaskNumber.Task10:
                var a10source = new[, ] {
                    { 4.4, -2.5, 19.2, -10.8 }, { 5.5, -9.3, -14.2, 13.2 }, { 7.1, -11.5, 5.3, -6.7 }, { 14.2, 23.4, -8.8, 5.3 }
                };
                var b10source = new[] { 4.3, 6.8, -1.8, 7.2 };
                var A10       = Matrix.Create(Chapter7TaskType.FromMatrix, a10source);
                var X10       = Matrix.Create(Chapter7TaskType.FromArray, A10.Slau(b10source).Item2);
                var res10     = X10 * (~X10);
                return(new object[] { res10 });

            case TaskNumber.Task11:
                var a11source = new[, ] {
                    { 0.34, 0.71, 0.63 }, { 0.71, -0.65, -0.18 }, { 1.17, -2.35, 0.75 }
                };
                var b11source = new[] { 2.08, 1.17, 1.28 };
                var A11       = Matrix.Create(Chapter7TaskType.FromMatrix, a11source);
                var X11       = Matrix.Create(Chapter7TaskType.FromArray, A11.Slau(b11source).Item2);
                var res11     = (2 * X11 - 3).VectorLength();
                return(new object[] { A11, X11, res11 });

            case TaskNumber.Task12:
                var a12source = new[, ] {
                    { 1.24, 0.62, -0.95 }, { 2.15, -1.18, 0.57 }, { 1.72, -0.83, 1.57 }
                };
                var b12source = new[] { 1.43, 2.43, 3.88 };
                var y12source = new[] { -1.0, 5.0, -3.0 };
                var A12       = Matrix.Create(Chapter7TaskType.FromMatrix, a12source);
                var X12       = Matrix.Create(Chapter7TaskType.FromArray, A12.Slau(b12source).Item2);
                var Y12       = Matrix.Create(Chapter7TaskType.FromArray, y12source);
                var res12     = X12.VectorAngle(Y12);
                return(new object[] { res12 });

            case TaskNumber.Task13:
                var a13source = new[, ] {
                    { 8.2, -3.2, 14.2, 14.8 }, { 5.6, -12, 15, -6.4 }, { 5.7, 3.6, -12.4, -2.3 }, { 6.8, 13.2, -6.3, -8.7 }
                };
                var b13source = new[] { -8.4, 4.5, 3.3, 14.3 };
                var A13       = Matrix.Create(Chapter7TaskType.FromMatrix, a13source);
                var X13       = Matrix.Create(Chapter7TaskType.FromArray, A13.Slau(b13source).Item2);
                var temp13    = X13 * (~X13);
                var res13     = Matrix.Create(Chapter7TaskType.EGen, temp13.Rows) - temp13;
                return(new object[] { res13 });

            case TaskNumber.Task14:
                var a14source = new double[, ] {
                    { 2, 1, 5, 2 }, { 5, 2, 2, 6 }, { 2, 2, 1, 2 }, { 1, 3, 3, 1 }
                };
                var b14source = new double[] { 3, 1, 2, 1 };
                var A14       = ~(Matrix.Create(Chapter7TaskType.FromMatrix, a14source));
                var X14       = Matrix.Create(Chapter7TaskType.FromArray, A14.Slau(b14source).Item2);
                var res14     = X14;
                return(new object[] { res14 });

            case TaskNumber.Task15:
                var a15source = new double[, ] {
                    { 2, 1, 5, 2 }, { 5, 2, 2, 6 }, { 2, 2, 1, 2 }, { 1, 3, 3, 1 }
                };
                var b15source = new double[] { 3, 1, 2, 1 };
                var temp15    = ~(Matrix.Create(Chapter7TaskType.FromMatrix, a15source));
                var A15       = 2 * (temp15 * temp15);
                var X15       = Matrix.Create(Chapter7TaskType.FromArray, A15.Slau(b15source).Item2);
                var res15     = X15;
                return(new object[] { res15 });

            case TaskNumber.Task16:
                var a16source = new double[, ] {
                    { 2, 1, 5, 2 }, { 5, 2, 2, 6 }, { 2, 2, 1, 2 }, { 1, 3, 3, 1 }
                };
                var A16   = Matrix.Create(Chapter7TaskType.FromMatrix, a16source);
                var B16   = Matrix.Create(Chapter7TaskType.Sixteen, a16source);
                var C16   = (~B16) * A16;
                var res16 = C16.Determinant();
                return(new object[] { res16 });

            case TaskNumber.Task17:
                var A17    = Matrix.Create(Chapter7TaskType.Two, new double[] { 1, 2, 3 });
                var B17    = Matrix.Create(Chapter7TaskType.Seventeen, A17.ToArray());
                var temp17 = A17 * B17;
                var res17  = (2 * Matrix.Create(Chapter7TaskType.EGen, temp17.Rows) - temp17).Determinant();
                return(new object[] { res17 });

            case TaskNumber.Task18:
                var a18source = new double[, ] {
                    { -26, -18, -27 }, { 21, 15, 21 }, { 12, 8, 13 }
                };
                var b18source = new double[] { 1, 1, 1 };
                var A18       = Matrix.Create(Chapter7TaskType.FromMatrix, a18source);
                var I18       = 2 * Matrix.Create(Chapter7TaskType.EGen, A18.Rows) - A18;
                var temp18    = (I18 * I18);
                var res18     = temp18 == Matrix.Create(Chapter7TaskType.EGen, temp18.Rows);
                var X18       = Matrix.Create(Chapter7TaskType.FromArray, I18.Slau(b18source).Item2);
                return(new object[] { res18, X18 });

            case TaskNumber.Task19:
                var a19source = new[, ] {
                    { 1, 0.42, 0.54, 0.66 }, { 0.42, 1, 0.32, 0.44 }, { 0.54, 0.32, 1, 0.22 }, { 0.66, 0.44, 0.22, 1 }
                };
                var A19 = Matrix.Create(Chapter7TaskType.FromMatrix, a19source);
                Console.WriteLine("IsSimmetrical ~A == A ? Result: {0}", A19.IsSimmetrical());
                Console.WriteLine("!A - ? Result:\n{0}", !A19);
                var res19 = (A19 * (!A19)) == Matrix.Create(Chapter7TaskType.EGen, A19.Rows);
                return(new object[] { res19 });

            case TaskNumber.Task20:
                var a20source = new[, ] {
                    { -2, 3.01, 0.12, -0.11 }, { 2.92, -0.17, 0.11, 0.22 }, { 0.66, 0.52, 3.17, 2.11 }, { 3.01, 0.42, -0.27, -0.15 }
                };
                var b20source = new[, ] {
                    { -2, 2.92, 0.66, 3.01 }, { 2.92, -2, 0.11, 0.22 }, { 0.66, 0.11, -2, 2.11 }, { 3.01, 0.22, 2.11, -2 }
                };
                var A20    = Matrix.Create(Chapter7TaskType.FromMatrix, a20source);
                var B20    = Matrix.Create(Chapter7TaskType.FromMatrix, b20source);
                var a20det = Math.Abs(A20.Determinant());
                var b20det = Math.Abs(B20.Determinant());
                var a20sq  = A20.SumSquaredElementOfAnyColumnIsOne();
                var b20sq  = B20.SumSquaredElementOfAnyColumnIsOne();
                var a20sum = A20.SumProductedElementsOfTwoColumnsIsOne();
                var b20sum = B20.SumProductedElementsOfTwoColumnsIsOne();
                return(new object[] { a20det, b20det, a20sq, b20sq, a20sum, b20sum });

            case TaskNumber.Task21:
                var a21source = new[, ] {
                    { 0.25, 0.33, 1.25, -0.667 }, { 0.333, 0.25, -0.667, 1.333 }, { 0.2, 0.167, 2.2, 1.25 }, { 0.1, 0.143, 3.1, -0.75 }
                };
                var x21source = new double[] { 1, 1, 1, 1 };
                var A21       = Matrix.Create(Chapter7TaskType.FromMatrix, a21source);
                var Y21       = A21.Determinant() != 0 ? Matrix.Create(Chapter7TaskType.FromArray, A21.Slau(x21source).Item2) : Matrix.Create(Chapter7TaskType.FromArray, 0);
                Console.WindowWidth = Y21.Cols * 22;
                return(new object[] { Y21 });

            case TaskNumber.Task22:
                var a22source = new[, ] {
                    { 0.42, 0.26, 0.33, -0.22 }, { 0.74, -0.55, 0.28, -0.65 }, { 0.88, 0.42, -0.33, 0.75 }, { 0.92, 0.82, -0.62, 0.75 }
                };
                var b22source = new double[] { 1, 1, 1, 0 };
                var A22       = Matrix.Create(Chapter7TaskType.FromMatrix, a22source);
                var X22       = Matrix.Create(Chapter7TaskType.FromArray, A22.Slau(b22source).Item2);
                var C22       = X22 * (~X22);
                var temp22    = (C22 * (~C22)) == Matrix.Create(Chapter7TaskType.EGen, C22.Rows);
                var tempp22   = (~C22) * C22 == Matrix.Create(Chapter7TaskType.EGen, C22.Rows);
                return(new object[] { temp22, tempp22 });

            case TaskNumber.Task23:
                var a23source = new[, ] {
                    { 0.75, 0.18, 0.63, -0.32 }, { 0.92, 0.38, -0.14, 0.56 }, { 0.63, -0.42, 0.18, 0.37 }, { -0.65, 0.52, 0.47, 0.27 }
                };
                var A23     = ~(Matrix.Create(Chapter7TaskType.FromMatrix, a23source));
                var a23sumr = A23.MaxSumRowElementsModules();
                var a23sumc = A23.MaxSumColElementsModules();
                var a23det  = A23.Determinant();
                return(new object[] { a23sumr, a23sumc, a23det });

            case TaskNumber.Task24:
                var a24source = new[, ] {
                    { -1.09, 7.56, 3.45, 0.78 }, { 3.33, 4.45, -0.21, 3.44 }, { 2.33, -4.45, 0.17, 2.21 }, { 4.03, 1, 3.05, 0.11 }
                };
                var A24     = !(Matrix.Create(Chapter7TaskType.FromMatrix, a24source));
                var a20sqrt = A24.SqrtSumSquaredElements();
                return(new object[] { a20sqrt });

            case TaskNumber.Task25:
                var a25source = new[, ] {
                    { 8.2, -3.2, 14.2, 14.8 }, { 5.6, -12, 15, -6.4 }, { 5.7, 3.6, -12.4, -2.3 }, { 6.8, 13.2, -6.3, -8.7 }
                };
                var b25source = new[] { -8.4, 4.5, 3.3, 14.3 };
                var A25       = Matrix.Create(Chapter7TaskType.FromMatrix, a25source);
                var X25       = Matrix.Create(Chapter7TaskType.FromArray, A25.Slau(b25source).Item2);
                var res25     = X25;
                var check25   = A25 * (~X25);
                return(new object[] { res25, check25 });

            default:
                throw new ArgumentOutOfRangeException(number.GetType().Name, number, null);
            }
        }
        //public ICommand AddJobCommand { get { return NewCommand(AddJobCommand_Execute); } }
        //private void AddJobCommand_Execute(object obj)
        //{
        //    //var data = InputBox.GetValue("Job code, client, project:", characterCasing: CharacterCasing.Upper);
        //    var data = InputBox.GetValue("Job code, project:", characterCasing: CharacterCasing.Upper);
        //    if(string.IsNullOrEmpty(data))
        //    {
        //        return;
        //    }

        //    var parts = data.Split(',').Select(x => x.Trim()).ToArray();

        //    using (var db = new TimesheetsContext())
        //    {
        //        var jobCode = parts[0];
        //        //var client = parts.Skip(1).FirstOrDefault();
        //        //var project = parts.Skip(2).FirstOrDefault();
        //        var project = parts.Skip(1).FirstOrDefault();

        //        if (db.JobExists(jobCode))
        //        {
        //            throw new ValidationException("Job code already in use.");
        //        }

        //        var job = new Job()
        //        {
        //            Code = jobCode,
        //            //Client = client,
        //            Project = project
        //        };
        //        db.Insert(job);

        //        Session.Clear();

        //        //JobPickerViewModel.SelectedId = job.Id;
        //    }
        //}

        private void SearchTimesheets(bool filterTaskNumber = false, bool filterDescription = false)
        {
            LoadAsync(() =>
            {
                var q = _data.AsQueryable();

                q = q.Where(x => x.Type == (int)TimesheetType.Normal);

                if (filterTaskNumber && !string.IsNullOrWhiteSpace(TaskNumber))
                {
                    var filter = TaskNumber.Trim().ToLower();
                    q          = q.Where(x => (x.TaskNumber ?? string.Empty).ToLower().Contains(filter));
                }

                if (filterDescription && !string.IsNullOrWhiteSpace(Description))
                {
                    var filter = Description.Trim().ToLower();
                    q          = q.Where(x => (x.Description ?? string.Empty).ToLower().Contains(filter));
                }

                //if (!string.IsNullOrWhiteSpace(FilterTimesheets))
                //{
                //    var filter = FilterTimesheets.Trim().ToLower();
                //    q = q.Where(x => (x.TaskNumber ?? string.Empty).Contains(filter) || (x.Description ?? string.Empty).Contains(filter));
                //}

                q = q.OrderByDescending(x => x.StartTime);

                var result     = new Dictionary <string, TimesheetQuickSearchItem>();
                var maxRecords = 50;

                foreach (var x in q)
                {
                    if (result.Count == maxRecords)
                    {
                        break;
                    }

                    var key = string.Format("${0}|{1}$", x.TaskNumber, x.Description).Trim().ToLower();
                    if (result.ContainsKey(key))
                    {
                        continue;
                    }

                    result.Add(key, new TimesheetQuickSearchItem()
                    {
                        StartTime = x.StartTime, TaskNumber = x.TaskNumber, Description = x.Description
                    });
                }

                return(result.Values.ToList());

                //using(var context = new TimesheetsContext())
                //{
                //    var timesheets = context.SearchTimesheets(Session.Username, take: 10, sortTimeAsc: false, filter: FilterTimesheets, types: new[] { TimesheetType.Normal });
                //    return timesheets;
                //}
            }, result =>
            {
                if (TimesheetsFiltered == null || TimesheetsFiltered.Count > 0 || result.Count > 0)
                {
                    TimesheetsFiltered = result;
                }
            });
        }
Exemple #11
0
    {   /*
         * Faire un pas  - move a little bit
         */
        public void Task02c()
        {
            const int TaskNumber = 2;

            uMTasks.ActiveTask = TaskNumber;
            //------------------------------------------------------------------------------------------


            int  i;
            bool SG, SD;

            switch (uMTasks.Work[TaskNumber].StateNo)
            {
            case
                1:
                if (uMTasks.Work[TaskNumber].TaskStatus == uMTasks.tPhase.Demandee)
                {
                    uMTasks.Work[TaskNumber].TaskStatus = uMTasks.tPhase.EnAction;
                    if (uPanel.Choix[uPanel.NCStepSound].Etat)
                    {
                        System.Media.SystemSounds.Beep.Play();
                    }
                    uMTasks.Work[TaskNumber].StateNo = 10;
                }
                break;

            case
                10:
                uMTasks.Work[TaskNumber].StateNo = 20;
                break;

            case
                20:
                SG = uMouv.SensGauche;
                SD = uMouv.SensDroit;
                if (uPanel.InverseSensLineaire)
                {
                    SG = !SG;
                    SD = !SD;
                }

                uTasks.V2Duree = uPanel.DeltaTPas / 2;
                uMTasks.Work[TaskNumber].StateNo = 30;

                break;

            case
                30:
                uMTasks.SleepAGN(uTasks.V2Duree);
                break;

            case
                31:
                uMTasks.Work[TaskNumber].StateNo = 40;
                break;

            case
                40:
                uMTasks.SleepAGN(uTasks.V2Duree);
                break;

            case
                41:
                uMTasks.Work[TaskNumber].StateNo = 60;
                break;

            case
                60:
                uMTasks.Work[TaskNumber].TaskStatus = uMTasks.tPhase.Faite;
                uMTasks.Work[TaskNumber].StateNo    = 1;
                break;

            default:
            {
                uPanel.MessageErreur = "Task" + TaskNumber.ToString() + " - Line missing: " + uMTasks.Work[TaskNumber].StateNo.ToString();        // uPanel.MessageErreur.Length;
            } break;
            }//end switch
             //------------------------------------------------------------------------------------------

            /* code origine
             * void Task02()   // (* Faire un pas *)
             * {
             * extern bool InteractionSouhaitee;
             * int const TaskNumber=2;
             * int i;
             * bool SG,SD;
             * ActiveTask=TaskNumber;
             * switch ( Work[TaskNumber].StateNo ){
             * case
             * 1:
             * if (Work[TaskNumber].TaskStatus==Demandee)
             *  {
             *   Work[TaskNumber].TaskStatus=EnAction;
             * if ( Choix[NCStepSound].Etat ) Beep();
             *   Work[TaskNumber].StateNo=10;
             *  }
             *     break;  case
             * 10:
             * Work[TaskNumber].StateNo=20;
             *     break;  case
             * 20: {
             * //    PasGauche,SensGauche,
             * //              PasDroit,SensDroit
             * SG=SensGauche;
             * SD=SensDroit;
             * if (InverseSensLineaire)
             * {SG=!SG;
             * SD=!SD;}
             *
             * V2Duree=DeltaTPas / 2;
             * Work[TaskNumber].StateNo=30;
             * }
             *     break;  case
             *
             * 30:  SleepAGN(V2Duree);
             *    break;  case
             *
             * 31:
             * //****        if Choix[NCStepSound].etat then NoSound;
             * Work[TaskNumber].StateNo=40;
             * //     Work[TaskNumber].StateNo=41;
             *    break;  case
             * 40:  SleepAGN(V2Duree);
             *    break;  case
             *
             * 41:
             * //****       if (!( VarEtat[NVEArret].etat))
             *  Work[TaskNumber].StateNo=60;
             *    break;  case
             *
             * 60:
             * Work[TaskNumber].TaskStatus=Faite;
             * Work[TaskNumber].StateNo=1;
             *
             * break;
             * default :
             * {
             * MessageErreur="Task"+IntToStr(TaskNumber)+" - Line missing: "+IntToStr(Work[TaskNumber].StateNo);
             * };
             * }
             * }   // Task02
             */
        } // end void Task02c
Exemple #12
0
        public static object[] PerformTask(TaskNumber number)
        {
            var assembly     = Assembly.GetExecutingAssembly();
            var resourceName = @"Determinant.Embedded_resources.UserInputFile.bin";
            var resources    = assembly.GetManifestResourceNames();

            switch (number)
            {
            case TaskNumber.Task1:
                using (Stream stream = assembly.GetManifestResourceStream(resourceName))
                {
                    var A1        = BinaryFile.Create(Chapter8TaskType.FromStream, stream);
                    var A1Even    = A1.Where(x => x % 2 == 0);
                    var A1Odd     = A1.Where(x => x % 2 == 1);
                    var A1EvenMax = A1Even.Max();
                    var A1OddMin  = A1Odd.Min();
                    return(new object[] { A1Even.Count(), A1Odd.Count(), A1EvenMax, A1OddMin });
                }

            case TaskNumber.Task2:
                using (Stream stream = assembly.GetManifestResourceStream(resourceName))
                {
                    var    A2    = BinaryFile.Create(Chapter8TaskType.FromStream, stream);
                    byte[] temp2 = A2.Where(x => x % 2 == 1).ToArray();
                    var    A2Odd = BinaryFile.Create(Chapter8TaskType.FromArray, temp2);
                    var    A2OddDoubledOrdered = (A2Odd * 2).data.OrderBy(x => x);
                    return(new object[] { A2OddDoubledOrdered.Count() });
                }

            case TaskNumber.Task3:
                using (Stream stream = assembly.GetManifestResourceStream(resourceName))
                {
                    var    A3    = BinaryFile.Create(Chapter8TaskType.FromStream, stream);
                    byte[] temp3 = A3.Where(x => x > 0 && x % 5 == 0).OrderByDescending(x => x).ToArray();
                    return(new object[] { temp3.Count() });
                }

            case TaskNumber.Task4:
                using (Stream stream = assembly.GetManifestResourceStream(resourceName))
                {
                    var A4          = BinaryFile.Create(Chapter8TaskType.FromStream, stream);
                    var A4PosSimple = A4.Where(x => x > 0 && BinaryFile.IsSimple(x) == true).ToArray();
                    var A4NegSimple = A4.Where(x => x < 0 && BinaryFile.IsSimple(x) == true).ToArray();
                    var A4ZeroCount = A4.Where(x => x == 0).Count();
                    return(new object[] { A4PosSimple.Count(), A4NegSimple.Count(), A4ZeroCount });
                }

            case TaskNumber.Task5:
                using (Stream stream = assembly.GetManifestResourceStream(resourceName))
                {
                    var A5                   = BinaryFile.Create(Chapter8TaskType.FromStream, stream);
                    var minIndex             = A5.FindIndex(x => x == A5.Min());
                    var A5NotSimpleBeforeMin = A5.Where((x, i) => BinaryFile.IsSimple(x) == false && i < minIndex);
                    return(new object[] { A5NotSimpleBeforeMin.Count() });
                }

            case TaskNumber.Task6:
                using (Stream stream = assembly.GetManifestResourceStream(resourceName))
                {
                    var A6                = BinaryFile.Create(Chapter8TaskType.FromStream, stream);
                    var maxIndex          = A6.FindIndex(x => x == A6.Max());
                    var A6NotZeroAfterMax = A6.Where((x, i) => x != 0 && i > maxIndex);
                    return(new object[] { A6NotZeroAfterMax.Count() });
                }

            case TaskNumber.Task7:
                using (Stream stream = assembly.GetManifestResourceStream(resourceName))
                {
                    var A7   = BinaryFile.Create(Chapter8TaskType.FromStream, stream);
                    var copy = new double[A7.Length];
                    Array.Copy(A7.ToArray(), copy, A7.Length);
                    var positiveAvg             = Math.Ceiling(copy.Where(x => x > 0).Average());
                    var A7BiggerThanPositiveAvg = copy.Where(x => x > positiveAvg).Count();
                    return(new object[] { A7BiggerThanPositiveAvg });
                }

            case TaskNumber.Task8:
                using (Stream stream = assembly.GetManifestResourceStream(resourceName))
                {
                    var A8                  = BinaryFile.Create(Chapter8TaskType.FromStream, stream);
                    var minIndex            = A8.FindIndex(x => x == A8.Min());
                    var maxIndex            = A8.FindIndex(x => x == A8.Max());
                    var A8BeforeMinAfterMax = A8.Where((x, i) => i <minIndex && i> maxIndex);
                    return(new object[] { A8BeforeMinAfterMax.Count() });
                }

            case TaskNumber.Task9:
                using (Stream stream = assembly.GetManifestResourceStream(resourceName))
                {
                    var A9                  = BinaryFile.Create(Chapter8TaskType.FromStream, stream);
                    var minIndex            = A9.FindIndex(x => x == A9.Min());
                    var maxIndex            = A9.FindIndex(x => x == A9.Max());
                    var A9BeforeMinAfterMax = minIndex < maxIndex?A9.Where((x, i) => i > minIndex && i < maxIndex) : A9.Where((x, i) => i <minIndex && i> maxIndex);

                    return(new object[] { A9BeforeMinAfterMax.Count() });
                }

            case TaskNumber.Task10:
                using (Stream stream = assembly.GetManifestResourceStream(resourceName))
                {
                    var A10          = BinaryFile.Create(Chapter8TaskType.FromStream, stream);
                    var A10EvenOdd   = BinaryFile.Create(Chapter8TaskType.FromArray, A10.Where(x => x % 2 == 0).Concat(A10.Where(x => x % 2 == 1)).ToArray <byte>());
                    var maxOddIndex  = A10EvenOdd.FindIndex(x => x % 2 == 1 && x == A10.Max());
                    var minEvenIndex = A10EvenOdd.FindIndex(x => x % 2 == 0 && x == A10.Min());
                    if (maxOddIndex != -1 && minEvenIndex != -1)
                    {
                        return new object[] { A10EvenOdd.Count(), maxOddIndex, minEvenIndex }
                    }
                    ;
                    else
                    {
                        return new object[] { 0, 0, 0 }
                    };
                }

            case TaskNumber.Task11:
                using (Stream stream = assembly.GetManifestResourceStream(resourceName))
                {
                    var A11      = BinaryFile.Create(Chapter8TaskType.FromStream, stream);
                    var Negative = A11.Where(x => x < 0);
                    var temp11   = A11.Where(x => BinaryFile.IsSimple(x));
                    if (!Negative.Any() || !temp11.Any())
                    {
                        return new object[] { 0, 0, 0, 0, 0, 0 }
                    }
                    ;
                    var maxNegative      = Negative.Max();
                    var maxNegativeIndex = A11.FindIndex(x => x == maxNegative);

                    var maxSimple      = temp11.Max();
                    var maxSimpleIndex = A11.FindIndex(x => x == maxSimple);

                    A11.Swap(maxNegativeIndex, maxSimpleIndex);
                    A11.WriteData(11);
                    var temp1 = A11[maxNegativeIndex];
                    var temp2 = A11[maxSimpleIndex];

                    return(new object[] { maxNegative, maxNegativeIndex, maxSimple, maxSimpleIndex, temp1, temp2 });
                }

            case TaskNumber.Task12:
                using (Stream stream = assembly.GetManifestResourceStream(resourceName))
                {
                    var A12   = BinaryFile.Create(Chapter8TaskType.FromStream, stream);
                    var avg   = Math.Ceiling(A12.Average(x => x));
                    var res12 = A12.Where(x => BinaryFile.IsSimple(x) == true && x > avg).ToArray();
                    BinaryFile.Create(Chapter8TaskType.FromArray, res12).WriteData(12);
                    return(new object[] { res12.Count() });
                }

            case TaskNumber.Task13:
                using (Stream stream = assembly.GetManifestResourceStream(resourceName))
                {
                    var A13             = BinaryFile.Create(Chapter8TaskType.FromStream, stream);
                    var min             = A13.Min();
                    var index           = A13.FindIndex(x => x == min);
                    var wasMin          = false;
                    var isSequenceStart = false;
                    var _TMP            = A13.Where((x, i) =>
                    {
                        if (wasMin)
                        {
                            isSequenceStart = true;
                        }

                        if (x == min)
                        {
                            wasMin = true;
                        }

                        return(isSequenceStart && BinaryFile.IsSimple(x));
                    }).Aggregate(new Point(0, 0), (x, y) => {
                        x.X += 1;
                        x.Y += y;
                        return(x);
                    });

                    return(new object[] { ((double)_TMP.Y) / _TMP.X });
                }

            case TaskNumber.Task14:
                using (Stream stream = assembly.GetManifestResourceStream(resourceName))
                {
                    var A14 = BinaryFile.Create(Chapter8TaskType.FromStream, stream);
                    var firstPerfectIndex = A14.FindIndex(x => BinaryFile.IsPerfect(x));
                    var lastNegativeIndex = A14.FindLastIndex(x => x < 0);
                    if (firstPerfectIndex == -1 || lastNegativeIndex == -1)
                    {
                        return new object[] { 0, 0, 0, 0, 0, 0 }
                    }
                    ;
                    var temp1 = A14[firstPerfectIndex];
                    var temp2 = A14[lastNegativeIndex];

                    A14.Swap(firstPerfectIndex, lastNegativeIndex);
                    A14.WriteData(14);

                    var temp3 = A14[firstPerfectIndex];
                    var temp4 = A14[lastNegativeIndex];
                    return(new object[] { temp1, firstPerfectIndex, temp2, lastNegativeIndex, temp3, temp4 });
                }

            case TaskNumber.Task15:
                using (Stream stream = assembly.GetManifestResourceStream(resourceName))
                {
                    var A15   = BinaryFile.Create(Chapter8TaskType.FromStream, stream);
                    var res15 = A15.Where(x => BinaryFile.IsSimple(x)).OrderByDescending(x => x);
                    return(new object[] { res15.Count() });
                }

            case TaskNumber.Task16:
                using (Stream stream = assembly.GetManifestResourceStream(resourceName))
                {
                    var A16   = BinaryFile.Create(Chapter8TaskType.FromStream, stream);
                    var res16 = A16.FindLastPerfectSequence();
                    BinaryFile.Create(Chapter8TaskType.FromArray, res16).WriteData(16);
                    return(new object[] { res16.Count() });
                }

            case TaskNumber.Task17:
                using (Stream stream = assembly.GetManifestResourceStream(resourceName))
                {
                    var A17   = BinaryFile.Create(Chapter8TaskType.FromStream, stream);
                    var res17 = A17.Where(x => x < 0).Count();
                    return(new object[] { res17 });
                }

            case TaskNumber.Task18:
                using (Stream stream = assembly.GetManifestResourceStream(resourceName))
                {
                    var A18    = BinaryFile.Create(Chapter8TaskType.FromStream, stream);
                    var res18  = A18.Where(x => x != 0).Where(x => BinaryFile.IsSimple(x));
                    var res181 = A18.Where(x => x != 0).Where(x => BinaryFile.IsPerfect(x));
                    return(new object[] { res18.Count(), res18.Max(), res181.Count(), res181.Min() });
                }

            case TaskNumber.Task19:
                using (Stream stream = assembly.GetManifestResourceStream(resourceName))
                {
                    var A19   = BinaryFile.Create(Chapter8TaskType.FromStream, stream);
                    var max   = A19.Max();
                    var index = A19.FindIndex(x => x == max);
                    var res19 = A19.Where((x, i) => i > index && BinaryFile.IsSimple(x));

                    return(new object[] { res19.Count() });
                }

            case TaskNumber.Task20:
                using (Stream stream = assembly.GetManifestResourceStream(resourceName))
                {
                    var A20   = BinaryFile.Create(Chapter8TaskType.FromStream, stream);
                    var min   = A20.Min();
                    var index = A20.FindIndex(x => x == min);
                    var res   = A20.Where((x, i) => i < index && x % 3 == 0).Count();

                    return(new object[] { res });
                }

            case TaskNumber.Task21:
                using (Stream stream = assembly.GetManifestResourceStream(resourceName))
                {
                    var A21  = BinaryFile.Create(Chapter8TaskType.FromStream, stream);
                    var _TMP = A21.Where((x, i) => x % 2 == 0).Aggregate(new Point(0, 0), (x, y) => {
                        x.X += 1;
                        x.Y += y;
                        return(x);
                    });
                    var avg   = ((double)_TMP.Y) / _TMP.X;
                    var res21 = A21.Where(x => x > avg);
                    return(new object[] { res21.Count() });
                }


            case TaskNumber.Task22:
                using (Stream stream = assembly.GetManifestResourceStream(resourceName))
                {
                    var A22   = BinaryFile.Create(Chapter8TaskType.FromStream, stream);
                    var index = A22.FindLastIndex(x => BinaryFile.IsSimple(x));

                    var minPrefect = A22.Where(x => BinaryFile.IsPerfect(x)).Min();
                    var index2     = A22.FindIndex(x => x == minPrefect);

                    if (index == -1 || index2 == -1)
                    {
                        return new object[] { 0, 0, 0 }
                    }
                    ;

                    A22.Swap(index, index2);

                    return(new object[] { A22[index], index, minPrefect });
                }

            case TaskNumber.Task23:
                using (Stream stream = assembly.GetManifestResourceStream(resourceName))
                {
                    var A23   = BinaryFile.Create(Chapter8TaskType.FromStream, stream);
                    var res23 = A23.FindLastNegativeSequence().Aggregate(0, (x, y) => x += y);

                    return(new object[] { res23 });
                }

            case TaskNumber.Task24:
                using (Stream stream = assembly.GetManifestResourceStream(resourceName))
                {
                    var A24   = BinaryFile.Create(Chapter8TaskType.FromStream, stream);
                    var res24 = A24.FindFirstSimpleSequenceProduction().Aggregate(0, (x, y) => x *= y);

                    return(new object[] { res24 });
                }

            case TaskNumber.Task25:
                using (Stream stream = assembly.GetManifestResourceStream(resourceName))
                {
                    var A25   = BinaryFile.Create(Chapter8TaskType.FromStream, stream);
                    var res25 = A25.Where(x => BinaryFile.IsSimple(x)).Aggregate(0, (x, y) => x += y);

                    return(new object[] { res25 - A25.Max() });
                }

            default:
                throw new ArgumentOutOfRangeException(number.GetType().Name, number, null);
            }
        }
Exemple #13
0
        public void Task06c()
        {
            const int TaskNumber = 6;

            uMTasks.ActiveTask = TaskNumber;

            switch (uMTasks.Work[TaskNumber].StateNo)
            {
            case
                1:
                //uMTasks.SleepAGN(0.61F);     // 0.4 + TaskNumber*0.01 secondes .. ou n'importe quoi d'autre
                uMTasks.Work[TaskNumber].StateNo = 2;
                break;

            case
                2:
                if ((!uPanel.Choix[uPanel.NCSimulation].Etat) && (uPanel.SupportPhysiqueES) && (uPanel.Choix[uPanel.NCBeckhoff].Etat))
                {
                    uMTasks.Work[TaskNumber].TaskStatus = uMTasks.tPhase.Demandee;
                    uMTasks.Work[TaskNumber].StateNo    = 3;
                }
                else
                {
                    if (uMTasks.Work[TaskNumber].TaskStatus == uMTasks.tPhase.Faite)
                    {
                        uMTasks.Work[TaskNumber].TaskStatus = uMTasks.tPhase.EnAction;

                        ThBeck.BeckhoffDelegate beckhoff_off = new ThBeck.BeckhoffDelegate(ThBeck.Beckhoff);
                        beckhoff_off.BeginInvoke("BC9020_OFF", null, null);     //retour: uMTasks.tPhase.Suspendue!

                        uMTasks.Work[TaskNumber].StateNo = 3;
                    }
                    else
                    {
                        uMTasks.Work[TaskNumber].StateNo = 4;
                    }
                }
                break;

            case
                3:
                switch (uMTasks.Work[TaskNumber].TaskStatus)
                {
                case
                    uMTasks.tPhase.Demandee: uMTasks.Work[TaskNumber].TaskStatus = uMTasks.tPhase.EnAction;

                    ThBeck.BeckhoffDelegate beckhoff = new ThBeck.BeckhoffDelegate(ThBeck.Beckhoff);
                    beckhoff.BeginInvoke("BC9020_ON", null, null);

                    break;

                case
                    uMTasks.tPhase.Faite:         //uMTasks.Work[TaskNumber].StateNo = 20;
                    uPiaget.GoNext();
                    break;

                case
                    uMTasks.tPhase.EnAction: uMTasks.Work[TaskNumber].StateNo = 3;
                    break;

                case
                    uMTasks.tPhase.Suspendue:

                    // uPiaget.GoNext();
                    uMTasks.Work[TaskNumber].StateNo = 4;



                    break;

//                            default: ;
                }


                break;

            case
                4:
                uPiaget.GoState(1000);
                break;

            case



                1000: uPiaget.GoState(1); break;

            default:
            {
                uPanel.MessageErreur = "Task" + TaskNumber.ToString() + " - Line missing: " + uMTasks.Work[TaskNumber].StateNo.ToString();        // uPanel.MessageErreur.Length;
            } break;
            } // end switch
        } // end void Task06c
Exemple #14
0
 private void RefreshTaskScheduler()
 {
     txtCollState.Text = EnableColl ? "已启动" : "已停止";
     txtCollCycle.Text = CollCycle.ToString();
     txtTasksNum.Text  = TaskNumber.ToString();
 }
Exemple #15
0
    {   /*
         * Mouvements PTP - move point to point
         */
        public void Task04c()
        {
            const int TaskNumber = 4;

            uMTasks.ActiveTask = TaskNumber;

            switch (uMTasks.Work[TaskNumber].StateNo)
            {
            //-----------------------------------------------------------------------------------------------
            case
                1:
                if (uMTasks.Work[TaskNumber].TaskStatus == uMTasks.tPhase.Demandee)
                {
                    uMTasks.Work[TaskNumber].StateNo    = 15;
                    uMTasks.Work[TaskNumber].TaskStatus = uMTasks.tPhase.EnAction;
                    uTasks.V4MouvementGalilFait         = false;
                }
                break;

            case
                15: //--------------------------------------------------------------------------------
                if (uPanel.Mouvement.NPas > 0)
                {   // (* demande de pas et calcul de durée *)
                    uMouv.CalculerImpulsions(ref uMouv.PasGauche, ref uMouv.SensGauche, ref uMouv.PasDroit, ref uMouv.SensDroit);

                    if ((!uPanel.Choix[uPanel.NCSimulation].Etat) && (uPanel.Mouvement.NPas > 0))
                    {
                        switch (uPanel.ServoCommande)
                        {
                        case uPanel.tServoCommande.ServoGalilEthernet:
                                    #if (!SimulationOnly)
                            uGalil.LancerMouvementGalil(uPanel.Mouvement);
                                    #endif
                            uTasks.V4MouvementGalilFait = false;
                            break;
                        } // fin switch (uPanel.ServoCommande)
                    }
                }         // fin if Mouvement.NPas>0

                uMTasks.Work[TaskNumber].StateNo = 20;
                break;

            case
                20://--------------------------------------------------------------------------------

                if ((uPanel.Mouvement.Etat == uPanel.tEtat.Fait) || (uPanel.Mouvement.NPas == 0))
                {
                    uMTasks.Work[TaskNumber].StateNo = 50;                                                                                       //(* fin *)
                }
                else
                {
                    uMouv.CalculerImpulsions(ref uMouv.PasGauche, ref uMouv.SensGauche, ref uMouv.PasDroit, ref uMouv.SensDroit);
                    //(*      Writeln(' mouv.NoPasCourant ', Mouvement.NoPasCourant:8,
                    //				              Mouvement.NPas:8);  *)

                    uMTasks.Work[TaskNumber].StateNo = 30;
                }         //(* if *)
                break;

            case
                30:                                                                      //-----------------------------------------------------------------------------
                if (!(uMTasks.Work[uPanel.NTPas].TaskStatus == uMTasks.tPhase.EnAction)) //(*;PasEnCours *) then  (* prˆt pour un step? *)
                {
                    uMTasks.Work[uPanel.NTPas].TaskStatus = uMTasks.tPhase.Demandee;
                    //   (*    writeln(DemandeDUnPas, PasFait, NStepsMouvementPTP:6);  *)
                    uPanel.DeltaTPas = uPanel.DeltaT;
                    uMTasks.Work[TaskNumber].StateNo = 40;
                }
                break;

            case
                40:                                                                //---------------------------------------------------------------------------
                if (uMTasks.Work[uPanel.NTPas].TaskStatus == uMTasks.tPhase.Faite) // (*;PasFait*) then
                {
                    uMTasks.Work[TaskNumber].StateNo = 20;                         //  (* step termin‚ *)
                }
                break;

            case
                50: //---------------------------------------------------------------------------
                    //  (* attente de fin  *)
                if (uPanel.Mouvement.NPas > 0)
                {
                    uMTasks.Work[TaskNumber].StateNo = 60;         //(* 55 ou 59 *)
                }
                else
                {
                    uMTasks.Work[TaskNumber].StateNo = 150;
                }
                break;

            case
                55:                                    //-------------------------------------------------------------------------
                //*****        if  (MouvementFaitN(MoteurGauche))
                uMTasks.Work[TaskNumber].StateNo = 59; //(*** Attention, tester autre axe si *)
                //   (*rotation … gauche de rayon 15 cm environ...*)
                break;

            case
                60: //------------------------------------------------------------------------
                //-- uTasks.V4WaitingForEndOfMotion = true;
                //  MessageErreur=" Waiting for end of motion ";
                uTasks.V8TimeOut = false;
                if (uGalil.TesterFinMouvementDApresErreur)
                {
                    uPiaget.GoState(79);
                }

                else
                {
                    uPiaget.GoState(150);
                }
                break;

            case
                79: //------------------------------------------------------------------------
                uTasks.V8Compteur = 0;
                uPiaget.GoNext();
                break;

            case
                80://------------------------------------------------------------------------
                switch (uPanel.ServoCommande)
                {
                case uPanel.tServoCommande.ServoGalilEthernet:
                                #if (!SimulationOnly)
                    if (uPanel.Choix[uPanel.NCSimulation].Etat == false)
                    {
                        uPiaget.LireErreurGalil();
                    }
                                #endif
                    break;
                }          // end case uPanel.ServoCommande   ********************

                if (uPanel.ModeRHYorOPYlow)
                {
                    uTasks.V8ErreurMaxTemp = uTasks.V8ErreurMax;
                }
                else
                {
                    uTasks.V8ErreurMaxTemp = uTasks.V8ErreurMaxOPY;
                }

                if ((Math.Abs(uTasks.V8ErreurGauche) + Math.Abs(uTasks.V8ErreurDroite)) < uTasks.V8ErreurMaxTemp)          // uPanel.ModeRHYorOPYlow
                {
                    uPanel.MessageErreur = "  Erreurs gauche: " +
                                           uTasks.V8ErreurGauche + "  et droite :" +
                                           uTasks.V8ErreurDroite;
                    uPiaget.WriteErreurGalil();
                    uPiaget.GoState(260);
                }             // ex 180
                else
                {
                    uPiaget.GoState(82);
                }
                break;

            case
                82:  //----------------------------------------------------------------------
                uMTasks.SleepAGN(uTasks.V8Duree / uTasks.V8NCycles);
                break;

            case
                83: //----------------------------------------------------------------------
                uTasks.V8Compteur++;
                if (uTasks.V8Compteur >= uTasks.V8NCycles)
                {
                    uPiaget.GoState(120);
                }
                else
                {
                    uPiaget.GoState(80);
                }
                break;

            case
                120:  //----------------------------------------------------------------------
                uTasks.V8TimeOut  = true;
                uTasks.V8Compteur = 0;

                if (uPanel.ServoCommande == uPanel.tServoCommande.ServoGalilEthernet)
                {
                            #if (!SimulationOnly)
                    uGalil.ExecuterCommandeGalil("AB" + uTasks.ACR);              //     Abort
                    uTasks.warningAnsiString();
                    uGalil.ResetPositionGalil();
                            #endif
                    //    UtiliserCoordonneesAbsolues=false;  // suite en relatif
                }

                uPiaget.GoState(260);                // ex 180
                break;

            case
                150:                                               //----------------------------------------------------------------------
                uMTasks.SleepAGN(uPanel.Mouvement.NPas * 0.00015); //(*********  Attente pour essais ...  ******)
                break;

            case
                151:                  //----------------------------------------------------------------------
                uPiaget.GoState(260); // ex 180
                break;

            case
                260://----------------------------------------------------------------------
                uTasks.V4WaitingForEndOfMotion = false;
                uTasks.V4MouvementGalilFait    = true;

                if (uMouv.IndicePileMouvement > 0)
                {
                    //uMouv.PrendreMouvementSurPile(ref uPanel.Mouvement, ref uMouv.IndicePileMouvement);
                    uMouv.PrendreMouvementSurPile();
                    uMTasks.Work[TaskNumber].StateNo = 15;
                }
                else
                {
                    uMTasks.Work[TaskNumber].TaskStatus = uMTasks.tPhase.Faite;
                    uMTasks.Work[TaskNumber].StateNo    = 1;
                }         //(* if *)
                break;

            //-----------------------------------------------------------------------------------------------

            /*
             * case
             *  1:
             *  uMTasks.SleepAGN(0.61F);     // 0.4 + TaskNumber*0.01 secondes .. ou n'importe quoi d'autre
             *  break;
             * case
             *
             *  2:
             *  uPiaget.uPiaget.GoState(1000);
             *  break;
             * case
             *  1000: uPiaget.uPiaget.GoState(1); break;
             */
            default:
            {
                uPanel.MessageErreur = "Task" + TaskNumber.ToString() + " - Line missing: " + uMTasks.Work[TaskNumber].StateNo.ToString();            // uPanel.MessageErreur.Length;
            } break;
            } // end switch (uMTasks.Work[TaskNumber].StateNo)
        } // end void Task04c
Exemple #16
0
 public string toString()
 {
     return("Task " + TaskNumber.ToString());
 }
Exemple #17
0
        public void Task05c()
        {
            const int TaskNumber = 5;

            uMTasks.ActiveTask = TaskNumber;


            SpeechSynthesizer reader = new SpeechSynthesizer();//**for speak Code 016.02.29


            switch (uMTasks.Work[TaskNumber].StateNo)
            {
            case

                1:
                SleepAGN(0.45F);         // 0.4 + TaskNumber*0.01 secondes .. ou n'importe quoi d'autre
                break;

            case

                2: SleepAGN(1); break;

            case
                3: SleepAGN(1); break;

            case
                4: SleepAGN(1); break;

            case
                5: SleepAGN(1); break;

            case
                6: SleepAGN(1); break;

            case
                7: GoState(1000); break;

            ////////////////////////////////////////// CASE 900 //////////////////////////////////////////
            case
                900:

                /*    for (int i = 1; i <= 2; i++)
                 *  {
                 *    //  Console.WriteLine(i);
                 *  }
                 */

                // Cliquer sur un bouton de l'interface
                CliquerBouton("bSO4");
                //        CliquerBouton("bLaserC");

                /*
                 * uMouv.P0Robot.x = 20;
                 * uMouv.P0Robot.y = 30;
                 * uMouv.P0Robot.ThetaRobotDegres = 90;
                 */
                reader.Dispose();
                reader = new SpeechSynthesizer();
                reader.SpeakAsync("Hello,I am ready !");
                //          string t="Hello,I am ready !";



                // frm2.testlabel.Text = ("Hello,I am ready !");
                GoNext();
                break;



            ////////////////////////////////////////// END OF CASE 900 //////////////////////////////////////////


            case
                901:

                break;

            case
                1000: GoState(1); break;

            default:
            {
                uPanel.MessageErreur = "Task" + TaskNumber.ToString() + " - Line missing: " + uMTasks.Work[TaskNumber].StateNo.ToString();        // uPanel.MessageErreur.Length;
            } break;
            } // end switch
        } // end void Task05c
Exemple #18
0
        /*
         * Lire clavier - read keyboard
         */
        public void Task03c()
        {
            const int TaskNumber = 3;

            uMTasks.ActiveTask = TaskNumber;

            switch (uMTasks.Work[TaskNumber].StateNo)
            {
            case
                1:     uMTasks.SleepAGN(0.03F);  // s
                break;

            case
                2:
                //     extern void ToggleEtatSI(int NS);
                if ((uPanel.CarLu == 'd') || (uPanel.CarLu == 'D'))
                {
                    ;                                                 // ToggleEtatSI(1);//{SignauxIn[NSDemarrer].EtatVF  = true ;}
                }
                if (uPanel.CarLu == 'l')
                {
                    uParam.LireParametres();
                }
                if (uPanel.CarLu == 'n')
                {
                    uPanel.LireFichierReserve = true;
                    uParam.LireParametres();
                }
                ;
                if (uPanel.CarLu == 'h')
                {
                    uParam.SauverParametres();
                }
                //    if (CarLu=='r'){Initialise=false;}
                if (uPanel.CarLu == 's')
                {
                    uPanel.Choix[uPanel.NCSimulation].Etat = !uPanel.Choix[uPanel.NCSimulation].Etat;
                    FPiaget.CheckSupportPhysiqueES();
                }
                if (uPanel.CarLu == 'a')
                {
                    uPanel.Choix[uPanel.NCMusique].Etat = !uPanel.Choix[uPanel.NCMusique].Etat;
                }

                if ((uPanel.CarLu == 'y') || (uPanel.CarLu == 'Y'))
                {
                    uMTasks.Work[uPanel.NTVision].TaskStatus = uMTasks.tPhase.Demandee;
                }

                if (uPanel.CarLu == 'z')
                {
                    uPanel.Choix[uPanel.NCStepSound].Etat = !uPanel.Choix[uPanel.NCStepSound].Etat;
                }

                if (uPanel.CarLu == 'b')
                {
                    uPanel.Choix[uPanel.NCVisionContinue].Etat = !uPanel.Choix[uPanel.NCVisionContinue].Etat;
                }

                if ((uPanel.CarLu == 'c') || (uPanel.CarLu == 'C'))
                {
                    uPanel.Choix[uPanel.NCCalibration].Etat = !uPanel.Choix[uPanel.NCCalibration].Etat;
                }

                if ((uPanel.CarLu == '+') || (uPanel.CarLu == '-'))
                {
                    uPanel.DeltaTPas = 1.5F;
                    uMouv.PasGauche  = true; uMouv.SensGauche = (uPanel.CarLu == '+');
                    uMouv.PasDroit   = true; uMouv.SensDroit = (uPanel.CarLu == '+');
                    uMTasks.Work[uPanel.NTPas].TaskStatus = uMTasks.tPhase.Demandee;
                }

                uPiaget.GoNext();
                break;

            case
                3:
                if (uPanel.Done1)
                {
                    if ((uPanel.CarLu != 'q') && (uPanel.CarLu != ','))
                    {
                        uPanel.Done1 = false;
                        /* if (FPiaget.ActiveForm != null) tBControl.Text = "";*/
                    }// Form1->MControl->Lines->Text = "                                ";
                }
                if (uPanel.CarLu == 'q')
                {
                    if (uPanel.Done1 == true)
                    {
                        FPiaget.ActiveForm.Close();                          // Controls["BQuit"];
                    }
                    else
                    {
                        uPanel.Done1 = true;
                        ///*if (FPiaget.ActiveForm != null) */FPiaget.ActiveForm.Controls["*/tBControl"].Text = "Voulez-vous vraiment quitter (q) ?";
                    }
                }
                uPiaget.GoNext();
                break;

            case
                4:
                if ((uPanel.CarLu == '*') || (uPanel.CarLu == '/'))
                {
                    uPanel.Mouvement.NPas        = 50;
                    uPanel.Mouvement.VitesseMaxM = uPanel.VitesseMaxCourante;
                    uPanel.Mouvement.Etat        = uPanel.tEtat.AFaire;
                    if (uPanel.CarLu == '*')
                    {
                        uPanel.Mouvement.IncrGauche = 1;
                        uPanel.Mouvement.IncrDroit  = 1;
                    }
                    else
                    {
                        uPanel.Mouvement.IncrGauche = -1;
                        uPanel.Mouvement.IncrDroit  = -1;
                    }  // (* if *)
                    uMTasks.Work[uPanel.NTMouvementPTP].TaskStatus = uMTasks.tPhase.Demandee;
                }      // (* '*', '/'   *)

                uPiaget.GoNext();
                break;

            case
                5: /*
                    * Deplacement relatif
                    */
                switch (uPanel.CarLu)
                {
                case
                    't':        // (* avance 10 cm *)
                    if (uPanel.Choix[uPanel.NCCalibration].Etat)
                    {
                        uMouv.P0RobotFutur.ds = uPanel.CalibrationDs;             //(*DistancePourCalibration*)
                    }
                    else
                    {
                        uMouv.P0RobotFutur.ds = 10;
                    }
                    uMouv.LancerMouvement(uPanel.tModeDeMouvement.MDMds, uMouv.P0RobotFutur);
                    // (*  t *)
                    break;

                //Code 016.02.24

                /*case
                 *
                 * 'T':   // (* pivote … gauche de 22.5 degr‚s autour du bord gauche *)
                 *  uMouv.P0RobotFutur.RayonTrajectoire=-15; //(* cm; <> DemiEcartRouesExt*);
                 *  if (uPanel.Choix[uPanel.NCCalibration].Etat)
                 *      uMouv.P0RobotFutur.AngleTrajectoire = uPanel.CalibrationAngle;
                 *  else
                 *      uMouv.P0RobotFutur.AngleTrajectoire=23 ;    // (* 45 div 2 *)
                 *  uMouv.LancerMouvement(uPanel.tModeDeMouvement.RotExc, uMouv.P0RobotFutur);
                 *  break;*/

                case

                    'T':                                      // (* pivote … gauche de 22.5 degr‚s autour du bord gauche *)
                    uMouv.P0RobotFutur.RayonTrajectoire = 15; //(* cm; <> DemiEcartRouesExt*);

                    if (uPanel.Choix[uPanel.NCCalibration].Etat)
                    {
                        uMouv.P0RobotFutur.AngleTrajectoire = -uPanel.CalibrationAngle;
                    }

                    else
                    {
                        uMouv.P0RobotFutur.AngleTrajectoire = -23;            // (* 45 div 2 *)
                    }
                    uMouv.LancerMouvement(uPanel.tModeDeMouvement.RotExc, uMouv.P0RobotFutur);
                    break;



                case
                    'v':      //   (* recule 10 cm *)
                    if (uPanel.Choix[uPanel.NCCalibration].Etat)
                    {
                        uMouv.P0RobotFutur.ds = -uPanel.CalibrationDs;
                    }
                    else
                    {
                        uMouv.P0RobotFutur.ds = -10;
                    }
                    uMouv.LancerMouvement(uPanel.tModeDeMouvement.MDMds, uMouv.P0RobotFutur);
                    //   (* V *)
                    break;


                /*  case
                 * 'V':   // (* pivote arriŠre droite de 22.5 degr‚s autour du bord droit *)
                 *    uMouv.P0RobotFutur.RayonTrajectoire = 15; //(* cm; <> DemiEcartRouesExt*);
                 *    if (uPanel.Choix[uPanel.NCCalibration].Etat)
                 *        uMouv.P0RobotFutur.AngleTrajectoire = uPanel.CalibrationAngle;
                 *    else
                 *        uMouv.P0RobotFutur.AngleTrajectoire = 23;   //  (* 45 div 2 *)
                 *    uMouv.LancerMouvement(uPanel.tModeDeMouvement.RotExc, uMouv.P0RobotFutur);
                 *    //   (* V *)
                 *    break;  */
                case
                    'V':                                       // (* pivote arriŠre droite de 22.5 degr‚s autour du bord droit *)
                    uMouv.P0RobotFutur.RayonTrajectoire = -15; //(* cm; <> DemiEcartRouesExt*);
                    if (uPanel.Choix[uPanel.NCCalibration].Etat)
                    {
                        uMouv.P0RobotFutur.AngleTrajectoire = -uPanel.CalibrationAngle;
                    }
                    else
                    {
                        uMouv.P0RobotFutur.AngleTrajectoire = -23;           //  (* 45 div 2 *)
                    }
                    uMouv.LancerMouvement(uPanel.tModeDeMouvement.RotExc, uMouv.P0RobotFutur);
                    //   (* V *)
                    break;

                /*case
                 * 'f':  //  (* tourne … gauche de 22.5 degr‚s *)
                 *  if (uPanel.Choix[uPanel.NCCalibration].Etat)
                 *      uMouv.P0RobotFutur.ThetaRobotDegres =uMouv.P0Robot.ThetaRobotDegres + uPanel.CalibrationAngle;
                 *  else
                 *      uMouv.P0RobotFutur.ThetaRobotDegres = Convert.ToInt32(uMouv.P0Robot.ThetaRobotDegres + 22.5);   //  (* 45 div 2 *)
                 *  uMouv.LancerMouvement(uPanel.tModeDeMouvement.Rot, uMouv.P0RobotFutur);
                 *  //   (* f *)
                 *  break;  */

                case
                    'f':      //  (* tourne … gauche de 22.5 degr‚s *)
                    if (uPanel.Choix[uPanel.NCCalibration].Etat)
                    {
                        uMouv.P0RobotFutur.ThetaRobotDegres = uMouv.P0Robot.ThetaRobotDegres - uPanel.CalibrationAngle;
                    }
                    else
                    {
                        uMouv.P0RobotFutur.ThetaRobotDegres = Convert.ToInt32(uMouv.P0Robot.ThetaRobotDegres - 22.5);           //  (* 45 div 2 *)
                    }
                    uMouv.LancerMouvement(uPanel.tModeDeMouvement.Rot, uMouv.P0RobotFutur);
                    //   (* f *)
                    break;

                /*      case
                 *
                 * 'F':  //   (* pivote arrière gauche de 22.5 degrés autour du bord gauche *)
                 *      uMouv.P0RobotFutur.RayonTrajectoire=-15; // (* cm; <> DemiEcartRouesExt*);
                 *      if (uPanel.Choix[uPanel.NCCalibration].Etat)
                 *          uMouv.P0RobotFutur.AngleTrajectoire = -uPanel.CalibrationAngle;
                 *      else
                 *          uMouv.P0RobotFutur.AngleTrajectoire = -23; // (* 45 div 2 *)
                 *      uMouv.LancerMouvement(uPanel.tModeDeMouvement.RotExc, uMouv.P0RobotFutur);
                 *      //  (* F *)
                 *      break;*/
                case
                    'F':                                      //   (* pivote arrière gauche de 22.5 degrés autour du bord gauche *)
                    uMouv.P0RobotFutur.RayonTrajectoire = 15; // (* cm; <> DemiEcartRouesExt*);
                    if (uPanel.Choix[uPanel.NCCalibration].Etat)
                    {
                        uMouv.P0RobotFutur.AngleTrajectoire = uPanel.CalibrationAngle;
                    }
                    else
                    {
                        uMouv.P0RobotFutur.AngleTrajectoire = 23;         // (* 45 div 2 *)
                    }
                    uMouv.LancerMouvement(uPanel.tModeDeMouvement.RotExc, uMouv.P0RobotFutur);
                    //  (* F *)
                    break;

                case
                    'g':      //   (* tourne … droite de 22.5 degrés *)
                    if (uPanel.Choix[uPanel.NCCalibration].Etat)
                    {
                        uMouv.P0RobotFutur.ThetaRobotDegres = uMouv.P0Robot.ThetaRobotDegres + uPanel.CalibrationAngle;         //(* 45 div 2 *)
                    }
                    else
                    {
                        uMouv.P0RobotFutur.ThetaRobotDegres = (float)(uMouv.P0Robot.ThetaRobotDegres + 22.5);         // (* 45 div 2 *)
                    }
                    uMouv.LancerMouvement(uPanel.tModeDeMouvement.Rot, uMouv.P0RobotFutur);
                    //   (* g *)
                    break;

                //Code 016.02.24

                /* case
                 * 'G':  //   (* pivote … droite de 22.5 degrés autour du bord droit *)
                 *   uMouv.P0RobotFutur.RayonTrajectoire = 15; //(* cm; <> DemiEcartRouesExt*);
                 *   if (uPanel.Choix[uPanel.NCCalibration].Etat)
                 *       uMouv.P0RobotFutur.AngleTrajectoire = -uPanel.CalibrationAngle;
                 *   else
                 *       uMouv.P0RobotFutur.AngleTrajectoire = -23;  //(* 45 div 2 *)
                 *   uMouv.LancerMouvement(uPanel.tModeDeMouvement.RotExc, uMouv.P0RobotFutur);
                 *   //   (* G *)
                 *   break;  */

                case
                    'G':                                       //   (* pivote … droite de 22.5 degrés autour du bord droit *)
                    uMouv.P0RobotFutur.RayonTrajectoire = -15; //(* cm; <> DemiEcartRouesExt*);
                    if (uPanel.Choix[uPanel.NCCalibration].Etat)
                    {
                        uMouv.P0RobotFutur.AngleTrajectoire = +uPanel.CalibrationAngle;
                    }
                    else
                    {
                        uMouv.P0RobotFutur.AngleTrajectoire = +23;          //(* 45 div 2 *)
                    }
                    uMouv.LancerMouvement(uPanel.tModeDeMouvement.RotExc, uMouv.P0RobotFutur);
                    //   (* G *)
                    break;

                //  'i', 'I':  //   (*    va au centre  *)
                case  'i':          //   (*    va au centre  *)
                case  'I':          // no break, same case
                    uMouv.P0RobotFutur.x = 100;
                    uMouv.P0RobotFutur.y = 150;
                    uMouv.P0RobotFutur.ThetaRobotDegres = 90;
                    uMouv.LancerMouvement(uPanel.tModeDeMouvement.RXY, uMouv.P0RobotFutur);
                    //   (* i, I *)
                    break;
                }        //End switch (uPanel.CarLu)
                uPiaget.GoNext();
                break;

            case
                6: if (uPanel.CarLu == ' ')
                {
                    // à compléter *******  uTask05i.V5CarLu = ' ';
                    uPanel.V5CarLu = ' ';
                }
                uPiaget.GoNext();
                break;

            case
                7:  if (uPanel.CarLu == 'r')
                {
                    uPiaget.FermerLiaisons();
                    uPanel.InitialiserLaser = false;
                    uPiaget.GoNext();
                }
                else
                {
                    uPiaget.GoState(10);
                }
                break;

            case
                8:
                uMTasks.SleepAGN(1);      // délai pour reset
                break;

            case
                9:
                uPanel.Initialise = false;      // fin du  reset
                uPiaget.GoNext();
                break;

            case
                10:
                uPanel.CarLu = ',';

                uPanel.InteractionSouhaitee = true;
                //   Work[TaskNumber].StateNo=1;
                uPiaget.GoState(1);
                break;

            //
            default:
            {
                uPanel.MessageErreur = "Task" + TaskNumber.ToString() + " - Line missing: " + uMTasks.Work[TaskNumber].StateNo.ToString();        // uPanel.MessageErreur.Length;
            } break;
            } // end switch (uMTasks.Work[TaskNumber].StateNo)
        } // end void Task03c()
Exemple #19
0
        //public uPanel uPanneauAux = new uPanel();
        public void Task08c()
        {
            const int TaskNumber = 8;

            uMTasks.ActiveTask = TaskNumber;

            switch (uMTasks.Work[TaskNumber].StateNo)
            {
            case

                1:

                if ((uMTasks.Work[TaskNumber].TaskStatus == uMTasks.tPhase.Demandee) && uPanel.Phase != uPanel.tPhase.GameOver)
                {
                    uMTasks.Work[TaskNumber].TaskStatus           = uMTasks.tPhase.EnAction;
                    uMTasks.Work[TaskNumber].V4MouvementGalilFait = false;
                    uMouv.CinematiqueInverse();

                    switch (uPanel.Mouvement.ModeDeMouvement)
                    {
                    case uPanel.tModeDeMouvement.XY:
                        uMTasks.Work[TaskNumber].StateNo = 20;
                        break;

                    case uPanel.tModeDeMouvement.MDMds:
                        uMTasks.Work[TaskNumber].StateNo = 40;             // 20
                        break;

                    case uPanel.tModeDeMouvement.Rot:
                        uMTasks.Work[TaskNumber].StateNo = 50;             // 20
                        break;

                    case uPanel.tModeDeMouvement.RotExc:
                        uMTasks.Work[TaskNumber].StateNo = 58; //  15
                        break;
                    }                                          // fin switch  uPanel.Mouvement.ModeDeMouvement
                    if (uPanel.Mouvement.ModeDeMouvement == uPanel.tModeDeMouvement.RotExc)
                    {
                        uMTasks.Work[TaskNumber].StateNo = 15;
                    }
                    else
                    {
                        uMTasks.Work[TaskNumber].StateNo = 20;
                    }
                }
                else
                {
                    uPiaget.GoNext();
                }
                break;

            case

                2:
                uMTasks.SleepAGN(0.05F);
                //uPiaget.GoState(1000);
                break;

            //uPanel.ServoCommande
            //uPanel.tServoCommande.ServoGalilEthernet
            case
                3:
                switch (uPanel.ServoCommande)
                {
                case uPanel.tServoCommande.ServoGalilEthernet:
                        #if (!SimulationOnly)
                    if (uPanel.Choix[uPanel.NCSimulation].Etat == false)
                    {
                        uPiaget.LireErreurGalil();
                    }
                        #endif
                    break;
                }  // end case Servocommande   ********************
                uPanel.MessageErreur = "  Erreurs gauche: " + uTasks.V8ErreurGauche.ToString() +
                                       "  et droite : " + uTasks.V8ErreurDroite.ToString();
                uTasks.V8Compteur++;
                if (uTasks.V8Compteur >= uTasks.V8NCycles)
                {
                    uTasks.V8TimeOut            = false;
                    uTasks.V4MouvementGalilFait = true;
                }
                uPiaget.GoState(1);
                break;

            case
                15:
                uMouv.CalculerMouvementCourbe();
                uPiaget.GoState(60);
                break;

            case
                20:
                uMouv.CalculerMouvementDroit();

                //uMouv.EmpilerMouvement(uPanel.Mouvement, uMouv.IndicePileMouvement);
                uMouv.EmpilerMouvement();

                uMTasks.Work[TaskNumber].StateNo = 50;

                break;

            case
                40:  // MDMds
                uMouv.CalculerMouvementDroit();
                uMTasks.Work[TaskNumber].StateNo = 60;

                break;

            case
                50:                               //  Rot ou partie Rot de XY
                uPanel.Mouvement.ModeDeMouvement = uPanel.tModeDeMouvement.Rot;
                uMouv.CalculerMouvementRotatif(); //(* fait en premier *)
                uMTasks.Work[TaskNumber].StateNo = 60;
                break;

            case
                58:  // RotExc
                uMouv.CalculerMouvementCourbe();
                uPiaget.GoState(60);
                break;

            case
                60:                                                                               // lancement de mouvement
                if (!(uMTasks.Work[uPanel.NTMouvementPTP].TaskStatus == uMTasks.tPhase.EnAction)) // (*EnMouvementPTP*)
                //  (* prˆt pour un mouvement PTP? *)
                {                                                                                 //	  (*   impulsions *)
                    uMTasks.Work[uPanel.NTMouvementPTP].TaskStatus = uMTasks.tPhase.Demandee;
                    //  (*    writeln(DemandeDUnPas, PasFait, NStepsMouvementPTP:6);  *)
                    uMTasks.Work[TaskNumber].StateNo = 70;
                }
                break;

            case
                70: if (uMTasks.Work[uPanel.NTMouvementPTP].TaskStatus == uMTasks.tPhase.Faite)
                {
                    // Mouvement.Etat=Fait;
                    uMTasks.Work[TaskNumber].StateNo = 72;      //  (* mvmt PTP terminé *)
                }
                break;

            case
                72: uPiaget.GoState(180);
                break;

            case
                180:
                uMouv.MiseAJourPosition();
                uPanel.Mouvement.Etat = uPanel.tEtat.Fait;
                uMTasks.Work[TaskNumber].TaskStatus = uMTasks.tPhase.Faite;
                uMTasks.Work[TaskNumber].StateNo    = 1;
                break;

            case

                1000: uPiaget.GoState(1); break;

            default:
            {
                uPanel.MessageErreur = "Task" + TaskNumber.ToString() + " - Line missing: " + uMTasks.Work[TaskNumber].StateNo.ToString();        // uPanel.MessageErreur.Length;
            } break;
            } // end switch
        } // end void Task08c