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])); }); } }
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; } } }
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; * } * }); * */ }
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(); } }
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); } }