Пример #1
0
        public bool SaveMovsAndPositions()
        {
            bool succes = true;

            succes &= PredefPosition.SerializeToXml(this.leftPredefPos.Values.ToArray(), this.fileLeftPredefPos);
            succes &= PredefPosition.SerializeToXml(this.rightPredefPos.Values.ToArray(), this.fileRightPredefPos);
            succes &= PredefMovement.SerializeToXml(this.leftPredefMovs.Values.ToArray(), this.fileLeftMovements);
            succes &= PredefMovement.SerializeToXml(this.rightPredefMovs.Values.ToArray(), this.fileRightMovements);

            return(succes);
        }
Пример #2
0
        public bool AddPredefinedMovement(string name)
        {
            PredefMovement pm;

            if (this.rightPredefMovs.ContainsKey(name))
            {
                return(false);
            }
            else
            {
                pm = new PredefMovement(name);
                this.rightPredefMovs.Add(name, pm);
                return(true);
            }
        }
Пример #3
0
        public bool LoadMovsAndPositions()
        {
            PredefPosition[] tempPos = PredefPosition.DeserializeFromXml(this.fileLeftPredefPos);
            if (tempPos != null)
            {
                foreach (PredefPosition pp in tempPos)
                {
                    if (this.leftPredefPos.ContainsKey(pp.Name))
                    {
                        TextBoxStreamWriter.DefaultLog.WriteLine("Predefined Position repeated name: " + pp.Name);
                    }
                    else
                    {
                        this.leftPredefPos.Add(pp.Name, pp);
                    }
                }
            }
            else
            {
                TextBoxStreamWriter.DefaultLog.WriteLine("Cannot load left predefined positions from file: " + this.fileLeftPredefPos);
            }

            tempPos = PredefPosition.DeserializeFromXml(this.fileRightPredefPos);
            if (tempPos != null)
            {
                foreach (PredefPosition pp in tempPos)
                {
                    if (this.rightPredefPos.ContainsKey(pp.Name))
                    {
                        TextBoxStreamWriter.DefaultLog.WriteLine("Predefined Position repeated name: " + pp.Name);
                    }
                    else
                    {
                        this.rightPredefPos.Add(pp.Name, pp);
                    }
                }
            }
            else
            {
                TextBoxStreamWriter.DefaultLog.WriteLine("Cannot load right predefined positions from file: " + this.fileLeftPredefPos);
            }

            PredefMovement[] tempMovs = PredefMovement.DeserializeFromXml(this.fileLeftMovements);

            if (tempMovs != null)
            {
                foreach (PredefMovement pm in tempMovs)
                {
                    if (this.leftPredefMovs.ContainsKey(pm.Name))
                    {
                        TextBoxStreamWriter.DefaultLog.WriteLine("Predefined Movement repeated name: " + pm.Name);
                    }
                    else
                    {
                        List <int> toErase = new List <int>();

                        for (int i = 0; i < pm.Positions.Count; i++)
                        {
                            if (this.leftPredefPos.ContainsKey(pm.Positions[i].Name))
                            {
                                pm.Positions[i] = this.leftPredefPos[pm.Positions[i].Name];
                            }
                            else
                            {
                                TextBoxStreamWriter.DefaultLog.WriteLine("leftArm: PredefPosition " + pm.Positions[i].Name + " on PredefMov " + pm.Name + " couldn´t be found on current PredefPos list");
                                toErase.Add(i);
                                //pm.Positions.RemoveAt(i);
                            }
                        }
                        int count = 0;
                        foreach (int num in toErase)
                        {
                            pm.Positions.RemoveAt(num - count);
                            count++;
                        }

                        this.leftPredefMovs.Add(pm.Name, pm);
                    }
                }
            }
            else
            {
                TextBoxStreamWriter.DefaultLog.WriteLine("Cannot load left predefined movements from file: " + this.fileLeftMovements);
            }

            /*
             * if(this.leftPredefMovs!=null)
             *      foreach(PredefMovement pm in (PredefMovement[])this.leftPredefMovs)
             *              foreach (PredefPosition pp in pm.Positions)
             *              {
             *                      if (this.leftPredefPos.ContainsKey(pp.Name))
             *                              pp = this.leftPredefPos[pp.Name];
             *                      else
             *                      {
             *                              TextBoxStreamWriter.DefaultLog.WriteLine("leftArm: PredefPosition " + pp.Name + " on PredefMov " + pm.Name + " couldn´t be found on current PredefPos list");
             *                              pm.Positions.Remove(pp.Name);
             *                      }
             *              }
             */

            tempMovs = PredefMovement.DeserializeFromXml(this.fileRightMovements);
            if (tempMovs != null)
            {
                foreach (PredefMovement pm in tempMovs)
                {
                    if (this.rightPredefMovs.ContainsKey(pm.Name))
                    {
                        TextBoxStreamWriter.DefaultLog.WriteLine("Predefined Movement repeated name: " + pm.Name);
                    }
                    else
                    {
                        List <int> toErase = new List <int>();

                        for (int i = 0; i < pm.Positions.Count; i++)
                        {
                            if (this.rightPredefPos.ContainsKey(pm.Positions[i].Name))
                            {
                                pm.Positions[i] = this.rightPredefPos[pm.Positions[i].Name];
                            }
                            else
                            {
                                TextBoxStreamWriter.DefaultLog.WriteLine("rightArm: PredefPosition " + pm.Positions[i].Name + " on PredefMov " + pm.Name + " couldn´t be found on current PredefPos list");
                                toErase.Add(i);
                                //pm.Positions.RemoveAt(i);
                            }
                        }
                        int count = 0;
                        foreach (int num in toErase)
                        {
                            pm.Positions.RemoveAt(num - count);
                            count++;
                        }
                        this.rightPredefMovs.Add(pm.Name, pm);
                    }
                }
            }
            else
            {
                TextBoxStreamWriter.DefaultLog.WriteLine("Cannot load right predefined movements from file: " + this.fileRightMovements);
            }

            /*
             * if (this.righttPredefMovs != null)
             *      foreach (PredefMovement pm in this.rightPredefMovs)
             *              foreach (PredefPosition pp in pm.Positions)
             *              {
             *                      if (this.rightPredefPos.ContainsKey(pp.Name))
             *                              pp = this.rightPredefPos[pp.Name];
             *                      else
             *                      {
             *                              TextBoxStreamWriter.DefaultLog.WriteLine("rightArm: PredefPosition " + pp.Name + " on PredefMov " + pm.Name + " couldn´t be found on current PredefPos list");
             *                              pm.Positions.Remove(pp.Name);
             *                      }
             *              }
             */
            this.OnFilesLoaded(this.status);

            return(true);
        }