Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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);
            }
        }
Exemplo n.º 3
0
        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)
                { }
            }
        }
Exemplo n.º 4
0
        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); }
        }
Exemplo n.º 5
0
        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();
            }
        }