Example #1
0
        private void DrawLearningDataSetButton_Click(object sender, RoutedEventArgs e)
        {
            if (data != null)
            {
                ValuesA.Clear();
                ValuesB.Clear();
                ValuesC.Clear();
                ValuesD.Clear();

                data.ForEach(i =>
                {
                    switch (i.ObjClass)
                    {
                    case 0: ValuesA.Add(new ObservablePoint(i.Attributes[0], i.Attributes[1])); break;

                    case 1: ValuesB.Add(new ObservablePoint(i.Attributes[0], i.Attributes[1])); break;
                    }
                });

                stolp.stolp(data, int.Parse(deltaTextBox.Text), int.Parse(l0TextBox.Text)).ForEach(i =>
                {
                    ValuesC.Add(new ObservablePoint(i.Attributes[0], i.Attributes[1]));
                });

                List <Data> standarts = new List <Data>();
                standarts.AddRange(stolp.findStandard(stolp.emissionСutOff(data, int.Parse(deltaTextBox.Text))));
                //standarts.AddRange(stolp.findStandard(data));

                standarts.ForEach(i =>
                {
                    ValuesD.Add(new ObservablePoint(i.Attributes[0], i.Attributes[1]));
                });
            }
        }
Example #2
0
        private void LocaleRecette()
        {
            foreach (Registre registre in Registres)
            {
                switch ((REGISTRE)Enum.Parse(typeof(REGISTRE), registre.Nom))
                {
                case REGISTRE.ConsigneA:
                {
                    ushort[] readConsigneA = ModBusMaster.ReadHoldingRegisters(Cst_SlaveNb, Convert.ToUInt16(registre.AdresseDebut), Cst_NbRedresseurs);
                    ConsigneA = readConsigneA[0];
                }
                break;

                case REGISTRE.ConsigneV:
                {
                    ushort[] readConsigneV = ModBusMaster.ReadHoldingRegisters(Cst_SlaveNb, Convert.ToUInt16(registre.AdresseDebut), Cst_NbRedresseurs);
                    ConsigneV = readConsigneV[0];
                    if (ValuesA.Count < 500)
                    {
                        ValuesA.Add(ConsigneV);
                    }
                    else
                    {
                        for (int i = 0; i < ValuesA.Count - 1; i++)
                        {
                            ValuesA[i] = ValuesA[i + 1];
                        }
                        ValuesA[ValuesA.Count - 1] = ConsigneV;
                    }
                }
                break;

                case REGISTRE.LectureA:
                {
                    ushort[] readLectureA = ModBusMaster.ReadHoldingRegisters(Cst_SlaveNb, Convert.ToUInt16(registre.AdresseDebut), Cst_NbRedresseurs);
                    LectureA = readLectureA[0];
                    if (ValuesB.Count < 500)
                    {
                        ValuesB.Add(ConsigneA);
                    }
                    else
                    {
                        for (int i = 0; i < ValuesA.Count - 1; i++)
                        {
                            ValuesB[i] = ValuesB[i + 1];
                        }
                        ValuesB[ValuesA.Count - 1] = ConsigneA;
                    }
                }
                break;

                case REGISTRE.LectureV:
                {
                    ushort[] readLectureV = ModBusMaster.ReadHoldingRegisters(Cst_SlaveNb, Convert.ToUInt16(registre.AdresseDebut), Cst_NbRedresseurs);
                    LectureV = readLectureV[0];
                }
                break;
                }
            }
        }
Example #3
0
        private void ClassificateButton_Click(object sender, RoutedEventArgs e)
        {
            if (data != null)
            {
                ValuesA.Clear();
                ValuesB.Clear();
                ValuesC.Clear();
                ValuesD.Clear();

                List <Data> newData      = new List <Data>();
                List <Data> omega        = stolp.stolp(data, int.Parse(deltaTextBox.Text), int.Parse(l0TextBox.Text));
                int         maxItemCount = int.Parse(count.Text);

                for (int i = 0; i < maxItemCount; i++)
                {
                    for (int j = 0; j < maxItemCount; j++)
                    {
                        Data obj = new Data(new double[] { i / (double)maxItemCount, j / (double)maxItemCount }, -1);
                        obj.ObjClass = stolp.classifier(omega, obj);
                        switch (obj.ObjClass)
                        {
                        case 0: ValuesA.Add(new ObservablePoint(obj.Attributes[0], obj.Attributes[1])); break;

                        case 1: ValuesB.Add(new ObservablePoint(obj.Attributes[0], obj.Attributes[1])); break;
                        }
                        newData.Add(obj);
                    }
                }

                stolp.stolp(data, int.Parse(deltaTextBox.Text), int.Parse(l0TextBox.Text)).ForEach(i =>
                {
                    ValuesC.Add(new ObservablePoint(i.Attributes[0], i.Attributes[1]));
                });

                List <Data> standarts = new List <Data>();
                //standarts.AddRange(stolp.findStandard(data));
                standarts.AddRange(stolp.findStandard(stolp.emissionСutOff(data, int.Parse(deltaTextBox.Text))));
                standarts.ForEach(i =>
                {
                    ValuesD.Add(new ObservablePoint(i.Attributes[0], i.Attributes[1]));
                });
            }
            else
            {
                MessageBox.Show("Сперва Выберите Файл c обучающей выборкой");
            }

            /*data.ForEach(i =>
             * {
             *  switch (i.ObjClass)
             *  {
             *      case 0: ValuesA.Add(new ObservablePoint(i.Attributes[0], i.Attributes[1])); break;
             *      case 1: ValuesB.Add(new ObservablePoint(i.Attributes[0], i.Attributes[1])); break;
             *  }
             * });
             *
             */
        }
Example #4
0
        public void CleanOnClick(object sender, RoutedEventArgs e)
        {
            Kars.MainWindow.List_dz_foarm.Clear();
            Kars.MainWindow.List_kars_x.Clear();
            Kars.MainWindow.List_kars_y.Clear();
            ValuesB.Clear();
            ValuesE.Clear();
            Value_Centr.Clear();
            Listbox_dz_x.Items.Clear();
            Listbox_dz.Items.Clear();
            Listbox_dz_y.Items.Clear();
            Value_Kars.Clear();
            List_XY.Clear();
            count       = 0;
            DataContext = this;

            ListBoxLog.Items.Add("Очистка!");
        }
Example #5
0
        private void RemoteRecette()
        {
            if (SelectedRecette != null) //Consigne = coefDirect*t + consigneD
            {
                if (SelectedRecette.TempsDebut.Add(SelectedRecette.TempsRestant) >= DateTime.Now)
                {
                    if (SelectedRecette.TempsDebut.Add(SelectedRecette.Segments[SelectedRecette.SegCours].Duree) >= DateTime.Now)
                    {
                        TimeSpan t           = DateTime.Now - SelectedRecette.TempsDebut;
                        float    coefDirectA = (SelectedRecette.Segments[SelectedRecette.SegCours].ConsigneArriveeA - SelectedRecette.Segments[SelectedRecette.SegCours].ConsigneDepartA) / (float)SelectedRecette.Segments[SelectedRecette.SegCours].Duree.TotalSeconds;
                        float    coefDirectV = (SelectedRecette.Segments[SelectedRecette.SegCours].ConsigneArriveeV - SelectedRecette.Segments[SelectedRecette.SegCours].ConsigneDepartV) / (float)SelectedRecette.Segments[SelectedRecette.SegCours].Duree.TotalSeconds;

                        ConsigneA = (int)(coefDirectA * (float)t.TotalSeconds + SelectedRecette.Segments[SelectedRecette.SegCours].ConsigneDepartA);
                        ConsigneV = (int)(coefDirectV * (float)t.TotalSeconds + SelectedRecette.Segments[SelectedRecette.SegCours].ConsigneDepartV);
                        if (ValuesA.Count < 500)
                        {
                            ValuesA.Add(ConsigneV);
                            ValuesB.Add(ConsigneA);
                        }
                        else
                        {
                            for (int i = 0; i < ValuesA.Count - 1; i++)
                            {
                                ValuesA[i] = ValuesA[i + 1];
                                ValuesB[i] = ValuesB[i + 1];
                                ValuesA[ValuesA.Count - 1] = ConsigneV;
                                ValuesB[ValuesA.Count - 1] = ConsigneA;
                            }
                        }
                    }
                    else
                    {
                        SelectedRecette.SegCours++;
                        if (SelectedRecette.SegCours >= SelectedRecette.Segments.Count)
                        {
                            SelectedRecette.SegCours--;
                            OnOff = false;
                            Messenger.Default.Send(SelectedRecette);
                        }
                    }
                }
                WriteModbus();
            }
        }
Example #6
0
        public void ChartOnDataClick(object sender, ChartPoint p)
        {
            ///
            ////добавление кординат в листы для dz окна



            var asPixels = Chart.ConvertToPixels(p.AsPoint());

            Console.WriteLine("[EVENT] You clicked (" + p.X + ", " + p.Y + ") in pixels (" +
                              asPixels.X + ", " + asPixels.Y + ")");
            //Tochka.Fill = Brushes.OrangeRed;
            ValuesB.Add(new ObservablePoint(p.X, p.Y));
            ///


            Listbox_dz_x.Items.Add(p.X);
            Listbox_dz_y.Items.Add(p.Y);
            Kars.Cor.Dz_x = null;
            Kars.Cor.Dz_y = null;

            Kars.Cor.Dz_x = Convert.ToString(Listbox_dz_x.Items[count]);
            Kars.Cor.Dz_y = Convert.ToString(Listbox_dz_y.Items[count]);

            Kars.Cor.Ckeso = 0;
            count++;
            Kars.Dz_dialog f = new Kars.Dz_dialog();
            f.ShowDialog();
            Listbox_dz.Items.Add(Kars.Cor.Dz);

            if (List_XY.Contains(p.X + "," + p.Y))
            {
                MessageBox.Show("Опора уже добавлена", "Предупреждение");
            }
            else
            {
                List_XY.Add(p.X + "," + p.Y);
                x_dz    += Kars.Cor.Dz + "; ";
                list_xy += p.X + "," + p.Y + "; ";
                ListBoxLog.Items.Add("Добавлена опора (X,Y): " + p.X + "," + p.Y);
                ListBoxLog.Items.Add("Добавлена dz " + Kars.Cor.Dz + " для опоры: " + p.X + "," + p.Y);
            }
        }