private void Fl_termo_window_Load(object sender, EventArgs e) { try { XmlSerializer serializer1 = new XmlSerializer(typeof(Points)); FileStream fs1 = new FileStream(AppSettings.AppFolder + "Points.xml", FileMode.Open); Points_table = (Points)serializer1.Deserialize(fs1); fs1.Close(); textBox_mcurr_TextChanged(null, null); for (int i = 0; i < Points_table.Table_baze.Count; i++) { bindingSource_point.Add(Points_table.Table_baze[i]); } for (int i = 0; i < Termo.polinom_termo_correct.Length; i++) { Point_Current temp = new Point_Current(); temp.x = "X^" + i.ToString(); if (Points_table.Table_current.Count > i) { temp.y = Points_table.Table_current[i].y; } else { temp.y = 0.0f; } bindingSource_current.Add(temp); } if (Points_table.f) { radioButton_f.Checked = true; } else { radioButton_n.Checked = true; } radioButton_f_CheckedChanged(null, null); bindingSource_points.Add(Points_table); bindingSource_points.ResetBindings(false); bindingSource_point.ResetBindings(false); } catch (Exception ex) { MessageBox.Show(ex.Message, Properties.Resources.AppName, MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { BintTranslation(currentTranslation); TranslateMenu(currentTranslation); } }
private void button2_Click(object sender, EventArgs e) { bindingSource_current.Clear(); for (int i = 0; i < Termo.polinom_termo_correct.Length; i++) { Point_Current temp = new Point_Current(); temp.x = "X^" + i.ToString(); temp.y = Termo.polinom_termo_correct[i]; bindingSource_current.Add(temp); } }
private void button_save_Click(object sender, EventArgs e) { saveFileDialog1.Filter = "xml files (*.xml)|*.xml|All files (*.*)|*.*"; if (saveFileDialog1.ShowDialog() == DialogResult.OK) { // Points_table.Table_start_graph.Clear(); Points_table.Table_restore.Clear(); Points_table.Table_baze.Clear(); Points_table.Table_yitog.Clear(); // Points_table.Table_yitog_calc.Clear(); for (int i = 0; i < dataGridView1.RowCount - 1; i++) { DUTConfig_V3.Forms.etc.Point Temp = new DUTConfig_V3.Forms.etc.Point(); Temp.number = i + 1; Temp.x = (double)dataGridView1.Rows[i].Cells[1].Value; Temp.y = (double)dataGridView1.Rows[i].Cells[2].Value; Points_table.Table_baze.Add(Temp); } Points_table.Table_current.Clear(); for (int i = 0; i < dataGridView2.RowCount; i++) { Point_Current Temp = new Point_Current(); Temp.x = "X^" + i.ToString(); Temp.y = (double)dataGridView2.Rows[i].Cells[1].Value; Points_table.Table_current.Add(Temp); } XmlSerializer mySerializer = new XmlSerializer(typeof(Points)); StreamWriter myWriter = new StreamWriter(saveFileDialog1.FileName); try { mySerializer.Serialize(myWriter, Points_table); myWriter.Close(); } catch (Exception) { } } }
private void Fl_termo_window_FormClosing(object sender, FormClosingEventArgs e) { try { Points_table.Table_baze.Clear(); Points_table.Table_current.Clear(); Points_table.Table_read_from_device.Clear(); for (int i = 0; i < dataGridView1.RowCount - 1; i++) { DUTConfig_V3.Forms.etc.Point Temp = new DUTConfig_V3.Forms.etc.Point(); Temp.number = i + 1; Temp.x = (double)dataGridView1.Rows[i].Cells[1].Value; Temp.y = (double)dataGridView1.Rows[i].Cells[2].Value; Points_table.Table_baze.Add(Temp); } for (int i = 0; i < dataGridView2.RowCount; i++) { Point_Current Temp = new Point_Current(); Temp.x = "X^" + i.ToString(); Temp.y = (double)dataGridView2.Rows[i].Cells[1].Value; Points_table.Table_current.Add(Temp); } Points_table.STEP_POLINOM = Convert.ToInt32(textBox_m.Text); Points_table.STEP_POLINOM_CURRENT = Convert.ToInt32(textBox_mcurr.Text); XmlSerializer mySerializer = new XmlSerializer(typeof(Points)); StreamWriter myWriter = new StreamWriter(AppSettings.AppFolder + "Points.xml"); mySerializer.Serialize(myWriter, Points_table); myWriter.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message, Properties.Resources.AppName, MessageBoxButtons.OK, MessageBoxIcon.Error); } }
bool Reading = false; // поможет прятать 3й график private void button_read_polinom_Click(object sender, EventArgs e) { try { Reading = true; bindingSource_current.Clear(); modbus.Open(); //открываем порт float[] rez = modbus.ReadFloat(Termo.Adress_polinom_termo_correct, Termo.polinom_termo_correct.Length); // считываем в массив коэффициенты полинома из датчика rez = rotate_array(rez); // разворачиваем массив double[] rez_double = new double[rez.Length]; // создаём массив размером с первый, чтобы перевести числа в double (для аппроксимации) for (int i = 0; i < rez_double.Length; i++) { rez_double[i] = Convert.ToDouble(rez[i]); // переводим коэффициенты в double } for (int i = 0; i < rez_double.Length; i++) { Point_Current Temp = new Point_Current(); Temp.x = "X^" + i.ToString(); Temp.y = rez_double[i]; bindingSource_current.Add(Temp); } Points_table.Table_read_from_device.Clear(); // очищаем таблицу, в которой будут хранится значения для графика int koeff = (Termo.high + Math.Abs(Termo.low)) / Termo.step + 1; // рассчитываем количество точек на графике, основываясь на настройках double[] Xes = new double[koeff]; // Массив со значениями оси Х графика for (int i = 0; i < Xes.Length; i++) { Xes[i] = Termo.low + i * Termo.step; } for (int i = 0; i < koeff; i++) { DUTConfig_V3.Forms.etc.Point temp = new DUTConfig_V3.Forms.etc.Point(); // локальная переменная, нужна для корректной передачи данных на отрисовку temp.number = i + 1; temp.x = Xes[i]; temp.y = polinom_calc(Xes[i], rez_double); // рассчитываем частоту Points_table.Table_read_from_device.Add(temp); } Points_table.Table_yitog.Clear(); // Points_table.Table_yitog_calc.Clear(); //Points_table.Table_start_graph.Clear(); Points_table.Table_restore.Clear(); DrawGraph(Points_table); string s = ""; for (int i = 0; i < rez.Length; i++) { s += i + 1 + ": " + rez[i] + "; "; itog_poly.Add(rez[i]); } textBox_a.Text = s; } catch (Exception ex) { MessageBox.Show(ex.Message, Properties.Resources.AppName, MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { modbus.Close(); } }